StableVersion4.3/HL_FristAidPlatform_DataBase/TranService/ApoplexyPatientService.cs

233 lines
9.3 KiB
C#

using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using SqlSugar;
using System;
using System.Linq;
namespace HL_FristAidPlatform_DataBase
{
/// <summary>
/// 卒中患者住院治疗事务
/// </summary>
public class ApoplexyPatientService : BaseDB, IApoplexyPatientService
{
public SqlSugarClient db = GetClient();
/// <summary>
/// 更新或新增住院治疗信息
/// 1.住院治疗
/// 2.CEA/CAS 术后药物治疗表
/// </summary>
/// <param name="zyyw"></param>
/// <param name="shyw"></param>
/// <returns></returns>
public bool SaveHospitalization(T_Service_Apoplexy_ZYYW zyyw, T_Service_Apoplexy_SHYW shyw, T_Service_Apoplexy_NutritionalRisk NutritionalRisk)
{
try
{
db.Ado.BeginTran();
if (!SqlFunc.IsNullOrEmpty(zyyw.PatientGuid))
{
if (SqlFunc.IsNullOrEmpty(zyyw.GUID))
{
zyyw.GUID = Guid.NewGuid().ToString();
db.Insertable(zyyw).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
else
{
db.Updateable(zyyw).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
}
if (!SqlFunc.IsNullOrEmpty(shyw.PatientGuid))
{
if (SqlFunc.IsNullOrEmpty(shyw.GUID))
{
shyw.GUID = Guid.NewGuid().ToString();
db.Insertable(shyw).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
else
{
db.Updateable(shyw).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
}
if (NutritionalRisk != null)
{
NutritionalRisk.TotalScore = NutritionalRisk.Nutritional + NutritionalRisk.Disease + NutritionalRisk.Age;
if (!SqlFunc.IsNullOrEmpty(NutritionalRisk.GUID))
{
db.Updateable(NutritionalRisk).IgnoreColumns(i => new { i.Flag, i.CreateTime, i.CreatorID }).ExecuteCommand();
}
else
{
var nutritional = db.Queryable<T_Service_Apoplexy_NutritionalRisk>().Where(i => i.PatientGuid == NutritionalRisk.PatientGuid).ToList();
if (nutritional != null && nutritional.Count > 0)
{
int count = nutritional.Where(i => i.Flag > 0).Count();
NutritionalRisk.Flag = count + 1;
}
else
{
NutritionalRisk.Flag = 0;
}
NutritionalRisk.GUID = Guid.NewGuid().ToString();
NutritionalRisk.CreateTime = DateTime.Now;
db.Insertable(NutritionalRisk).ExecuteCommand();
}
}
db.Ado.CommitTran();
return true;
}
catch (Exception ex)
{
db.Ado.RollbackTran();
Help.WriteErrorLog("卒中:更新或新增住院治疗信息(UpdateOrInsertHospitalization)", ex.ToString());
return false;
}
}
/// <summary>
/// 更新或新增患者转归信息
/// </summary>
/// <param name="jkjy"></param>
/// <param name="toast"></param>
/// <param name="kfzl"></param>
/// <param name="outcome"></param>
/// <returns></returns>
public bool SaveTurnOver(T_Service_Patient patient, T_Service_Apoplexy_JKJY jkjy, T_Service_Apoplexy_KFZL kfzl, T_Service_Apoplexy_PatientOutcome outcome, T_Service_PatientNIHSS niss, T_Service_PatientGCS gcs)
{
try
{
db.Ado.BeginTran();
if (patient.WristStrapID > 0)
{
db.Updateable<T_Base_WristStrap>()
.SetColumns(it => new T_Base_WristStrap() { Status = 0 })
.Where(it => it.ID == patient.WristStrapID)
.ExecuteCommand();
patient.WristStrapID = 0;
}
db.Updateable(patient).UpdateColumns(it => new { it.EmergencyState, it.Status, it.WristStrapID, it.HospitalizationTime }).ExecuteCommand();
if (SqlFunc.IsNullOrEmpty(jkjy.GUID))
{
jkjy.GUID = Guid.NewGuid().ToString();
db.Insertable(jkjy).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
else
{
db.Updateable(jkjy).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
if (SqlFunc.IsNullOrEmpty(kfzl.GUID))
{
kfzl.GUID = Guid.NewGuid().ToString();
db.Insertable(kfzl).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
else
{
db.Updateable(kfzl).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
if (SqlFunc.IsNullOrEmpty(outcome.GUID))
{
outcome.GUID = Guid.NewGuid().ToString();
db.Insertable(outcome).IgnoreColumns(ignoreNullColumn: true).IgnoreColumns(i => new { i.CreateTime, i.CreationDate, i.CreatorID }).ExecuteCommand();
}
else
{
db.Updateable(outcome).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
if (niss != null && niss.Flag > 0)
{
var one = db.Queryable<T_Service_PatientNIHSS>().Where(i => i.PatientGUID == niss.PatientGUID && i.Flag == niss.Flag && i.DeleteFlag == 0).First();
if (one != null)
{
niss.GUID = one.GUID;
db.Updateable(niss).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
else
{
niss.GUID = Guid.NewGuid().ToString();
db.Insertable(niss).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
}
if (gcs != null && gcs.Flag > 0)
{
var one = db.Queryable<T_Service_PatientGCS>().Where(i => i.PatientGUID == gcs.PatientGUID && gcs.Flag == gcs.Flag && gcs.DeleteFlag == 0).First();
if (one != null)
{
gcs.GUID = one.GUID;
db.Updateable(gcs).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
else
{
gcs.GUID = Guid.NewGuid().ToString();
gcs.CreateTime = DateTime.Now;
gcs.ScoreTime = DateTime.Now;
db.Insertable(gcs).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
}
db.Ado.CommitTran();
return true;
}
catch (Exception ex)
{
db.Ado.RollbackTran();
Help.WriteErrorLog("卒中:更新或新增患者转归信息(UpdateOrInsertTurnOver)", ex.ToString());
return false;
}
}
/// <summary>
/// 修改审核状态
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool UpdateAuditStatus(T_Service_Patient model)
{
try
{
db.Ado.BeginTran();
db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
db.Ado.CommitTran();
return true;
}
catch (Exception ex)
{
db.Ado.RollbackTran();
Help.WriteErrorLog("卒中:修改病历审核状态", ex.ToString());
return false;
}
}
/// <summary>
/// 归还标签卡
/// </summary>
/// <param name="patient"></param>
/// <param name="wristStrap"></param>
/// <returns></returns>
public bool ReturnWristStrap(T_Service_Patient patient, T_Base_WristStrap wristStrap)
{
try
{
db.Ado.BeginTran();
db.Updateable(patient).UpdateColumns(it => new { it.WristStrapID }).ExecuteCommand();
db.Updateable(wristStrap).UpdateColumns(it => new { it.Status, it.DeleteFlag }).ExecuteCommand();
db.Ado.CommitTran();
return true;
}
catch (Exception ex)
{
db.Ado.RollbackTran();
Help.WriteErrorLog("归还标签卡", ex.ToString());
return false;
}
}
}
}