113 lines
4.8 KiB
C#
113 lines
4.8 KiB
C#
|
using HL_FristAidPlatform_Help;
|
|||
|
using HL_FristAidPlatform_IDataBase;
|
|||
|
using HL_FristAidPlatform_Models;
|
|||
|
using SqlSugar;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace HL_FristAidPlatform_DataBase
|
|||
|
{
|
|||
|
public class T_Service_Trauma_TraumaIntervalDB: BaseDB, IT_Service_Trauma_TraumaInterval
|
|||
|
{
|
|||
|
public SqlSugarClient db = GetClient();
|
|||
|
|
|||
|
public List<TraumaIntervalStatisticsModel> GetTraumaIntervalStatistics(string hospitalGuid, string startTime, string endTime)
|
|||
|
{
|
|||
|
List<TraumaIntervalStatisticsModel> list = new List<TraumaIntervalStatisticsModel>();
|
|||
|
|
|||
|
int Month = (Convert.ToDateTime(endTime).Year - Convert.ToDateTime(startTime).Year) * 12 + (Convert.ToDateTime(endTime).Month - Convert.ToDateTime(startTime).Month);
|
|||
|
List<DateTime> monthList = new List<DateTime>();
|
|||
|
for (int i = 0; i < Month; i++)
|
|||
|
{
|
|||
|
string res = Convert.ToDateTime(startTime).AddMonths(i).Year + "-" + GetMonthZero(Convert.ToDateTime(startTime).AddMonths(i).Month) + "-01";
|
|||
|
DateTime dt = Convert.ToDateTime(res);
|
|||
|
monthList.Add(dt.AddDays(1 - dt.Day));
|
|||
|
}
|
|||
|
|
|||
|
var oneClass = db.Queryable<T_Service_Patient, T_Service_Trauma_Rescue>((a, b) => new JoinQueryInfos(
|
|||
|
JoinType.Left, a.GUID == b.PatientGuid))
|
|||
|
.Where((a, b) => a.HospitalGuid == hospitalGuid && a.SystemModuleID == 4 && a.DeleteFlag == 0
|
|||
|
&& a.CreationDate >= SqlFunc.ToDate(startTime) && a.CreationDate <= SqlFunc.ToDate(endTime))
|
|||
|
.Select((a, b) => new T_Service_PatientRescueModel {
|
|||
|
GUID = a.GUID,
|
|||
|
CreationDate=a.CreationDate,
|
|||
|
|
|||
|
BloodTransfusionInterval =b.BloodTransfusionInterval,
|
|||
|
ArtificialAirwayInterval=b.ArtificialAirwayInterval,
|
|||
|
EmergencyOperationInterval=b.EmergencyOperationInterval,
|
|||
|
|
|||
|
FastCTInterval=b.FastCTInterval,
|
|||
|
ChestXInterval=b.ChestXInterval,
|
|||
|
PelvisInterval=b.PelvisInterval,
|
|||
|
FASTInterval=b.FASTInterval,
|
|||
|
OtherXInterval=b.OtherXInterval
|
|||
|
|
|||
|
}).ToList();
|
|||
|
|
|||
|
if (oneClass != null)
|
|||
|
{
|
|||
|
for (int i = 0; i < monthList.Count; i++)
|
|||
|
{
|
|||
|
TraumaIntervalStatisticsModel model = new TraumaIntervalStatisticsModel();
|
|||
|
model.Month = monthList[i].ToString("yyyy-MM");
|
|||
|
model.AvgArtificialAirway = "0";
|
|||
|
model.AvgBloodTransfusion = "0";
|
|||
|
model.AvgEmergencyOperation = "0";
|
|||
|
double sum1 = 0;
|
|||
|
double sum2 = 0;
|
|||
|
double sum3 = 0;
|
|||
|
|
|||
|
var temponeClass=oneClass.Where(j => j.CreationDate >= SqlFunc.ToDate(monthList[i].ToString()) && j.CreationDate <= Convert.ToDateTime(SqlFunc.ToDate(monthList[i].ToString()).AddMonths(1).ToString("yyyy-MM-01")).AddDays(-1)).ToList();
|
|||
|
if (temponeClass.Count > 0)
|
|||
|
{
|
|||
|
foreach (var item in temponeClass)
|
|||
|
{
|
|||
|
if (!string.IsNullOrEmpty(item.BloodTransfusionInterval))
|
|||
|
{
|
|||
|
sum1 += int.Parse(item.BloodTransfusionInterval);
|
|||
|
}
|
|||
|
|
|||
|
if (!string.IsNullOrEmpty(item.ArtificialAirwayInterval))
|
|||
|
{
|
|||
|
sum2 += int.Parse(item.ArtificialAirwayInterval);
|
|||
|
}
|
|||
|
|
|||
|
if (!string.IsNullOrEmpty(item.EmergencyOperationInterval))
|
|||
|
{
|
|||
|
sum3 += int.Parse(item.EmergencyOperationInterval);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
model.AvgBloodTransfusion = Math.Round((double)sum1 / (double)temponeClass.Count(), 1) + "";
|
|||
|
model.AvgArtificialAirway = Math.Round((double)sum2 / (double)temponeClass.Count(), 1) + "";
|
|||
|
model.AvgEmergencyOperation = Math.Round((double)sum3 / (double)temponeClass.Count(), 1) + "";
|
|||
|
}
|
|||
|
list.Add(model);
|
|||
|
}
|
|||
|
}
|
|||
|
return list;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 计算月份
|
|||
|
/// </summary>
|
|||
|
/// <param name="month"></param>
|
|||
|
/// <returns></returns>
|
|||
|
private string GetMonthZero(int month)
|
|||
|
{
|
|||
|
if (month < 10)
|
|||
|
{
|
|||
|
return "0" + month;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return month.ToString();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|