StableVersion4.3/HL_FristAidPlatform_DataBase/Service/T_Service_Apoplexy_FirstAid...

238 lines
10 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using SqlSugar;
namespace HL_FristAidPlatform_DataBase
{
/// <summary>
/// 急救措施及辅助检查
/// </summary>
public class T_Service_Apoplexy_FirstAidMeasuresDB : BaseDB, IT_Service_Apoplexy_FirstAidMeasures
{
public SqlSugarClient db = GetClient();
/// <summary>
/// 新增急救数据
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public T_Service_Apoplexy_FirstAidMeasures AddFirstAidMeasuresInfo(T_Service_Apoplexy_FirstAidMeasures model)
{
return db.Insertable(model).IgnoreColumns(it => it.ID).ExecuteReturnEntity();
}
/// <summary>
/// 更新急救数据
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateFirstAidMeasuresInfo(T_Service_Apoplexy_FirstAidMeasures model)
{
return db.Updateable(model).IgnoreColumns(it => new { it.ID }).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
/// <summary>
/// 增加一条院前数据
/// </summary>
public T_Service_Apoplexy_Prehospital AddPrehospitalInfo(T_Service_Apoplexy_Prehospital model)
{
return db.Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 更新一条院前数据
/// </summary>
public int UpdatePrehospitalInfo(T_Service_Apoplexy_Prehospital model)
{
return db.Updateable(model).ExecuteCommand();
}
/// <summary>
/// 增加一条急诊室数据
/// </summary>
public T_Service_Apoplexy_EmergencyRoom AddEmergencyRoomInfo(T_Service_Apoplexy_EmergencyRoom model)
{
return db.Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 更新一条急诊室数据
/// </summary>
public int UpdateEmergencyRoomInfo(T_Service_Apoplexy_EmergencyRoom model)
{
return db.Updateable(model).UpdateColumns(it => new { it.Diagnose, it.Remark }).ExecuteCommand();
}
/// <summary>
/// 根据患者GUID查询信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public T_Service_Apoplexy_FirstAidMeasures GetFirstAidMeasures(string patientGuid)
{
return db.Queryable<T_Service_Apoplexy_FirstAidMeasures>().First(it => it.PatientGuid == patientGuid);
}
/// <summary>
/// 根据患者GUID查询既往病史及检查信息
/// </summary>
/// <param name="guid"></param>
/// <returns></returns>
public T_Service_Apoplexy_EmergencyRoom GetEmergencyRoomByPatient(string guid)
{
return db.Queryable<T_Service_Apoplexy_EmergencyRoom>().First(it => it.PatientGuid == guid);
}
/// <summary>
/// 根据患者GUID查询院前信息
/// </summary>
/// <param name="guid"></param>
/// <returns></returns>
public T_Service_Apoplexy_Prehospital GetPrehospitalByPatient(string guid)
{
return db.Queryable<T_Service_Apoplexy_Prehospital>().First(it => it.PatientGuid == guid);
}
/// <summary>
/// 根据患者编号(GUID)+急诊室GUID 获取数据信息
/// </summary>
public FirstAidMeasuresModel GetByPatientGuidAndEmergencyRoomGUID(string patientGuid)
{
var listModel = db.Queryable<T_Service_Apoplexy_FirstAidMeasures, T_Service_Apoplexy_EmergencyRoom, T_Service_Apoplexy_Prehospital>((a, b, c) => new JoinQueryInfos(
JoinType.Left, a.PatientGuid == b.PatientGuid,
JoinType.Left, a.PatientGuid == c.PatientGuid))
.Where((a, b, c) => a.PatientGuid == patientGuid && a.DeleteFlag == 0)
.Select((a, b, c) => new FirstAidMeasuresModel
{
ID = a.ID,
GUID = a.GUID,
UnobstructedAirway = a.UnobstructedAirway,
CardiacMassage = a.CardiacMassage,
ECGMonitoring = a.ECGMonitoring,
OxygenInhalation = a.OxygenInhalation,
ElectricMembraneRemoval = a.ElectricMembraneRemoval,
RespiratoryAssistance = a.RespiratoryAssistance,
TraumaManagement = a.TraumaManagement,
FractureManagement = a.FractureManagement,
PlannedArrivalHospitalExam = a.PlannedArrivalHospitalExam,
Position = a.Position,
Others = a.Others,
OnSiteAndEnRouteMedicationSituation = a.OnSiteAndEnRouteMedicationSituation,
PatientGuid = a.PatientGuid,
DeleteFlag = a.DeleteFlag,
CreateTime = a.CreateTime,
CreateID = a.CreateID,
VenousPathwayTime = a.VenousPathwayTime,
BloodSampleSubmissionTime = a.BloodSampleSubmissionTime,
DeliveryTimeToTheLaboratory = a.DeliveryTimeToTheLaboratory,
LiverAndKidneyFunctionElectrolyteReportTime = a.LiverAndKidneyFunctionElectrolyteReportTime,
RapidBloodGlucose = a.RapidBloodGlucose,
RapidBloodGlucoseValue = a.RapidBloodGlucoseValue,
RapidBloodGlucoseTime = a.RapidBloodGlucoseTime,
LaboratoryDoctor = a.LaboratoryDoctor,
ECGExaminationResults = a.ECGExaminationResults,
BloodCollectionTime = b.BloodCollectionTime,
CoagulationRoutineReportTime = b.CoagulationRoutineReportTime,
BloodRoutineReportTime = b.BloodRoutineReportTime,
ECGExaminationTime = b.ECGExaminationTime,
ECGReportTime = b.ECGReportTime,
ADoctorImageFiles = c.ADoctorImageFiles,
FacialColorLips = a.FacialColorLips,
Skin = a.Skin,
Photoreaction = a.Photoreaction,
Pupil = a.Pupil,
PupilLeft = a.PupilLeft,
PupilRight = a.PupilRight,
Head = a.Head,
Breathe = a.Breathe,
Chest = a.Chest,
PulmonaryBreathSounds = a.PulmonaryBreathSounds,
HeartRate = a.HeartRate,
HeartSounds = a.HeartSounds,
Abdomen = a.Abdomen,
AbdominalTenderness = a.AbdominalTenderness,
Spine = a.Spine,
TheFourLimbs = a.TheFourLimbs,
CoagulationReportImage = a.CoagulationReportImage,
BloodRoutineReportImage = a.BloodRoutineReportImage,
LiverAndKidneyFunctionElectrolyteReportImage = a.LiverAndKidneyFunctionElectrolyteReportImage,
Electrocardiogram = a.Electrocardiogram,
ArriveRescueRoomTime = a.ArriveRescueRoomTime,
LeaveRescueRoomTime = a.LeaveRescueRoomTime,
StrandedRescueRoomDuration = a.StrandedRescueRoomDuration,
DoctorVisitTime = c.DoctorVisitTime,
FastScore = a.FastScore,
RatingOrNot = a.RatingOrNot
}).OrderBy(a => a.ID, OrderByType.Desc).First();
return listModel;
}
public bool SaveOrUpdateFirstAidMeasures(T_Service_Apoplexy_FirstAidMeasures first, T_Service_Apoplexy_EmergencyRoom emergency, T_Service_Apoplexy_Prehospital prehospital)
{
try
{
db.Ado.BeginTran();
if (!SqlFunc.IsNullOrEmpty(first.PatientGuid))
{
if (SqlFunc.IsNullOrEmpty(first.GUID))
{
first.GUID = Guid.NewGuid().ToString();
db.Insertable(first).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
else
{
db.Updateable(first).IgnoreColumns(ignoreAllNullColumns: true).Where(it => it.PatientGuid == first.PatientGuid).ExecuteCommand();
}
}
if (!SqlFunc.IsNullOrEmpty(emergency.PatientGuid))
{
if (SqlFunc.IsNullOrEmpty(emergency.GUID))
{
emergency.GUID = Guid.NewGuid().ToString();
db.Insertable(emergency).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
else
{
db.Updateable(emergency).IgnoreColumns(ignoreAllNullColumns: true).Where(it => it.PatientGuid == emergency.PatientGuid).ExecuteCommand();
}
}
if (!SqlFunc.IsNullOrEmpty(prehospital.PatientGuid))
{
if (SqlFunc.IsNullOrEmpty(prehospital.GUID))
{
prehospital.GUID = Guid.NewGuid().ToString();
db.Insertable(prehospital).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
else
{
db.Updateable(prehospital).IgnoreColumns(ignoreAllNullColumns: true).Where(it => it.PatientGuid == prehospital.PatientGuid).ExecuteCommand();
}
}
db.Ado.CommitTran();
return true;
}
catch (Exception ex)
{
db.Ado.RollbackTran();
Help.WriteErrorLog("卒中:更新或新增急救措施及辅助检查信息(UpdateOrInsertHospitalization)", ex.ToString());
return false;
}
}
}
}