StableVersion4.3/HL_ChestPain_Statistics/Form_ChestPain_Statistics_Q...

405 lines
19 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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();
}
/// <summary>
/// 统计按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void simpleButton_Report_Click(object sender, EventArgs e)
{
Statistics();
}
/// <summary>
/// 统计
/// </summary>
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 注释
/// <summary>
/// 120急救或者转运患者ECG远程传输比例
/// </summary>
/// <param name="name"></param>
/// <param name="TimeAxisID"></param>
//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<ReportModel> reportModels = new List<ReportModel>();
// 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);
// }
//}
/// <summary>
/// STEMI患者首份ECG远程传输或院内至心电图确诊时间≤10分钟比例
/// </summary>
/// <param name="name"></param>
//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<string>("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 时间统计按钮
/// <summary>
/// 本年度
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 上半年
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 下半年
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 本季度
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 本月度
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 本周
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 绑定初步诊断
/// </summary>
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);
}
}
}
}