/// <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(); } }
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; }