StableVersion4.3/HL_ChestPain_Statistics/Form_ChestPain_Statistics_Q...

405 lines
19 KiB
C#
Raw Permalink Normal View History

2024-03-11 09:47:34 +08:00
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);
}
}
}
}