171 lines
7.6 KiB
C#
171 lines
7.6 KiB
C#
using DevExpress.Utils;
|
|
using DevExpress.XtraCharts;
|
|
using DevExpress.XtraEditors;
|
|
using HL_FristAidPlatform_DTO;
|
|
using HL_FristAidPlatform_Public;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace HL_FristAidPlatform_ChestPain_Statistics
|
|
{
|
|
public partial class Form_llnessLevelStatistics : XtraForm
|
|
{
|
|
public Form_llnessLevelStatistics()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void Form_llnessLevelStatistics_Load(object sender, EventArgs e)
|
|
{
|
|
time_starTime.TimeValue = DateTime.Now.AddMonths(-5).ToString();
|
|
time_endTime.TimeValue = DateTime.Now.ToString();
|
|
GetStatisticsData();
|
|
}
|
|
|
|
private void simpleButton5_Click(object sender, EventArgs e)
|
|
{
|
|
time_starTime.TimeValue = DateTime.Now.AddMonths(-2).ToString();
|
|
time_endTime.TimeValue = DateTime.Now.ToString();
|
|
GetStatisticsData();
|
|
}
|
|
|
|
private void simpleButton1_Click(object sender, EventArgs e)
|
|
{
|
|
time_starTime.TimeValue = DateTime.Now.AddMonths(-5).ToString();
|
|
time_endTime.TimeValue = DateTime.Now.ToString();
|
|
GetStatisticsData();
|
|
}
|
|
|
|
private void simpleButton4_Click(object sender, EventArgs e)
|
|
{
|
|
time_starTime.TimeValue = DateTime.Now.AddMonths(-11).ToString();
|
|
time_endTime.TimeValue = DateTime.Now.ToString();
|
|
GetStatisticsData();
|
|
}
|
|
|
|
private void simpleButton2_Click(object sender, EventArgs e)
|
|
{
|
|
GetStatisticsData();
|
|
}
|
|
|
|
public void GetStatisticsData()
|
|
{
|
|
if (string.IsNullOrEmpty(time_starTime.TimeValue))
|
|
{
|
|
XtraMessageBox.Show("查询起始时间不能为空");
|
|
return;
|
|
}
|
|
if (string.IsNullOrEmpty(time_endTime.TimeValue))
|
|
{
|
|
XtraMessageBox.Show("查询结束时间不能为空");
|
|
return;
|
|
}
|
|
chartControl1.Series.Clear();
|
|
chartControl1.Titles.Clear();
|
|
Series series1 = new Series("濒危", ViewType.Bar);
|
|
Series series2 = new Series("危重", ViewType.Bar);
|
|
Series series3 = new Series("急症", ViewType.Bar);
|
|
Series series4 = new Series("非急症", ViewType.Bar);
|
|
Series series5 = new Series("已死亡", ViewType.Bar);
|
|
ChartTitle chartTitle1 = new ChartTitle();
|
|
chartTitle1.Text = "近六月病情程度趋势";
|
|
chartControl1.Titles.Add(chartTitle1);
|
|
IllnessLevelDTO model = DBHelpClass.GetDateModel<IllnessLevelDTO>(string.Format("api/service/T_Service_IllnessLevel/GetIllnessLevelStatistics?hospitalGuid={0}&systemModuleID={1}&startTime={2}&endTime={3}&flag={4}", Information.Hospital.GUID, long.Parse(PublicClassForDataBase.Config10001), Convert.ToDateTime(time_starTime.TimeValue).ToString("yyyy-MM") + "-01", Convert.ToDateTime(time_endTime.TimeValue).ToString("yyyy-MM") + "-01", 0));
|
|
if (model != null)
|
|
{
|
|
lbl_EndangeredCount.Text = model.Endangered.ToString();
|
|
lbl_CriticalCount.Text = model.Critical.ToString();
|
|
lbl_EmergencycaseCount.Text = model.Emergencycase.ToString();
|
|
lbl_NoEmergencycaseCount.Text = model.NoEmergencycase.ToString();
|
|
lbl_DeadCount.Text = model.Dead.ToString();
|
|
|
|
chartControl2.Series.Clear();
|
|
chartControl2.Titles.Clear();
|
|
Series series = new Series("占比统计", ViewType.Pie);
|
|
series.Points.Add(new SeriesPoint("濒危", model.Endangered));
|
|
series.Points.Add(new SeriesPoint("危重", model.Critical));
|
|
series.Points.Add(new SeriesPoint("急症", model.Emergencycase));
|
|
series.Points.Add(new SeriesPoint("非急症", model.NoEmergencycase));
|
|
series.Points.Add(new SeriesPoint("已死亡", model.Dead));
|
|
ChartTitle chartTitle11 = new ChartTitle();
|
|
chartTitle11.Text = "占比统计";
|
|
chartControl2.Titles.Add(chartTitle1);
|
|
series.Label.TextPattern = "{A}: {VP:p0}";
|
|
((PieSeriesLabel)series.Label).Position = PieSeriesLabelPosition.TwoColumns;
|
|
((PieSeriesLabel)series.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;
|
|
chartControl2.Series.AddRange(series);
|
|
|
|
if (model.monthvalue != null && model.monthvalue.Count() > 0)
|
|
for (int j = 0; j < model.monthvalue.Count(); j++)
|
|
{
|
|
for (int i = 0; i < model.monthvalue.Count; i++)
|
|
{
|
|
series1.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].Endangered));
|
|
series2.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].Critical));
|
|
series3.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].Emergencycase));
|
|
series4.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].NoEmergencycase));
|
|
series5.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].Dead));
|
|
}
|
|
}
|
|
}
|
|
|
|
BarSeriesView bsv = (BarSeriesView)series1.View;
|
|
bsv.BarWidth = 0.2;
|
|
BarSeriesView bsv1 = (BarSeriesView)series2.View;
|
|
bsv1.BarWidth = 0.2;
|
|
BarSeriesView bsv2 = (BarSeriesView)series3.View;
|
|
bsv2.BarWidth = 0.2;
|
|
BarSeriesView bsv3 = (BarSeriesView)series4.View;
|
|
bsv3.BarWidth = 0.2;
|
|
BarSeriesView bsv4 = (BarSeriesView)series5.View;
|
|
bsv4.BarWidth = 0.2;
|
|
chartControl1.Series.AddRange(new Series[] { series1, series2, series3, series4, series5 });
|
|
|
|
XYDiagram xyDia = chartControl1.Diagram as XYDiagram;
|
|
xyDia.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Manual;
|
|
|
|
int max = 0;
|
|
for (int i = 0; i < model.monthvalue.Count(); i++)
|
|
{
|
|
if (model.monthvalue[i].Endangered > max)
|
|
max = model.monthvalue[i].Endangered;
|
|
if (model.monthvalue[i].Critical > max)
|
|
max = model.monthvalue[i].Critical;
|
|
if (model.monthvalue[i].Emergencycase > max)
|
|
max = model.monthvalue[i].Emergencycase;
|
|
if (model.monthvalue[i].NoEmergencycase > max)
|
|
max = model.monthvalue[i].NoEmergencycase;
|
|
if (model.monthvalue[i].Dead > max)
|
|
max = model.monthvalue[i].Dead;
|
|
}
|
|
|
|
int tempone = max / 5;
|
|
int temptwo = max % 5;
|
|
if (temptwo == 0)
|
|
{
|
|
max = tempone * 5;
|
|
}
|
|
else
|
|
{
|
|
max = (tempone + 1) * 5;
|
|
}
|
|
if (max == 0)
|
|
max = 10;
|
|
xyDia.AxisY.WholeRange.MaxValue = max;
|
|
xyDia.AxisY.NumericScaleOptions.GridOffset = 0;
|
|
xyDia.AxisY.NumericScaleOptions.GridSpacing = max / 5;
|
|
|
|
xyDia.AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month;
|
|
((XYDiagram)(chartControl1.Diagram)).EnableAxisXScrolling = true;//启用横轴滚动条
|
|
}
|
|
|
|
}
|
|
}
|