238 lines
10 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|