StableVersion4.3/HL_ChestPain_Statistics/Form_Report_Standard.cs

656 lines
32 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.XtraCharts;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using HL_FristAidPlatform_Public;
using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
namespace HL_FristAidPlatform_ChestPain_Statistics
{
/// <summary>
/// 胸痛中心指标分析--标准版
/// LYM 2020-06-24
/// </summary>
public partial class Form_Report_Standard : XtraForm
{
#region 全局变量
/// <summary>
/// 当前统计 院区编号
/// </summary>
private string Cur_HospitalGuid = string.Empty;
/// <summary>
/// 当前统计 开始时间
/// </summary>
private string Cur_StartDate = string.Empty;
/// <summary>
/// 当前统计 结束时间
/// </summary>
private string Cur_EndDate = string.Empty;
/// <summary>
/// 当前统计 数据类型 -1:全部 0:未上传;1:已上传
/// </summary>
private string Cur_DataType = string.Empty;
/// <summary>
/// 当前统计 报表类型 1:月报表
/// </summary>
private string Cur_ReportType = string.Empty;
/// <summary>
/// 当前统计 报表名称 与枚举 Enumerate.ChestPainStandardReport 对比
/// </summary>
private string Cur_ReportName = string.Empty;
/// <summary>
/// 报表标题
/// </summary>
private string Cur_ReportTitle = string.Empty;
/// <summary>
/// 等待窗体
/// </summary>
private Loading loading = new Loading();
/// <summary>
/// 报表头
/// </summary>
private ChartTitle chartTitle_Report = new ChartTitle();
/// <summary>
/// 当前报表数据源
/// </summary>
private DataSet Cur_DataSet = new DataSet();
#endregion
/// <summary>
/// 胸痛中心指标分析--标准版
/// </summary>
/// <param name="_hospitalGuid">医院编号</param>
/// <param name="_startDate">开始时间</param>
/// <param name="_endDate">结束时间</param>
/// <param name="_dataType">数据类型 0:全部 1:已上传</param>
/// <param name="_reportType">报表类型 1:月报表</param>
/// <param name="_reportName">报表名称 与枚举 Enumerate.ChestPainStandardReport 对比</param>
/// <param name="_reportTitle">报表标题</param>
public Form_Report_Standard(string _hospitalGuid, string _startDate, string _endDate, string _dataType, string _reportType, string _reportName, string _reportTitle)
{
Cur_HospitalGuid = _hospitalGuid;
Cur_StartDate = _startDate;
Cur_EndDate = _endDate;
Cur_DataType = _dataType;
Cur_ReportType = _reportType;
Cur_ReportName = _reportName;
Cur_ReportTitle = _reportTitle;
InitializeComponent();
}
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form_Report_Standard_Load(object sender, EventArgs e)
{
BindHospital();
date_Start.TimeValue = Cur_StartDate;
date_End.TimeValue = Cur_EndDate;
radioGroup_DataType.EditValue = Cur_DataType;
radioGroup_ReportType.EditValue = Cur_ReportType;
lookUp_Hospital.EditValue = Cur_HospitalGuid;
BindInfo();
this.Text += "(" + Cur_ReportName + ")";
}
/// <summary>
/// 绑定机构信息
/// </summary>
private void BindHospital()
{
try
{
//数据源
DataTable ResultDT = new DataTable();
//有所有院区权限
if (PublicHelp.IsHaveAllDistrictRight(Information.User.ID))
{
string Url = "api/base/T_Base_Hospital/GetList";
ResultDT = DBHelpClass.Get(Url);
}
//只获取当前院区数据
else
{
string Url = string.Format("api/base/T_Base_Hospital/{0}", Information.Hospital.GUID);
ResultDT = DBHelpClass.GetDataRow(Url);
}
PublicClass.SetLookUpList(lookUp_Hospital, ResultDT, "guid", "name", true);
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定机构信息:\r\n" + ex);
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindInfo()
{
string HospitalGuid = PublicClass.ToString(lookUp_Hospital.EditValue, "");
string StartDate = PublicClass.ToDateTime(date_Start.TimeValue, PublicClass.DefaultTime).ToString(PublicClass.TimeToString);
string EndDate = PublicClass.ToDateTime(date_End.TimeValue, PublicClass.DefaultTime).ToString(PublicClass.TimeToString);
string DataType = PublicClass.ToString(radioGroup_DataType.EditValue, "");
string ReportType = PublicClass.ToString(radioGroup_ReportType.EditValue, "");
string StartTimeAxisID = string.Empty;
string EndTimeAxisID = string.Empty;
string DiffFlag = "2";//获取差异标记 0:天,1:时,2:分,3:秒
string ReportName = Cur_ReportName;
string SeriesName = string.Empty;//报表名称
//主报表标题
chart_Report1.Titles.Clear();
chartTitle_Report.Text = Cur_ReportName + "、" + Cur_ReportTitle; ;
chartTitle_Report.Font = new Font("Tahoma", 12, GraphicsUnit.Point);
chart_Report1.Titles.AddRange(new ChartTitle[] { chartTitle_Report });
ClientFactory<string> httpClient = new HttpClientFactory<string>();
Client<string> client = httpClient.VisitFactory();
#region 报表
//5.16、对于自行来院或拨打本地120经救护车入院的所有急性胸痛患者缩短了从首次医疗接触到完成首份心电图时间且要求月平均小于10分钟。
if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.516))
{
SeriesName = "平均时间";
DrawLine(10, "分钟");
StartTimeAxisID = PublicClassForDataBase.Config1003;
EndTimeAxisID = PublicClassForDataBase.Config1004;
}
//5.17、对于STEMI患者缩短了从完成首份心电图至确诊的时间且要求月平均小于10分钟。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.517))
{
SeriesName = "平均时间";
DrawLine(10, "分钟");
StartTimeAxisID = PublicClassForDataBase.Config1004;
EndTimeAxisID = PublicClassForDataBase.Config1006;
}
//5.18、经救护车包括呼叫本地120入院及由非PCI医院转诊患者入院的STEMI患者从急救现场或救护车远程传输心电图至胸痛中心实时传输或微信等形式传输但必须在云平台有客观记录的比例不低于30%且在过去6个月内呈现增加趋势。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.518))
{
SeriesName = "上传比例(%)";
DrawLine(30, "%");
StartTimeAxisID = "";
EndTimeAxisID = "";
}
//5.19、建立了床旁快速检测肌钙蛋白方法从抽血完成到获取报告时间不超过20分钟。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.519))
{
SeriesName = "平均时间";
DrawLine(20, "分钟");
StartTimeAxisID = PublicClassForDataBase.Config1009;
EndTimeAxisID = PublicClassForDataBase.Config1010;
}
//5.20、发病至首次医疗接触在12小时以内的STEMI患者实施再灌注救治的比例不低于75%。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.520))
{
SeriesName = "再灌注治疗比例(%)";
DrawLine(75, "%");
DiffFlag = "1";
StartTimeAxisID = PublicClassForDataBase.Config1001;
EndTimeAxisID = PublicClassForDataBase.Config1003;
}
//5.21、对于接受PPCI治疗的STEMI患者月平均入门-导丝通过时间不超过90分钟且达标率不低于75%若当前无法达到则应呈现改进趋势且应制订促进持续改进的措施确保在通过认证后1年内逐步达到上述要求。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.521))
{
SeriesName = "平均时间";
DrawLine(90, "分钟");
StartTimeAxisID = PublicClassForDataBase.Config1007;
EndTimeAxisID = PublicClassForDataBase.Config1027;
}
//5.22、网络医院转至本院实施转运PCI的STEMI患者首次医疗接触到导丝通过时间应在120分钟以内月平均达标率不低于50%。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.522))
{
SeriesName = "平均时间";
DrawLine(50, "%");
StartTimeAxisID = PublicClassForDataBase.Config1003;
EndTimeAxisID = PublicClassForDataBase.Config1027;
}
//5.23、导管室激活时间小于30分钟。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.523))
{
SeriesName = "平均时间";
DrawLine(30, "分钟");
StartTimeAxisID = PublicClassForDataBase.Config1021;
EndTimeAxisID = PublicClassForDataBase.Config1022;
}
//5.24、经救护车入院包括呼叫本地120入院及由非PCI医院转诊患者且接受PPCI治疗的STEMI患者绕行急诊和CCU直达导管室的比例不低于50%,且呈现增高趋势。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.524))
{
SeriesName = "直达导管室比例";
DrawLine(50, "%");
StartTimeAxisID = string.Empty;
EndTimeAxisID = string.Empty;
}
//5.25、自行来院且接受PPCI治疗的STEMI患者绕行CCU从急诊科直接送入导管室的比例不低于75%,且呈现增高趋势。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.525))
{
SeriesName = "直达导管室比例";
DrawLine(75, "%");
StartTimeAxisID = string.Empty;
EndTimeAxisID = string.Empty;
}
//5.26、溶栓后患者包含网络医院120及本院24小时内早期造影的比例不低于75%。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.526))
{
SeriesName = "溶栓后24小时内造影比例";
DrawLine(75, "%");
DiffFlag = "1";
StartTimeAxisID = PublicClassForDataBase.Config1019;
EndTimeAxisID = PublicClassForDataBase.Config1020;
}
//5.27、所有STEMI患者的死亡率已降低。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.527))
{
SeriesName = "死亡率(%";
DrawLine(null, null);
StartTimeAxisID = string.Empty;
EndTimeAxisID = string.Empty;
}
//5.28、初步诊断为NSETMI/UA的患者实施危险分层评估的比例达到100%。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.528))
{
SeriesName = "分层率(%";
DrawLine(100, "%");
StartTimeAxisID = string.Empty;
EndTimeAxisID = string.Empty;
}
//5.29、所有危险分层评估极高危的NSTEMI/UA患者从入门后首次评估为极高危者或者病情变化后再次评估为极高危者2小时内实施紧急PCI的比例在增加且不低于50%。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.529))
{
SeriesName = "紧急PCI治疗比例";
DrawLine(50, "%");
StartTimeAxisID = string.Empty;
EndTimeAxisID = string.Empty;
}
//5.30、所有危险分层评估高危NSTEMI/UA患者从入门后首次评估为高危者或者病情变化后再次评估为高危者24小时内实施早期介入治疗的比例在增加且不低于50%。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.530))
{
SeriesName = "24小时内PCI治疗比例";
DrawLine(50, "%");
StartTimeAxisID = string.Empty;
EndTimeAxisID = string.Empty;
}
//5.31、全部ACS患者院内死亡率在降低。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.531))
{
SeriesName = "ACS患者死亡比例";
DrawLine(null, null);
StartTimeAxisID = string.Empty;
EndTimeAxisID = string.Empty;
}
//5.32、全部ACS患者院内心力衰竭发生率在降低。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.532))
{
SeriesName = "ACS患者院内心力衰竭发生率";
DrawLine(null, null);
StartTimeAxisID = string.Empty;
EndTimeAxisID = string.Empty;
}
//5.33、所有ACS患者从确诊到负荷量双抗给药时间在10分钟以内有缩短趋势。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.533))
{
SeriesName = "平均时间";
DrawLine(10, "分钟");
StartTimeAxisID = PublicClassForDataBase.Config1013;
EndTimeAxisID = PublicClassForDataBase.Config1014;
}
//5.34、所有STEMI患者除使用第一代溶栓药者外从确诊到静脉肝素抗凝给药时间在10分钟以内。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.534))
{
SeriesName = "平均时间";
DrawLine(10, "分钟");
StartTimeAxisID = PublicClassForDataBase.Config1013;
EndTimeAxisID = PublicClassForDataBase.Config1015;
}
//5.35.1、对于溶栓包括本院溶栓及转诊医院溶栓治疗者D-to-N时间缩短
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.5351))
{
SeriesName = "月平均时间";
DrawLine(null, null);
StartTimeAxisID = PublicClassForDataBase.Config1007;
EndTimeAxisID = PublicClassForDataBase.Config1018;
}
//5.35.2、对于溶栓包括本院溶栓及转诊医院溶栓治疗者FMC-to-N时间缩短
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.5352))
{
SeriesName = "月平均时间";
DrawLine(null, null);
StartTimeAxisID = PublicClassForDataBase.Config1003;
EndTimeAxisID = PublicClassForDataBase.Config1018;
}
//5.36、对于网络医院实施转运PCI患者在网络医院的door-in and door-out(入门到出门的时间在30分钟以内若当前达不到应有缩短趋势。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.536))
{
SeriesName = "月平均时间";
DrawLine(30, "分钟");
StartTimeAxisID = PublicClassForDataBase.Config1032;
EndTimeAxisID = PublicClassForDataBase.Config1033;
}
//5.37、STEMI患者中呼叫120入院的比例在增加。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.537))
{
SeriesName = "呼叫120入院比例";
DrawLine(null, null);
StartTimeAxisID = string.Empty;
EndTimeAxisID = string.Empty;
}
//5.38、STEMI患者发病后2小时内就诊的比例在增加。
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.538))
{
SeriesName = "STEMI患者发病后2小时内获得首次医疗接触的比例";
DrawLine(null, null);
StartTimeAxisID = PublicClassForDataBase.Config1001;
EndTimeAxisID = PublicClassForDataBase.Config1003;
}
//5.39、主动脉或肺动脉CTA完成时间有缩短趋势怀疑主动脉夹层或肺动脉栓塞的患者计算从通知CT室到CT室完成准备的时间要求小于30分钟
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.539))
{
SeriesName = "月平均时间间隔";
DrawLine(30, "分钟");
StartTimeAxisID = PublicClassForDataBase.Config1044;
EndTimeAxisID = PublicClassForDataBase.Config1045;
}
string Url = string.Format("api/service/T_Service_ChestPain_Statistics/GetReportStandard?hospitalGuid={0}&startDate={1}&endDate={2}&dataType={3}&reportType={4}&startTimeAxisID={5}&endTimeAxisID={6}&diffFlag={7}&reportName={8}", HospitalGuid, StartDate, EndDate, DataType, ReportType, StartTimeAxisID, EndTimeAxisID, DiffFlag, ReportName);
//执行
Cur_DataSet = client.GetDataSet(Url);
//绘制报表
DrawReport(Cur_DataSet, SeriesName);
#endregion
}
/// <summary>
/// 绘制参考线
/// </summary>
/// <param name="lineValue">参考线的值</param>
/// <param name="lineUnit">参考线的单位</param>
private void DrawLine(object lineValue, string lineUnit)
{
//绘制参考线
if (lineValue != null)
{
XYDiagram diagram1 = (XYDiagram)chart_Report1.Diagram;
if (diagram1 != null)
{
ConstantLine constantLine1 = new ConstantLine();
diagram1.AxisY.ConstantLines.Add(constantLine1);
constantLine1.AxisValue = lineValue;//线条的值
constantLine1.Visible = true;
constantLine1.ShowInLegend = false;
constantLine1.ShowBehind = false;
constantLine1.Title.Visible = true;
constantLine1.Title.Text = lineValue + lineUnit;//显示的文本
constantLine1.Title.TextColor = Color.Red;//文本颜色
constantLine1.Title.Font = new Font("宋体", 10, FontStyle.Regular);
constantLine1.Title.ShowBelowLine = false;//文本显示在线上面还是线下面
constantLine1.Title.Alignment = ConstantLineTitleAlignment.Far;//文本的位置
constantLine1.Color = Color.Red;//线条颜色
constantLine1.LineStyle.DashStyle = DashStyle.DashDot;//线条样式
constantLine1.LineStyle.Thickness = 1;
}
}
}
/// <summary>
/// 绘制报表
/// </summary>
/// <param name="dataSet">数据源</param>
/// <param name="seriesValue">统计图名称</param>
private void DrawReport(DataSet dataSet, string seriesName)
{
//图表
grid_Chart.DataSource = null;
//详细列表
grid_Detail.DataSource = null;
DataTable data = new DataTable();
data.Columns.Add("X轴", typeof(string));
data.Columns.Add("Y轴", typeof(decimal));
DateTime StartDate = PublicClass.ToDateTime(date_Start.TimeValue, PublicClass.DefaultTime);//统计开始时间
DateTime EndDate = PublicClass.ToDateTime(date_End.TimeValue, PublicClass.DefaultTime);//统计结束时间
//在统计区间内生成每个月份的数据列
for (DateTime dt = StartDate; dt <= EndDate; dt = dt.AddMonths(1))
{
DataRow newRow = data.NewRow();
string BindMonth = dt.ToString("yyyy-MM");
newRow["X轴"] = BindMonth; //格式2020-01
//原始数据不为空
if (dataSet != null)
{
if (dataSet.Tables.Count >= 1)
{
//图表
grid_Chart.DataSource = dataSet.Tables[0];
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
{
string dataTime = PublicClass.ToDateTime(dataRow["年份"] + "-" + dataRow["月份"], PublicClass.DefaultTime).ToString("yyyy-MM");
if (BindMonth == dataTime)
{
#region Y轴数据
if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.516)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.517)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.519)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.523)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.533)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.534)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.5351)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.5352)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.536)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.539))
{
newRow["Y轴"] = dataRow["平均时间"];
}
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.518)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.520)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.522)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.524)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.525)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.526)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.527)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.528)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.529)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.530)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.531)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.532)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.537)
|| Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.538))
{
newRow["Y轴"] = dataRow["百分比"];
}
else if (Cur_ReportName == PublicClass.GetEnumDescription(Enumerate.ChestPainStandardReport.521))
{
newRow["Y轴"] = dataRow["达标率(%)"];
}
#endregion
break;
}
else
{
newRow["Y轴"] = "0";
}
}
}
else
{
newRow["Y轴"] = "0";
}
}
else
{
newRow["Y轴"] = "0";
}
data.Rows.Add(newRow);
//绘制图表
chart_Report1.Series.Clear();
ViewType viewType = new ViewType();
switch (PublicClass.ToString(radioGroup_ViewType.EditValue, ""))
{
case "1":
viewType = ViewType.Line;
break;
case "2":
viewType = ViewType.Bar;
break;
default:
break;
}
Series series = new Series(seriesName, viewType);
series.ArgumentDataMember = "X轴";
series.ValueDataMembers[0] = "Y轴";
series.DataSource = data;
chart_Report1.Series.Add(series);
series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;//显示标注标签
if (dataSet.Tables.Count >= 2)
{
//详细列表
grid_Detail.DataSource = dataSet.Tables[1];
gridView_Detail.Columns["GUID"].Visible = false;
}
}
}
/// <summary>
/// 统计
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Report_Click(object sender, EventArgs e)
{
BindInfo();
}
/// <summary>
/// 单击月份列显示每月详情
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void grid_Chart_MouseClick(object sender, MouseEventArgs e)
{
try
{
GridHitInfo hi = gridView_Chart.CalcHitInfo(new Point(e.X, e.Y));
//单击数据行
if (hi.InRow)//单击的是列头 hi.InColumn
{
//详细列表
grid_Detail.DataSource = null;
if (gridView_Chart.DataRowCount > 0)
{
if (Cur_DataSet.Tables.Count >= 2)
{
int selectRow = gridView_Chart.GetSelectedRows()[0];
string Year = gridView_Chart.GetRowCellValue(selectRow, "年份").ToString();
string Month = gridView_Chart.GetRowCellValue(selectRow, "月份").ToString();
DateTime SelectMonth = PublicClass.ToDateTime(Year + "-" + Month, PublicClass.DefaultTime);
string StartTime = PublicClass.FirstDayOfMonth(SelectMonth, 2).ToString(PublicClass.TimeToString);
string EndTime = PublicClass.LastDayOfMonth(SelectMonth, 2).ToString(PublicClass.TimeToString);
DataTable DataTable = Cur_DataSet.Tables[1].Clone();
string WhereStr = string.Format("建档时间>='{0}' And 建档时间<='{1}'", StartTime, EndTime);
DataRow[] dr = Cur_DataSet.Tables[1].Select(WhereStr);
for (int i = 0; i < dr.Length; i++)
{
DataTable.ImportRow((DataRow)dr[i]);
}
//详细列表
grid_Detail.DataSource = DataTable;
gridView_Detail.Columns["GUID"].Visible = false;
}
}
}
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "单击月份列显示每月详情:\r\n" + ex);
}
}
/// <summary>
/// 双击患者跳转到详情
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void grid_Detail_MouseDoubleClick(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (gridView_Detail.DataRowCount > 0)
{
int selectRow = gridView_Detail.GetSelectedRows()[0];
string PatientGuid = PublicClass.ToString(gridView_Detail.GetRowCellValue(selectRow, "GUID"), "");
//反射
loading.ShowMessage();
Form form = PublicHelp.GetReflection("HL_FristAidPlatform_ChestPain", "Form_ChestPain_PatientMain", 0, PatientGuid, Cur_HospitalGuid, Enumerate.PatientMainState., false, "", "", "",0);
form.ShowDialog();
loading.HideMessage();
}
}
/// <summary>
/// 绘制行号
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gridView_Chart_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle > -1)
{
e.Info.DisplayText = (e.RowHandle + 1).ToString();
}
}
/// <summary>
/// 绘制行号
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gridView_Detail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle > -1)
{
e.Info.DisplayText = (e.RowHandle + 1).ToString();
}
}
/// <summary>
/// 图表类型切换
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void radioGroup_ViewType_SelectedIndexChanged(object sender, EventArgs e)
{
BindInfo();
}
}
}