Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
 public ucReportItem(List <EntityTjResult> _lstTjResult, EntityTjResult _xjResult)
 {
     InitializeComponent();
     lstTjResult = _lstTjResult;
     xjResult    = _xjResult;
 }