164 lines
7.1 KiB
C#
164 lines
7.1 KiB
C#
|
using HL_FristAidPlatform_Help;
|
|||
|
using HL_FristAidPlatform_IDataBase;
|
|||
|
using HL_FristAidPlatform_Models;
|
|||
|
using SqlSugar;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace HL_FristAidPlatform_DataBase
|
|||
|
{
|
|||
|
|
|||
|
public class T_Service_Apoplexy_NutritionalRiskDB : BaseDB, IT_Service_Apoplexy_NutritionalRisk
|
|||
|
{
|
|||
|
public SqlSugarClient db = GetClient();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 保存住院成人患者营养风险筛查
|
|||
|
/// </summary>
|
|||
|
/// <param name="nutritionalRisk"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool SaveNutritionalRisk(T_Service_Apoplexy_NutritionalRisk nutritionalRisk)
|
|||
|
{
|
|||
|
bool result = false;
|
|||
|
if (!SqlFunc.IsNullOrEmpty(nutritionalRisk.GUID))
|
|||
|
{
|
|||
|
result = db.Updateable(nutritionalRisk).IgnoreColumns(i => new { i.Flag, i.CreateTime, i.CreatorID }).ExecuteCommand() == 1 ? true : false;
|
|||
|
}
|
|||
|
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;
|
|||
|
db.Updateable<T_Service_Apoplexy_NutritionalRisk>().SetColumns(i => i.isComplete == 1).Where(i => i.PatientGuid == nutritionalRisk.PatientGuid).ExecuteCommand();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
nutritionalRisk.Flag = 0;
|
|||
|
}
|
|||
|
nutritionalRisk.GUID = Guid.NewGuid().ToString();
|
|||
|
nutritionalRisk.CreateTime = DateTime.Now;
|
|||
|
nutritionalRisk.isComplete = 0;
|
|||
|
result = db.Insertable(nutritionalRisk).ExecuteCommand() == 1 ? true : false;
|
|||
|
}
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 获取住院成人患者营养风险筛查
|
|||
|
/// </summary>
|
|||
|
/// <param name="patientGuid"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public NutritionalRiskModel GetNutritionalRiskByPatientGuid(string patientGuid, int flag)
|
|||
|
{
|
|||
|
int sflag = flag + 1;
|
|||
|
NutritionalRiskModel model = new NutritionalRiskModel();
|
|||
|
model = db.Queryable<T_Service_Apoplexy_NutritionalRisk>().Where(i => i.PatientGuid == patientGuid && i.Flag == flag && i.DeleteFlag == 0)
|
|||
|
.Select(i => new NutritionalRiskModel()
|
|||
|
{
|
|||
|
GUID = i.GUID,
|
|||
|
PatientGuid = i.PatientGuid,
|
|||
|
Nutritional = i.Nutritional,
|
|||
|
Disease = i.Disease,
|
|||
|
Age = i.Age,
|
|||
|
TotalScore = i.TotalScore,
|
|||
|
Flag = i.Flag,
|
|||
|
CreateTime = i.CreateTime,
|
|||
|
ScreenFlag = SqlFunc.Subqueryable<T_Service_Apoplexy_NutritionalRisk>().Where(s => s.PatientGuid == patientGuid && s.Flag == sflag).Count(),
|
|||
|
}).First();
|
|||
|
return model;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据患者GUID获取筛查集合
|
|||
|
/// </summary>
|
|||
|
/// <param name="patientGuid"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public List<NutritionalRiskModel> GetNutritionalRisksListByPatientGuid(string patientGuid)
|
|||
|
{
|
|||
|
List<NutritionalRiskModel> list = new List<NutritionalRiskModel>();
|
|||
|
list = db.Queryable<T_Service_Apoplexy_NutritionalRisk, T_SYS_User>((a, b) => new JoinQueryInfos(JoinType.Inner, a.CreatorID == b.ID))
|
|||
|
.OrderBy((a, b) => a.CreateTime, OrderByType.Desc)
|
|||
|
.Select((a, b) => new NutritionalRiskModel()
|
|||
|
{
|
|||
|
Nutritional = a.Nutritional,
|
|||
|
Disease = a.Disease,
|
|||
|
Age = a.Age,
|
|||
|
CreateTime = a.CreateTime,
|
|||
|
Flag = a.Flag,
|
|||
|
CreateUserName = b.FullName
|
|||
|
}).ToList();
|
|||
|
|
|||
|
return list;
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 营养筛查日历
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public TableModel<CalendarModel> GetCalenderData()
|
|||
|
{
|
|||
|
List<CalendarModel> list = new List<CalendarModel>();
|
|||
|
list = db.Queryable<T_Service_Apoplexy_NutritionalRisk>().
|
|||
|
Where(i => i.DeleteFlag == 0 && i.TotalScore <= 3 && i.isComplete == 0).GroupBy(i => SqlFunc.ToDate(i.CreateTime).Date)
|
|||
|
.Select(a => new CalendarModel
|
|||
|
{
|
|||
|
info = SqlFunc.AggregateCount(a.CreateTime),
|
|||
|
Date = SqlFunc.ToDate(a.CreateTime).Date.AddDays(7),
|
|||
|
AllDay = true,
|
|||
|
ExpiredTime = SqlFunc.ToDate(a.CreateTime).Date < SqlFunc.ToDate(DateTime.Now).Date ? 0 : 1
|
|||
|
}).ToList();
|
|||
|
TableModel<CalendarModel> t = new TableModel<CalendarModel>();
|
|||
|
t.Code = 0;
|
|||
|
t.PageCount = list.Count;
|
|||
|
t.TotalNumber = list.Count;
|
|||
|
t.Data = list;
|
|||
|
t.Msg = "成功";
|
|||
|
return t;
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 营养筛查列表
|
|||
|
/// </summary>
|
|||
|
/// <param name="date"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public TableModel<NutritionalRiskModel> GetCalenderList(DateTime date)
|
|||
|
{
|
|||
|
List<NutritionalRiskModel> list = new List<NutritionalRiskModel>();
|
|||
|
list = db.Queryable<T_Service_Apoplexy_NutritionalRisk, T_Service_Patient, T_SYS_User>((a, b, c) => new JoinQueryInfos(JoinType.Inner, a.PatientGuid == b.GUID, JoinType.Left, a.CreatorID == c.ID)).Where(a => a.DeleteFlag == 0 && a.TotalScore <= 3 && a.isComplete == 0 && SqlFunc.ToDate(a.CreateTime).Date == SqlFunc.ToDate(date).Date.AddDays(-7)).Select((a, b, c) => new NutritionalRiskModel
|
|||
|
{
|
|||
|
PatientGuid = a.PatientGuid,
|
|||
|
Nutritional = a.Nutritional,
|
|||
|
Disease = a.Disease,
|
|||
|
Age = a.Age,
|
|||
|
TotalScore = a.TotalScore,
|
|||
|
Flag = a.Flag,
|
|||
|
CreateTime = a.CreateTime,
|
|||
|
CreateUserName = c.FullName,
|
|||
|
Name = b.Name,
|
|||
|
Gender = b.Gender,
|
|||
|
PatientAge = b.Age
|
|||
|
}).ToList();
|
|||
|
TableModel<NutritionalRiskModel> t = new TableModel<NutritionalRiskModel>();
|
|||
|
t.Code = 0;
|
|||
|
t.PageCount = list.Count;
|
|||
|
t.TotalNumber = list.Count;
|
|||
|
t.Data = list;
|
|||
|
t.Msg = "成功";
|
|||
|
return t;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 获取住院成人患者营养风险筛查 复筛最新数据
|
|||
|
/// </summary>
|
|||
|
/// <param name="patientGuid"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public T_Service_Apoplexy_NutritionalRisk GetByPatientGuid(string patientGuid)
|
|||
|
{
|
|||
|
return db.Queryable<T_Service_Apoplexy_NutritionalRisk>().Where(i => i.PatientGuid == patientGuid && i.DeleteFlag == 0 && i.isComplete == 0).OrderBy(i => i.Flag, OrderByType.Desc).First();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|