StableVersion4.3/HL_FristAidPlatform_Apoplexy/Form_ArterialPuncturerate.cs

111 lines
3.9 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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; }
}
}
}