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 { /// /// 急救措施及辅助检查 /// public class T_Service_Apoplexy_FirstAidMeasuresDB : BaseDB, IT_Service_Apoplexy_FirstAidMeasures { public SqlSugarClient db = GetClient(); /// /// 新增急救数据 /// /// /// public T_Service_Apoplexy_FirstAidMeasures AddFirstAidMeasuresInfo(T_Service_Apoplexy_FirstAidMeasures model) { return db.Insertable(model).IgnoreColumns(it => it.ID).ExecuteReturnEntity(); } /// /// 更新急救数据 /// /// /// public int UpdateFirstAidMeasuresInfo(T_Service_Apoplexy_FirstAidMeasures model) { return db.Updateable(model).IgnoreColumns(it => new { it.ID }).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand(); } /// /// 增加一条院前数据 /// public T_Service_Apoplexy_Prehospital AddPrehospitalInfo(T_Service_Apoplexy_Prehospital model) { return db.Insertable(model).ExecuteReturnEntity(); } /// /// 更新一条院前数据 /// public int UpdatePrehospitalInfo(T_Service_Apoplexy_Prehospital model) { return db.Updateable(model).ExecuteCommand(); } /// /// 增加一条急诊室数据 /// public T_Service_Apoplexy_EmergencyRoom AddEmergencyRoomInfo(T_Service_Apoplexy_EmergencyRoom model) { return db.Insertable(model).ExecuteReturnEntity(); } /// /// 更新一条急诊室数据 /// public int UpdateEmergencyRoomInfo(T_Service_Apoplexy_EmergencyRoom model) { return db.Updateable(model).UpdateColumns(it => new { it.Diagnose, it.Remark }).ExecuteCommand(); } /// /// 根据患者GUID查询信息 /// /// /// public T_Service_Apoplexy_FirstAidMeasures GetFirstAidMeasures(string patientGuid) { return db.Queryable().First(it => it.PatientGuid == patientGuid); } /// /// 根据患者GUID查询既往病史及检查信息 /// /// /// public T_Service_Apoplexy_EmergencyRoom GetEmergencyRoomByPatient(string guid) { return db.Queryable().First(it => it.PatientGuid == guid); } /// /// 根据患者GUID查询院前信息 /// /// /// public T_Service_Apoplexy_Prehospital GetPrehospitalByPatient(string guid) { return db.Queryable().First(it => it.PatientGuid == guid); } /// /// 根据患者编号(GUID)+急诊室GUID 获取数据信息 /// public FirstAidMeasuresModel GetByPatientGuidAndEmergencyRoomGUID(string patientGuid) { var listModel = db.Queryable((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; } } } }