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(); /// /// 保存住院成人患者营养风险筛查 /// /// /// 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().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().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; } /// /// 获取住院成人患者营养风险筛查 /// /// /// public NutritionalRiskModel GetNutritionalRiskByPatientGuid(string patientGuid, int flag) { int sflag = flag + 1; NutritionalRiskModel model = new NutritionalRiskModel(); model = db.Queryable().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().Where(s => s.PatientGuid == patientGuid && s.Flag == sflag).Count(), }).First(); return model; } /// /// 根据患者GUID获取筛查集合 /// /// /// public List GetNutritionalRisksListByPatientGuid(string patientGuid) { List list = new List(); list = db.Queryable((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; } /// /// 营养筛查日历 /// /// public TableModel GetCalenderData() { List list = new List(); list = db.Queryable(). 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 t = new TableModel(); t.Code = 0; t.PageCount = list.Count; t.TotalNumber = list.Count; t.Data = list; t.Msg = "成功"; return t; } /// /// 营养筛查列表 /// /// /// public TableModel GetCalenderList(DateTime date) { List list = new List(); list = db.Queryable((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 t = new TableModel(); t.Code = 0; t.PageCount = list.Count; t.TotalNumber = list.Count; t.Data = list; t.Msg = "成功"; return t; } /// /// 获取住院成人患者营养风险筛查 复筛最新数据 /// /// /// public T_Service_Apoplexy_NutritionalRisk GetByPatientGuid(string patientGuid) { return db.Queryable().Where(i => i.PatientGuid == patientGuid && i.DeleteFlag == 0 && i.isComplete == 0).OrderBy(i => i.Flag, OrderByType.Desc).First(); } } }