/// <summary> /// 疾病模型分析要点 /// </summary> /// <param name="parms"></param> /// <returns></returns> public List <EntityModelAnalysisPoint> GetModelAnalysisPoint() { List <EntityModelAnalysisPoint> data = null; SqlHelper svc = new SqlHelper(EnumBiz.onlineDB); string Sql = string.Empty; Sql = @"select id, paramType, paramNo, paramName, judgeWay, judgeValue, pintAdvice, remarks, bakField1, bakField2 from modelAnalysisPoint "; DataTable dt = svc.GetDataTable(Sql); if (dt != null && dt.Rows.Count > 0) { data = new List <EntityModelAnalysisPoint>(); EntityModelAnalysisPoint vo = null; foreach (DataRow dr in dt.Rows) { vo = new EntityModelAnalysisPoint(); vo.id = Function.Int(dr["id"]); vo.paramType = Function.Dec(dr["paramType"]); vo.paramNo = dr["paramType"].ToString(); vo.paramName = dr["paramNo"].ToString(); vo.judgeWay = dr["judgeWay"].ToString(); vo.judgeValue = dr["judgeValue"].ToString(); vo.pintAdvice = dr["pintAdvice"].ToString(); vo.remarks = dr["remarks"].ToString(); vo.bakField1 = dr["bakField1"].ToString(); vo.bakField2 = dr["bakField2"].ToString(); data.Add(vo); } } return(data); }
/// <summary> /// 疾病模型评估 /// </summary> /// <returns></returns> internal EntityRptModelAcess GetRptModelParam(decimal modelId, EntitymModelAccessRecord vo, out List <EntityModelParamCalc> lstMdParamCalc) { EntityRptModelAcess modelAcess = new EntityRptModelAcess(); lstMdParamCalc = new List <EntityModelParamCalc>(); modelAcess.lstModelParam = new List <EntityRptModelParam>(); Dictionary <string, string> dicData = new Dictionary <string, string>(); EntityRptModelParam param = null; try { modelAcess.modelId = modelId; List <EntityModelGroupItem> lstModelGroup = lstModelGroupItem.FindAll(r => r.modelId == modelId && r.isMain == 1); if (!string.IsNullOrEmpty(vo.qnData)) { XmlDocument document = new XmlDocument(); document.LoadXml(vo.qnData); XmlNodeList list = document["FormData"].ChildNodes; dicData = Function.ReadXML(vo.qnData); } #region 主要评估参数 if (lstModelGroup != null) { bool rFlag = false; foreach (var model in lstModelGroup) { rFlag = false; param = new EntityRptModelParam(); param.itemCode = model.paramNo; param.itemName = model.paramName; param.pointId = model.pointId; //问卷 if (model.paramType == 3 || model.paramType == 4) { List <EntityModelParam> lstModelParamTmp = lstModelParam.FindAll(r => r.parentFieldId == model.paramNo && r.modelId == modelId); if (lstModelParamTmp != null) { foreach (var gxyModel in lstModelParamTmp) { rFlag = false; if (gxyModel.isNormal == "1") { param.range = gxyModel.judgeRange; } if (dicData.ContainsKey(gxyModel.paramNo)) { if (gxyModel.judgeType == 2) { if (Function.Dec(dicData[gxyModel.paramNo]) == gxyModel.judgeValue) { param.result = gxyModel.judgeRange; } if (string.IsNullOrEmpty(param.result)) { param.result = "无"; } } else { param.result = dicData[model.paramNo]; } rFlag = true; } } } } //体检项目 else if (model.paramType == 2) { if (lstTjResult == null) { continue; } if (!lstTjResult.Any(r => r.itemCode == param.itemCode)) { continue; } EntityTjResult tjR = lstTjResult.Find(r => r.itemCode == param.itemCode); param.itemName = tjR.itemName; param.result = tjR.itemResult; param.range = tjR.range; param.unit = tjR.unit; if (!string.IsNullOrEmpty(tjR.hint)) { param.pic = ReadImageFile("picHint.png"); } rFlag = true; } if (rFlag) { modelAcess.lstModelParam.Add(param); } } } #endregion #region 预防要点 //预防要点 List <int> lstPoint = new List <int>(); modelAcess.lstPoint = new List <string>(); if (modelAcess.lstModelParam != null) { foreach (var pVo in modelAcess.lstModelParam) { if (!lstPoint.Contains(pVo.pointId)) { lstPoint.Add(pVo.pointId); } } for (int i = 0; i < lstPoint.Count; i++) { EntityModelAnalysisPoint pointVo = lstModelPoint.Find(r => r.id == lstPoint[i]); if (pointVo != null) { modelAcess.lstPoint.Add(pointVo.pintAdvice); } } } #endregion #region 风险评估 decimal bestDf = 0; decimal df = 0; lstMdParamCalc = CalcModelResult(modelId, vo, out df, out bestDf); modelAcess.df = df; modelAcess.bestDf = bestDf; modelAcess.reduceDf = modelAcess.df - modelAcess.bestDf; if (modelAcess.df <= 5) { modelAcess.imgFx01 = ReadImageFile("picFx.png"); modelAcess.resultStr = "低危"; } else if (modelAcess.df > 5 && modelAcess.df < 20) { modelAcess.imgFx02 = ReadImageFile("picFx.png"); modelAcess.resultStr = "中危"; } else if (modelAcess.df > 20 && modelAcess.df < 50) { modelAcess.imgFx03 = ReadImageFile("picFx.png"); modelAcess.resultStr = "高危"; } else if (modelAcess.df >= 50) { modelAcess.imgFx04 = ReadImageFile("picFx.png"); modelAcess.resultStr = "很高危"; } modelAcess.lstEvaluate = new List <EntityEvaluateResult>(); EntityEvaluateResult voEr = new EntityEvaluateResult(); voEr.result = Function.Double(modelAcess.df.ToString("0.00")); voEr.evaluationName = "本次结果"; modelAcess.lstEvaluate.Add(voEr); EntityEvaluateResult voEb = new EntityEvaluateResult(); voEb.result = Function.Double(modelAcess.bestDf.ToString("0.00")); voEb.evaluationName = "最佳状态"; modelAcess.lstEvaluate.Add(voEb); EntityEvaluateResult voEa = new EntityEvaluateResult(); voEa.result = 18; voEa.evaluationName = "平均水平"; modelAcess.lstEvaluate.Add(voEa); #endregion } catch (Exception ex) { ExceptionLog.OutPutException(ex); } return(modelAcess); }