//GetBPInfo LS 2015-03-27 获取血压(收缩压和舒张压)的组合数据-根据 public static List<Graph> GetBPInfo(DataConnection pclsCache, string UserId, string PlanNo, string ItemType, int StartDate, int EndDate, List<MstBloodPressure> reference) { List<Graph> graphList = new List<Graph>(); //获取系统时间 数据库连接,这样写,应该对的 string serverTime = ""; if (pclsCache.Connect()) { serverTime = Convert.ToDateTime(Cm.CommonLibrary.GetServerDateTime(pclsCache.CacheConnectionObject)).ToString("yyyyMMdd"); } pclsCache.DisConnect(); try { //收缩压表 DataTable sysInfo = new DataTable(); sysInfo = PsCompliance.GetSignDetailByPeriod(pclsCache, UserId, PlanNo, "Bloodpressure", "Bloodpressure_1", StartDate, EndDate); //RecordDate、RecordTime、Value、Unit //舒张压表 DataTable diaInfo = new DataTable(); diaInfo = PsCompliance.GetSignDetailByPeriod(pclsCache, UserId, PlanNo, "Bloodpressure", "Bloodpressure_2", StartDate, EndDate); //脉率 if ((sysInfo.Rows.Count == diaInfo.Rows.Count) && (sysInfo.Rows.Count > 0)) { for (int rowsCount = 0; rowsCount < sysInfo.Rows.Count; rowsCount++) { Graph Graph = new Graph(); Graph.date = sysInfo.Rows[rowsCount]["RecordDate"].ToString(); Graph.SBPvalue = sysInfo.Rows[rowsCount]["Value"].ToString(); Graph.DBPvalue = diaInfo.Rows[rowsCount]["Value"].ToString(); //收缩压 if (Graph.SBPvalue != "") { Graph.SBPGrade = CmMstBloodPressure.GetSignGrade("Bloodpressure_1", Convert.ToInt32(Graph.SBPvalue), reference); Graph.SBPlineColor = CmMstBloodPressure.GetSignColor(Graph.SBPGrade); } else { Graph.SBPGrade = ""; Graph.SBPlineColor = ""; } //舒张压 if (Graph.DBPvalue != "") { Graph.DBPGrade = CmMstBloodPressure.GetSignGrade("Bloodpressure_2", Convert.ToInt32(Graph.DBPGrade), reference); Graph.DBPlineColor = CmMstBloodPressure.GetSignColor(Graph.DBPGrade); } else { Graph.DBPGrade = ""; Graph.DBPGrade = ""; } if (rowsCount != sysInfo.Rows.Count - 1) { Graph.SBPbulletShape = "round"; Graph.DBPbulletShape = "round"; } else { if (serverTime == Graph.date) //当天的血压点形状用菱形 { Graph.SBPbulletShape = "diamond"; Graph.DBPbulletShape = "diamond"; } else { Graph.SBPbulletShape = "round"; Graph.DBPbulletShape = "round"; } } graphList.Add(Graph); } } return graphList; } catch (Exception ex) { HygeiaComUtility.WriteClientLog(HygeiaEnum.LogType.ErrorLog, "CmMstBloodPressure.GetBPInfo", "数据库操作异常! error information : " + ex.Message + Environment.NewLine + ex.StackTrace); return null; } finally { } }
//GetSignInfoByBP LS 2015-06-28 生成收缩压/舒张压/脉率点图,并分级 需要三者拼接字段 注意:可能没有脉率任务 public static List<Graph> GetSignInfoByM1(DataConnection pclsCache, string UserId, string PlanNo, string Code, int StartDate, int EndDate, List<MstBloodPressure> reference) { List<Graph> graphList = new List<Graph>(); //获取系统时间 数据库连接,这样写,应该对的 string serverTime = ""; if (pclsCache.Connect()) { serverTime = Convert.ToDateTime(Cm.CommonLibrary.GetServerDateTime(pclsCache.CacheConnectionObject)).ToString("yyyyMMdd"); } pclsCache.DisConnect(); try { //输入的code是拼接字段 //string[] strCode = Code.Split(new char[] { '|' }); //string ItemType = strCode[0]; //string ItemCode = strCode[1]; //M1的关注含下列几表 PsCompliance.GetSignDetailByPeriod方法保证几表条数相等 即使某天没体征数据,也会输出""字符串 //收缩压表 DataTable sysInfo = new DataTable(); sysInfo = PsCompliance.GetSignDetailByPeriod(pclsCache, UserId, PlanNo, "Bloodpressure", "Bloodpressure_1", StartDate, EndDate); //RecordDate、RecordTime、Value、Unit //舒张压表 DataTable diaInfo = new DataTable(); diaInfo = PsCompliance.GetSignDetailByPeriod(pclsCache, UserId, PlanNo, "Bloodpressure", "Bloodpressure_2", StartDate, EndDate); //脉率表 DataTable pulInfo = new DataTable(); pulInfo = PsCompliance.GetSignDetailByPeriod(pclsCache, UserId, PlanNo, "Pulserate", "Pulserate_1", StartDate, EndDate); //三张表都有数据 if ((sysInfo.Rows.Count == diaInfo.Rows.Count) && (sysInfo.Rows.Count == pulInfo.Rows.Count) && (sysInfo.Rows.Count > 0)) { for (int rowsCount = 0; rowsCount < sysInfo.Rows.Count; rowsCount++) { Graph Graph = new Graph(); Graph.Date = sysInfo.Rows[rowsCount]["RecordDate"].ToString(); #region 值、等级、颜色 //值、等级、颜色、描述文本 if ((Code == "Bloodpressure|Bloodpressure_1") && (reference != null)) //血压要求 reference 不为空 { #region 收缩压 Graph.SignValue = "#"; if (sysInfo.Rows[rowsCount]["Value"].ToString() != "") { Graph.SignValue = sysInfo.Rows[rowsCount]["Value"].ToString(); } //Graph.SignValue = sysInfo.Rows[rowsCount]["Value"].ToString(); if (Graph.SignValue != "#") { Graph.SignGrade = CmMstBloodPressure.GetSignBPGrade("Bloodpressure_1", Convert.ToInt32(Graph.SignValue), reference); Graph.SignColor = CmMstBloodPressure.GetBPColor(Graph.SignGrade, "bullet"); //判断是否都有值 if ((sysInfo.Rows[rowsCount]["Value"].ToString() != "") && (diaInfo.Rows[rowsCount]["Value"].ToString() != "") && (pulInfo.Rows[rowsCount]["Value"].ToString() != "")) { Graph.SignDescription = "血压:<b><span style='font-size:14px;'>" + sysInfo.Rows[rowsCount]["Value"].ToString() + "</span></b>/" + diaInfo.Rows[rowsCount]["Value"].ToString() + "mmHg<br>脉搏:" + pulInfo.Rows[rowsCount]["Value"].ToString() + "次/分"; } else if ((sysInfo.Rows[rowsCount]["Value"].ToString() != "") || (diaInfo.Rows[rowsCount]["Value"].ToString() != "") && (pulInfo.Rows[rowsCount]["Value"].ToString() == "")) { Graph.SignDescription = "血压:<b><span style='font-size:14px;'>" + sysInfo.Rows[rowsCount]["Value"].ToString() + "</span></b>/" + diaInfo.Rows[rowsCount]["Value"].ToString() + "mmHg"; } else if ((sysInfo.Rows[rowsCount]["Value"].ToString() == "") && (diaInfo.Rows[rowsCount]["Value"].ToString() == "") && (pulInfo.Rows[rowsCount]["Value"].ToString() != "")) { Graph.SignDescription = "脉搏:" + pulInfo.Rows[rowsCount]["Value"].ToString() + "次/分"; } //Graph.SignDescription = "血压:<b><span style='font-size:14px;'>" + sysInfo.Rows[rowsCount]["Value"].ToString() + "</span></b>/" + diaInfo.Rows[rowsCount]["Value"].ToString() + "mmHg<br>脉搏:" + pulInfo.Rows[rowsCount]["Value"].ToString() + "次/分"; //"[[category]]<br>血压:<b><span style='font-size:14px;'>[[SBPvalue]] </span></b>/[[DBPvalue]]mmHg<br>脉搏:66次/分" } else { Graph.SignGrade = ""; Graph.SignColor = ""; Graph.SignDescription = ""; } #endregion } else if ((Code == "Bloodpressure|Bloodpressure_2") && (reference != null)) //舒张压 { #region 舒张压 Graph.SignValue = "#"; if (diaInfo.Rows[rowsCount]["Value"].ToString() != "") { Graph.SignValue = diaInfo.Rows[rowsCount]["Value"].ToString(); } //Graph.SignValue = diaInfo.Rows[rowsCount]["Value"].ToString(); if (Graph.SignValue != "#") { Graph.SignGrade = CmMstBloodPressure.GetSignBPGrade("Bloodpressure_2", Convert.ToInt32(Graph.SignValue), reference); Graph.SignColor = CmMstBloodPressure.GetBPColor(Graph.SignGrade, "bullet"); //Graph.SignDescription = "血压:" + sysInfo.Rows[rowsCount]["Value"].ToString() + "/<b><span style='font-size:14px;'>" + diaInfo.Rows[rowsCount]["Value"].ToString() + "</span></b>mmHg<br>脉搏:" + pulInfo.Rows[rowsCount]["Value"].ToString() + "次/分"; //判断是否都有值 if ((sysInfo.Rows[rowsCount]["Value"].ToString() != "") && (diaInfo.Rows[rowsCount]["Value"].ToString() != "") && (pulInfo.Rows[rowsCount]["Value"].ToString() != "")) { Graph.SignDescription = "血压:" + sysInfo.Rows[rowsCount]["Value"].ToString() + "/<b><span style='font-size:14px;'>" + diaInfo.Rows[rowsCount]["Value"].ToString() + "</span></b>mmHg<br>脉搏:" + pulInfo.Rows[rowsCount]["Value"].ToString() + "次/分"; } else if ((sysInfo.Rows[rowsCount]["Value"].ToString() != "") || (diaInfo.Rows[rowsCount]["Value"].ToString() != "") && (pulInfo.Rows[rowsCount]["Value"].ToString() == "")) { Graph.SignDescription = "血压:" + sysInfo.Rows[rowsCount]["Value"].ToString() + "/<b><span style='font-size:14px;'>" + diaInfo.Rows[rowsCount]["Value"].ToString() + "</span></b>mmHg"; } else if ((sysInfo.Rows[rowsCount]["Value"].ToString() == "") && (diaInfo.Rows[rowsCount]["Value"].ToString() == "") && (pulInfo.Rows[rowsCount]["Value"].ToString() != "")) { Graph.SignDescription = "脉搏:" + pulInfo.Rows[rowsCount]["Value"].ToString() + "次/分"; } } else { Graph.SignGrade = ""; Graph.SignColor = ""; Graph.SignDescription = ""; } #endregion } else if (Code == "Pulserate|Pulserate_1") //脉率 { #region 脉率 Graph.SignValue = "#"; if (pulInfo.Rows[rowsCount]["Value"].ToString() != "") { Graph.SignValue = pulInfo.Rows[rowsCount]["Value"].ToString(); } //Graph.SignValue = pulInfo.Rows[rowsCount]["Value"].ToString(); //Graph.SignDescription = "血压:" + sysInfo.Rows[rowsCount]["Value"].ToString() + "/" + diaInfo.Rows[rowsCount]["Value"].ToString() + "mmHg<br>脉率:<b><span style='font-size:14px;'>" + pulInfo.Rows[rowsCount]["Value"].ToString() + "</span></b>次/分"; //判断是否都有值 if ((sysInfo.Rows[rowsCount]["Value"].ToString() != "") && (diaInfo.Rows[rowsCount]["Value"].ToString() != "") && (pulInfo.Rows[rowsCount]["Value"].ToString() != "")) { Graph.SignDescription = "血压:" + sysInfo.Rows[rowsCount]["Value"].ToString() + "/" + diaInfo.Rows[rowsCount]["Value"].ToString() + "mmHg<br>脉率:<b><span style='font-size:14px;'>" + pulInfo.Rows[rowsCount]["Value"].ToString() + "</span></b>次/分"; } else if ((sysInfo.Rows[rowsCount]["Value"].ToString() != "") || (diaInfo.Rows[rowsCount]["Value"].ToString() != "") && (pulInfo.Rows[rowsCount]["Value"].ToString() == "")) { Graph.SignDescription = "血压:" + sysInfo.Rows[rowsCount]["Value"].ToString() + "/" + diaInfo.Rows[rowsCount]["Value"].ToString() + "mmHg"; } else if ((sysInfo.Rows[rowsCount]["Value"].ToString() == "") && (diaInfo.Rows[rowsCount]["Value"].ToString() == "") && (pulInfo.Rows[rowsCount]["Value"].ToString() != "")) { Graph.SignDescription = "脉率:<b><span style='font-size:14px;'>" + pulInfo.Rows[rowsCount]["Value"].ToString() + "</span></b>次/分"; } if (Graph.SignValue != "#") { //脉率的分级 写死 if (Convert.ToDouble(Graph.SignValue) < 60) //过慢 { Graph.SignGrade = "过慢"; Graph.SignColor = "#8080C0"; //微紫 } else if (Convert.ToDouble(Graph.SignValue) > 100) //过快 { Graph.SignGrade = "过快"; Graph.SignColor = "#FF60AF"; //微红 } else //成人 60~100之间包括端点 正常 { Graph.SignGrade = "正常"; Graph.SignColor = "#00DB00"; //绿色 } } else { Graph.SignGrade = ""; Graph.SignColor = ""; Graph.SignDescription = ""; } #endregion } #endregion //形状 if (rowsCount != sysInfo.Rows.Count - 1) { Graph.SignShape = "round"; Graph.SignShape = "round"; } else { if (serverTime == Graph.Date) //当天的血压点形状用菱形 { Graph.SignShape = "diamond"; Graph.SignShape = "diamond"; } else { Graph.SignShape = "round"; Graph.SignShape = "round"; } } graphList.Add(Graph); } } //有血压任务,没有脉率 return graphList; } catch (Exception ex) { HygeiaComUtility.WriteClientLog(HygeiaEnum.LogType.ErrorLog, "CmMstBloodPressure.GetSignInfoByBP", "数据库操作异常! error information : " + ex.Message + Environment.NewLine + ex.StackTrace); return null; } finally { } }