373 lines
15 KiB
C#
373 lines
15 KiB
C#
|
using DevExpress.Xpo;
|
|||
|
using HL_FristAidPlatform_Help;
|
|||
|
using HL_FristAidPlatform_IDataBase;
|
|||
|
using HL_FristAidPlatform_Models;
|
|||
|
using SqlSugar;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
|
|||
|
namespace HL_FristAidPlatform_DataBase
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 社区乡镇人群随访表
|
|||
|
/// </summary>
|
|||
|
public class T_Service_Apoplexy_CommunityDB : BaseDB, IT_Service_Apoplexy_Community
|
|||
|
{
|
|||
|
public SqlSugarClient db = GetClient();
|
|||
|
|
|||
|
public int ChangeStyle(string patientGUID, string flag)
|
|||
|
{
|
|||
|
T_Service_Apoplexy_Community_BaseInfo model = new T_Service_Apoplexy_Community_BaseInfo();
|
|||
|
model.PatientGUID = patientGUID;
|
|||
|
model.Flag = flag;
|
|||
|
|
|||
|
int count = 0;
|
|||
|
var class1 = db.Queryable<T_Service_Apoplexy_Community_BaseInfo>().First(it => it.PatientGUID == patientGUID && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
var class2 = db.Queryable<T_Service_Apoplexy_Community_LifeStyle>().First(it => it.PatientGUID == patientGUID && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
var class3 = db.Queryable<T_Service_Apoplexy_Community_MedicalHistory>().First(it => it.PatientGUID == patientGUID && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
var class4 = db.Queryable<T_Service_Apoplexy_Community_Surgery>().First(it => it.PatientGUID == patientGUID && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
var class5 = db.Queryable<T_Service_Apoplexy_Community_PhysicalExamination>().First(it => it.PatientGUID == patientGUID && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
var class6 = db.Queryable<T_Service_Apoplexy_Community_LaboratoryExamination>().First(it => it.PatientGUID == patientGUID && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
|
|||
|
if (class1 != null)
|
|||
|
{
|
|||
|
count++;
|
|||
|
}
|
|||
|
if (class2 != null)
|
|||
|
{
|
|||
|
count++;
|
|||
|
}
|
|||
|
if (class3 != null)
|
|||
|
{
|
|||
|
count++;
|
|||
|
}
|
|||
|
if (class4 != null)
|
|||
|
{
|
|||
|
count++;
|
|||
|
}
|
|||
|
if (class5 != null)
|
|||
|
{
|
|||
|
count++;
|
|||
|
}
|
|||
|
if (class6 != null)
|
|||
|
{
|
|||
|
count++;
|
|||
|
}
|
|||
|
if (count == 6)
|
|||
|
{
|
|||
|
//已完成
|
|||
|
model.IsCompleted = 1;
|
|||
|
db.Updateable(model).UpdateColumns(it => new { it.IsCompleted }).Where(it => it.PatientGUID == model.PatientGUID && it.Flag == model.Flag).ExecuteCommand();
|
|||
|
}
|
|||
|
else if (count < 6 && count > 0)
|
|||
|
{
|
|||
|
//进行中
|
|||
|
model.IsCompleted = 2;
|
|||
|
db.Updateable(model).UpdateColumns(it => new { it.IsCompleted }).Where(it => it.PatientGUID == model.PatientGUID && it.Flag == model.Flag).ExecuteCommand();
|
|||
|
}
|
|||
|
return count;
|
|||
|
}
|
|||
|
|
|||
|
#region 基本信息
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 增加一条数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="model"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_BaseInfo AddBaseInfo(T_Service_Apoplexy_Community_BaseInfo model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Insertable(model).ExecuteReturnEntity();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 更新一条数据
|
|||
|
/// </summary>
|
|||
|
public int UpdateBaseInfo(T_Service_Apoplexy_Community_BaseInfo model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 社区乡镇随访接口内容
|
|||
|
/// </summary>
|
|||
|
/// <param name="hospitalGuid"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public List<KeyValue> GetCommunityFollowUp(string hospitalGuid)
|
|||
|
{
|
|||
|
List<KeyValue> list = new List<KeyValue>();
|
|||
|
DateTime date = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
|
|||
|
|
|||
|
list = db.Queryable<T_Service_ApoplexyScreenInfo, T_Service_Apoplexy_Community_BaseInfo>((a, b) => new JoinQueryInfos(JoinType.Left, a.GUID == b.PatientGUID))
|
|||
|
.Where((a, b) => b.CreationDate > date && b.CreationDate < date.AddDays(1))
|
|||
|
.Select((a, b) => new KeyValue
|
|||
|
{
|
|||
|
key = a.Name
|
|||
|
|
|||
|
}).ToList();
|
|||
|
|
|||
|
return list;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据患者GUID和flag查询数据
|
|||
|
/// </summary> T_Service_ApoplexyScreenInfo
|
|||
|
/// <param name="patientGuid"></param>
|
|||
|
/// <param name="flag"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_BaseInfoModel GetBaseInfoByPatientGuidAndFlag(string patientGuid, string flag)
|
|||
|
{
|
|||
|
T_Service_Apoplexy_Community_BaseInfoModel model = new T_Service_Apoplexy_Community_BaseInfoModel();
|
|||
|
var oneClass = db.Queryable<T_Service_ApoplexyScreenInfo>().First(it => it.GUID == patientGuid && it.DeleteFlag == 0);
|
|||
|
|
|||
|
var twoClass = db.Queryable<T_Service_Apoplexy_Community_BaseInfo>().First(it => it.PatientGUID == patientGuid && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
|
|||
|
model.Name = oneClass.Name;
|
|||
|
model.IDCard = oneClass.IDCard;
|
|||
|
|
|||
|
if (twoClass != null)
|
|||
|
{
|
|||
|
model.ID = twoClass.ID;
|
|||
|
model.GUID = twoClass.GUID;
|
|||
|
model.PatientGUID = twoClass.PatientGUID;
|
|||
|
model.CreationDate = twoClass.CreationDate;
|
|||
|
model.FollowupUnitName = twoClass.FollowupUnitName;
|
|||
|
model.FollowupPerson = twoClass.FollowupPerson;
|
|||
|
model.ContactNumber = twoClass.ContactNumber;
|
|||
|
model.InvestigationTime = twoClass.InvestigationTime;
|
|||
|
model.Flag = twoClass.Flag;
|
|||
|
model.Investigationmethod = twoClass.Investigationmethod;
|
|||
|
model.Isself = twoClass.Isself;
|
|||
|
model.Relationship = twoClass.Relationship;
|
|||
|
model.RelationshipOther = twoClass.RelationshipOther;
|
|||
|
model.LossOfVisit = twoClass.LossOfVisit;
|
|||
|
model.LossOfVisitReason = twoClass.LossOfVisitReason;
|
|||
|
model.LossOfVisitReasonOther = twoClass.LossOfVisitReasonOther;
|
|||
|
model.Death = twoClass.Death;
|
|||
|
model.DeathTime = twoClass.DeathTime;
|
|||
|
model.DeathReason = twoClass.DeathReason;
|
|||
|
model.DeathReasonOther = twoClass.DeathReasonOther;
|
|||
|
model.CerebralApoplexy = twoClass.CerebralApoplexy;
|
|||
|
model.CreatorID = twoClass.CreatorID;
|
|||
|
model.DeleteFlag = twoClass.DeleteFlag;
|
|||
|
}
|
|||
|
|
|||
|
return model;
|
|||
|
}
|
|||
|
|
|||
|
public bool SaveBaseInfo(T_Service_ApoplexyScreenInfo screenInfo, T_Service_Apoplexy_Community_BaseInfo baseInfo)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
db.Ado.BeginTran();
|
|||
|
db.Updateable(screenInfo).UpdateColumns(it => new { it.Name, it.IDCard, it.Gender, it.Age }).Where(it => it.GUID == screenInfo.GUID).ExecuteCommand();
|
|||
|
|
|||
|
if (SqlFunc.IsNullOrEmpty(baseInfo.GUID))
|
|||
|
{
|
|||
|
baseInfo.GUID = Guid.NewGuid().ToString();
|
|||
|
db.Insertable(baseInfo).IgnoreColumns(it => new { it.ID }).ExecuteCommand();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
db.Updateable(baseInfo).IgnoreColumns(ignoreAllNullColumns: true).Where(it => it.PatientGUID == baseInfo.PatientGUID && it.Flag == baseInfo.Flag).ExecuteCommand();
|
|||
|
}
|
|||
|
db.Ado.CommitTran();
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
db.Ado.RollbackTran();
|
|||
|
Help.WriteErrorLog("保存基本信息", ex.ToString());
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public T_Service_Apoplexy_Community_BaseInfo GetBaseInfoByPatientGuidAndFlag1(string patientGuid, string flag)
|
|||
|
{
|
|||
|
return db.Queryable<T_Service_Apoplexy_Community_BaseInfo>().First(it => it.PatientGUID == patientGuid && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 随访期间生活方式
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 增加一条数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="model"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_LifeStyle AddLifeStyle(T_Service_Apoplexy_Community_LifeStyle model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Insertable(model).ExecuteReturnEntity();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 更新一条数据
|
|||
|
/// </summary>
|
|||
|
public int UpdateLifeStyle(T_Service_Apoplexy_Community_LifeStyle model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据患者GUID和flag查询数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="patientGuid"></param>
|
|||
|
/// <param name="flag"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_LifeStyle GetLifeStyleByPatientGuidAndFlag(string patientGuid, string flag)
|
|||
|
{
|
|||
|
return db.Queryable<T_Service_Apoplexy_Community_LifeStyle>().First(it => it.PatientGUID == patientGuid && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 随访期间主要病史及控制情况
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 增加一条数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="model"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_MedicalHistory AddMedicalHistory(T_Service_Apoplexy_Community_MedicalHistory model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Insertable(model).ExecuteReturnEntity();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 更新一条数据
|
|||
|
/// </summary>
|
|||
|
public int UpdateMedicalHistory(T_Service_Apoplexy_Community_MedicalHistory model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据患者GUID和flag查询数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="patientGuid"></param>
|
|||
|
/// <param name="flag"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_MedicalHistory GetMedicalHistoryByPatientGuidAndFlag(string patientGuid, string flag)
|
|||
|
{
|
|||
|
return db.Queryable<T_Service_Apoplexy_Community_MedicalHistory>().First(it => it.PatientGUID == patientGuid && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 本次随访期间血管病变的外科手术或介入治疗情况
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 增加一条数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="model"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_Surgery AddSurgery(T_Service_Apoplexy_Community_Surgery model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Insertable(model).ExecuteReturnEntity();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 更新一条数据
|
|||
|
/// </summary>
|
|||
|
public int UpdateSurgery(T_Service_Apoplexy_Community_Surgery model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据患者GUID和flag查询数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="patientGuid"></param>
|
|||
|
/// <param name="flag"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_Surgery GetSurgeryByPatientGuidAndFlag(string patientGuid, string flag)
|
|||
|
{
|
|||
|
return db.Queryable<T_Service_Apoplexy_Community_Surgery>().First(it => it.PatientGUID == patientGuid && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 体格检查(高危人群 12 个月随访必做)
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 增加一条数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="model"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_PhysicalExamination AddPhysicalExamination(T_Service_Apoplexy_Community_PhysicalExamination model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Insertable(model).ExecuteReturnEntity();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 更新一条数据
|
|||
|
/// </summary>
|
|||
|
public int UpdatePhysicalExamination(T_Service_Apoplexy_Community_PhysicalExamination model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据患者GUID和flag查询数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="patientGuid"></param>
|
|||
|
/// <param name="flag"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_PhysicalExamination GetPhysicalExaminationByPatientGuidAndFlag(string patientGuid, string flag)
|
|||
|
{
|
|||
|
return db.Queryable<T_Service_Apoplexy_Community_PhysicalExamination>().First(it => it.PatientGUID == patientGuid && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 实验室检查(高危人群 12 个月随访必填
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 增加一条数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="model"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_LaboratoryExamination AddLaboratoryExamination(T_Service_Apoplexy_Community_LaboratoryExamination model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Insertable(model).ExecuteReturnEntity();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 更新一条数据
|
|||
|
/// </summary>
|
|||
|
public int UpdateLaboratoryExamination(T_Service_Apoplexy_Community_LaboratoryExamination model)
|
|||
|
{
|
|||
|
ChangeStyle(model.PatientGUID, model.Flag);
|
|||
|
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据患者GUID和flag查询数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="patientGuid"></param>
|
|||
|
/// <param name="flag"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_Community_LaboratoryExamination GetLaboratoryExaminationByPatientGuidAndFlag(string patientGuid, string flag)
|
|||
|
{
|
|||
|
return db.Queryable<T_Service_Apoplexy_Community_LaboratoryExamination>().First(it => it.PatientGUID == patientGuid && it.Flag == flag && it.DeleteFlag == 0);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|