Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
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);
        }