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.Reflection; using System.Text; using System.Threading.Tasks; namespace HL_FristAidPlatform_DataBase { public class T_Service_ChestPain_PatientLogDB : BaseDB, IT_Service_ChestPain_PatientLog { public SqlSugarClient db = GetClient(); /// /// 获取患者列表 /// /// /// /// /// /// public PatientLogModel GetPatientLogList(string hospitalGuid, long systemId, string startTime, string endTime) { PatientLogModel model = new PatientLogModel(); List list = new List(); List> dataList = new List>(); list = db.Queryable ((a, b, c, d) => new JoinQueryInfos(JoinType.Left, a.GUID == b.PatientGuid, JoinType.Left, a.GUID == c.PatientGuid, JoinType.Left, a.GUID == d.PatientGuid)) .Where((a, b, c, d) => a.HospitalGuid == hospitalGuid && a.SystemModuleID == systemId && a.DeleteFlag == 0) .WhereIF(!SqlFunc.IsNullOrEmpty(startTime), (a, b, c, d) => a.CreationDate >= Convert.ToDateTime(startTime)) .WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b, c, d) => a.CreationDate < Convert.ToDateTime(endTime).AddDays(1)) .OrderBy((a, b, c, d) => a.CreationDate, OrderByType.Asc) .Select((a, b, c, d) => new PatientLogInfo() { Name = a.Name, Gender = SqlFunc.IF(a.Gender == 0).Return("未知").ElseIF(a.Gender == 1).Return("男").End("女"), Age = a.Age.ToString(), First_MC_Time = SqlFunc.IF(b.CW_Coming_Way_Code == "1").Return(b.CW_120_First_MC_Time).ElseIF(b.CW_Coming_Way_Code == "2").Return(b.CW_ZY_First_MC_Time).ElseIF(b.CW_Coming_Way_Code == "3").Return(b.CW_ZXLY_First_MC_Time).ElseIF(b.CW_Coming_Way_Code == "4").Return(b.CW_YNFB_First_MC_Time).End(""), CP_Diagnosis_Code = SqlFunc.IF(c.CP_Diagnosis_Code == "1").Return("STEMI").ElseIF(c.CP_Diagnosis_Code == "2").Return("NSTEMI").ElseIF(c.CP_Diagnosis_Code == "3").Return("UA").ElseIF(c.CP_Diagnosis_Code == "4").Return("主动脉夹层").ElseIF(c.CP_Diagnosis_Code == "5").Return("肺动脉栓塞").ElseIF(c.CP_Diagnosis_Code == "6").Return("非ACS心源性胸痛").ElseIF(c.CP_Diagnosis_Code == "7").Return("其它非心源性胸痛").ElseIF(c.CP_Diagnosis_Code == "8").Return("待查").End(""), First_Doctor_Name = SqlFunc.IF(b.CW_Coming_Way_Code == "1").Return(b.CW_120_First_Doctor_Name).ElseIF(b.CW_Coming_Way_Code == "2").Return(b.CW_ZY_First_Doctor_Name).ElseIF(b.CW_Coming_Way_Code == "3").Return(b.CW_ZXLY_First_Doctor_Name).ElseIF(b.CW_Coming_Way_Code == "4").Return(b.CW_YNFB_First_Doctor_Name).End(""), OutCome_Code = SqlFunc.IF(d.OutCome_Code == "1").Return("出院").ElseIF(d.OutCome_Code == "2").Return("转送到其他医院").ElseIF(d.OutCome_Code == "3").Return("转送到其他科室").ElseIF(d.OutCome_Code == "4").Return("死亡").End("") }).ToList(); if (list != null && list.Count > 0) { for (int i = 0; i < list.Count(); i++) { if (!string.IsNullOrEmpty(list[i].First_MC_Time)) list[i].First_MC_Time = Convert.ToDateTime(list[i].First_MC_Time).ToString("yyyy-MM-dd HH:mm"); if (!string.IsNullOrEmpty(list[i].First_MC_Time) && list[i].First_MC_Time == "1900-01-01 00:00") list[i].First_MC_Time = ""; List data = new List(); data.Add(list[i].Name); data.Add(list[i].Gender); data.Add(list[i].Age); data.Add(list[i].First_MC_Time); data.Add(list[i].CP_Diagnosis_Code); data.Add(list[i].First_Doctor_Name); data.Add(list[i].OutCome_Code); dataList.Add(data); } } List titleList = new List(); Type patientLog = typeof(PatientLogInfo); PropertyInfo[] properties = patientLog.GetProperties(); foreach (PropertyInfo property in properties) { //string propertyName = property.Name;//变量名称 //string propertyComment = GetPropertyComment(property);//变量注释 var comments = property.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), true); if (comments.Length > 0) { titleList.Add(((System.ComponentModel.DescriptionAttribute)comments[0]).Description); } } model.Title = titleList; model.DateList = dataList; model.PatientLogList = list; return model; } /// /// 读取方法 /// /// /// public static string GetPropertyComment(PropertyInfo property) { var comments = property.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), true); if (comments.Length > 0) { return ((System.ComponentModel.DescriptionAttribute)comments[0]).Description; } return string.Empty; } } }