using DevExpress.XtraEditors; using HL_FristAidPlatform_Public; using System; using System.Data; using System.Linq; namespace HL_FristAidPlatform_ChestPain_Statistics { public partial class Form_ChestPain_Statistics_QC : XtraForm { public Form_ChestPain_Statistics_QC() { InitializeComponent(); } /// /// 统计按钮事件 /// /// /// private void simpleButton_Report_Click(object sender, EventArgs e) { Statistics(); } /// /// 统计 /// private void Statistics() { string preliminaryDiagnosis = ""; //开始时间 string StartTime = dateEdit_Start.TimeValue; //结束时间 string EndTime = dateEdit_End.TimeValue; for (int i = 0; i < checkedListBoxControl_PreliminaryDiagnosis.ItemCount; i++) { if (checkedListBoxControl_PreliminaryDiagnosis.GetItemChecked(i)) { //preliminaryDiagnosis = checkedListBoxControl_PreliminaryDiagnosis.GetItemText(i); preliminaryDiagnosis += checkedListBoxControl_PreliminaryDiagnosis.GetItemValue(i).ToString() + ","; } } if (!string.IsNullOrEmpty(preliminaryDiagnosis)) { preliminaryDiagnosis = preliminaryDiagnosis.Remove(preliminaryDiagnosis.Count() - 1); } switch (comboBoxEdit_SelectType.SelectedIndex) { case 0: //STEMI患者首份ECG(远程传输或院内)至心电图确诊时间;≤10分钟比例 Form_ChestPain_Statistics_Report01 report01 = new Form_ChestPain_Statistics_Report01(StartTime, EndTime, PublicClassForDataBase.Config1003, PublicClassForDataBase.Config1004, preliminaryDiagnosis); report01.MdiParent = this; report01.Show(); break; case 1: //120急救或者转运患者ECG远程传输比例 Form_ChestPain_Statistics_Report02 report02 = new Form_ChestPain_Statistics_Report02(StartTime, EndTime, preliminaryDiagnosis); report02.MdiParent = this; report02.Show(); break; case 2: //STEMI患者首份ECG(远程传输或院内)至心电图确诊时间;≤10分钟比例 Form_ChestPain_Statistics_Report03 report03 = new Form_ChestPain_Statistics_Report03(StartTime, EndTime); report03.MdiParent = this; report03.Show(); break; //case 3: // //STEMI患者首次医疗接触至双重抗血小板治疗比例、时间;≤10分钟比例 // Form_ChestPain_Statistics_Report04 report04 = new Form_ChestPain_Statistics_Report04(StartTime, EndTime); // report04.MdiParent = this; // report04.Show(); // break; case 3: //肌钙蛋白从抽血完成到获取报告时间 Form_ChestPain_Statistics_Report05 report05 = new Form_ChestPain_Statistics_Report05(StartTime, EndTime); report05.MdiParent = this; report05.Show(); break; case 4: //在再灌注时间窗(12小时)以内到达的STEMI患者早期再灌注治疗比列 Form_ChestPain_Statistics_Report06 report06 = new Form_ChestPain_Statistics_Report06(StartTime, EndTime); report06.MdiParent = this; report06.Show(); break; case 5: //适合溶栓的患者接受溶栓治疗的比例 Form_ChestPain_Statistics_Report07 report07 = new Form_ChestPain_Statistics_Report07(StartTime, EndTime, preliminaryDiagnosis); report07.MdiParent = this; report07.Show(); break; case 6: //溶栓治疗的全部STEMI患者进门-溶栓时间 Form_ChestPain_Statistics_Report08 report08 = new Form_ChestPain_Statistics_Report08(StartTime, EndTime); report08.MdiParent = this; report08.Show(); break; case 7: //月平均门 - 球时间90分钟 Form_ChestPain_Statistics_Report09 report09 = new Form_ChestPain_Statistics_Report09(StartTime, EndTime); report09.MdiParent = this; report09.Show(); break; case 8: //导管室激活时间小于30分钟(所有急诊PCI的STEMI患者) Form_ChestPain_Statistics_Report10 report10 = new Form_ChestPain_Statistics_Report10(StartTime, EndTime); report10.MdiParent = this; report10.Show(); break; } } #region 注释 /// /// 120急救或者转运患者ECG远程传输比例 /// /// /// //public void Report1(string name) //{ // try // { // chartControl2.Visible = false; // chartControl1.Series.Clear(); // DataTable dataTable = new DataTable(); // dataTable = DBHelpClass.Get("api/service/T_Service_ChestPain_FirstMedicalReception/GetModelByReport?where=CreationDate BETWEEN '" + dateEdit_start.Text + "' and '" + dateEdit_end.Text + "'"); // DataTable data = new DataTable("table1"); // data.Columns.Add("Name", typeof(string)); // data.Columns.Add("Value", typeof(int)); // DataTable data1 = new DataTable("table2"); // data1.Columns.Add("Name", typeof(string)); // data1.Columns.Add("Value", typeof(int)); // float averageTimeCount = 0; // float noAverageTimeCount = 0; // if (dataTable != null) // { // List reportModels = new List(); // foreach (DataRow item in dataTable.Rows) // { // ReportModel model = new ReportModel(); // model.name = Convert.ToDateTime(item["CreationDate"].ToString()).Year + "-" + Convert.ToDateTime(item["CreationDate"].ToString()).Month; // model.value = item["Is_Remote_Ecgtran"].ToString(); // reportModels.Add(model); // } // var date = from t in reportModels // group t by new { t.name, t.value } into m // select new // { // key = m.Key, // count = m.Count() // }; // var orderBy = from t in date // group t by new { t.key.name } into m // select new // { // key = m.Key, // count = m.Count() // }; // for (int i = 0; i < orderBy.Count(); i++) // { // for (int j = 0; j < date.Count(); j++) // { // if (orderBy.ToList()[i].key.name == date.ToList()[j].key.name) // { // if (date.ToList()[i].key.value.ToString() == "1")//远程心电传输 1是2否 // { // averageTimeCount = date.ToList()[j].count; // } // else // { // noAverageTimeCount = date.ToList()[j].count; // } // } // } // data.Rows.Add(orderBy.ToList()[i].key.name, (averageTimeCount / (averageTimeCount + noAverageTimeCount)) * 100); // data1.Rows.Add(orderBy.ToList()[i].key.name, 30); // } // XYDiagram xyDiagram1 = new XYDiagram(); // xyDiagram1.AxisY.MinorCount = 1; // Series series = new Series(name, ViewType.Line); // series.ArgumentScaleType = ScaleType.Qualitative; // series.ValueScaleType = ScaleType.Numerical; // ((LineSeriesView)series.View).MarkerVisibility = DefaultBoolean.True; // series.ValueDataMembers[0] = "Value"; // series.ArgumentDataMember = "Name"; // series.DataSource = data; // chartControl1.Series.Add(series); // series.LegendTextPattern = "{A}:{V}"; // series.LabelsVisibility = DefaultBoolean.True;//显示标注标签 // ((XYDiagram)chartControl1.Diagram).Rotated = false; // Series series1 = new Series("参考标准30%", ViewType.Line); // series1.ValueDataMembers[0] = "Value"; // series1.ArgumentDataMember = "Name"; // series1.DataSource = data1; // chartControl1.Series.Add(series1); // series1.LegendTextPattern = "{A}:{V}"; // series1.LabelsVisibility = DefaultBoolean.True;//显示标注标签 // ((XYDiagram)chartControl1.Diagram).Rotated = false; // } // } // catch (Exception ex) // { // PublicClass.WriteErrorLog(Text, "120急救或者转运患者ECG远程传输比例" + ex); // } //} /// /// STEMI患者首份ECG(远程传输或院内)至心电图确诊时间;≤10分钟比例 /// /// //public void Report2(string name,string TimeAxisID) //{ // try // { // chartControl1.Series.Clear(); // DataTable dataTable = new DataTable(); // dataTable = DBHelpClass.Get("api/service/T_Service_ChestPain_Prehospital/GetKeyValueByReport?startTime='" + dateEdit_start.Text + "' &endTime='" + dateEdit_end.Text + "'&where="+ TimeAxisID); // DataTable data = new DataTable("table1"); // data.Columns.Add("Name", typeof(string)); // data.Columns.Add("Value", typeof(int)); // float averageTimeCount = 0; // float noAverageTimeCount = 0; // if (dataTable != null) // { // var orderBy = from t in dataTable.AsEnumerable() // group t by new { key =t.Field("key") } into m // select new // { // key = m.Key, // count = m.Count() // }; // for (int i = 0; i < orderBy.Count(); i++) // { // for (int j = 0; j < date.Count(); j++) // { // if (orderBy.ToList()[i].key.name == date.ToList()[j].key.name) // { // if (date.ToList()[i].key.value.ToString() == "1")//远程心电传输 1是2否 // { // averageTimeCount = date.ToList()[j].count; // } // else // { // noAverageTimeCount = date.ToList()[j].count; // } // } // } // data.Rows.Add(orderBy.ToList()[i].key.name, (averageTimeCount / (averageTimeCount + noAverageTimeCount)) * 100); // data1.Rows.Add(orderBy.ToList()[i].key.name, 30); // } // XYDiagram xyDiagram1 = new XYDiagram(); // xyDiagram1.AxisY.MinorCount = 1; // Series series = new Series(name, ViewType.Line); // series.ArgumentScaleType = ScaleType.Qualitative; // series.ValueScaleType = ScaleType.Numerical; // ((LineSeriesView)series.View).MarkerVisibility = DefaultBoolean.True; // series.ValueDataMembers[0] = "Value"; // series.ArgumentDataMember = "Name"; // series.DataSource = data; // chartControl1.Series.Add(series); // series.LegendTextPattern = "{A}:{V}"; // series.LabelsVisibility = DefaultBoolean.True;//显示标注标签 // ((XYDiagram)chartControl1.Diagram).Rotated = false; // Series series1 = new Series("参考标准30%", ViewType.Line); // series1.ValueDataMembers[0] = "Value"; // series1.ArgumentDataMember = "Name"; // series1.DataSource = data1; // chartControl1.Series.Add(series1); // series1.LegendTextPattern = "{A}:{V}"; // series1.LabelsVisibility = DefaultBoolean.True;//显示标注标签 // ((XYDiagram)chartControl1.Diagram).Rotated = false; // } // } // catch (Exception ex) // { // PublicClass.WriteErrorLog(Text, "120急救或者转运患者ECG远程传输比例" + ex); // } //} #endregion #region 时间统计按钮 /// /// 本年度 /// /// /// private void simpleButton_ThisYear_Click(object sender, EventArgs e) { dateEdit_Start.TimeValue = new DateTime(DateTime.Now.Year, 1, 1).ToString("yyyy-MM-dd") + " 00:00:00"; dateEdit_End.TimeValue = new DateTime(DateTime.Now.Year, 12, 31).ToString("yyyy-MM-dd") + " 23:59:59"; Statistics(); } /// /// 上半年 /// /// /// private void simpleButton_UpHalfYear_Click(object sender, EventArgs e) { dateEdit_Start.TimeValue = new DateTime(DateTime.Now.Year, 1, 1).ToShortDateString() + " 00:00:00"; dateEdit_End.TimeValue = new DateTime(DateTime.Now.Year, 6, 30).ToShortDateString() + " 23:59:59"; Statistics(); } /// /// 下半年 /// /// /// private void simpleButton_DownHalfYear_Click(object sender, EventArgs e) { dateEdit_Start.TimeValue = new DateTime(DateTime.Now.Year, 7, 1).ToShortDateString() + " 00:00:00"; dateEdit_End.TimeValue = new DateTime(DateTime.Now.Year, 12, 31).ToShortDateString() + " 23:59:59"; Statistics(); } /// /// 本季度 /// /// /// private void simpleButton_ThisQuarter_Click(object sender, EventArgs e) { dateEdit_Start.TimeValue = DateTime.Now.AddMonths(0 - (DateTime.Now.Month - 1) % 3).AddDays(1 - DateTime.Now.Day).ToShortDateString() + " 00:00:00"; dateEdit_End.TimeValue = DateTime.Now.AddMonths(0 - (DateTime.Now.Month - 1) % 3).AddDays(1 - DateTime.Now.Day).AddMonths(3).AddDays(-1).ToShortDateString() + " 23:59:59"; Statistics(); } /// /// 本月度 /// /// /// private void simpleButton_ThisMonth_Click(object sender, EventArgs e) { dateEdit_Start.TimeValue = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.ToShortDateString() + " 00:00:00"; dateEdit_End.TimeValue = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddDays(-1).ToShortDateString() + " 23:59:59"; Statistics(); } /// /// 本周 /// /// /// private void simpleButton_ThisWeek_Click(object sender, EventArgs e) { dateEdit_Start.TimeValue = DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString() + " 00:00:00"; dateEdit_End.TimeValue = DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString() + " 23:59:59"; Statistics(); } #endregion /// /// 窗体加载 /// /// /// private void Form_ChestPain_Statistics_QC_Load(object sender, EventArgs e) { //绑定初步诊断 BindPreliminaryDiagnosis(); //默认本月时间 dateEdit_Start.TimeValue = DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString() + " 00:00:00"; dateEdit_End.TimeValue = DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString() + " 23:59:59"; //默认第一个统计 comboBoxEdit_SelectType.SelectedIndex = 0; //统计 Statistics(); } /// /// 绑定初步诊断 /// private void BindPreliminaryDiagnosis() { try { string Url = string.Format("/api/base/T_Base_PreliminaryDiagnosis/GetListBySystemModuleID?systemModuleID={0}", PublicClassForDataBase.Config10001); DataTable BindDT = DBHelpClass.Get(Url); DataRow dataRow = BindDT.NewRow(); dataRow["Content"] = "所有胸痛患者"; dataRow["ID"] = "1,2,3,4,5,6,7,8"; BindDT.Rows.Add(dataRow); checkedListBoxControl_PreliminaryDiagnosis.DisplayMember = "Content"; checkedListBoxControl_PreliminaryDiagnosis.ValueMember = "ID"; checkedListBoxControl_PreliminaryDiagnosis.DataSource = BindDT; checkedListBoxControl_PreliminaryDiagnosis.SetItemChecked(BindDT.Rows.Count-1,true); } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "绑定初步诊断:\r\n" + ex); } } } }