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("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) { } } } }