StableVersion4.3/HL_FristAidPlatform_Critica.../Form_Index.cs

164 lines
8.1 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.Linq;
namespace HL_FristAidPlatform_CriticalPregnant
{
public partial class Form_Index : XtraForm
{
public Form_Index()
{
InitializeComponent();
}
private void Form_Index_Load(object sender, System.EventArgs e)
{
MaternalDTO dto = DBHelpClass.GetDateModel<MaternalDTO>(string.Format("api/service/T_Service_CriticalPregnant_StatisticsSummary/GetCaseDataModel?hospitalGuid={0}", Information.Hospital.GUID));
if (dto != null)
{
lbl_ToDayCaseCount.Text = dto.ToDayCount.ToString();
lbl_WeekCount.Text = dto.WeekCount.ToString();
lbl_ThisMonthCount.Text = dto.MonthCount.ToString();
lbl_QuarterCount.Text = dto.QuarterCount.ToString();
lbl_ThisYear.Text = dto.YearCount.ToString();
lbl_Total.Text = dto.TotalCount.ToString();
lbl_GradedCount.Text = dto.GradedCount.ToString();
lbl_UnGradedCount.Text = (dto.TotalCount - dto.GradedCount).ToString();
lbl_TransferCount.Text = dto.TransferCount.ToString();
lbl_UnTransferCount.Text = (dto.TotalCount - dto.TransferCount).ToString();
chartControl2.Series.Clear();
Series grade = new Series("", ViewType.Pie);
grade.Points.Clear();
grade.Points.Add(new SeriesPoint("已评", dto.GradedCount));
grade.Points.Add(new SeriesPoint("未评", dto.TotalCount - dto.GradedCount));
grade.Label.TextPattern = "{A}: {VP:p0}";
chartControl2.Series.AddRange(grade);
chartControl3.Series.Clear();
Series transfer = new Series("", ViewType.Pie);
transfer.Points.Clear();
transfer.Points.Add(new SeriesPoint("转诊", dto.TransferCount));
transfer.Points.Add(new SeriesPoint("未诊", dto.TotalCount - dto.TransferCount));
transfer.Label.TextPattern = "{A}: {VP:p0}";
chartControl3.Series.AddRange(transfer);
}
Dictionary<object, object> dictionary = DBHelpClass.GetDictionary(string.Format("api/service/T_Service_CriticalPregnant_StatisticsSummary/GetComeHospitalWay?hospitalGuid={0}", Information.Hospital.GUID));
if (dictionary != null)
{
lbl_call.Text = dictionary["call"].ToString();
lbl_zxly.Text = dictionary["zxly"].ToString();
lbl_zy.Text = dictionary["zy"].ToString();
lbl_ynfb.Text = dictionary["ynfb"].ToString();
chartControl1.Series.Clear();
Series comehospitalway = new Series("", ViewType.Pie);
comehospitalway.Points.Clear();
comehospitalway.Points.Add(new SeriesPoint("120来院", int.Parse(dictionary["call"].ToString())));
comehospitalway.Points.Add(new SeriesPoint("自行来院", int.Parse(dictionary["zxly"].ToString())));
comehospitalway.Points.Add(new SeriesPoint("转院", int.Parse(dictionary["zy"].ToString())));
comehospitalway.Points.Add(new SeriesPoint("院内发病", int.Parse(dictionary["ynfb"].ToString())));
comehospitalway.Label.TextPattern = "{A}: {VP:p0}";
chartControl1.Series.AddRange(comehospitalway);
}
List<KeyValue> caseList = DBHelpClass.GetList<KeyValue>(string.Format("api/service/T_Service_CriticalPregnant_StatisticsSummary/GetCriticalPregnantData?hospitalGuid={0}&startTime={1}&endTime={2}", Information.Hospital.GUID, DateTime.Now.AddMonths(-5).ToString("yyyy-MM-dd"), DateTime.Now.ToString()));
if (caseList != null && caseList.Count > 0)
{
chartControl4.Series.Clear();
Series caselst = new Series("", ViewType.Line);
caselst.Points.Clear();
ChartTitle casetitles = new ChartTitle();
casetitles.Text = "病例增长趋势";
casetitles.TextColor = System.Drawing.Color.Black;
casetitles.Dock = ChartTitleDockStyle.Top;
casetitles.Indent = 0;
chartControl4.Titles.Add(casetitles);
for (int i = 0; i < caseList.Count; i++)
{
caselst.Points.Add(new SeriesPoint(caseList[i].key, caseList[i].value));
}
int max =int.Parse(caseList.Max(i => i.value));
int tempone = max / 5;
int temptwo = max % 5;
if (temptwo == 0)
{
max = tempone * 5;
}
else
{
max = (tempone + 1) * 5;
}
chartControl4.Series.AddRange(caselst);
//((LineSeriesView)caselst.View).MarkerVisibility = DefaultBoolean.True;
//((LineSeriesView)caselst.View).LineMarkerOptions.Kind = MarkerKind.Circle;
XYDiagram xyDia = chartControl4.Diagram as XYDiagram;
xyDia.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Manual;
xyDia.AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month;
xyDia.AxisY.WholeRange.MaxValue=max;
xyDia.AxisY.NumericScaleOptions.GridOffset = 0;
xyDia.AxisY.NumericScaleOptions.GridSpacing = max / 5;
((XYDiagram)(chartControl4.Diagram)).EnableAxisXScrolling = true;//启用横轴滚动条
}
GetPregnantTransfer();
}
public void GetPregnantTransfer()
{
chartControl5.Series.Clear();
chartControl5.Titles.Clear();
Series series1 = new Series("总患者人数", ViewType.Bar);
Series series2 = new Series("转院总人数", ViewType.Bar);
ChartTitle chartTitle1 = new ChartTitle();
chartTitle1.Text = "近六月患者转院趋势";
chartControl5.Titles.Add(chartTitle1);
List<PregnantTransferTrendDTO> list = DBHelpClass.GetList<PregnantTransferTrendDTO>(string.Format("api/service/T_Service_CriticalPregnant_StatisticsSummary/GetPregnantTransferTrend?hospitalGuid={0}&startTime={1}&endTime={2}", Information.Hospital.GUID, DateTime.Now.AddMonths(-5).ToString("yyyy-MM-dd"), DateTime.Now.ToString(), 0));
if (list != null&& list.Count>0)
{
for (int i = 0; i < list.Count; i++)
{
series1.Points.Add(new SeriesPoint(list[i].Month, list[i].SumCount));
series2.Points.Add(new SeriesPoint(list[i].Month, list[i].TransferCount));
}
}
BarSeriesView bsv = (BarSeriesView)series1.View;
bsv.BarWidth = 0.2;
BarSeriesView bsv1 = (BarSeriesView)series2.View;
bsv1.BarWidth = 0.2;
int max = int.Parse(list.Max(i => i.SumCount));
int tempone = max / 5;
int temptwo = max % 5;
if (temptwo == 0)
{
max = tempone * 5;
}
else
{
max = (tempone + 1) * 5;
}
chartControl5.Series.AddRange(new Series[] { series1, series2});
XYDiagram xyDia = chartControl5.Diagram as XYDiagram;
xyDia.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Manual;
xyDia.AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month;
xyDia.AxisY.WholeRange.MaxValue = max;
xyDia.AxisY.NumericScaleOptions.GridOffset = 0;
xyDia.AxisY.NumericScaleOptions.GridSpacing = max / 5;
((XYDiagram)(chartControl5.Diagram)).EnableAxisXScrolling = true;//启用横轴滚动条
}
public class KeyValue
{
public string key { get; set; }
public string value { get; set; }
}
}
}