StableVersion4.3/HL_FristAidPlatform_DataBase/Service/T_Service_Apoplexy_Nutritio...

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();
}
}
}