164 lines
8.1 KiB
C#
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; }
|
|
}
|
|
}
|
|
}
|