StableVersion4.3/HL_FristAidPlatform_Apoplexy/Form_StatisticsHome.cs

125 lines
7.3 KiB
C#

using DevExpress.XtraCharts;
using DevExpress.XtraEditors;
using HL_FristAidPlatform_Public;
using System;
using System.Data;
using System.Linq;
namespace HL_FristAidPlatform_Apoplexy
{
public partial class Form_StatisticsHome : XtraForm
{
public Form_StatisticsHome()
{
////设定按字体来缩放控件
//this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
////设定字体大小为12px
//this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134)));
InitializeComponent();
}
private void Form_StatisticsHome_Load(object sender, EventArgs e)
{
try
{
DataTable EmergencyRoomDataTable = new DataTable();
DataTable ThrombolysisDataTable = new DataTable();
DataTable InterveneDataTable = new DataTable();
DataTable PatientDataTable = new DataTable();
//没有所有院区权限 只获取当前院区数据
if (!PublicHelp.IsHaveAllDistrictRight(Information.User.ID))
{
EmergencyRoomDataTable = DBHelpClass.Get("api/service/T_Service_Apoplexy_EmergencyRoom/GetModelByReport?where=DeleteFlag=0 and ReportType=0 and PatientGuid in (select GUID from T_Service_Patient where HospitalGuid='" + Information.Hospital.GUID + "')");
ThrombolysisDataTable = DBHelpClass.Get("api/service/T_Service_EMR_Thrombolysis/GetModelByReport?where=DeleteFlag=0 and ReportType=0 and PatientGuid in (select GUID from T_Service_Patient where HospitalGuid='" + Information.Hospital.GUID + "')");
InterveneDataTable = DBHelpClass.Get("api/service/T_Service_EMR_Intervene/GetModelByReport?where=DeleteFlag=0 and ReportType=0 and PatientGuid in (select GUID from T_Service_Patient where HospitalGuid='" + Information.Hospital.GUID + "')");
PatientDataTable = DBHelpClass.Get("api/service/T_Service_Patient/GetModelByReport?where=HospitalGuid='" + Information.Hospital.GUID + "'");
}
else
{
EmergencyRoomDataTable = DBHelpClass.Get("api/service/T_Service_Apoplexy_EmergencyRoom/GetModelByReport?where=DeleteFlag=0 and ReportType=0");
ThrombolysisDataTable = DBHelpClass.Get("api/service/T_Service_EMR_Thrombolysis/GetModelByReport?where=DeleteFlag=0 and ReportType=0");
InterveneDataTable = DBHelpClass.Get("api/service/T_Service_EMR_Intervene/GetModelByReport?where=DeleteFlag=0 and ReportType=0");
PatientDataTable = DBHelpClass.Get("api/service/T_Service_Patient/GetModelByReport?where=1=1");
}
DataTable data = new DataTable("table1");
data.Columns.Add("Name", typeof(string));
data.Columns.Add("Value", typeof(int));
var query = from t in EmergencyRoomDataTable.AsEnumerable()
group t by new { t1 = t.Field<string>("Diagnose") } into m
select new
{
name = m.Key.t1,
count = m.Count()
};
foreach (var item in query.ToList())
{
data.Rows.Add(item.name, item.count);
}
Series series = new Series("卒中病种统计", ViewType.Bar);
series.ValueDataMembers[0] = "Value";
series.ArgumentDataMember = "Name";
chartControl1.DataSource = data;
chartControl1.Series.Add(series);
series.LegendTextPattern = "{A}:{V}";
series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;//显示标注标签
DataTable dataThrombolysis = new DataTable("table1");
dataThrombolysis.Columns.Add("Name", typeof(string));
dataThrombolysis.Columns.Add("Value", typeof(int));
double average = 0;
for (int i = 0; i < ThrombolysisDataTable.Rows.Count; i++)
{
if (!string.IsNullOrEmpty(ThrombolysisDataTable.Rows[i]["DNT"].ToString()))
{
average += Convert.ToDouble(ThrombolysisDataTable.Rows[i]["DNT"].ToString());
dataThrombolysis.Rows.Add(ThrombolysisDataTable.Rows[i]["DNT"], average / (i + 1));
}
}
Series seriesThrombolysis = new Series("DNT平均时间", ViewType.Line);
seriesThrombolysis.ValueDataMembers[0] = "Value";
seriesThrombolysis.ArgumentDataMember = "Name";
seriesThrombolysis.DataSource = dataThrombolysis;
chartControl_Patient.Series.Add(seriesThrombolysis);
seriesThrombolysis.LegendTextPattern = "{A}:{V}";
seriesThrombolysis.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;//显示标注标签
DataTable dataIntervene = new DataTable("table1");
dataIntervene.Columns.Add("Name", typeof(string));
dataIntervene.Columns.Add("Value", typeof(int));
double average1 = 0;
for (int i = 0; i < InterveneDataTable.Rows.Count; i++)
{
if (!string.IsNullOrEmpty(InterveneDataTable.Rows[i]["DPT"].ToString()))
{
average1 += Convert.ToDouble(InterveneDataTable.Rows[i]["DPT"].ToString());
dataIntervene.Rows.Add(InterveneDataTable.Rows[i]["DPT"], average1 / (i + 1));
}
}
Series seriesIntervene = new Series("DPT平均时间", ViewType.Line);
seriesIntervene.ValueDataMembers[0] = "Value";
seriesIntervene.ArgumentDataMember = "Name";
seriesIntervene.DataSource = dataIntervene;
chartControl3.Series.Add(seriesIntervene);
seriesIntervene.LegendTextPattern = "{A}:{V}";
seriesIntervene.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;//显示标注标签
DataTable dataIntervene1 = new DataTable("table1");
dataIntervene1.Columns.Add("Name", typeof(string));
dataIntervene1.Columns.Add("Value", typeof(double));
dataIntervene1.Rows.Add("卒中其他治疗总数", PatientDataTable.Rows.Count - InterveneDataTable.Rows.Count);
dataIntervene1.Rows.Add("卒中动脉溶栓/取栓/动脉桥接取栓总数", InterveneDataTable.Rows.Count);
Series seriesIntervene1 = new Series("卒中动脉溶栓/取栓/动脉桥接取栓统计", ViewType.Doughnut);
seriesIntervene1.ValueDataMembers[0] = "Value";
seriesIntervene1.ArgumentDataMember = "Name";
seriesIntervene1.DataSource = dataIntervene1;
chartControl2.Series.Add(seriesIntervene1);
seriesIntervene1.LegendTextPattern = "{A}:{V}";
seriesIntervene1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;//显示标注标签
}
catch (Exception ex)
{
}
}
}
}