Example #1
0
        /// <summary>
        /// 获取心衰评估所需输入(BasicInfoDetail部分) SYF 20151117
        /// </summary>
        /// <param name="pclsCache"></param>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public M3RiskInput GetM3RiskInput(DataConnection pclsCache, string UserId)
        {
            M3RiskInput Input = new M3RiskInput();
            try
            {

                if (!pclsCache.Connect())
                {
                    return null;
                }
                InterSystems.Data.CacheTypes.CacheSysList list = null;
                list = Ps.BasicInfoDetail.GetM3RiskInput(pclsCache.CacheConnectionObject, UserId);
                if (list != null)
                {
                    #region
                    if (list[1] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[1].Split('|');//值和日期分开
                        Input.Height = Convert.ToInt32(ItemAll[0]);
                        Input.HeightTime = ItemAll[1] + " " + ItemAll[2];
                    }

                    if (list[0] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[0].Split('|');//值和日期分开
                        Input.Weight = Convert.ToInt32(ItemAll[0]);
                        Input.WeightTime = ItemAll[1] + " " + ItemAll[2];
                    }
                    Input.BMI = Math.Round(Input.Weight / (Input.Height / 100.0) / (Input.Height / 100.0), 2);

                    if (list[2] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[2].Split('|');//值和日期分开
                        Input.Smoke = Convert.ToInt32(ItemAll[0]);
                        Input.SmokeTime = ItemAll[1];
                    }

                    if (list[3] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[3].Split('|');//值和日期分开
                        Input.Diabetes = Convert.ToInt32(ItemAll[0]);
                        Input.DiabetesTime = ItemAll[1];
                    }

                    if (list[4] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[4].Split('|');//值和日期分开
                        Input.Creatinine = Convert.ToDouble(ItemAll[0]);
                        Input.CreatinineTime = ItemAll[1];
                    }

                    if (list[5] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[5].Split('|');//值和日期分开
                        Input.SBP = Convert.ToInt32(ItemAll[0]);
                        Input.SBPTime = ItemAll[1];
                    }

                    if (list[6] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[6].Split('|');//值和日期分开
                        Input.EF = Convert.ToInt32(ItemAll[0]);
                        Input.EFTime = ItemAll[1];
                    }

                    if (list[7] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[7].Split('|');//值和日期分开
                        Input.NYHA = Convert.ToInt32(ItemAll[0]);
                        Input.NYHATime = ItemAll[1];
                    }

                    if (list[8] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[8].Split('|');//值和日期分开
                        Input.Lung = Convert.ToInt32(ItemAll[0]);
                        Input.LungTime = ItemAll[1];
                    }

                    if (list[9] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[9].Split('|');//值和日期分开
                        Input.HF18 = Convert.ToInt32(ItemAll[0]);
                        Input.HF18Time = ItemAll[1];
                    }

                    if (list[10] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[10].Split('|');//值和日期分开
                        Input.Beta = Convert.ToInt32(ItemAll[0]);
                        Input.BetaTime = ItemAll[1];
                    }

                    if (list[11] == null)
                    {
                        return null;
                    }
                    else
                    {
                        string[] ItemAll = list[11].Split('|');//值和日期分开
                        Input.AA = Convert.ToInt32(ItemAll[0]);
                        Input.AATime = ItemAll[1];
                    }
                    #endregion
                }
                return Input;
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.ToString(), "获取名称失败!");
                HygeiaComUtility.WriteClientLog(HygeiaEnum.LogType.ErrorLog, "UsersMethod.GetM3RiskInput", "数据库操作异常! error information : " + ex.Message + Environment.NewLine + ex.StackTrace);
                return null;
            }
            finally
            {
                pclsCache.DisConnect();
            }

        }
Example #2
0
        public int SetM3RiskInput(DataConnection pclsCache, string PatientId, M3RiskInput M3RiskInput, int RecordDate, int RecordTime, string piUserId, string piTerminalName, string piTerminalIP, int piDeviceType)
        {
            int ret = 0;
            int fret = 1;
            try
            {
                #region//插入PsVitalSigns表
                ret = new VitalInfoMethod().SetData(pclsCache, PatientId, RecordDate, RecordTime, "BodySigns", "Height", M3RiskInput.Height.ToString(), "cm", piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new VitalInfoMethod().SetData(pclsCache, PatientId, RecordDate, RecordTime, "BodySigns", "Weight", M3RiskInput.Weight.ToString(), "kg", piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new VitalInfoMethod().SetData(pclsCache, PatientId, RecordDate, RecordTime, "M3", "QG0013", M3RiskInput.SBP.ToString(), "mmHg", piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                #endregion

                #region//插入PsBasicInfoDetail表
                ret = new UsersMethod().BasicInfoDetailSetData(pclsCache, PatientId, "M3", "QJ0025", 1, M3RiskInput.EF.ToString(), "", 1, piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new UsersMethod().BasicInfoDetailSetData(pclsCache, PatientId, "M3", "QF0011", 1, M3RiskInput.Smoke.ToString(), "", 1, piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new UsersMethod().BasicInfoDetailSetData(pclsCache, PatientId, "M3", "QB0045", 1, M3RiskInput.Diabetes.ToString(), "", 1, piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new UsersMethod().BasicInfoDetailSetData(pclsCache, PatientId, "M3", "QH0001", 1, M3RiskInput.Creatinine.ToString(), "", 1, piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new UsersMethod().BasicInfoDetailSetData(pclsCache, PatientId, "M3", "QJ0008", 1, M3RiskInput.NYHA.ToString(), "", 1, piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new UsersMethod().BasicInfoDetailSetData(pclsCache, PatientId, "M3", "QB0046", 1, M3RiskInput.Lung.ToString(), "", 1, piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new UsersMethod().BasicInfoDetailSetData(pclsCache, PatientId, "M3", "QB0047", 1, M3RiskInput.HF18.ToString(), "", 1, piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new UsersMethod().BasicInfoDetailSetData(pclsCache, PatientId, "M3", "QE0008", 1, M3RiskInput.Beta.ToString(), "", 1, piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                ret = new UsersMethod().BasicInfoDetailSetData(pclsCache, PatientId, "M3", "QE0009", 1, M3RiskInput.AA.ToString(), "", 1, piUserId, piTerminalName, piTerminalIP, piDeviceType);
                if (ret == 0)
                {
                    fret = 0;
                }
                #endregion

                return fret;
            }
            catch (Exception ex)
            {
                HygeiaComUtility.WriteClientLog(HygeiaEnum.LogType.ErrorLog, "RiskInfoMethod.SetM3RiskInput", "数据库操作异常! error information : " + ex.Message + Environment.NewLine + ex.StackTrace);
                return 0;
            }
            finally
            {
                pclsCache.DisConnect();
            }
        }
 public M3Risk AddM3Risk(string PatientId, M3RiskInput M3RiskInput, int RecordDate, int RecordTime, string piUserId, string piTerminalName, string piTerminalIP, int piDeviceType)
 {
     return repository.AddM3Risk(pclsCache, PatientId, M3RiskInput, RecordDate, RecordTime, piUserId, piTerminalName, piTerminalIP, piDeviceType);
 }
 public M3Risk AddM3Risk(DataConnection pclsCache, string PatientId, M3RiskInput M3RiskInput, int RecordDate, int RecordTime, string piUserId, string piTerminalName, string piTerminalIP, int piDeviceType)
 {
     M3Risk M3Risk = new M3Risk();
     int ret = 0;
     ret = new RiskInfoMethod().SetM3RiskInput(pclsCache, PatientId, M3RiskInput, RecordDate, RecordTime, piUserId, piTerminalName, piTerminalIP, piDeviceType);
     if (ret == 1)
     {
         M3Risk = new RiskInfoRepository().GetM3Risk(pclsCache, PatientId);
     }
     return M3Risk;
 }
        /// <summary>
        /// 获取心衰风险评估结果 SYF 2015-11-17
        /// </summary>
        /// <param name="pclsCache"></param>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public M3Risk GetM3Risk(DataConnection pclsCache, string UserId)
        {
            M3RiskInput Input = new M3RiskInput();
            M3Risk Output = new M3Risk();
            Input = new RiskInfoRepository().GetM3RiskInput(pclsCache, UserId);
            if (Input != null)
            {
                
                int RiskScore = 0;
                #region//左心室射血分数影响
                if (Input.EF >= 40)
                {
                    RiskScore = RiskScore + 0;
                }
                else if (Input.EF >= 35 && Input.EF <= 39)
                {
                    RiskScore = RiskScore + 2;
                }
                else if (Input.EF >= 30 && Input.EF <= 34)
                {
                    RiskScore = RiskScore + 3;
                }
                else if (Input.EF >= 25 && Input.EF <= 29)
                {
                    RiskScore = RiskScore + 5;
                }
                else if (Input.EF >= 20 && Input.EF <= 24)
                {
                    RiskScore = RiskScore + 6;
                }
                else if (Input.EF >= 0 && Input.EF < 20)
                {
                    RiskScore = RiskScore + 7;
                }
                #endregion

                #region//年龄与左心室射血分数叠加影响
                if ((Input.Age >= 56) && (Input.Age <= 59))
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 1;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 2;
                    }
                    else if (Input.EF >= 40)
                    {
                        RiskScore = RiskScore + 3;
                    }
                }
                else if ((Input.Age >= 60) && (Input.Age <= 64))
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 2;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 4;
                    }
                    else if (Input.EF >= 40)
                    {
                        RiskScore = RiskScore + 5;
                    }
                }
                else if ((Input.Age >= 65) && (Input.Age <= 69))
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 4;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 6;
                    }
                    else if (Input.EF >= 40)
                    {
                        RiskScore = RiskScore + 7;
                    }
                }
                else if ((Input.Age >= 70) && (Input.Age <= 74))
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 6;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 8;
                    }
                    else if (Input.EF >= 40)
                    {
                        RiskScore = RiskScore + 9;
                    }
                }
                else if ((Input.Age >= 75) && (Input.Age <= 79))
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 8;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 10;
                    }
                    else if (Input.EF >= 40)
                    {
                        RiskScore = RiskScore + 12;
                    }
                }
                else if (Input.Age >= 80)
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 10;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 13;
                    }
                    else if (Input.EF >= 40)
                    {
                        RiskScore = RiskScore + 15;
                    }
                }
                #endregion

                #region//收缩压与左心室射血分数叠加影响
                if (Input.SBP < 110)
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 5;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 3;
                    }
                    else if (Input.EF >= 40)
                    {
                        RiskScore = RiskScore + 2;
                    }
                }
                else if ((Input.SBP >= 110) && (Input.SBP <= 119))
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 4;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 2;
                    }
                    else if (Input.EF >= 40)
                    {
                        RiskScore = RiskScore + 1;
                    }
                }
                else if ((Input.SBP >= 120) && (Input.SBP <= 129))
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 3;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 1;
                    }
                    else if (Input.EF >= 40)
                    {
                        RiskScore = RiskScore + 1;
                    }
                }
                else if ((Input.SBP >= 130) && (Input.SBP <= 139))
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 2;
                    }
                    else if ((Input.EF >= 30) && (Input.EF <= 39))
                    {
                        RiskScore = RiskScore + 1;
                    }
                }
                else if ((Input.SBP >= 140) && (Input.SBP <= 149))
                {
                    if (Input.EF < 30)
                    {
                        RiskScore = RiskScore + 1;
                    }
                }
                #endregion

                #region//BMI的影响
                if (Input.BMI < 15)
                {
                    RiskScore = RiskScore + 6;
                }
                else if ((Input.BMI >= 15) && (Input.BMI < 20))
                {
                    RiskScore = RiskScore + 5;
                }
                else if ((Input.BMI >= 20) && (Input.BMI < 25))
                {
                    RiskScore = RiskScore + 3;
                }
                else if ((Input.BMI >= 25) && (Input.BMI < 30))
                {
                    RiskScore = RiskScore + 2;
                }
                #endregion

                #region//肌酐的影响
                if ((Input.Creatinine >= 90) && (Input.Creatinine < 110))
                {
                    RiskScore = RiskScore + 1;
                }
                else if ((Input.Creatinine >= 110) && (Input.Creatinine < 130))
                {
                    RiskScore = RiskScore + 2;
                }
                else if ((Input.Creatinine >= 130) && (Input.Creatinine < 150))
                {
                    RiskScore = RiskScore + 3;
                }
                else if ((Input.Creatinine >= 150) && (Input.Creatinine < 170))
                {
                    RiskScore = RiskScore + 4;
                }
                else if ((Input.Creatinine >= 170) && (Input.Creatinine < 210))
                {
                    RiskScore = RiskScore + 5;
                }
                else if ((Input.Creatinine >= 210) && (Input.Creatinine < 250))
                {
                    RiskScore = RiskScore + 6;
                }
                else if (Input.Creatinine >= 250)
                {
                    RiskScore = RiskScore + 8;
                }
                #endregion

                #region//心衰等级分类影响
                if (Input.NYHA == 2)
                {
                    RiskScore = RiskScore + 2;
                }
                else if (Input.NYHA == 3)
                {
                    RiskScore = RiskScore + 6;
                }
                else if (Input.NYHA == 4)
                {
                    RiskScore = RiskScore + 8;
                }
                #endregion

                #region//其他因素影响
                if (Input.Gender == 1)
                {
                    RiskScore = RiskScore + 1;
                }
                if (Input.Smoke == 1)
                {
                    RiskScore = RiskScore + 1;
                }
                if (Input.Diabetes == 1)
                {
                    RiskScore = RiskScore + 3;
                }
                if (Input.Lung == 1)
                {
                    RiskScore = RiskScore + 2;
                }
                if (Input.HF18 == 1)
                {
                    RiskScore = RiskScore + 2;
                }
                if (Input.Beta == 2)
                {
                    RiskScore = RiskScore + 3;
                }
                if (Input.AA == 2)
                {
                    RiskScore = RiskScore + 1;
                }
                #endregion

                double[] OneYear = new double[] { 0.015, 0.016, 0.018, 0.020, 0.022, 0.024, 0.027, 0.029, 0.032, 0.036, 0.039, 0.043, 0.048, 0.052, 0.058, 0.063, 0.070, 0.077, 0.084, 0.093, 0.102, 0.111, 0.122, 0.134, 0.147, 0.060, 0.175, 0.191, 0.209, 0.227, 0.248, 0.269, 0.292, 0.316, 0.342, 0.369, 0.398, 0.427, 0.458, 0.490, 0.523, 0.557, 0.591, 0.625, 0.659, 0.692, 0.725, 0.757, 0.787, 0.816, 0.842 };
                double[] ThreeYear = new double[] { 0.039, 0.043, 0.048, 0.052, 0.058, 0.063, 0.070, 0.077, 0.084, 0.092, 0.102, 0.111, 0.122, 0.134, 0.146, 0.160, 0.175, 0.191, 0.209, 0.227, 0.247, 0.269, 0.292, 0.316, 0.342, 0.369, 0.397, 0.427, 0.458, 0.490, 0.523, 0.556, 0.590, 0.625, 0.658, 0.692, 0.725, 0.756, 0.787, 0.815, 0.842, 0.866, 0.889, 0.908, 0.926, 0.941, 0.953, 0.964, 0.973, 0.980, 0.985 };
                Output.One = OneYear[RiskScore] * 100;
                Output.Three = ThreeYear[RiskScore] * 100;
            }
            else
            {
                return null;
            }
            return Output;
        }
 /// <summary>
 /// 获取心衰模型评估的所有输入 SYF 20151117
 /// </summary>
 /// <param name="pclsCache"></param>
 /// <param name="UserId"></param>
 /// <returns></returns>
 public M3RiskInput GetM3RiskInput(DataConnection pclsCache, string UserId)
 {
     M3RiskInput Input = new M3RiskInput();
     Input = new UsersMethod().GetM3RiskInput(pclsCache, UserId);
     if (Input != null)
     {
         BasicInfo BaseList = new UsersMethod().GetBasicInfo(pclsCache, UserId);
         if (BaseList != null)
         {
             if (BaseList.Birthday != "" && BaseList.Birthday != "0" && BaseList.Birthday != null)
             {
                 Input.Age = new UsersMethod().GetAgeByBirthDay(pclsCache, Convert.ToInt32(BaseList.Birthday));//年龄
             }
             if (BaseList.Gender != "" && BaseList.Gender != "0" && BaseList.Gender != null)
             {
                 Input.Gender = Convert.ToInt32(BaseList.Gender);//性别
             }
         }
     }
     else
     {
         return null;
     }
     return Input;
 }