Beispiel #1
0
        public DataTable GetData(RefreshEventArgs e)
        {
            string sql = @"SELECT 
                              { 
	                            [Measures].[抗菌药物处方数/门诊处方(%)], 
	                            [Measures].[注射剂处方数/门诊处方(%)],
	                            [Measures].[药费收入占医疗总收入比重(%)], 
	                            [Measures].[抗菌药物出库金额占西药出库总金额比重(%)], 
	                            [Measures].[常用抗菌药物种类与可提供药敏实验种类比例(%)]
                              } ON ROWS,
                             {[DATE DIM].[DATE TIME].[ALL]} ON COLUMNS 
                              FROM [JJFB]";

            sql += CJia.HISOLAP.App.Tools.Help.FilterDataDept(e);
            DataTable data = CJia.DefaultOleDb.Query(sql);

            data = DataTableHelper.GetRealColName(data);
            data = DataTableHelper.UpdateColName(data, new Dictionary <int, string>()
            {
                { 0, "项目名称" }, { 1, "本期数量" }
            });
            Dictionary <string, string> oldToNew = new Dictionary <string, string>();

            if (data != null && data.Rows.Count > 0)
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    oldToNew.Add(data.Rows[i][0].ToString(), "(一)合理用药_       " + (i + 1).ToString() + "、" + data.Rows[i][0].ToString());
                    data.Rows[i][1] = data.Rows[i][1] != null && data.Rows[i][1].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][1].ToString()), 4) * 100 + "%" : data.Rows[i][1];
                }
            }
            data = DataTableHelper.UpdateDataRow(data, "项目名称", oldToNew);
            return(data);
        }
Beispiel #2
0
        /// <summary>
        /// 不许实现的获取数据方法
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public override System.Data.DataTable GetData(RefreshEventArgs e)
        {
            //data = CJia.HISOLAP.App.Tools.Help.DeptData;
            string sql = @"SELECT { 
		                         [Measures].[(一)住院患者入院前压疮情况(%)_    1、患者入院前已有压疮发生率], 
		                         [Measures].[(一)住院患者入院前压疮情况(%)_    2、患者入院前已有一级压疮发生率], 
		                         [Measures].[(一)住院患者入院前压疮情况(%)_    3、患者入院前已有二级压疮发生率],
		                         [Measures].[(一)住院患者入院前压疮情况(%)_    4、患者入院前已有三级压疮发生率], 
		                         [Measures].[(一)住院患者入院前压疮情况(%)_    5、患者入院前已有四级压疮发生率],
		                         [Measures].[(二)住院患者压疮来源情况(%)_    1、自家庭入住时有压疮的患者发生率],
		                         [Measures].[(二)住院患者压疮来源情况(%)_    2、自养老院入住时有压疮的患者发生率], 
		                         [Measures].[(二)住院患者压疮来源情况(%)_    3、自其他医院转入时有压疮患者发生率], 
		                         [Measures].[(二)住院患者压疮来源情况(%)_    4、自其他来源入住时有压疮患者发生率], 
		                         [Measures].[(三)住院患者住院期间压疮情况(%)_    1、住院期间发生压疮发生率], 
		                         [Measures].[(三)住院患者住院期间压疮情况(%)_    2、住院期间发生一级压疮发生率], 
		                         [Measures].[(三)住院患者住院期间压疮情况(%)_    3、住院期间发生二级压疮发生率], 
		                         [Measures].[(三)住院患者住院期间压疮情况(%)_    4、住院期间发生三级压疮发生率], 
		                         [Measures].[(三)住院患者住院期间压疮情况(%)_    5、住院期间发生四级压疮发生率],
		                         [Measures].[(四)住院患者压疮部位情况(%)_    0、住院期间压疮发生率],
		                         [Measures].[(四)住院患者压疮部位情况(%)_    1、住院患者骶骨推尾处压疮发生率], 
		                         [Measures].[(四)住院患者压疮部位情况(%)_    2、住院患者坐骨处压疮发生率], 
		                         [Measures].[(四)住院患者压疮部位情况(%)_    3、住院患者股骨粗隆处压疮发生率],  
		                         [Measures].[(四)住院患者压疮部位情况(%)_    4、住院患者根骨处压疮发生率], 
		                         [Measures].[(四)住院患者压疮部位情况(%)_    5、住院患者足踝处压疮发生率], 
		                         [Measures].[(四)住院患者压疮部位情况(%)_    6、住院患者肩胛骨处压疮发生率], 
		                         [Measures].[(四)住院患者压疮部位情况(%)_    7、住院患者枕骨处压疮发生率], 
		                         [Measures].[(四)住院患者压疮部位情况(%)_    8、住院患者其他部位压疮发生率], 
		                         [Measures].[(四)住院患者压疮部位情况(%)_    9、住院患者多处压疮发生率]
		                         } ON rows,
	                        { [GFXBRQK DIM].[GFXBRQK ID].[All],[GFXBRQK DIM].[GFXBRQK ID].[GFXBRQK ID].&[1000000002] }  ON COLUMNS
	                       FROM [JJFB]"    ;

            sql += CJia.HISOLAP.App.Tools.Help.FilterDataDept(e);
            DataTable data = CJia.DefaultOleDb.Query(sql);

            data = DataTableHelper.UpdateColName(data, new Dictionary <int, string>()
            {
                { 0, "项目名称" }, { 1, "本期数量(住院患者)" }, { 2, "本期数量(高风险患者)" }
            }, new Dictionary <int, string>()
            {
                { 0, "40%" }, { 1, "30%" }, { 2, "30%" }
            });
            if (data != null && data.Rows.Count > 0)
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    for (int j = 1; j < data.Columns.Count; j++)
                    {
                        if (data.Rows[i][j] != DBNull.Value)
                        {
                            data.Rows[i][j] = Math.Round(Convert.ToDouble(data.Rows[i][j]), 4) * 100 + "%";
                        }
                    }
                }
            }
            return(data);
        }
Beispiel #3
0
        public override System.Data.DataTable GetData(RefreshEventArgs e)
        {
            string sql = @"SELECT  
                             { 
		                        [Measures].[手术患者并发症发生例数],
		                        [Measures].[手术患者手术后肺塞栓发生例数], 
		                        [Measures].[手术患者手术后深静脉血栓发生例数],
		                        [Measures].[手术后败血症例数],
		                        [Measures].[手术后出血或血肿例数], 
		                        [Measures].[手术后伤口裂开例数], 
		                        [Measures].[手术患者手术后猝死例数],
		                        [Measures].[手术并发症导致的死亡例数], 
		                        [Measures].[手术后呼吸衰竭例数], 
		                        [Measures].[手术后生理与代谢紊乱例数], 
		                        [Measures].[手术患者麻醉并发症发生例数], 
		                        [Measures].[SURGERY COMPLICATION FACT 计数] } ON rows,
		                        {[DATE DIM].[DATE TIME].[ALL]} ON COLUMNS  
		                        FROM [JJFB]"        ;

            sql += CJia.HISOLAP.App.Tools.Help.FilterDataDept(e);
            DataTable data = CJia.DefaultOleDb.Query(sql);

            data.Columns.Add("fsl");
            data = DataTableHelper.UpdateColName(data, new Dictionary <int, string>()
            {
                { 0, "项目名称" }, { 1, "本期数量" }, { 2, "发生率" }
            });
            Dictionary <string, string> oldToNew = new Dictionary <string, string>();

            oldToNew.Add("手术患者并发症发生例数", "手术并发症类指标(Operation Complication Indicators)_      1、手术患者并发症发生情况");
            oldToNew.Add("手术患者手术后肺塞栓发生例数", "手术并发症类指标(Operation Complication Indicators)_      2、手术患者手术后肺栓塞发生情况");
            oldToNew.Add("手术患者手术后深静脉血栓发生例数", "手术并发症类指标(Operation Complication Indicators)_      3、手术患者手术后深静脉血栓发生情况");
            oldToNew.Add("手术后败血症例数", "手术并发症类指标(Operation Complication Indicators)_      4、手术患者手术后败血症发生情况");
            oldToNew.Add("手术后出血或血肿例数", "手术并发症类指标(Operation Complication Indicators)_      5、手术患者手术后出血或血肿发生情况");
            oldToNew.Add("手术后伤口裂开例数", "手术并发症类指标(Operation Complication Indicators)_      6、手术患者手术伤口裂开发生情况");
            oldToNew.Add("手术患者手术后猝死例数", "手术并发症类指标(Operation Complication Indicators)_      7、手术患者手术后猝死发生情况");
            oldToNew.Add("手术并发症导致的死亡例数", "手术并发症类指标(Operation Complication Indicators)_      8、手术死亡患者手术并发症发生情况");
            oldToNew.Add("手术后呼吸衰竭例数", "手术并发症类指标(Operation Complication Indicators)_      9、手术患者手术后呼吸衰竭发生情况");
            oldToNew.Add("手术后生理与代谢紊乱例数", "手术并发症类指标(Operation Complication Indicators)_      10、手术患者手术后生理/代谢紊乱发生情况");
            oldToNew.Add("手术患者麻醉并发症发生例数", "手术并发症类指标(Operation Complication Indicators)_      11、手术患者麻醉并发症发生情况");
            if (data != null && data.Rows.Count > 0)
            {
                data.Rows[7][2] = Convert.ToDouble(data.Rows[7][1]) / Convert.ToDouble(data.Rows[0][1]);
                for (int i = 0; i < data.Rows.Count - 1; i++)
                {
                    data.Rows[i][2] = data.Rows[i][1] != null && data.Rows[i][1].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][1].ToString()) / double.Parse(data.Rows[11][1].ToString()), 4) * 100 + "%" : "0";
                    //data.Rows[i][2] = Convert.ToDouble(data.Rows[i][1]) / Convert.ToDouble(data.Rows[11][1]);
                }
            }
            data = DataTableHelper.UpdateDataRow(data, "项目名称", oldToNew);
            data.Rows.RemoveAt(11);
            return(data);
        }
Beispiel #4
0
        private void filterView1_OnRefresh(object sender, RefreshEventArgs e)
        {
            OutoReport report = new OutoReport(ReportType.Vertical);

            report.txtZBT    = @"三级综合医院医疗质量评审指标";
            report.txtFBT    = "住院重点手术情况";
            report.txtRQ     = e.SelectDateStr;
            report.txtZZJJMC = "九江市妇幼保健院";
            report.txtZZJJDM = "3566753112";
            report.BindData(GetData(e));
            printControl1.PrintingSystem = report.PrintingSystem;
        }
Beispiel #5
0
 private void filterView1_OnRefresh(object sender, RefreshEventArgs e)
 {
     Report.OutoReport v = new Report.OutoReport(Report.ReportType.Vertical);
     v.txtZBT    = @"三级综合医院医疗质量评审指标";
     v.txtFBT    = @"三级综合医院医疗质量评审指标";
     v.txtRQ     = "2012年";
     v.txtZZJJMC = "九江市妇幼保健院";
     v.txtZZJJDM = "495571840";
     v.txtRQ     = e.SelectDateStr;
     v.BindData(GetData(e));
     printControl1.PrintingSystem = v.PrintingSystem;
 }
Beispiel #6
0
        private void filterView1_OnRefresh(object sender, RefreshEventArgs e)
        {
            OutoReport report = new OutoReport(ReportType.Horizontal);

            report.txtZBT    = @"三级综合医院医疗质量评审指标";
            report.txtFBT    = "医院手术麻醉情况";
            report.txtRQ     = e.SelectDateStr;
            report.txtZZJJMC = Tools.Help.GetHosName();
            report.txtZZJJDM = Tools.Help.GetHosCode();
            report.BindData(GetData(e));
            printControl1.PrintingSystem = report.PrintingSystem;
        }
Beispiel #7
0
        private void filterView1_OnRefresh(object sender, RefreshEventArgs e)
        {
            if (!isSetZBT)
            {
                throw new Exception("没用设置主标题");
            }
            if (!isSetFBT)
            {
                throw new Exception("没用设置副标题");
            }
            if (!isSetReportType)
            {
                throw new Exception("没用设置报表类型");
            }

            OutoReport report = new OutoReport(this.ReportType);

            report.FirstBT = 27;
            if (this.isDeptName)
            {
                if (e.SelectDepts.Count > 0)
                {
                    string deptName = "<";
                    foreach (string a in e.SelectDepts.Keys)
                    {
                        deptName += a + ", ";
                    }
                    string b = deptName.Substring(0, deptName.Length - 2) + "> ";
                    if (b.Length > 26)
                    {
                        report.txtDeptName = b.Substring(0, 26) + "...>";
                    }
                    else
                    {
                        report.txtDeptName = b;
                    }
                }
            }
            else
            {
                report.txtFBT = this.FBT;
            }
            report.txtZBT    = this.ZBT;
            report.txtFBT    = this.FBT;
            report.txtRQ     = e.SelectDateStr;
            report.txtZZJJMC = Tools.Help.GetHosName();
            report.txtZZJJDM = Tools.Help.GetHosCode();
            report.BindData(GetData(e));
            printControl1.PrintingSystem = report.PrintingSystem;
        }
Beispiel #8
0
        /// <summary>
        /// 不许实现的获取数据方法
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public override System.Data.DataTable GetData(RefreshEventArgs e)
        {
            string sql = @"SELECT {
                                                    [Measures].[手术例数], 
                                                    [Measures].[死亡例数],
                                                    [Measures].[住院重点手术死亡率%], 
                                                    [Measures].[术后非预期再手术例数], 
                                                    [Measures].[术后非预期再手术率%],
                                                    [Measures].[平均住院天数], 
                                                    [Measures].[平均住院费用]
                                                    } ON COLUMNS, 
                                                    { (DESCENDANTS([KEY OPERATION DIM].[PARENT CODE].[Level 02].ALLMEMBERS) ) }  ON ROWS 
                                                    FROM [JJFB] 
                                                    ";

            //sql = sql + @" WHERE ( " + CJia.HISOLAP.App.Tools.Help.DeptFilter(e.IsUseDept, e.IsSelectAllDept, e.SelectDepts) + ": " + CJia.HISOLAP.App.Tools.Help.DateFilter(e.SelectStartDateTime, e.SelectEndDateTime) + ")";
            sql += e.filterDataDeptStr;
            DataTable data = CJia.DefaultOleDb.Query(sql);

            data = DataTableHelper.MergeLevel(data, new List <int>()
            {
                0, 1
            });
            data = DataTableHelper.GetRealColName(data);
            data = DataTableHelper.UpdateColName(data, new Dictionary <int, string>()
            {
                { 0, "项目名称" }, { 1, "手术例数" }, { 2, "死亡例数" }, { 3, "住院重点手术死亡率" }, { 4, "术后非预期再手术例数" }, { 5, "术后非预期再手术率" }, { 6, "平均住院天数" }, { 7, "平均住院费用" }
            }, new Dictionary <int, string>()
            {
                { 0, "30%" }, { 1, "10%" }, { 2, "10%" }, { 3, "10%" }, { 4, "10%" }, { 5, "10%" }, { 6, "10%" }, { 7, "10%" }
            });
            Dictionary <string, string> oldToNew = new Dictionary <string, string>();

            if (data != null && data.Rows.Count > 0)
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    oldToNew.Add(data.Rows[i][0].ToString(), "住院重点手术指标_ " + data.Rows[i][0].ToString());

                    data.Rows[i][5] = data.Rows[i][5] != null && data.Rows[i][5].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][5].ToString()), 4) * 100 + "%" : data.Rows[i][5];
                    data.Rows[i][3] = data.Rows[i][3] != null && data.Rows[i][3].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][3].ToString()), 4) * 100 + "%" : data.Rows[i][3];
                    data.Rows[i][6] = data.Rows[i][6] != null && data.Rows[i][6].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][6].ToString()), 2) : data.Rows[i][6];
                    data.Rows[i][7] = data.Rows[i][7] != null && data.Rows[i][7].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][7].ToString()), 2) : data.Rows[i][7];
                }
            }
            data = DataTableHelper.UpdateDataRow(data, "项目名称$30%", oldToNew);
            return(data);
        }
Beispiel #9
0
        /// <summary>
        /// 不许实现的获取数据方法
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public override System.Data.DataTable GetData(RefreshEventArgs e)
        {
            string sql = @" SELECT NON EMPTY {[Measures].[(一)手术麻醉方式情况_1、麻醉总例数],
[Measures].[(一)手术麻醉方式情况_2、全身麻醉总例数],
[Measures].[(一)手术麻醉方式情况_     其中:体外循环例数],
[Measures].[(一)手术麻醉方式情况_3、脊髓麻醉例数],
 [Measures].[(一)手术麻醉方式情况_4、其他麻醉例数], 
[Measures].[(二)实施镇痛治疗情况_1、实施镇痛例数],
[Measures].[(二)实施镇痛治疗情况_2、门诊患者例数],
 [Measures].[(二)实施镇痛治疗情况_3、住院患者例数],
 [Measures].[(二)实施镇痛治疗情况_     其中:手术后镇痛],
 [Measures].[(三)实施心肺复苏情况_1、实施心肺复苏治疗例数],
 [Measures].[(三)实施心肺复苏情况_2、实施心肺复苏成功例数],
 [Measures].[(四)麻醉复苏管理情况_1、麻醉复苏管理例数],
 [Measures].[(四)麻醉复苏管理情况_2、进入麻醉复苏室例数],
[Measures].[(四)麻醉复苏管理情况_3、离室时评分大于等于4分例数],
 [Measures].[(五)麻醉非预期的情况_1、麻醉非预期的相关事件例数], 
 [Measures].[(五)麻醉非预期的情况_2、麻醉中发生未预期的意识障碍例数],
[Measures].[(五)麻醉非预期的情况_3、麻醉中出现氧饱和度重度降低例数],
[Measures].[(五)麻醉非预期的情况_4、全身麻醉结束时使用催醒药物例数],
 [Measures].[(五)麻醉非预期的情况_5、麻醉中因误咽误吸引发呼吸道梗阻例数], 
 [Measures].[(五)麻醉非预期的情况_6、麻醉意外死亡例数], 
 [Measures].[(五)麻醉非预期的情况_7、其他非预期的相关事件例数],
 [Measures].[(六)麻醉麻醉分级管理情况_1、麻醉分级管理例数], 
[Measures].[(六)麻醉麻醉分级管理情况_2、麻醉分级管理Ⅰ级例数],
 [Measures].[(六)麻醉麻醉分级管理情况_     其中:麻醉Ⅰ级术后死亡例数],
 [Measures].[(六)麻醉麻醉分级管理情况_3、麻醉分级管理Ⅱ级例数],
[Measures].[(六)麻醉麻醉分级管理情况_     其中:麻醉Ⅱ级术后死亡例数],
 [Measures].[(六)麻醉麻醉分级管理情况_4、麻醉分级管理Ⅲ级例数],
[Measures].[(六)麻醉麻醉分级管理情况_     其中:麻醉Ⅲ级术后死亡例数],
 [Measures].[(六)麻醉麻醉分级管理情况_5、麻醉分级管理Ⅳ级例数], 
[Measures].[(六)麻醉麻醉分级管理情况_     其中:麻醉Ⅳ级术后死亡例数],
[Measures].[(六)麻醉麻醉分级管理情况_6、麻醉分级管理Ⅴ级例数], 
 [Measures].[(六)麻醉麻醉分级管理情况_     其中:麻醉Ⅴ级术后死亡例数]}
ON ROWS, NON EMPTY { ([DATE DIM].[DATE YEAR NAME].[DATE YEAR NAME].ALLMEMBERS ) }  ON COLUMNS FROM [JJFB] ";

            sql += e.filterDataDeptStr;
            DataTable data = CJia.DefaultOleDb.Query(sql);

            data = DataTableHelper.GetRealColName(data);
            data = DataTableHelper.UpdateColName(data, new Dictionary <int, string>()
            {
                { 0, "项目名称" }, { 1, "本期数量" }
            });
            return(data);
        }
Beispiel #10
0
        // 刷新按钮方法实现
        private void btnRefresh_Click(object sender, EventArgs e)
        {
            RefreshEventArgs refreshEventArgs = new RefreshEventArgs()
            {
                SelectStartDateTime = this.selectStartDateTime,
                SelectEndDateTime   = this.selectEndDateTime,
                SelectDateStr       = this.selectDateStr,
                SelectDepts         = this.selectDepts,
                IsUseDept           = this.IsUseDept,
                IsSelectAllDept     = this.IsSelectAllDept
            };

            refreshEventArgs.filterDataDeptStr = CJia.HISOLAP.App.Tools.Help.FilterDataDept(refreshEventArgs);
            if (this.OnRefresh != null)
            {
                this.OnRefresh(this, refreshEventArgs);
            }
        }
Beispiel #11
0
        public DataTable GetData(RefreshEventArgs e)
        {
            string sql = @" SELECT NON EMPTY { [Measures].[一、二代头孢菌素使用比率],
[Measures].[万古霉素喹若酮等比率],
[Measures].[术前一小时内使用比率],
[Measures].[术前二小时内使用比率],
[Measures].[血量大于1500ml比率],
[Measures].[手术超三小时使用比率],
 [Measures].[术后24小时停止使用比率],
[Measures].[术后48小时停止使用比率],
 [Measures].[术后72小时停止使用比率],
 [Measures].[术后72小时继续使用比率]
  } ON COLUMNS, 
 { ([PERIOPERATIVE DIM].[SHOW NAME].[SHOW NAME].ALLMEMBERS ) }  ON ROWS
 FROM  [JJFB]";

            sql += e.filterDataDeptStr;
            DataTable data = CJia.DefaultOleDb.Query(sql);

            data = DataTableHelper.GetRealColName(data);
            data = DataTableHelper.UpdateColName(data, new Dictionary <int, string>()
            {
                { 0, "手术名称" }
            });
            if (data != null && data.Rows.Count > 0)
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    //oldToNew.Add(data.Rows[i][0].ToString(), i + 1 + ")" + data.Rows[i][0].ToString());
                    data.Rows[i][1]  = data.Rows[i][1].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][1].ToString()), 4) * 100 : data.Rows[i][1];
                    data.Rows[i][2]  = data.Rows[i][2].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][2].ToString()), 4) * 100 : data.Rows[i][2];
                    data.Rows[i][3]  = data.Rows[i][3].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][3].ToString()), 4) * 100 : data.Rows[i][3];
                    data.Rows[i][4]  = data.Rows[i][4].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][4].ToString()), 4) * 100 : data.Rows[i][4];
                    data.Rows[i][5]  = data.Rows[i][5].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][5].ToString()), 4) * 100 : data.Rows[i][5];
                    data.Rows[i][6]  = data.Rows[i][6].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][6].ToString()), 4) * 100 : data.Rows[i][6];
                    data.Rows[i][7]  = data.Rows[i][7].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][7].ToString()), 4) * 100 : data.Rows[i][7];
                    data.Rows[i][8]  = data.Rows[i][8].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][8].ToString()), 4) * 100 : data.Rows[i][8];
                    data.Rows[i][9]  = data.Rows[i][9].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][9].ToString()), 4) * 100 : data.Rows[i][9];
                    data.Rows[i][10] = data.Rows[i][10].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][10].ToString()), 4) * 100 : data.Rows[i][10];
                }
            }
            return(data);
        }
Beispiel #12
0
        /// <summary>
        /// 不许实现的获取数据方法
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public override System.Data.DataTable GetData(RefreshEventArgs e)
        {
            string sql = @"SELECT NON EMPTY { 
                             [Measures].[非预期的24/48小时重返重症医学科率(%)],
                             [Measures].[呼吸机相关肺炎预防率(%)], 
                             [Measures].[呼吸机相关肺炎发病率(%)],
                             [Measures].[中心静脉置留相关血流感染发生率(%)],
                             [Measures].[留置导尿管相关泌尿系感染发病率(%)],
                             [Measures].[重症患者死亡率(%)],
                             [Measures].[重症患者压疮发生率(%)], 
                             [Measures].[人工气道脱出总数],
                             [Measures].[气道脱出再次插入总数] 
                              } ON rows,
                            {[DATE DIM].[DATE TIME].[All]} ON COLUMNS
                             FROM [JJFB]";

            sql += CJia.HISOLAP.App.Tools.Help.FilterDataDept(e);
            DataTable data = CJia.DefaultOleDb.Query(sql);

            data = DataTableHelper.UpdateColName(data, new Dictionary <int, string> {
                { 0, "项目名称" }, { 1, "本期数量" }
            });
            Dictionary <string, string> oldToNew = new Dictionary <string, string>();

            //(一)资源配置
            oldToNew.Add("非预期的24/48小时重返重症医学科率(%)", "(一)重症医学(ICU)质量_      1、非预期的24/48小时重返重症医学科率(%)");
            oldToNew.Add("呼吸机相关肺炎预防率(%)", "(一)重症医学(ICU)质量_      2、呼吸机相关肺炎预防率(%)");
            oldToNew.Add("呼吸机相关肺炎发病率(%)", "(一)重症医学(ICU)质量_      3、呼吸机相关肺炎发病率(%)");
            oldToNew.Add("中心静脉置留相关血流感染发生率(%)", "(一)重症医学(ICU)质量_      4、中心静脉置留相关血流感染发生率(%)");
            oldToNew.Add("留置导尿管相关泌尿系感染发病率(%)", "(一)重症医学(ICU)质量_      5、留置导尿管相关泌尿系感染发病率(%)");
            oldToNew.Add("重症患者死亡率(%)", "(一)重症医学(ICU)质量_      6、重症患者死亡率(%)");
            oldToNew.Add("重症患者压疮发生率(%)", "(一)重症医学(ICU)质量_      7、重症患者压疮发生率(%)");
            oldToNew.Add("人工气道脱出总数", "(一)重症医学(ICU)质量_      8、人工气道脱出总数");
            oldToNew.Add("气道脱出再次插入总数", "(一)重症医学(ICU)质量_      9、气道脱出再次插入总数");
            data = DataTableHelper.UpdateDataRow(data, "项目名称", oldToNew);
            for (int i = 0; i < data.Rows.Count - 2; i++)
            {
                data.Rows[i][1] = Math.Round(Convert.ToDouble(data.Rows[i][1]), 4) * 100 + "%";
            }
            return(data);
        }
Beispiel #13
0
        /// <summary>
        /// 不许实现的获取数据方法
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public override System.Data.DataTable GetData(RefreshEventArgs e)
        {
            string sql1 = @" SELECT { [Measures].[INFACT FACT 计数] } ON COLUMNS, 
 { ([SURGERY LEVEL DIM].[SURGERY LEVEL NAME].[SURGERY LEVEL NAME].ALLMEMBERS * [SURGERY LEVEL TYPE DIM].[SURGERY LEVEL TYPE NAME].[SURGERY LEVEL TYPE NAME].ALLMEMBERS ) }
   ON ROWS
  FROM [JJFB]";

            sql1 += e.filterDataDeptStr;
            DataTable data1 = CJia.DefaultOleDb.Query(sql1);

            data1 = DataTableHelper.MergeCol(data1, new List <int>()
            {
                0, 1
            });

            //DataTable newTable = new DataTable();
            //newTable.Columns.Add("name",typeof(string));
            //newTable.Columns.Add("value", typeof(string));

            //for (int i = 0; i < data1.Rows.Count; i++)
            //{
            //    DataRow dr = newTable.NewRow();
            //    dr["name"]= data1.Rows[i][0].ToString() + data1.Rows[i][1].ToString();
            //    dr["value"] = data1.Rows[i][2];
            //    newTable.Rows.Add(dr);
            //}

            string sql2 = @"SELECT { [Measures].[手术后感染例数] } ON COLUMNS, { ([SURGERY LEVEL DIM].[SURGERY LEVEL NAME].[SURGERY LEVEL NAME].ALLMEMBERS ) } 
               ON ROWS 
               FROM [JJFB]";

            sql2 += e.filterDataDeptStr;
            DataTable data2 = CJia.DefaultOleDb.Query(sql2);

            foreach (DataRow dr in data2.Rows)
            {
                dr[0] = dr[0] + "手术感染例数";
            }
            //            string sql3 = @" SELECT NON EMPTY { [Measures].[手术后感染例数], [Measures].[手术感染发病率],[Measures].[0  级手术总例数],[Measures].[I  级手术总例数], [Measures].[II 级手术总例数],
            //	   [Measures].[III级手术总例数]
            //	    } ON ROWS,
            //	    {[DATE DIM].[DATE YEAR].[DATE YEAR].&[ALL] } on columns
            //	   FROM [JJFB]";
            string sql3 = @" SELECT { [Measures].[手术后感染例数], [Measures].[手术感染发病率],[Measures].[0  级手术总例数],[Measures].[I  级手术总例数], [Measures].[II 级手术总例数], 
	   [Measures].[III级手术总例数]
	    } ON ROWS,
	    {[DATE DIM].[DATE TIME].[ALL] } on columns
	   FROM [JJFB]"    ;

            sql3 += e.filterDataDeptStr;
            DataTable data3    = CJia.DefaultOleDb.Query(sql3);
            DataTable newTable = DataTableHelper.MergeDataTabelColSame(data1, data2);

            string sql4 = @" SELECT 
         { 
	        [Measures].[呼吸机相关肺炎发病率(%)],
 [Measures].[留置导尿管相关泌尿系感染发病率(%)], 
[Measures].[血管导管相关血流感染率(%)]
         } ON rows,
         {[DATE DIM].[DATE TIME].[ALL]} ON COLUMNS
         from [JJFB]";

            sql4 += e.filterDataDeptStr;
            DataTable data4 = CJia.DefaultOleDb.Query(sql4);

            // 修改显示方式:如果显示为0%,则让其显示为空
            for (int i = 0; i < data4.Rows.Count; i++)
            {
                if (data4.Rows[i][1].ToString() == "0")
                {
                    data4.Rows[i][1] = "";
                }
            }

            newTable = DataTableHelper.MergeDataTabelColSame(newTable, data4);
            newTable = DataTableHelper.MergeDataTabelColSame(newTable, data3);

            List <string> orderRow = new List <string>();

            orderRow.Add("呼吸机相关肺炎发病率(%)");
            orderRow.Add("留置导尿管相关泌尿系感染发病率(%)");
            orderRow.Add("血管导管相关血流感染率(%)");
            orderRow.Add("手术后感染例数");
            orderRow.Add("手术感染发病率");
            orderRow.Add("0  级手术总例数");
            orderRow.Add("0  级手术感染例数");
            orderRow.Add("0  级浅层组织手术");
            orderRow.Add("0  级深部组织手术");
            orderRow.Add("0  级器官部位手术");
            orderRow.Add("0  级腔隙部位手术");
            orderRow.Add("I  级手术总例数");
            orderRow.Add("I  级手术感染例数");
            orderRow.Add("I  级浅层组织手术");
            orderRow.Add("I  级深部组织手术");
            orderRow.Add("I  级器官部位手术");
            orderRow.Add("I  级腔隙部位手术");
            orderRow.Add("II 级手术总例数");
            orderRow.Add("II 级手术感染例数");
            orderRow.Add("II 级浅层组织手术");
            orderRow.Add("II 级深部组织手术");
            orderRow.Add("II 级器官部位手术");
            orderRow.Add("II 级腔隙部位手术");
            orderRow.Add("III级手术总例数");
            orderRow.Add("III级手术感染例数");
            orderRow.Add("III级浅层组织手术");
            orderRow.Add("III级深部组织手术");
            orderRow.Add("III级器官部位手术");
            orderRow.Add("III级腔隙部位手术");
            newTable = DataTableHelper.RowOrder(newTable, newTable.Columns[0].ColumnName, orderRow);

            Dictionary <string, string> oldToNew = new Dictionary <string, string>();

            oldToNew.Add("呼吸机相关肺炎发病率(%)", "(一)重症监护感染_  1、呼吸机相关肺炎发病率(%)");
            oldToNew.Add("留置导尿管相关泌尿系感染发病率(%)", "(一)重症监护感染_  2、留置导尿管相关泌尿系感染发病率(%)");
            oldToNew.Add("血管导管相关血流感染率(%)", "(一)重症监护感染_  3、血管导管相关血流感染率(%)");
            oldToNew.Add("手术后感染例数", "(二)手术部位感染_  1、手术后感染例数");
            oldToNew.Add("手术感染发病率", "(二)手术部位感染_  2、手术感染发病率");
            oldToNew.Add("0  级手术总例数", "(二)手术部位感染_  3、0  级手术总例数");
            oldToNew.Add("0  级手术感染例数", "(二)手术部位感染_   (1)0  级手术感染例数");
            oldToNew.Add("0  级浅层组织手术", "(二)手术部位感染_   (2)0  级浅层组织手术");
            oldToNew.Add("0  级深部组织手术", "(二)手术部位感染_   (3)0  级深部组织手术");
            oldToNew.Add("0  级器官部位手术", "(二)手术部位感染_   (4)0  级器官部位手术");
            oldToNew.Add("0  级腔隙部位手术", "(二)手术部位感染_   (5)0  级腔隙部位手术");
            oldToNew.Add("I  级手术总例数", "(二)手术部位感染_  4、I  级手术总例数");
            oldToNew.Add("I  级手术感染例数", "(二)手术部位感染_   (1)I  级手术感染例数");
            oldToNew.Add("I  级浅层组织手术", "(二)手术部位感染_   (2)I  级浅层组织手术");
            oldToNew.Add("I  级深部组织手术", "(二)手术部位感染_   (3)I  级深部组织手术");
            oldToNew.Add("I  级器官部位手术", "(二)手术部位感染_   (4)I  级器官部位手术");
            oldToNew.Add("I  级腔隙部位手术", "(二)手术部位感染_   (5)I  级腔隙部位手术");
            oldToNew.Add("II 级手术总例数", "(二)手术部位感染_  5、II 级手术总例数");
            oldToNew.Add("II 级手术感染例数", "(二)手术部位感染_   (1)II 级手术感染例数");
            oldToNew.Add("II 级浅层组织手术", "(二)手术部位感染_   (2)II 级浅层组织手术");
            oldToNew.Add("II 级深部组织手术", "(二)手术部位感染_   (3)II 级深部组织手术");
            oldToNew.Add("II 级器官部位手术", "(二)手术部位感染_   (4)II 级器官部位手术");
            oldToNew.Add("II 级腔隙部位手术", "(二)手术部位感染_   (5)II 级腔隙部位手术");
            oldToNew.Add("III级手术总例数", "(二)手术部位感染_  6、III级手术总例数");
            oldToNew.Add("III级手术感染例数", "(二)手术部位感染_   (1)III级手术感染例数");
            oldToNew.Add("III级浅层组织手术", "(二)手术部位感染_   (2)III级浅层组织手术");
            oldToNew.Add("III级深部组织手术", "(二)手术部位感染_   (3)III级深部组织手术");
            oldToNew.Add("III级器官部位手术", "(二)手术部位感染_   (4)III级器官部位手术");
            oldToNew.Add("III级腔隙部位手术", "(二)手术部位感染_   (5)III级腔隙部位手术");

            newTable = DataTableHelper.UpdateDataRow(newTable, newTable.Columns[0].ColumnName, oldToNew);
            newTable.Columns[0].ColumnName = "项目名称";
            newTable.Columns[1].ColumnName = "本期数量";
            newTable.Rows[0][1]            = newTable.Rows[0][1] != null && newTable.Rows[0][1].ToString() != "" ? Math.Round(double.Parse(newTable.Rows[0][1].ToString()), 4) * 100 + "%" : newTable.Rows[0][1];
            newTable.Rows[1][1]            = newTable.Rows[1][1] != null && newTable.Rows[1][1].ToString() != "" ? Math.Round(double.Parse(newTable.Rows[1][1].ToString()), 4) * 100 + "%" : newTable.Rows[1][1];
            newTable.Rows[2][1]            = newTable.Rows[2][1] != null && newTable.Rows[2][1].ToString() != "" ? Math.Round(double.Parse(newTable.Rows[2][1].ToString()), 4) * 100 + "%" : newTable.Rows[2][1];
            newTable.Rows[4][1]            = newTable.Rows[4][1] != null && newTable.Rows[4][1].ToString() != "" ? Math.Round(double.Parse(newTable.Rows[4][1].ToString()), 4) * 100 + "%" : newTable.Rows[4][1];
            return(newTable);
        }
Beispiel #14
0
 /// <summary>
 /// 不许实现的虚方法
 /// </summary>
 /// <param name="e"></param>
 /// <returns></returns>
 public abstract DataTable GetData(RefreshEventArgs e);
Beispiel #15
0
 /// <summary>
 /// 不许实现的获取数据方法
 /// </summary>
 /// <param name="e"></param>
 /// <returns></returns>
 public override System.Data.DataTable GetData(RefreshEventArgs e)
 {
     return(null);
 }
Beispiel #16
0
        public DataTable GetData(RefreshEventArgs e)
        {
            string sql1 = @"SELECT { [OUTHOS MODE DIM].[OUTHOS TYPE NAME].[OUTHOS TYPE NAME].&[出院者离院方式情况_医嘱离院],
[OUTHOS MODE DIM].[OUTHOS TYPE NAME].[OUTHOS TYPE NAME].&[出院者离院方式情况_医嘱转院],
[OUTHOS MODE DIM].[OUTHOS TYPE NAME].[OUTHOS TYPE NAME].&[出院者离院方式情况_医嘱转区],
[OUTHOS MODE DIM].[OUTHOS TYPE NAME].[OUTHOS TYPE NAME].&[出院者离院方式情况_自动离院],
[OUTHOS MODE DIM].[OUTHOS TYPE NAME].[OUTHOS TYPE NAME].&[出院者离院方式情况_死亡离院],
[OUTHOS MODE DIM].[OUTHOS TYPE NAME].[OUTHOS TYPE NAME].&[出院者离院方式情况_其他离院] } ON COLUMNS,
 { (DESCENDANTS([DISEASE TYPE DIM].[PARENT].[Level 02].ALLMEMBERS) 
   ) } ON ROWS
    FROM [JJFB] 
	where ({[Measures].[出院患者例数]},"    ;

            sql1 += CJia.HISOLAP.App.Tools.Help.DateFilter(e.SelectStartDateTime, e.SelectEndDateTime);
            string strDept = CJia.HISOLAP.App.Tools.Help.DeptFilter(e.IsUseDept, e.IsSelectAllDept, e.SelectDepts);

            if (strDept != "")
            {
                sql1 += ",";
                sql1 += CJia.HISOLAP.App.Tools.Help.DeptFilter(e.IsUseDept, e.IsSelectAllDept, e.SelectDepts);
            }
            else
            {
            }
            sql1 += ")";
            DataTable data1 = CJia.DefaultOleDb.Query(sql1);
            string    sql2  = @"SELECT {[Measures].[出院患者例数],[Measures].[患者住院天数],[Measures].[患者住院费用],  [Measures].[平均天数], [Measures].[平均费用],	 
	 [Measures].[出院死亡率%]
	   } ON COLUMNS, 
	 { (DESCENDANTS([DISEASE TYPE DIM].[PARENT].[Level 02].ALLMEMBERS) ) } ON ROWS 
	 FROM [JJFB]"    ;

            sql2 += e.filterDataDeptStr;
            DataTable data2 = CJia.DefaultOleDb.Query(sql2);


            data1 = DataTableHelper.MergeLevel(data1, new List <int>()
            {
                0, 1
            });
            data2 = DataTableHelper.MergeLevel(data2, new List <int>()
            {
                0, 1
            });

            data1 = DataTableHelper.GetRealColName(data1);
            data2 = DataTableHelper.GetRealColName(data2);

            data1 = DataTableHelper.UpdateColName(data1, new Dictionary <int, string>()
            {
                { 0, "单病种名称" }
            });
            data2 = DataTableHelper.UpdateColName(data2, new Dictionary <int, string>()
            {
                { 0, "单病种名称" }
            });


            DataTable allData = DataTableHelper.MergeDataTable(data2, "单病种名称", data1, "单病种名称");

            //allData = DataTableHelper.ColOrder(allData, new List<string>() { "出院者离院情况_医嘱离院", "出院者离院情况_" });

            allData.Columns["出院死亡率%"].SetOrdinal(allData.Columns.Count - 1);
            return(allData);
        }
Beispiel #17
0
        /// <summary>
        /// 不许实现的获取数据方法
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public override System.Data.DataTable GetData(RefreshEventArgs e)
        {
            string    sql  = @" SELECT { 
 [Measures].[实际开放床位], 
 [Measures].[重症医学实际开放床位], 
 [Measures].[急诊留观实际开放床位], 
 [Measures].[全院员工总数], 
 [Measures].[卫生技术人数], 
 [Measures].[医师人数], 
 [Measures].[护理人数], 
 [Measures].[医技人数], 
 [Measures].[助产人数],
 [Measures].[医院医用建筑面结], 
 [Measures].[门诊人次], 
 [Measures].[健康体检人次], 
 [Measures].[急诊人次], 
 [Measures].[留观人次], 
 [Measures].[住院患者入院例数], 
 [Measures].[住院患者出院例数], 
 [Measures].[出院占用总床日数], 
 [Measures].[住院手术例数], 
 [Measures].[门诊手术例数], 
 [Measures].[分娩例数], 
 [Measures].[新生儿数], 
 [Measures].[手术冰冻与石蜡诊断符合例数], 
 [Measures].[恶性肿瘤手术前诊断与术后病理诊断符合例数], 
 [Measures].[住院患者死亡例数], 
 [Measures].[患者自动出院例数], 
 [Measures].[住院患者手术例数], 
 [Measures].[患者手术死亡例数], 
 [Measures].[住院危重抢救例数], 
 [Measures].[住院危重死亡例数], 
 [Measures].[急诊科危重抢救例数], 
 [Measures].[急诊科危重死亡例数], 
 [Measures].[新生儿患者死亡例数]
 } ON ROWS, 
 NON EMPTY { ([DATE DIM].[年度].[DATE YEAR].&[2013] ) } on COLUMNS 
 FROM [JJFB]
";
            DataTable data = CJia.DefaultOleDb.Query(sql);

            data = DataTableHelper.UpdateColName(data, new Dictionary <int, string>()
            {
                { 0, "项目名称" }, { 1, "本期数量" }
            });
            Dictionary <string, string> oldToNew = new Dictionary <string, string>();

            //(一)资源配置
            oldToNew.Add("实际开放床位", "(一)资源配置_      1、实际开放床位");
            oldToNew.Add("重症医学实际开放床位", "(一)资源配置_      2、重症医学实际开放床位");
            oldToNew.Add("急诊留观实际开放床位", "(一)资源配置_      3、急诊留观实际开放床位");
            oldToNew.Add("全院员工总数", "(一)资源配置_      4、全院员工总数");
            oldToNew.Add("卫生技术人数", "(一)资源配置_      5、卫生技术人数");
            oldToNew.Add("医师人数", "(一)资源配置_       (1)医师人数");
            oldToNew.Add("护理人数", "(一)资源配置_       (2)护理人数");
            oldToNew.Add("医技人数", "(一)资源配置_       (3)医技人数");
            oldToNew.Add("助产人数", "(一)资源配置_       (4)助产人数");
            oldToNew.Add("医院医用建筑面结", "(一)资源配置_      6、医院医用建筑面结");
            //(二)工作负荷
            oldToNew.Add("门诊人次", "(二)工作负荷_      1、门诊人次");
            oldToNew.Add("健康体检人次", "(二)工作负荷_      2、健康体检人次");
            oldToNew.Add("急诊人次", "(二)工作负荷_      3、急诊人次");
            oldToNew.Add("留观人次", "(二)工作负荷_      4、留观人次");
            oldToNew.Add("住院患者入院例数", "(二)工作负荷_      5、住院患者入院例数");
            oldToNew.Add("住院患者出院例数", "(二)工作负荷_      6、住院患者出院例数");
            oldToNew.Add("出院占用总床日数", "(二)工作负荷_      7、出院占用总床日数");
            oldToNew.Add("住院手术例数", "(二)工作负荷_      8、住院手术例数");
            oldToNew.Add("门诊手术例数", "(二)工作负荷_      9、门诊手术例数");
            oldToNew.Add("分娩例数", "(二)工作负荷_      10、分娩例数");
            oldToNew.Add("新生儿数", "(二)工作负荷_      11、新生儿数");
            //(三)治疗质量
            oldToNew.Add("手术冰冻与石蜡诊断符合例数", "(三)治疗质量_      1、手术冰冻与石蜡诊断符合例数");
            oldToNew.Add("恶性肿瘤手术前诊断与术后病理诊断符合例数", "(三)治疗质量_      2、恶性肿瘤手术前诊断与术后病理诊断符合例数");
            oldToNew.Add("住院患者死亡例数", "(三)治疗质量_      3、住院患者死亡例数");
            oldToNew.Add("患者自动出院例数", "(三)治疗质量_      4、患者自动出院例数");
            oldToNew.Add("住院患者手术例数", "(三)治疗质量_      5、住院患者手术例数");
            oldToNew.Add("患者手术死亡例数", "(三)治疗质量_      6、患者手术死亡例数");
            oldToNew.Add("住院危重抢救例数", "(三)治疗质量_      7、住院危重抢救例数");
            oldToNew.Add("住院危重死亡例数", "(三)治疗质量_      8、住院危重死亡例数");
            oldToNew.Add("急诊科危重抢救例数", "(三)治疗质量_      9、急诊科危重抢救例数");
            oldToNew.Add("急诊科危重死亡例数", "(三)治疗质量_      10、急诊科危重死亡例数");
            oldToNew.Add("新生儿患者死亡例数", "(三)治疗质量_      11、新生儿患者死亡例数");

            data = DataTableHelper.UpdateDataRow(data, "项目名称", oldToNew);
            //if (data != null && data.Rows.Count > 0)
            //{
            //    foreach (DataRow dr in data.Rows)
            //    {
            //        if (dr[1].ToString().Length > 0)
            //        {
            //            dr[0] = dr[1];
            //        }
            //        dr[6] = Math.Round(double.Parse(dr[6].ToString()), 4)*100;
            //        dr[3] = Math.Round(double.Parse(dr[3].ToString()), 4) * 100;
            //        dr[4] = Math.Round(double.Parse(dr[4].ToString()), 2);
            //        dr[5] = Math.Round(double.Parse(dr[5].ToString()), 2);
            //    }
            //}
            return(data);
        }
Beispiel #18
0
        public DataTable GetData(RefreshEventArgs e)
        {
            string sql  = @"  SELECT  { [SQGLBPFF DIM].[SQGLBPFF ID].[SQGLBPFF ID].ALLMEMBERS } ON COLUMNS, 
  { ([PERIOPERATIVE DIM].[SHOW NAME].[SHOW NAME].ALLMEMBERS ) } 
  ON ROWS
  FROM [JJFB] 
  WHERE ( {[Measures].[术前各类-备皮率%]},";
            string sql2 = @"  SELECT { [SQYJGLBPFF DIM].[SQYJGLBPFF ID].[SQYJGLBPFF ID].ALLMEMBERS } ON COLUMNS, 
    { ([PERIOPERATIVE DIM].[SHOW NAME].[SHOW NAME].ALLMEMBERS ) }
   ON ROWS 
   FROM [JJFB] 
   where({[Measures].[术前Ⅰ/甲-备皮率%]},";
            string sql3 = @" SELECT NON EMPTY { [Measures].[Ⅰ/甲愈合率%] } ON COLUMNS,
   { ([PERIOPERATIVE DIM].[SHOW NAME].[SHOW NAME].ALLMEMBERS ) }  ON ROWS
   FROM [JJFB] ";
            Dictionary <int, string> dict1 = new Dictionary <int, string>();

            dict1.Add(0, "手术名称");
            dict1.Add(1, "术前各类备皮方法情况_一类备皮率%");
            dict1.Add(2, "术前各类备皮方法情况_二类备皮率%");
            dict1.Add(3, "术前各类备皮方法情况_三类备皮率%");
            dict1.Add(4, "术前各类备皮方法情况_四类备皮率%");
            dict1.Add(5, "术前各类备皮方法情况_五类备皮率%");
            dict1.Add(6, "术前各类备皮方法情况_六类备皮率%");
            dict1.Add(7, "术前各类备皮方法情况_七类备皮率%");
            Dictionary <int, string> dict2 = new Dictionary <int, string>();

            dict2.Add(0, "手术名称");
            dict2.Add(1, "术前Ⅰ/甲各类备皮方法情况_一类备皮率%");
            dict2.Add(2, "术前Ⅰ/甲各类备皮方法情况_二类备皮率%");
            dict2.Add(3, "术前Ⅰ/甲各类备皮方法情况_三类备皮率%");
            dict2.Add(4, "术前Ⅰ/甲各类备皮方法情况_四类备皮率%");
            dict2.Add(5, "术前Ⅰ/甲各类备皮方法情况_五类备皮率%");
            dict2.Add(6, "术前Ⅰ/甲各类备皮方法情况_六类备皮率%");
            dict2.Add(7, "术前Ⅰ/甲各类备皮方法情况_七类备皮率%");
            sql += CJia.HISOLAP.App.Tools.Help.DateFilter(e.SelectStartDateTime, e.SelectStartDateTime);
            string strDept = CJia.HISOLAP.App.Tools.Help.DeptFilter(e.IsUseDept, e.IsSelectAllDept, e.SelectDepts);

            if (strDept != "")
            {
                sql += ",";
                sql += CJia.HISOLAP.App.Tools.Help.DeptFilter(e.IsUseDept, e.IsSelectAllDept, e.SelectDepts);
            }
            else
            {
            }
            sql  += ")";
            sql2 += CJia.HISOLAP.App.Tools.Help.DateFilter(e.SelectStartDateTime, e.SelectStartDateTime);
            string strDept1 = CJia.HISOLAP.App.Tools.Help.DeptFilter(e.IsUseDept, e.IsSelectAllDept, e.SelectDepts);

            if (strDept1 != "")
            {
                sql2 += ",";
                sql2 += CJia.HISOLAP.App.Tools.Help.DeptFilter(e.IsUseDept, e.IsSelectAllDept, e.SelectDepts);
            }
            else
            {
            }
            sql2 += ")";
            sql3 += e.filterDataDeptStr;
            DataTable data  = CJia.DefaultOleDb.Query(sql);
            DataTable data2 = CJia.DefaultOleDb.Query(sql2);
            DataTable data3 = CJia.DefaultOleDb.Query(sql3);

            data  = DataTableHelper.GetRealColName(data);
            data2 = DataTableHelper.GetRealColName(data2);
            data3 = DataTableHelper.GetRealColName(data3);
            data  = DataTableHelper.UpdateColName(data, dict1);
            data2 = DataTableHelper.UpdateColName(data2, dict2);
            data3 = DataTableHelper.UpdateColName(data3, new Dictionary <int, string>()
            {
                { 0, "手术名称" }
            });

            data = DataTableHelper.MergeDataTable(data, "手术名称", data3, "手术名称");
            data = DataTableHelper.MergeDataTable(data, "手术名称", data2, "手术名称");
            if (data != null && data.Rows.Count > 0)
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    data.Rows[i][1]  = data.Rows[i][1].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][1].ToString()), 4) * 100 : data.Rows[i][1];
                    data.Rows[i][2]  = data.Rows[i][2].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][2].ToString()), 4) * 100 : data.Rows[i][2];
                    data.Rows[i][3]  = data.Rows[i][3].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][3].ToString()), 4) * 100 : data.Rows[i][3];
                    data.Rows[i][4]  = data.Rows[i][4].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][4].ToString()), 4) * 100 : data.Rows[i][4];
                    data.Rows[i][5]  = data.Rows[i][5].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][5].ToString()), 4) * 100 : data.Rows[i][5];
                    data.Rows[i][6]  = data.Rows[i][6].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][6].ToString()), 4) * 100 : data.Rows[i][6];
                    data.Rows[i][7]  = data.Rows[i][7].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][7].ToString()), 4) * 100 : data.Rows[i][7];
                    data.Rows[i][8]  = data.Rows[i][8].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][8].ToString()), 4) * 100 : data.Rows[i][8];
                    data.Rows[i][9]  = data.Rows[i][9].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][9].ToString()), 4) * 100 : data.Rows[i][9];
                    data.Rows[i][10] = data.Rows[i][10].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][10].ToString()), 4) * 100 : data.Rows[i][10];
                    data.Rows[i][11] = data.Rows[i][11].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][11].ToString()), 4) * 100 : data.Rows[i][11];
                    data.Rows[i][12] = data.Rows[i][12].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][12].ToString()), 4) * 100 : data.Rows[i][12];
                    data.Rows[i][13] = data.Rows[i][13].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][13].ToString()), 4) * 100 : data.Rows[i][13];
                    data.Rows[i][14] = data.Rows[i][14].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][14].ToString()), 4) * 100 : data.Rows[i][14];
                    data.Rows[i][15] = data.Rows[i][15].ToString().Length > 0 ? Math.Round(double.Parse(data.Rows[i][15].ToString()), 4) * 100 : data.Rows[i][15];
                }
            }
            return(data);
        }
Beispiel #19
0
        /// <summary>
        /// 不许实现的获取数据方法
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public override System.Data.DataTable GetData(RefreshEventArgs e)
        {
            string sql1 = @"
                     SELECT {  
                     [Measures].[手术并发症导致的死亡率],
                     [Measures].[肺炎死亡率], 
                     [Measures].[深静脉血栓/肺血栓死亡率],
                     [Measures].[败血症死亡率], 
                     [Measures].[休克/心脏骤停死亡率], 
                     [Measures].[消化道出血/急性溃疡死亡率], 
                     [Measures].[手术后伤口裂开发生率],
                     [Measures].[手术后肺栓塞或深静脉血栓发生率], 
                     [Measures].[手术后出血或血肿发生率],
                     [Measures].[手术后髋关节骨折发生率],
                     [Measures].[手术后生理与代谢紊乱发生率],
                     [Measures].[手术后呼吸衰竭发生率], 
                     [Measures].[手术后败血症发生率], 
                     [Measures].[产伤-新生儿发生率], 
                     [Measures].[产伤-器械辅助阴道分娩发生率], 
                     [Measures].[产伤-非器械辅助阴道分娩发生率], 
                     [Measures].[因用药错误导致患者死亡例数], 
                     [Measures].[因用药错误导致患者死亡发生率%],
                     [Measures].[输血反应发生例数], 
                     [Measures].[输血反应发生率%],
                     [Measures].[输液反应发生例数],
                     [Measures].[输液反应发生率%], 
                     [Measures].[手术过程中异物遗留发生例数], 
                     [Measures].[手术过程中异物遗留发生率%], 
                     [Measures].[医源性气胸发生例数], 
                     [Measures].[医源性气胸发生率%], 
                     [Measures].[医源性意外穿刺伤或撕裂伤发生例数],
                     [Measures].[医源性意外穿刺伤或撕裂伤发生率%]
	                     } ON ROWS,
	                        {[DATE DIM].[DATE TIME].[ALL] } on columns
	                     FROM [JJFB] "    ;

            sql1 += e.filterDataDeptStr;
            DataTable data1 = CJia.DefaultOleDb.Query(sql1);

            //data1 = DataTableHelper.GetRealColName(data1);

            Dictionary <string, string> oldToNew = new Dictionary <string, string>();

            oldToNew.Add("手术并发症导致的死亡率", "(一)择期手术后并发症情况_          1、手术并发症导致的死亡率");
            oldToNew.Add("肺炎死亡率", "(一)择期手术后并发症情况_                其中:肺炎死亡率");
            oldToNew.Add("深静脉血栓/肺血栓死亡率", "(一)择期手术后并发症情况_                          深静脉血栓/肺血栓死亡率");
            oldToNew.Add("败血症死亡率", "(一)择期手术后并发症情况_                          败血症死亡率");
            oldToNew.Add("休克/心脏骤停死亡率", "(一)择期手术后并发症情况_                          休克/心脏骤停死亡率");
            oldToNew.Add("消化道出血/急性溃疡死亡率", "(一)择期手术后并发症情况_                          消化道出血/急性溃疡死亡率");
            oldToNew.Add("手术后伤口裂开发生率", "(一)择期手术后并发症情况_          2、手术后伤口裂开发生率");
            oldToNew.Add("手术后肺栓塞或深静脉血栓发生率", "(一)择期手术后并发症情况_          3、手术后肺栓塞或深静脉血栓发生率");
            oldToNew.Add("手术后出血或血肿发生率", "(一)择期手术后并发症情况_          4、手术后出血或血肿发生率");
            oldToNew.Add("手术后髋关节骨折发生率", "(一)择期手术后并发症情况_          5、手术后髋关节骨折发生率");
            oldToNew.Add("手术后生理与代谢紊乱发生率", "(一)择期手术后并发症情况_          6、手术后生理与代谢紊乱发生率");
            oldToNew.Add("手术后呼吸衰竭发生率", "(一)择期手术后并发症情况_          7、手术后呼吸衰竭发生率");
            oldToNew.Add("手术后败血症发生率", "(一)择期手术后并发症情况_          8、手术后败血症发生率");
            oldToNew.Add("产伤-新生儿发生率", "(二)产伤发生情况_          1、产伤-新生儿发生率");
            oldToNew.Add("产伤-器械辅助阴道分娩发生率", "(二)产伤发生情况_          2、产伤-器械辅助阴道分娩发生率");
            oldToNew.Add("产伤-非器械辅助阴道分娩发生率", "(二)产伤发生情况_          3、产伤-非器械辅助阴道分娩发生率");
            oldToNew.Add("因用药错误导致患者死亡例数", "(三)因用药错误导致患者死亡发生情况_          1、因用药错误导致患者死亡例数");
            oldToNew.Add("因用药错误导致患者死亡发生率%", "(三)因用药错误导致患者死亡发生情况_          2、因用药错误导致患者死亡发生率%");
            oldToNew.Add("输血反应发生例数", "(四)输血/输液反应发生情况_          1、输血反应发生例数");
            oldToNew.Add("输血反应发生率%", "(四)输血/输液反应发生情况_          2、输血反应发生率%");
            oldToNew.Add("输液反应发生例数", "(四)输血/输液反应发生情况_          3、输液反应发生例数");
            oldToNew.Add("输液反应发生率%", "(四)输血/输液反应发生情况_          4、输液反应发生率%");
            oldToNew.Add("手术过程中异物遗留发生例数", "(五)手术过程中异物遗留发生情况_          1、手术过程中异物遗留发生例数");
            oldToNew.Add("手术过程中异物遗留发生率%", "(五)手术过程中异物遗留发生情况_          2、手术过程中异物遗留发生率%");
            oldToNew.Add("医源性气胸发生例数", "(六)医源性气胸发生率_          1、医源性气胸发生例数");
            oldToNew.Add("医源性气胸发生率%", "(六)医源性气胸发生率_          2、医源性气胸发生率%");
            oldToNew.Add("医源性意外穿刺伤或撕裂伤发生例数", "(七)医源性意外穿刺伤或撕裂伤发生情况_          1、医源性意外穿刺伤或撕裂伤发生例数");
            oldToNew.Add("医源性意外穿刺伤或撕裂伤发生率%", "(七)医源性意外穿刺伤或撕裂伤发生情况_          2、医源性意外穿刺伤或撕裂伤发生率%");

            data1 = DataTableHelper.UpdateDataRow(data1, data1.Columns[0].ColumnName, oldToNew);
            for (int i = 0; i < data1.Rows.Count; i++)
            {
                if (data1.Rows[i][1].ToString() == "0")
                {
                    data1.Rows[i][1] = "";
                }
                if (i != 16 && i != 18 && i != 20 && i != 22 && i != 24 && i != 26)
                {
                    data1.Rows[i][1] = data1.Rows[i][1] != null && data1.Rows[i][1].ToString() != "" ? Math.Round(double.Parse(data1.Rows[i][1].ToString()), 4) * 100 + "%" : data1.Rows[i][1];
                }
            }
            data1.Columns[0].ColumnName = "项目类型";
            data1.Columns[1].ColumnName = "本期数量";

            return(data1);
        }
Beispiel #20
0
        /// <summary>
        /// 不许实现的获取数据方法
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public override System.Data.DataTable GetData(RefreshEventArgs e)
        {
            string sql = @"SELECT { 
	                            [Measures].[期内出院例数],
	                            [Measures].[期内死亡例数], 
	                            [Measures].[期内死亡率], 
	                            [Measures].[15日再住院例数],
	                            [Measures].[15日再住院率],
                                [Measures].[31日再住院例数],
	                            [Measures].[31日再住院率], 
                                [Measures].[重点疾病平均住院天数],
	                            [Measures].[重点疾病平均住院费用]
	                            } ON COLUMNS, 
                             { (DESCENDANTS([MAIN DISEASES DIM].[PARENT DIS].[Level 02].ALLMEMBERS) ) }on rows 
                              FROM [JJFB]";

            sql += CJia.HISOLAP.App.Tools.Help.FilterDataDept(e);
            DataTable data = CJia.DefaultOleDb.Query(sql);

            data = DataTableHelper.MergeLevel(data, new List <int>()
            {
                0, 1
            });
            data = DataTableHelper.GetRealColName(data);
            data = DataTableHelper.UpdateColName(data, new Dictionary <int, string>()
            {
                { 0, "住院重点疾病名称" }, { 1, "期内出院例数" }, { 2, "期内死亡例数" }, { 3, "期内死亡率" }, { 4, "15日在住院例数" }, { 5, "15日在住院率" }, { 6, "31日在住院例数" }, { 7, "31日在住院率" }, { 8, "平均住院天数" }, { 9, "平均住院费用" }
            });
            Dictionary <string, string> oldToNew = new Dictionary <string, string>();

            oldToNew.Add("急性心肌梗死", "住院重点疾病指标_1、急性心肌梗死");
            oldToNew.Add("充血性心力衰竭", "住院重点疾病指标_2、充血性心力衰竭");
            oldToNew.Add("脑出血和脑梗死", "住院重点疾病指标_3、脑出血和脑梗死");
            oldToNew.Add("创伤性颅脑损伤", "住院重点疾病指标_4、创伤性颅脑损伤");
            oldToNew.Add("消化道出血", "住院重点疾病指标_5、消化道出血");
            oldToNew.Add("累及身体多个部位损伤", "住院重点疾病指标_6、累及身体多个部位损伤");
            oldToNew.Add("细菌性肺炎", "住院重点疾病指标_7、细菌性肺炎");
            oldToNew.Add("慢性阻塞性肺疾病", "住院重点疾病指标_8、慢性阻塞性肺疾病");
            oldToNew.Add("糖尿病伴短期和长期并发症", "住院重点疾病指标_9、糖尿病伴短期和长期并发症");
            oldToNew.Add("糖尿病伴短期并发症", "住院重点疾病指标_      9.1、糖尿病伴短期并发症");
            oldToNew.Add("糖尿病伴长期并发症", "住院重点疾病指标_      9.2、糖尿病伴长期并发症");
            oldToNew.Add("下肢截肢手术糖尿病", "住院重点疾病指标_      9.3、下肢截肢手术糖尿病");
            oldToNew.Add("未控制血糖的糖尿病", "住院重点疾病指标_      9.4、未控制血糖的糖尿病");
            oldToNew.Add("结节性甲状腺肿", "住院重点疾病指标_10、结节性甲状腺肿");
            oldToNew.Add("急性阑尾炎伴弥漫性及脓肿", "住院重点疾病指标_11、急性阑尾炎伴弥漫性及脓肿");
            oldToNew.Add("前列腺增生", "住院重点疾病指标_12、前列腺增生");
            oldToNew.Add("肾衰竭", "住院重点疾病指标_13、肾衰竭");
            oldToNew.Add("败血症", "住院重点疾病指标_14、败血症");
            oldToNew.Add("高血压", "住院重点疾病指标_15、高血压");
            oldToNew.Add("急性胰腺炎", "住院重点疾病指标_16、急性胰腺炎");
            oldToNew.Add("恶性肿瘤术后化疗", "住院重点疾病指标_17、恶性肿瘤术后化疗");
            oldToNew.Add("恶性肿瘤维持性化疗", "住院重点疾病指标_18、恶性肿瘤维持性化疗");

            if (data != null && data.Rows.Count > 0)
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    data.Rows[i][5] = data.Rows[i][5] != null && data.Rows[i][5].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][5].ToString()), 4) * 100 + "%" : data.Rows[i][5];
                    data.Rows[i][3] = data.Rows[i][3] != null && data.Rows[i][3].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][3].ToString()), 4) * 100 + "%" : data.Rows[i][3];
                    data.Rows[i][7] = data.Rows[i][7] != null && data.Rows[i][7].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][7].ToString()), 4) * 100 + "%" : data.Rows[i][7];
                    data.Rows[i][8] = data.Rows[i][8] != null && data.Rows[i][7].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][8].ToString()), 2) : data.Rows[i][8];
                    data.Rows[i][9] = data.Rows[i][8] != null && data.Rows[i][9].ToString() != "" ? Math.Round(double.Parse(data.Rows[i][9].ToString()), 2) : data.Rows[i][9];
                }
            }
            data = DataTableHelper.UpdateDataRow(data, "住院重点疾病名称", oldToNew);
            return(data);
        }