StableVersion4.3/HL_FristAidPlatform_Apoplexy/Form_ArterialPuncturerate.cs

111 lines
3.9 KiB
C#
Raw Permalink Normal View History

2024-03-11 09:47:34 +08:00
using DevExpress.XtraCharts;
using DevExpress.XtraEditors;
using HL_FristAidPlatform_Public;
using System;
using System.Collections.Generic;
namespace HL_FristAidPlatform_Apoplexy
{
public partial class Form_ArterialPuncturerate : XtraForm
{
public string startTime;
public string endTime;
public Form_ArterialPuncturerate()
{
InitializeComponent();
}
private void Form_ArterialPuncturerate_Load(object sender, EventArgs e)
{
timeControl1.TimeValue = DateTime.Now.AddMonths(-2).ToString("yyyy-MM-dd");
timeControl2.TimeValue = DateTime.Now.ToString("yyyy-MM-dd");
GetPunctureRate(Convert.ToDateTime(timeControl1.TimeValue), Convert.ToDateTime(timeControl2.TimeValue).AddDays(1), Information.Hospital.GUID);
}
public void GetPunctureRate(DateTime startT, DateTime endT, string hospitalGuid)
{
try
{
chartControl1.Series.Clear();
Series series1 = new Series("", ViewType.Bar);
series1.Points.Clear();
string Url = string.Format("/api/service/T_Service_Apoplexy_Statistics/GetPunctureRate?startTime={0}&endTime={1}&hospitalGuid={2}", startT, endT, hospitalGuid);
List<ApoplexyStatisticsModel> list = DBHelpClass.GetList<ApoplexyStatisticsModel>(Url);
if (list != null)
{
for (int i = 0; i < list.Count; i++)
{
series1.Points.Add(new SeriesPoint("日期" + " " + list[i].Key.ToString(), new double[] { Convert.ToDouble(list[i].Value.ToString()) }));
}
}
//调整柱状图柱体宽度
BarSeriesView bsv = (BarSeriesView)series1.View;
bsv.BarWidth = 0.2;
chartControl1.Series.Add(series1);
XYDiagram xyDia = chartControl1.Diagram as XYDiagram;
xyDia.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Manual;
//设置数据在图表的格式
int max = 0;
for (int i = 0; i < list.Count; i++)
{
if (double.Parse(list[i].Value) > max)
max = (int)(double.Parse(list[i].Value));
}
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;
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "获取脑梗死患者动脉穿刺率小于90分钟统计数据\r\n" + ex);
}
}
private void simpleButton1_Click(object sender, EventArgs e)
{
//DateTime start = Convert.ToDateTime(monthList[i] + "-01");
//DateTime end = Convert.ToDateTime(monthList[i]).AddMonths(1).AddDays(-1);
startTime = timeControl1.TimeValue;
endTime = timeControl2.TimeValue;
GetPunctureRate(Convert.ToDateTime(startTime), Convert.ToDateTime(endTime).AddDays(1), Information.Hospital.GUID);
}
public class ApoplexyStatisticsModel
{
/// <summary>
///
/// </summary>
public string Key { get; set; }
/// <summary>
///
/// </summary>
public string Value { get; set; }
/// <summary>
///
/// </summary>
public int Number { get; set; }
}
}
}