405 lines
19 KiB
C#
405 lines
19 KiB
C#
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);
|
||
}
|
||
}
|
||
}
|
||
}
|