Exemplo n.º 1
0
        //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
            {

            }
        }
Exemplo n.º 2
0
        //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
            {

            }
        }