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); }
/// <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); }
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); }
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; }
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; }
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; }
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; }
/// <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); }
/// <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); }
// 刷新按钮方法实现 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); } }
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); }
/// <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); }
/// <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); }
/// <summary> /// 不许实现的虚方法 /// </summary> /// <param name="e"></param> /// <returns></returns> public abstract DataTable GetData(RefreshEventArgs e);
/// <summary> /// 不许实现的获取数据方法 /// </summary> /// <param name="e"></param> /// <returns></returns> public override System.Data.DataTable GetData(RefreshEventArgs e) { return(null); }
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); }
/// <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); }
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); }
/// <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); }
/// <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); }