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(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 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 caseList = DBHelpClass.GetList(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 list = DBHelpClass.GetList(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; } } } }