StableVersion4.3/SC_FristAidPlatform_ChestPa.../Form_StatisticsSTEMI.cs

209 lines
8.4 KiB
C#

using DevExpress.XtraCharts;
using DevExpress.XtraEditors;
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 SC_FristAidPlatform_ChestPainUnit
{
public partial class Form_StatisticsSTEMI : XtraForm
{
public Form_StatisticsSTEMI()
{
InitializeComponent();
}
private void Form_StatisticsSTEMI_Load(object sender, EventArgs e)
{
//DateTime dt = DateTime.Now; //当前时间
//DateTime startMonth = dt.AddDays(1 - dt.Day);//本月月初
//DateTime endMonth = startMonth.AddMonths(1).AddDays(-1); //本月月末
//timeControl1.TimeValue = startMonth.ToString("yyyy-MM-dd HH:mm");
//timeControl2.TimeValue = endMonth.ToString("yyyy-MM-dd HH:mm");
timeControl1.TimeValue = DateTime.Now.AddMonths(-12).ToString("yyyy-MM-dd HH:mm");
timeControl2.TimeValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
GetSTEMIStatistics1(timeControl1.TimeValue, timeControl2.TimeValue);
GetSTEMIStatistics2(timeControl1.TimeValue, timeControl2.TimeValue);
}
public void GetSTEMIStatistics1(string startTime,string endTime)
{
try
{
int max = 0;
int sum = 0;
chartControl1.Series.Clear();
chartControl1.Titles.Clear();
ChartTitle titles = new ChartTitle();
titles.Text = "STEMI患者到院后30分钟内在本机构溶栓统计";
titles.TextColor = Color.FromArgb(23, 35, 61);
titles.Indent = 1;
titles.Font = new Font("微软雅黑", 16, FontStyle.Regular);
titles.Dock = ChartTitleDockStyle.Top;
titles.Indent = 0;
titles.Alignment = StringAlignment.Center;
chartControl1.Titles.Add(titles);
List<CaseStatisticsSTEMIModel> list = DBHelpClass.GetList<CaseStatisticsSTEMIModel>(string.Format("api/service/ChestPainUnitController2/GetCaseStatisticsSTEMI?hospitalGuid={0}&startTime={1}&endTime={2}", Information.Hospital.GUID, startTime, endTime));
chartControl1.Series.Clear();
Series series1 = new Series("个数统计", ViewType.Spline);
series1.Points.Clear();
if (list != null && list.Count > 0)
{
for (int i = 0; i < list.Count; i++)
{
sum = 0;
for (int j = 0; j < list.Count(); j++)
{
sum += list.Count;
}
if (sum > max)
max = sum;
series1.Points.Add(new SeriesPoint(list[i].Month, list[i].Count));
}
chartControl1.Series.AddRange(series1);
XYDiagram xyDia = chartControl1.Diagram as XYDiagram;
xyDia.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Manual;
xyDia.AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month;
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;
((XYDiagram)(chartControl1.Diagram)).EnableAxisXScrolling = true;//启用横轴滚动条
}
}
catch (Exception ex)
{
throw ex;
}
}
public void GetSTEMIStatistics2(string startTime, string endTime)
{
try
{
int max = 0;
int sum = 0;
chartControl2.Series.Clear();
chartControl2.Titles.Clear();
ChartTitle titles = new ChartTitle();
titles.Text = "STEMI患者实施转运PCI和转运溶栓30分钟内转出统计";
titles.TextColor = Color.FromArgb(23, 35, 61);
titles.Indent = 1;
titles.Font = new Font("微软雅黑", 16, FontStyle.Regular);
titles.Dock = ChartTitleDockStyle.Top;
titles.Indent = 0;
titles.Alignment = StringAlignment.Center;
chartControl2.Titles.Add(titles);
List<CaseStatisticsSTEMIModel> list = DBHelpClass.GetList<CaseStatisticsSTEMIModel>(string.Format("api/service/ChestPainUnitController2/GetCaseStatisticsSTEMITransfer?hospitalGuid={0}&startTime={1}&endTime={2}", Information.Hospital.GUID, startTime, endTime));
chartControl2.Series.Clear();
Series series1 = new Series("个数统计", ViewType.Spline);
series1.Points.Clear();
if (list != null && list.Count > 0)
{
for (int i = 0; i < list.Count; i++)
{
sum = 0;
for (int j = 0; j < list.Count(); j++)
{
sum += list.Count;
}
if (sum > max)
max = sum;
series1.Points.Add(new SeriesPoint(list[i].Month, list[i].Count));
}
chartControl2.Series.AddRange(series1);
XYDiagram xyDia = chartControl2.Diagram as XYDiagram;
xyDia.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Manual;
xyDia.AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month;
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;
((XYDiagram)(chartControl2.Diagram)).EnableAxisXScrolling = true;//启用横轴滚动条
}
}
catch (Exception ex)
{
throw ex;
}
}
public class CaseStatisticsSTEMIModel
{
/// <summary>
/// 月份
/// </summary>
public string Month { get; set; }
/// <summary>
/// 个数
/// </summary>
public string Count { get; set; }
}
private void simpleButton1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(timeControl1.TimeValue))
{
XtraMessageBox.Show("开始时间不能为空!");
return;
}
if (string.IsNullOrEmpty(timeControl2.TimeValue))
{
XtraMessageBox.Show("截至时间不能为空!");
return;
}
if (!string.IsNullOrEmpty(timeControl2.TimeValue)&& !string.IsNullOrEmpty(timeControl1.TimeValue))
{
if (DateTime.Compare(Convert.ToDateTime(timeControl1.TimeValue), Convert.ToDateTime(timeControl2.TimeValue)) > 0)
{
XtraMessageBox.Show("开始时间不能大于截至时间!");
return;
}
else
{
GetSTEMIStatistics1(timeControl1.TimeValue, timeControl2.TimeValue);
GetSTEMIStatistics2(timeControl1.TimeValue, timeControl2.TimeValue);
}
}
}
}
}