using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_Help.Model;
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_BaseInfoDB : BaseDB, IT_Service_Trauma_BaseInfo
{
public SqlSugarClient db = GetClient();
///
/// 保存创伤患者
///
///
///
///
public bool SaveTraumaPatientInfo(T_Service_Patient patient, T_Service_Trauma_BaseInfo info)
{
try
{
db.Ado.BeginTran();
db.Insertable(patient).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
db.Insertable(info).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
if (info.ComeHosptialWay == "1" || info.ComeHosptialWay == "2")
{
T_Service_Trauma_FirstAidInfo firstAidInfo = new T_Service_Trauma_FirstAidInfo();
firstAidInfo.GUID = Guid.NewGuid().ToString();
firstAidInfo.PatientGuid = patient.GUID;
db.Insertable(firstAidInfo).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
T_Service_Trauma_Rescue rescue = new T_Service_Trauma_Rescue();
rescue.GUID = Guid.NewGuid().ToString();
rescue.PatientGuid = patient.GUID;
db.Insertable(rescue).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
if (info.ComeHosptialWay == "3" || info.ComeHosptialWay == "4" || info.ComeHosptialWay == "5")
{
T_Service_Trauma_Rescue rescue = new T_Service_Trauma_Rescue();
rescue.GUID = Guid.NewGuid().ToString();
rescue.PatientGuid = patient.GUID;
db.Insertable(rescue).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
T_Service_Trauma_ReceiveInfo receiveInfo = new T_Service_Trauma_ReceiveInfo();
receiveInfo.GUID = Guid.NewGuid().ToString();
receiveInfo.PatientGuid = patient.GUID;
db.Insertable(receiveInfo).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
db.Ado.CommitTran();
return true;
}
catch (Exception ex)
{
db.Ado.RollbackTran();
Help.WriteErrorLog("保存创伤患者(SaveTraumaPatientInfo)", ex.ToString());
return false;
}
}
public bool SaveTraumaPatientInfoForTriage(T_Service_Trauma_BaseInfo info)
{
try
{
db.Ado.BeginTran();
db.Insertable(info).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
if (info.ComeHosptialWay == "1" || info.ComeHosptialWay == "2")
{
T_Service_Trauma_FirstAidInfo firstAidInfo = new T_Service_Trauma_FirstAidInfo();
firstAidInfo.GUID = Guid.NewGuid().ToString();
firstAidInfo.PatientGuid = info.PatientGuid;
db.Insertable(firstAidInfo).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
T_Service_Trauma_Rescue rescue = new T_Service_Trauma_Rescue();
rescue.GUID = Guid.NewGuid().ToString();
rescue.PatientGuid = info.PatientGuid;
db.Insertable(rescue).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
if (info.ComeHosptialWay == "3" || info.ComeHosptialWay == "4" || info.ComeHosptialWay == "5")
{
T_Service_Trauma_Rescue rescue = new T_Service_Trauma_Rescue();
rescue.GUID = Guid.NewGuid().ToString();
rescue.PatientGuid = info.PatientGuid;
db.Insertable(rescue).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
T_Service_Trauma_ReceiveInfo receiveInfo = new T_Service_Trauma_ReceiveInfo();
receiveInfo.GUID = Guid.NewGuid().ToString();
receiveInfo.PatientGuid = info.PatientGuid;
db.Insertable(receiveInfo).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
db.Ado.CommitTran();
return true;
}
catch (Exception ex)
{
db.Ado.RollbackTran();
Help.WriteErrorLog("保存创伤患者(SaveTraumaPatientInfoForTriage)", ex.ToString());
return false;
}
}
///
/// 创伤患者列表
///
///
///
///
///
///
///
///
///
///
///
public TableModel GetTraumaPatientList(string hospitalGuid, long systemId, string name, int gender, string illness, string startTime, string endTime, int pageIndex, int pageSize, string GreenWay, string eventID)
{
int totalNumber = 0;
TableModel t = new TableModel();
List list = new List();
list = db.Queryable
((a, b, c) => new JoinQueryInfos(JoinType.Left, a.GUID == b.PatientGuid, JoinType.Left, b.EventID == c.ID + ""))
.Where((a, b, c) => a.HospitalGuid == hospitalGuid && a.DeleteFlag == 0 && a.SystemModuleID == systemId)
.WhereIF(!SqlFunc.IsNullOrEmpty(name), (a, b, c) => a.Name.Contains(name))
.WhereIF(gender > -1, (a, b, c) => a.Gender == gender)
.WhereIF(!SqlFunc.IsNullOrEmpty(illness) && illness != "-1", (a, b, c) => b.IllnessLevel == illness)
.WhereIF(!SqlFunc.IsNullOrEmpty(startTime), (a, b, c) => a.CreationDate >= Convert.ToDateTime(startTime))
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b, c) => a.CreationDate <= Convert.ToDateTime(endTime).AddDays(1))
.WhereIF(!SqlFunc.IsNullOrEmpty(GreenWay), (a, b, c) => a.IsGreenWay == GreenWay)
.WhereIF(!SqlFunc.IsNullOrEmpty(eventID), (a, b, c) => b.EventID == eventID)
.OrderBy((a) => a.CreationDate, OrderByType.Desc)
.OrderBy((a) => a.ID, OrderByType.Asc)
.Select((a, b, c) => new TraumaPatientListModel
{
ID = a.ID,
GUID = a.GUID,
Name = a.Name,
Gender = a.Gender,
Age = a.Age,
CreationDate = a.CreationDate,
MPDS = b.MPDS,
MPDSContent = b.MPDSContent,
MPDSType = b.MPDSType,
IllnessLevel = b.IllnessLevel,
ComeHosptialWay = b.ComeHosptialWay,
ZXLYComeHosptialWay = b.ZXLYComeHosptialWay,
HosptialName = b.HosptialName,
FollowingDoctor = b.FollowingDoctor,
FollowingNurse = b.FollowingNurse,
IsGreenWay = a.IsGreenWay,
EventName = b.EventName,
EventIDName = c.ParentName,
EmergencyState = a.EmergencyState
}).ToPageList(pageIndex, pageSize, ref totalNumber);
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = totalNumber;
t.Data = list;
t.Msg = "成功";
return t;
}
///
/// 获取创伤患者基本信息
///
///
///
public TraumaPatientIBasenfoModel GetTraumaPatientBaseInfo(string guid)
{
return db.Queryable
((a, b, c, e, f, g) => new JoinQueryInfos(
JoinType.Left, a.GUID == b.PatientGuid,
JoinType.Left, a.GUID == c.PatientGuid,
JoinType.Left, a.Province == e.ProvinceName,
JoinType.Left, a.City == f.CityName,
JoinType.Left, a.Area == g.CountyName))
.Where((a, b, c, e, f, g) => a.GUID == guid && a.DeleteFlag == 0)
.Select((a, b, c, e, f, g) => new TraumaPatientIBasenfoModel()
{
ID = a.ID,
GUID = a.GUID,
Name = a.Name,
Age = a.Age,
Gender = a.Gender,
Category = a.Category,
IdentityCard = a.IdentityCard,
EmergencyContact = a.EmergencyContact,
EmergencyContactPhone = a.EmergencyContactPhone,
Province = a.Province,
City = a.City,
Area = a.Area,
Address = a.Address,
IllnessLevel = b.IllnessLevel,
MPDSType = b.MPDSType,
MPDS = b.MPDS,
MPDSContent = b.MPDSContent,
ComeHosptialWay = b.ComeHosptialWay,
ZXLYComeHosptialWay = b.ZXLYComeHosptialWay,
HosptialName = b.HosptialName,
FollowingDoctor = b.FollowingDoctor,
FollowingNurse = b.FollowingNurse,
CardNumber = b.CardNumber,
CardType = b.CardType,
AttackAddress = b.AttackAddress,
ReceiveDepartment = c.ReceiveDepartment,
OutpatientID = c.OutpatientID,
AttendingDoctor = c.AttendingDoctor,
AttendingNurse = c.AttendingNurse,
//InpatientID = c.InpatientID,
OtherComeHosptialWay = b.OtherComeHosptialWay,
AmbulanceType = b.AmbulanceType,
ArriveEmergencyTime = c.ArriveEmergencyTime,
ArriveOutpatientTime = c.ArriveOutpatientTime,
CallTraumaTeam = b.CallTraumaTeam,
EarlyWarning = b.EarlyWarning,
ProvinceCode = SqlFunc.Subqueryable().Where(s => s.ProvinceName == a.Province).Select(s => s.ProvinceCode),
CityCode = SqlFunc.Subqueryable().InnerJoin((city, Province) => city.ProvinceCode == Province.ProvinceCode && Province.ProvinceName == a.Province && city.CityName == a.City).Select(city => city.CityCode),
AreaCode = SqlFunc.Subqueryable().InnerJoin((county, city) => county.CityCode == city.CityCode && city.CityName == a.City && county.CountyName == a.Area).Select(county => county.CountyCode),
Credentials_Type = a.Credentials_Type,
EventID = b.EventID,
EventName = b.EventName,
EmergencyState = a.EmergencyState
}).First();
}
///
///
///
///
///
public T_Service_Trauma_BaseInfo GetPatientGUID(string guid)
{
return db.Queryable().Where(i => i.PatientGuid == guid).First();
}
///
/// 保存创伤患者基本信息
///
///
///
///
public bool SaveTraumaPatientBaseInfo(T_Service_Patient patient, T_Service_Trauma_BaseInfo info, T_Service_Trauma_ReceiveInfo receiveInfo)
{
try
{
db.Ado.BeginTran();
db.Updateable(patient).UpdateColumns(it => new { it.Name, it.Age, it.Gender, it.Category, it.EmergencyContact, it.EmergencyContactPhone, it.Province, it.City, it.Area, it.Address, it.IdentityCard, it.Credentials_Type }).ExecuteCommand();
db.Updateable(info).UpdateColumns(it => new { it.ComeHosptialWay, it.FollowingDoctor, it.FollowingNurse, it.HosptialName, it.IllnessLevel, it.MPDS, it.MPDSType, it.OtherComeHosptialWay, it.CardNumber, it.CardType, it.AttackAddress, it.MPDSContent, it.AmbulanceType, it.ZXLYComeHosptialWay, it.EarlyWarning, it.CallTraumaTeam, it.EventID }).ExecuteCommand();
if (!SqlFunc.IsNullOrEmpty(receiveInfo.GUID))
{
db.Updateable(receiveInfo).UpdateColumns(it => new { it.ReceiveDepartment, it.AttendingDoctor, it.AttendingNurse, it.OutpatientID, it.ArriveEmergencyTime, it.ArriveOutpatientTime }).ExecuteCommand();
}
else
{
receiveInfo.GUID = Guid.NewGuid().ToString();
db.Insertable(receiveInfo).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
db.Ado.CommitTran();
return true;
}
catch (Exception ex)
{
db.Ado.RollbackTran();
Help.WriteErrorLog("保存创伤患者基本信息(SaveTraumaPatientBaseInfo)", ex.ToString());
return false;
}
}
///
/// 获取未评分患者列表
///
///
///
///
///
/// 0 TI评分 1 GCS评分 2 ISS评分
///
///
///
public TableModel GetUNGradStaisicsList(string hospitalGuid, string starTime, string endTime, long systemId, int type, int pageIndex, int pageSize)
{
if (!string.IsNullOrEmpty(starTime))
starTime = starTime + "-01";
if (!string.IsNullOrEmpty(endTime))
endTime = endTime + "-01";
int totalNumber = 0;
List list = new List();
if (type == 0)
{
list = db.Queryable
((a, b, c, d) => new JoinQueryInfos(JoinType.Inner, a.GUID == b.PatientGuid,
JoinType.Inner, a.GUID == c.PatientGuid,
JoinType.Left, a.GUID == d.PatientGuid))
.Where((a, b, c, d) => a.HospitalGuid == hospitalGuid && a.SystemModuleID == systemId && a.DeleteFlag == 0)
.Where((a, b, c, d) => SqlFunc.IsNullOrEmpty(d.TISum))
.Where((a, b, c, d) => SqlFunc.IsNullOrEmpty(SqlFunc.Subqueryable().Where(s => s.PatientGuid == a.GUID).OrderByDesc(s => s.CreationDate).Select(s => s.AIS)))
.WhereIF(!SqlFunc.IsNullOrEmpty(starTime), (a, b, c, d) => a.CreationDate >= SqlFunc.ToDate(starTime))
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b, c, d) => a.CreationDate <= SqlFunc.ToDate(endTime).AddMonths(1))
.Select((a, b, c, d) => new UNGradStaisicsModel()
{
GUID = a.GUID,
Name = a.Name,
Age = a.Age,
Gender = a.Gender,
MPDSType = b.MPDSType,
ComeHosptialWay = b.ComeHosptialWay,
IllnessLevel = b.IllnessLevel,
Whereabouts = c.Whereabouts,
Grave = SqlFunc.Subqueryable().Where(s => s.PatientGuid == a.GUID).OrderByDesc(s => s.CreationDate).Select(s => s.Grave)
}).ToPageList(pageIndex, pageSize, ref totalNumber);
}
if (type == 1)
{
list = db.Queryable
((a, b, c, d) => new JoinQueryInfos(JoinType.Inner, a.GUID == b.PatientGuid,
JoinType.Inner, a.GUID == c.PatientGuid,
JoinType.Inner, a.GUID == d.PatientGUID))
.Where((a, b, c, d) => a.HospitalGuid == hospitalGuid && a.SystemModuleID == systemId && a.DeleteFlag == 0)
.Where((a, b, c, d) => SqlFunc.IsNullOrEmpty(d.TotalScore))
.Where((a, b, c, d) => SqlFunc.IsNullOrEmpty(SqlFunc.Subqueryable().Where(s => s.PatientGuid == a.GUID).OrderByDesc(s => s.CreationDate).Select(s => s.AIS)))
.WhereIF(!SqlFunc.IsNullOrEmpty(starTime), (a, b, c, d) => a.CreationDate >= SqlFunc.ToDate(starTime))
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b, c, d) => a.CreationDate <= SqlFunc.ToDate(endTime).AddMonths(1))
.Select((a, b, c, d) => new UNGradStaisicsModel()
{
GUID = a.GUID,
Name = a.Name,
Age = a.Age,
Gender = a.Gender,
MPDSType = b.MPDSType,
ComeHosptialWay = b.ComeHosptialWay,
IllnessLevel = b.IllnessLevel,
Whereabouts = c.Whereabouts,
Grave = SqlFunc.Subqueryable().Where(s => s.PatientGuid == a.GUID).OrderByDesc(s => s.CreationDate).Select(s => s.Grave)
}).ToPageList(pageIndex, pageSize, ref totalNumber);
}
if (type == 2)
{
list = db.Queryable
((a, b, c) => new JoinQueryInfos(JoinType.Inner, a.GUID == b.PatientGuid,
JoinType.Inner, a.GUID == c.PatientGuid))
.Where((a, b, c) => SqlFunc.IsNullOrEmpty(SqlFunc.Subqueryable().Where(s => s.PatientGuid == a.GUID).OrderByDesc(s => s.CreationDate).Select(s => s.AIS)))
.Where((a, b, c) => a.HospitalGuid == hospitalGuid && a.SystemModuleID == systemId && a.DeleteFlag == 0)
.WhereIF(!SqlFunc.IsNullOrEmpty(starTime), (a, b, c) => a.CreationDate >= SqlFunc.ToDate(starTime))
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b, c) => a.CreationDate <= SqlFunc.ToDate(endTime).AddMonths(1))
.Select((a, b, c) => new UNGradStaisicsModel()
{
GUID = a.GUID,
Name = a.Name,
Age = a.Age,
Gender = a.Gender,
MPDSType = b.MPDSType,
ComeHosptialWay = b.ComeHosptialWay,
IllnessLevel = b.IllnessLevel,
Whereabouts = c.Whereabouts,
Grave = SqlFunc.Subqueryable().Where(s => s.PatientGuid == a.GUID).OrderByDesc(s => s.CreationDate).Select(s => s.Grave)
}).ToPageList(pageIndex, pageSize, ref totalNumber);
}
TableModel t = new TableModel();
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = totalNumber;
t.Data = list;
t.Msg = "成功";
return t;
}
///
/// 质控信息列表
///
///
///
///
///
/// 0 >=90 1
///
public TableModel GetIntegrityStatisicsList(string hospitalGuid, string starTime, string endTime, long systemId, int type, int pageIndex, int pageSize)
{
int totalNumber = 0;
List lst = new List();
lst = db.Queryable((a, b) => new JoinQueryInfos(JoinType.Left, a.GUID == b.PatientGuid))
.Where((a, b) => a.HospitalGuid == hospitalGuid && a.SystemModuleID == systemId && a.DeleteFlag == 0)
.WhereIF(!SqlFunc.IsNullOrEmpty(starTime), (a, b) => a.CreationDate >= SqlFunc.ToDate(starTime))
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b) => a.CreationDate <= SqlFunc.ToDate(endTime).AddDays(1))
.WhereIF(type == 0, (a, b) => SqlFunc.ToInt64(b.CompletionRate) >= 90)
.WhereIF(type == 1, (a, b) => SqlFunc.ToInt64(b.CompletionRate) >= 50 && SqlFunc.ToInt64(b.CompletionRate) < 90)
.WhereIF(type == 2, (a, b) => SqlFunc.ToInt64(b.CompletionRate) < 50 || SqlFunc.IsNullOrEmpty(b.CompletionRate))
.Select((a, b) => new IntegrityStatisicsInfoModel()
{
GUID = a.GUID,
Name = a.Name,
Gender = a.Gender,
Age = a.Age,
CompletionRate = b.CompletionRate,
DataReporter = b.DataReporter
}).ToPageList(pageIndex, pageSize, ref totalNumber);
TableModel t = new TableModel();
t.Code = 0;
t.PageCount = lst.Count;
t.TotalNumber = totalNumber;
t.Data = lst;
t.Msg = "成功";
return t;
}
///
/// 转诊信息列表
///
///
///
///
///
///
///
///
///
public TableModel GetReferralStatisicsList(string hospitalGuid, string starTime, string endTime, long systemId, int type, int pageIndex, int pageSize)
{
int totalNumber = 0;
List lst = new List();
lst = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.GUID == b.PatientGuid, JoinType.Left, a.GUID == c.PatientGuid))
.Where((a, b, c) => a.HospitalGuid == hospitalGuid && a.SystemModuleID == systemId && a.DeleteFlag == 0)
.WhereIF(!SqlFunc.IsNullOrEmpty(starTime), (a, b, c) => a.CreationDate >= SqlFunc.ToDate(starTime))
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b, c) => a.CreationDate <= SqlFunc.ToDate(endTime).AddDays(1))
.WhereIF(type == 0, (a, b, c) => b.ComeHosptialWay == "2")
.WhereIF(type == 1, (a, b, c) => c.Whereabouts == "3")
.Select((a, b, c) => new ReferralStatisicsInfoModel()
{
GUID = a.GUID,
Name = a.Name,
Gender = a.Gender,
Age = a.Age,
CreationDate = SqlFunc.ToDate(a.CreationDate).ToString("yyyy-MM-dd HH:mm"),
MPDSType = b.MPDSType,
MPDSContent = b.MPDSContent
}).ToPageList(pageIndex, pageSize, ref totalNumber);
TableModel t = new TableModel();
t.Code = 0;
t.PageCount = lst.Count;
t.TotalNumber = totalNumber;
t.Data = lst;
t.Msg = "成功";
return t;
}
///
/// 门/急诊停留时间、输血准备时间列表查询
///
///
///
///
///
/// 0 停留时间 1 准备时间
/// 0 <=30min 1 >30min
///
///
///
public TableModel GetResidenceTimeList(string hospitalGuid, string starTime, string endTime, long systemId, int type, int section, int pageIndex, int pageSize)
{
DateTime dt = Convert.ToDateTime(starTime + "-01");
DateTime dt1 = Convert.ToDateTime(endTime + "-01").AddMonths(1);
int totalNumber = 0;
List lst = new List();
if (type == 0)
{
lst = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.GUID == b.PatientGuid, JoinType.Left, a.GUID == c.PatientGuid))
.Where((a, b) => a.HospitalGuid == hospitalGuid && a.SystemModuleID == systemId && a.DeleteFlag == 0)
.WhereIF(!SqlFunc.IsNullOrEmpty(starTime), (a, b, c) => a.CreationDate >= dt)
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b, c) => a.CreationDate <= dt1)
.WhereIF(section == 0, (a, b, c) => SqlFunc.IsNullOrEmpty(b.ResidenceTime) || (!SqlFunc.IsNullOrEmpty(b.ResidenceTime) && SqlFunc.ToInt64(b.ResidenceTime) <= 30))
.WhereIF(section == 1, (a, b, c) => !SqlFunc.IsNullOrEmpty(b.ResidenceTime) && SqlFunc.ToInt64(b.ResidenceTime) > 30)
.OrderBy((a, b, c) => a.CreationDate, OrderByType.Desc)
.Select((a, b, c) => new ResidenceTimeModel()
{
GUID = a.GUID,
Name = a.Name,
Gender = a.Gender,
Age = a.Age,
CreationDate = SqlFunc.ToDate(a.CreationDate).ToString("yyyy-MM-dd HH:mm"),
TimeOne = b.ReceiveDepartment == "1" ? Convert.ToDateTime(b.ArriveEmergencyTime).ToString("yyyy-MM-dd HH:mm") : Convert.ToDateTime(b.ArriveOutpatientTime).ToString("yyyy-MM-dd HH:mm"),
TimeTwo = c.LeaveTime == null ? "" : SqlFunc.ToDate(c.LeaveTime).ToString("yyyy-MM-dd HH:mm"),
Interval = b.ResidenceTime
}).ToPageList(pageIndex, pageSize, ref totalNumber);
}
if (type == 1)
{
lst = db.Queryable((a, b) => new JoinQueryInfos(JoinType.Left, a.GUID == b.PatientGuid))
.Where((a, b) => a.HospitalGuid == hospitalGuid && a.SystemModuleID == systemId && a.DeleteFlag == 0)
.WhereIF(!SqlFunc.IsNullOrEmpty(starTime), (a, b) => a.CreationDate >= dt)
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b) => a.CreationDate <= dt1)
.WhereIF(section == 0, (a, b) => SqlFunc.IsNullOrEmpty(b.BloodTransfusionInterval) || (!SqlFunc.IsNullOrEmpty(b.BloodTransfusionInterval) && SqlFunc.ToInt64(b.BloodTransfusionInterval) <= 30))
.WhereIF(section == 1, (a, b) => !SqlFunc.IsNullOrEmpty(b.BloodTransfusionInterval) && SqlFunc.ToInt64(b.BloodTransfusionInterval) > 30)
.OrderBy((a, b) => a.CreationDate, OrderByType.Desc)
.Select((a, b) => new ResidenceTimeModel()
{
GUID = a.GUID,
Name = a.Name,
Gender = a.Gender,
Age = a.Age,
CreationDate = SqlFunc.ToDate(a.CreationDate).ToString("yyyy-MM-dd HH:mm"),
TimeOne = b.ApplyBloodTransfusionTime,
TimeTwo = b.ImplementBloodTransfusionTime,
Interval = b.BloodTransfusionInterval
}).ToPageList(pageIndex, pageSize, ref totalNumber);
}
TableModel t = new TableModel();
t.Code = 0;
t.PageCount = lst.Count;
t.TotalNumber = totalNumber;
t.Data = lst;
t.Msg = "成功";
return t;
}
public int UpdateNotNullColumns(T_Service_Trauma_BaseInfo model)
{
return db.Updateable(model).Where(it => it.PatientGuid == model.PatientGuid).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
public bool SaveGroupInjury(GroupInjuryModel model)
{
try
{
db.Ado.BeginTran();
for (int i = 0; i < model.count; i++)
{
T_Service_Patient patient = new T_Service_Patient();
patient.GUID = Guid.NewGuid().ToString();
patient.Name = model.EventName + "_" + (i + 1) + "号患者";
patient.CreationDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
patient.RegisterTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
patient.CreatorID = model.CreatorID;
patient.SystemModuleID = long.Parse(model.SystemModuleID + "");
patient.HospitalGuid = model.HospitalGuid;
T_Service_Trauma_BaseInfo info = new T_Service_Trauma_BaseInfo();
info.GUID = Guid.NewGuid().ToString();
info.PatientGuid = patient.GUID;
info.CreationDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
info.AttackAddress = model.AttackAddress;
info.EventID = model.EventID;
info.EventName = model.EventName;
T_Service_Trauma_FirstAidInfo firstAidInfo = new T_Service_Trauma_FirstAidInfo();
firstAidInfo.GUID = Guid.NewGuid().ToString();
firstAidInfo.PatientGuid = patient.GUID;
T_Service_Trauma_Rescue rescue = new T_Service_Trauma_Rescue();
rescue.GUID = Guid.NewGuid().ToString();
rescue.PatientGuid = patient.GUID;
db.Insertable(patient).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
db.Insertable(info).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
db.Insertable(firstAidInfo).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
db.Insertable(rescue).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
db.Ado.CommitTran();
return true;
}
catch (Exception ex)
{
db.Ado.RollbackTran();
Help.WriteErrorLog("批量创建创伤患者(SaveTraumaPatientInfo)", ex.ToString());
return false;
}
}
}
}