/// <summary> /// 重要指标 /// </summary> /// <returns></returns> internal List <EntityReportMainItem> GetMainIndicate(EntitymModelAccessRecord vo) { List <EntityReportMainItem> data = new List <EntityReportMainItem>(); List <EntityReportMainItemConfig> lstMainItemConfig; using (ProxyHms proxy = new ProxyHms()) { proxy.Service.GetTjResult(vo.regNo, out lstTjResult, out lstXjResult, out tjjljyVo); lstMainItemConfig = proxy.Service.GetReportMainItemConfig(); } if (lstTjResult == null) { return(null); } EntityReportMainItem mainItem; foreach (var mConfig in lstMainItemConfig) { EntityTjResult result = lstTjResult.Find(r => r.itemCode == mConfig.itemCode); if (result != null) { mainItem = new EntityReportMainItem(); mainItem.reportId = result.regNo; mainItem.sectionName = result.itemName; mainItem.itemName = result.itemName; mainItem.itemValue = result.itemResult; mainItem.itemUnits = result.unit; mainItem.itemRefrange = result.range; mainItem.isNormal = result.hint; if (!string.IsNullOrEmpty(result.hint)) { mainItem.pic = ReadImageFile("picHint.png"); } if (result.ttop == "2" && !string.IsNullOrEmpty(result.examinationNo)) { EntityTjResult resultTmp = lstTjResult.Find(r => r.itemCode == result.examinationNo); mainItem.sectionName = resultTmp.itemName; } data.Add(mainItem); } } return(data); }
/// <summary> /// /// </summary> /// <param name="regNo"></param> /// <param name="deptName"></param> /// <returns></returns> public Dictionary <string, List <EntityTjResult> > GetTjResult(string regNo, out List <EntityTjResult> dataResult, out List <EntityTjResult> xjResult, out EntityTjjljy tjjljyVo) { dataResult = null; tjjljyVo = null; xjResult = null; if (string.IsNullOrEmpty(regNo)) { return(null); } Dictionary <string, List <EntityTjResult> > dicDataResult = new Dictionary <string, List <EntityTjResult> >(); List <string> lstExaminatino = new List <string>(); bool pFlag = false; SqlHelper svc = new SqlHelper(EnumBiz.onlineDB); IDataParameter param = null; string Sql = string.Empty; Sql = @"select a.pat_name AS clientName, a.reg_no AS regNo, a.pFlag, a.sex, a.examination_no AS examination, a.ttop, a.comb_code AS itemCode, a.comb_name AS itemName, a.result AS itemResult, a.hint, a.bound AS range, a.unit, a.doct_name AS doctName, a.rec_date AS regDate FROM V_TJBG a WHERE a.reg_no = ?"; param = svc.CreateParm(); param.Value = regNo; DataTable dt = svc.GetDataTable(Sql, param); if (dt != null && dt.Rows.Count > 0) { dataResult = new List <EntityTjResult>(); xjResult = new List <EntityTjResult>(); EntityTjResult vo = null; lstExaminatino = new List <string>(); foreach (DataRow dr in dt.Rows) { vo = new EntityTjResult(); vo.ttop = dr["ttop"].ToString(); vo.clientName = dr["clientName"].ToString(); vo.regNo = dr["regNo"].ToString(); vo.pFlag = dr["pFlag"].ToString(); pFlag = dr["pFlag"].ToString().Trim() == "R" ? true : false; vo.sex = dr["sex"].ToString(); vo.itemName = dr["itemName"].ToString(); vo.itemCode = dr["itemCode"].ToString(); vo.itemResult = dr["itemResult"].ToString() + " " + dr["hint"].ToString(); vo.range = dr["range"].ToString(); vo.unit = dr["unit"].ToString(); vo.doctName = dr["doctName"].ToString(); vo.regDate = dr["regDate"].ToString(); vo.examinationNo = dr["examination"].ToString(); dataResult.Add(vo); if (string.IsNullOrEmpty(vo.examinationNo) || vo.ttop == "1") { xjResult.Add(vo); } if (string.IsNullOrEmpty(vo.examinationNo) || lstExaminatino.Contains(vo.examinationNo)) { continue; } lstExaminatino.Add(vo.examinationNo); } if (lstExaminatino.Count > 0) { foreach (var examination in lstExaminatino) { dicDataResult.Add(examination, dataResult.FindAll(r => r.examinationNo == examination)); } } } string sqlPt = @"select results,sumup,suggTag from V_TJPTJLJY where regNo = ?"; string sqlZyb = @"select results,sumup,suggTag from V_TJZYBJLJY where regNo = ?"; param = svc.CreateParm(); param.Value = regNo; DataTable dtTjjl = null; if (pFlag) { dtTjjl = svc.GetDataTable(sqlZyb, param); } else { dtTjjl = svc.GetDataTable(sqlPt, param); } if (dtTjjl != null && dtTjjl.Rows.Count > 0) { tjjljyVo = new EntityTjjljy(); tjjljyVo.results = dtTjjl.Rows[0]["results"].ToString(); tjjljyVo.sumup = dtTjjl.Rows[0]["sumup"].ToString(); tjjljyVo.suggTage = dtTjjl.Rows[0]["suggTag"].ToString(); } return(dicDataResult); }
/// <summary> /// /// </summary> /// <param name="modelId"></param> /// <returns></returns> internal List <EntityModelParamCalc> CalcModelResult(decimal modelId, EntitymModelAccessRecord vo, out decimal result, out decimal bestDf) { result = 0; bestDf = 0; bool ageFlag = false; List <EntityModelParamCalc> data = null; EntityModelParamCalc paramCalcVo = null; Dictionary <string, string> dicData = new Dictionary <string, string>(); List <EntityModelGroupItem> lstGxyModel = lstModelGroupItem.FindAll(r => r.modelId == modelId && r.isMain == 1); //EntityDisplayClientRpt vo = GetRowObject(); if (!string.IsNullOrEmpty(vo.qnData)) { XmlDocument document = new XmlDocument(); document.LoadXml(vo.qnData); XmlNodeList list = document["FormData"].ChildNodes; dicData = Function.ReadXML(vo.qnData); } if (lstGxyModel != null) { data = new List <EntityModelParamCalc>(); foreach (var model in lstGxyModel) { List <EntityModelParam> lstModelParamGxy = lstModelParam.FindAll(r => r.parentFieldId == model.paramNo && r.modelId == modelId); if (lstModelParamGxy != null) { //问卷 if (model.paramType == 3 || model.paramType == 4) { foreach (var modelGxy in lstModelParamGxy) { if (!string.IsNullOrEmpty(vo.qnData)) { //评估得分 if (dicData.ContainsKey(modelGxy.paramNo)) { decimal score = 0; if (dicData[modelGxy.paramNo] == "1") { score += Function.Dec(modelGxy.score); paramCalcVo = new EntityModelParamCalc(); paramCalcVo.clientId = vo.clientNo; paramCalcVo.qnRecId = vo.qnRecId; paramCalcVo.regNo = vo.regNo; paramCalcVo.modelId = modelId; paramCalcVo.paramNo = model.paramNo; paramCalcVo.paramName = model.paramName; paramCalcVo.calcScore = score; paramCalcVo.paramValue = dicData[modelGxy.paramNo]; paramCalcVo.recordDate = DateTime.Now; if (data.Any(r => r.paramNo == paramCalcVo.paramNo && r.modelId == modelId && r.qnRecId == paramCalcVo.qnRecId && r.regNo == paramCalcVo.regNo)) { EntityModelParamCalc cloneVo = data.Find(r => r.paramNo == paramCalcVo.paramNo && r.modelId == modelId && r.qnRecId == paramCalcVo.qnRecId && r.regNo == paramCalcVo.regNo); cloneVo.calcScore = score; } else { data.Add(paramCalcVo); } } result += score; } if (modelGxy.paramNo == "Age") { decimal df = 0; decimal bDf = 0; decimal age = 0; if (dicData.ContainsKey("Birthday") && !ageFlag) { if (!string.IsNullOrEmpty(dicData["Birthday"])) { age = CalcAge.GetAgeInt(Function.Datetime(dicData["Birthday"])); df = CalcDf(age, modelId, modelGxy.paramNo, out bDf); result += df; ageFlag = true; paramCalcVo = new EntityModelParamCalc(); paramCalcVo.clientId = vo.clientNo; paramCalcVo.regNo = vo.regNo; paramCalcVo.qnRecId = vo.qnRecId; paramCalcVo.modelId = modelId; paramCalcVo.paramNo = modelGxy.paramNo; paramCalcVo.paramName = modelGxy.paramName; paramCalcVo.calcScore = df; paramCalcVo.recordDate = DateTime.Now; paramCalcVo.paramValue = dicData["Birthday"]; paramCalcVo.recordDate = DateTime.Now; data.Add(paramCalcVo); } } } //最佳状态 得分 if (modelGxy.isBest == "1") { bestDf += Function.Dec(modelGxy.score); } } } } else if (model.paramType == 2) { if (lstTjResult == null) { continue; } EntityTjResult tjVo = lstTjResult.Find(r => r.itemCode == model.paramNo); if (tjVo == null) { continue; } decimal tjValue = Function.Dec(tjVo.itemResult); decimal df = 0; decimal bDf = 0; df = CalcDf(tjValue, modelId, model.paramNo, out bDf); paramCalcVo = new EntityModelParamCalc(); paramCalcVo.clientId = vo.clientNo; paramCalcVo.regNo = vo.regNo; paramCalcVo.qnRecId = vo.qnRecId; paramCalcVo.modelId = modelId; paramCalcVo.paramNo = model.paramNo; paramCalcVo.paramName = model.paramName; paramCalcVo.calcScore = df; paramCalcVo.recordDate = DateTime.Now; paramCalcVo.paramValue = tjVo.itemResult.ToString(); result += df; bestDf += bDf; if (data.Any(r => r.modelId == modelId && r.paramNo == model.paramNo && paramCalcVo.qnRecId == vo.qnRecId)) { continue; } else { data.Add(paramCalcVo); } } } } } 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); }
public ucReportItem(List <EntityTjResult> _lstTjResult, EntityTjResult _xjResult) { InitializeComponent(); lstTjResult = _lstTjResult; xjResult = _xjResult; }