/// <summary> /// 患者-体重曲线 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <IActionResult> GetWeightCharts(BaseInput input) { var list = _patVisitApp.GetList() .Where(t => t.F_Pid == input.KeyValue && t.F_DialysisEndTime != null && t.F_WeightTQ != null && t.F_WeightTH != null) //.Where(t => t.F_Pid.Equals(input.keyValue)) .OrderByDescending(t => t.F_VisitDate) .Take(15) .Select(t => new { t.F_VisitDate, t.F_WeightTQ, t.F_WeightTH }) .ToList(); var ideaWeight = await _patientApp.GetIdeaWeight(input.KeyValue); var data = new { ideaWeight, count = list.Count, rows = list.Select(t => new { visitDate = t.F_VisitDate.ToDate(), weightTQ = t.F_WeightTQ.ToFloat(2), weightTH = t.F_WeightTH.ToFloat(2), }) }; return(Ok(data)); }
/// <summary> /// 通过指定日期的就诊记录查询患者选择项 /// </summary> /// <param name="visitDate"></param> /// <param name="groupName"></param> /// <param name="visitNo"></param> /// <returns></returns> public async Task <IActionResult> GetSelectByVisitRecordJson(DateTime?visitDate, string groupName, int?visitNo) { var visitDateTemp = visitDate?.ToDate().Date ?? DateTime.Today; var visitNoTemp = visitNo?.ToInt() ?? 0; var records = _patVisitApp.GetList() .Where(t => t.F_VisitDate == visitDateTemp && t.F_VisitNo == visitNoTemp && t.F_GroupName == groupName) .Select(t => new { Id = t.F_Pid, VisitDate = t.F_VisitDate, VisitNo = t.F_VisitNo, GroupName = t.F_GroupName, BedNo = t.F_DialysisBedNo }).Distinct().ToList(); var cacheData = await _patientApp.GetSelectOptions(null); var data = cacheData.Join(records, p => p.Id, r => r.Id, (p, v) => new { id = p.Id, name = p.Name, recordNo = p.RecordNo, py = p.Py, idealWeight = p.IdealWeight, beInfected = p.BeInfected, visitDate = v.VisitDate, visitNo = v.VisitNo, groupName = v.GroupName, bedNo = v.BedNo }).OrderBy(n => n.visitNo).ThenBy(n => n.groupName).ThenBy(n => n.bedNo); return(Content(data.ToJson())); }
public IActionResult GetBloodPressJson(string keyValue) { var json = keyValue.ToJObject(); var startDate = json.Value <DateTime>("startDate"); var endDate = json.Value <DateTime>("endDate"); var pid = json.Value <string>("pid"); //查询治疗记录 var data = (from r in _patVisitApp.GetList().Where(t => t.F_Pid == pid && t.F_DialysisEndTime != null && t.F_VisitDate >= startDate && t.F_VisitDate <= endDate && t.F_EnabledMark != false) //, startDate, endDate orderby r.F_VisitDate select new { date = r.F_VisitDate.ToDateString().Substring(5), ssy = r.F_SystolicPressure.ToFloat(2), szy = r.F_DiastolicPressure.ToFloat(2) }).ToList(); return(Content(data.ToJson())); }
public async Task <IActionResult> SubmitFormCreatePatVisit([FromBody] BaseInput input) { //总数 int count = 0; //新增数 int addnum = 0; //SettingApp settingApp = new SettingApp(); //var list = keyValue.ToJArrayObject().Select(t =>t.Value<string>("F_Id")); foreach (var id in input.KeyValue.ToJArrayObject().Select(t => t.Value <string>("F_Id"))) { var schedule = await _dialysisScheduleApp.GetForm(id); count++; var patient = await _patientApp.GetForm(schedule.F_PId); //判断是否存在申请单 if (_patVisitApp.GetList().Count(t => t.F_Pid == patient.F_Id && t.F_VisitDate == schedule.F_VisitDate) > 0) { continue; } //查询透析参数 var settings = (await _settingApp.GetList(schedule.F_PId)).OrderByDescending(t => t.F_CreatorTime); if (string.IsNullOrEmpty(schedule.F_DialysisType)) { schedule.F_DialysisType = "HD"; } var firstSetting = settings.FirstOrDefault(t => t.F_DialysisType == schedule.F_DialysisType); PatVisitEntity entity; if (firstSetting != null) { entity = new PatVisitEntity { F_VisitDate = schedule.F_VisitDate, F_VisitNo = schedule.F_VisitNo, F_BirthDay = patient.F_BirthDay, F_Pid = patient.F_Id, F_DialysisBedNo = schedule.F_DialysisBedNo, F_DialysisNo = patient.F_DialysisNo, F_DialysisType = schedule.F_DialysisType, F_EnabledMark = true, F_Gender = patient.F_Gender, F_GroupName = schedule.F_GroupName, F_HeparinAddAmount = firstSetting.F_HeparinAddAmount, F_HeparinAmount = firstSetting.F_HeparinAmount, F_HeparinType = firstSetting.F_HeparinType, F_HeparinUnit = firstSetting.F_HeparinUnit, F_AccessName = firstSetting.F_AccessName, F_BloodSpeed = firstSetting.F_BloodSpeed, F_Ca = firstSetting.F_Ca, F_K = firstSetting.F_K, F_Na = firstSetting.F_Na, F_Hco3 = firstSetting.F_Hco3, F_LowCa = firstSetting.F_LowCa, F_DialysateTemperature = firstSetting.F_DialysateTemperature, F_DialyzerType1 = firstSetting.F_DialyzerType1, F_DialyzerType2 = firstSetting.F_DialyzerType2, F_DilutionType = firstSetting.F_DilutionType, F_EstimateHours = firstSetting.F_EstimateHours, F_VascularAccess = firstSetting.F_VascularAccess, F_InpNo = patient.F_PatientNo, F_RecordNo = patient.F_RecordNo, F_IsCritical = false, F_Name = patient.F_Name, F_PatientSourse = null }; } else { entity = new PatVisitEntity { F_VisitDate = schedule.F_VisitDate, F_VisitNo = schedule.F_VisitNo, F_BirthDay = patient.F_BirthDay, F_Pid = patient.F_Id, F_DialysisBedNo = schedule.F_DialysisBedNo, F_DialysisNo = patient.F_DialysisNo, F_DialysisType = schedule.F_DialysisType, F_EnabledMark = true, F_Gender = patient.F_Gender, F_GroupName = schedule.F_GroupName, F_HeparinAddAmount = null, F_HeparinAmount = null, F_HeparinType = null, F_HeparinUnit = null, F_InpNo = patient.F_PatientNo, F_RecordNo = patient.F_RecordNo, F_IsCritical = false, F_Name = patient.F_Name, F_PatientSourse = null }; } await _patVisitApp.SubmitForm(entity, new object()); addnum++; } return(Success("操作成功,新增治疗单 " + addnum + " 个 , 总数:" + count)); }
public async Task <IActionResult> GetFilterList(GetFilterListInput input) { var bedInfo = await _dialysisMachineApp.GetForm(input.keyValue); var list = _patVisitApp.GetList()//input.startDate.ToDate(), input.endDate.ToDate(), bedInfo.F_GroupName, bedInfo.F_DialylisBedNo, true .Where(t => t.F_VisitDate >= input.startDate.ToDate() && t.F_VisitDate <= input.endDate.ToDate() && t.F_GroupName == bedInfo.F_GroupName && t.F_DialysisBedNo == bedInfo.F_DialylisBedNo && t.F_DialysisStartTime != null && t.F_DialysisEndTime != null ) .Select(t => new { vid = t.F_Id, pid = t.F_Pid, dialysisNo = t.F_DialysisNo, patientName = t.F_Name, patientGender = t.F_Gender, visitDate = t.F_VisitDate, visitNo = t.F_VisitNo, groupName = t.F_GroupName, dialysisBedNo = t.F_DialysisBedNo, dialysisStartTime = t.F_DialysisStartTime, dialysisEndTime = t.F_DialysisEndTime }).ToList(); var processes = _machineProcessApp.GetList(input.startDate.ToDate(), input.endDate.ToDate(), input.keyValue) .Select(t => new { id = t.F_Id, vid = t.F_Vid, operatePerson = t.F_OperatePerson, operateTime = t.F_OperateTime, option1 = t.F_Option1, option2 = t.F_Option2, option3 = t.F_Option3, option4 = t.F_Option4, option5 = t.F_Option5, option6 = t.F_Option6, memo = t.F_Memo }).ToList(); var data = new { machine = new { groupName = bedInfo.F_GroupName, bedNo = bedInfo.F_DialylisBedNo, showOrder = bedInfo.F_ShowOrder, machineName = bedInfo.F_MachineName, machineNo = bedInfo.F_MachineNo, defaultType = bedInfo.F_DefaultType }, rows = list.GroupJoin(processes, v => v.vid, p => p.vid, (v, p) => new { v.vid, isProcessed = p.Count() > 0, //v.dialysisBedNo, v.patientName, v.patientGender, v.visitDate, v.visitNo, v.dialysisStartTime, v.dialysisEndTime, processItem = p.FirstOrDefault() }).Select(t => t).OrderBy(t => t.visitDate).ThenBy(t => t.visitNo) }; return(Ok(data)); }
/// <summary> /// 根据治疗单 生成数据 /// </summary> /// <param name="visitDate"></param> /// <param name="visitNo"></param> private void CreateData(DateTime visitDate, int visitNo) { //QualityResultApp resultApp = new QualityResultApp(); var listSourse = _patVisitApp.GetList().Where(t => t.F_VisitDate == visitDate && (visitNo == 0 || t.F_VisitNo == visitNo) && t.F_DialysisStartTime != null && t.F_DialysisEndTime != null); var listTarget = GetList(visitDate, visitNo); //查询不包含的数据 var c = (from r in listSourse where !listTarget.Any(t => t.F_Vid == r.F_Id) select r).ToList(); //没有 返回 if (c.Count == 0) { return; } //患者列表 var patientList = from r in _patientApp.GetQueryable() where c.Any(t => t.F_Pid == r.F_Id) select new { r.F_Id, r.F_Name, r.F_Gender, r.F_DialysisNo }; var bedList = from b in _dialysisMachineApp.GetQueryable() select new { b.F_Id, b.F_GroupName, b.F_DialylisBedNo, b.F_MachineName, b.F_MachineNo, b.F_ShowOrder }; //生成记录 var addEntityList = new List <MachineProcessEntity>(); foreach (var item in c) { var entity = new MachineProcessEntity { F_Pid = item.F_Pid, F_Vid = item.F_Id, F_VisitDate = item.F_VisitDate, F_VisitNo = item.F_VisitNo, F_Option1 = false, F_Option2 = false, F_Option3 = false, F_Option4 = false, //F_Option5 = false, F_GroupName = item.F_GroupName, F_DialylisBedNo = item.F_DialysisBedNo }; var p = patientList.FirstOrDefault(t => t.F_Id == item.F_Pid); if (p != null) { entity.F_PName = p.F_Name; entity.F_PGender = p.F_Gender; entity.F_DialylisNo = p.F_DialysisNo; } else { continue; } var b = bedList.FirstOrDefault(t => t.F_GroupName == item.F_GroupName && t.F_DialylisBedNo == item.F_DialysisBedNo); if (b != null) { entity.F_MachineName = b.F_MachineName; entity.F_MachineNo = b.F_MachineNo; entity.F_ShowOrder = b.F_ShowOrder; entity.F_Mid = b.F_Id; } else { continue; } entity.Create(); entity.F_EnabledMark = true; addEntityList.Add(entity); } if (addEntityList.Count > 0) { //保存记录 _service.Insert(addEntityList); } //更新记录 }
public async Task <IActionResult> SubmitData([FromBody] SubmitDataInput input) { if (input == null || string.IsNullOrEmpty(input.patientId)) { return(BadRequest("患者ID未传值!")); } var userId = _usersService.GetCurrentUserId(); if (string.IsNullOrEmpty(input.id))//新建 { var entity = new PunctureEntity { F_Id = Common.GuId(), F_CreatorTime = System.DateTime.Now, F_CreatorUserId = userId, F_Nurse = userId, F_OperateTime = input.operateTime ?? System.DateTime.Now, F_IsSuccess = input.isSucess, F_EnabledMark = true, F_Point1 = input.point1, F_Point2 = input.point2, F_Pid = input.patientId }; var patient = await _patientApp.GetForm(entity.F_Pid); if (patient != null) { var visitDate = entity.F_OperateTime.ToDate().Date; var patVisit = _patVisitApp.GetList().FirstOrDefault(t => t.F_Pid == patient.F_Id && t.F_VisitDate == visitDate);//patient.F_Id, visitDate if (patVisit != null) { //更新治疗单 穿刺者信息 patVisit.F_PuncturePerson = userId; await _patVisitApp.UpdateForm(patVisit); } else { return(BadRequest(patient.F_Name + "(" + visitDate.ToDateString() + ")无透析记录!")); } } else { return(BadRequest("患者ID有误!")); } await _punctureApp.InsertForm(entity); return(Ok(entity.F_Id)); } else { var entity = new PunctureEntity { F_LastModifyTime = DateTime.Now, F_LastModifyUserId = userId }; await _punctureApp.UpdateForm(entity); return(Ok(entity.F_Id)); } }
/// <summary> /// 根据治疗单 生成数据 /// </summary> /// <param name="visitDate"></param> private async Task CreateDataAsync(DateTime visitDate) { //QualityResultApp resultApp = new QualityResultApp(); var listSourse = _visitApp.GetList().Where(t => t.F_VisitDate == visitDate && t.F_DialysisStartTime != null && t.F_DialysisEndTime != null); var listTarget = await GetList(visitDate); //查询不包含的数据 var c = from r in listSourse where listTarget.All(t => t.F_Vid != r.F_Id) select r; //查询化验结果 尿素 UREA var lisResltList = (from r in _resultApp.GetList() where listSourse.Any(t => t.F_Pid == r.F_Pid) && r.F_ReportTime >= visitDate && r.F_ReportTime < visitDate.AddDays(1) && r.F_ItemCode == "UREA" select new { r.F_Pid, r.F_ReportTime, r.F_Result }).ToList(); //患者列表 var patientList = _patientApp.GetQueryable().Where(r => listSourse.Any(t => t.F_Pid == r.F_Id)) .Select(r => new { r.F_Id, r.F_Name, r.F_Gender, r.F_DialysisNo }); //生成记录 var addEntityList = new List <ProcessFlowEntity>(); foreach (var item in c) { var entity = new ProcessFlowEntity { F_Pid = item.F_Pid, F_Vid = item.F_Id, F_VisitDate = item.F_VisitDate, F_VisitNo = item.F_VisitNo, F_PreWeight = item.F_WeightTQ, F_PostWeight = item.F_WeightTH, F_TotalHours = (item.F_DialysisEndTime.ToDate() - item.F_DialysisStartTime.ToDate()).TotalHours.ToFloat(1) }; var p = patientList.FirstOrDefault(t => t.F_Id == item.F_Pid); if (p != null) { entity.F_PName = p.F_Name; entity.F_PGender = p.F_Gender; entity.F_DialylisNo = p.F_DialysisNo; } var lis = lisResltList.FindAll(t => t.F_Pid == item.F_Pid).OrderBy(t => t.F_ReportTime).ToList(); if (lis.Count > 0) { entity.F_PreUrea = lis[0].F_Result.ToFloat(2); if (lis.Count > 1) { entity.F_PostUrea = lis[1].F_Result.ToFloat(2); } } if (entity.F_PreWeight != null && entity.F_PostWeight != null && entity.F_PreUrea != null && entity.F_PostUrea != null) { var preWeight = entity.F_PreWeight.ToFloat(2); var postWeight = entity.F_PostWeight.ToFloat(2); if (preWeight > postWeight) { var preUrea = entity.F_PreUrea.ToFloat(2); var postUrea = entity.F_PostUrea.ToFloat(2); if (preUrea > postUrea) { var duration = entity.F_TotalHours.ToFloat(1); if (duration > 0) { //计算Kt/V entity.F_Result = (-Math.Log(postUrea / preUrea - 0.008 * duration) + (4 - 3.5 * postUrea / preUrea) * (preWeight - postWeight) / postWeight).ToFloat(2); } } } } entity.Create(); entity.F_EnabledMark = true; addEntityList.Add(entity); } if (addEntityList.Count > 0) { //保存记录 _service.Insert(addEntityList); } //更新记录 var u = from r in listTarget where r.F_PreUrea == null || r.F_PreWeight == null || r.F_PostUrea == null || r.F_PostWeight == null select r; foreach (var item in u) { bool isModified = false; if (item.F_PreUrea == null || item.F_PostUrea == null) { var lis = lisResltList.FindAll(t => t.F_Pid == item.F_Pid).OrderBy(t => t.F_ReportTime).ToList(); if (lis.Count > 0) { if (item.F_PreUrea == null) { item.F_PreUrea = lis[0].F_Result.ToFloat(2); isModified = true; } if (lis.Count > 1) { if (item.F_PostUrea == null) { item.F_PostUrea = lis[1].F_Result.ToFloat(2); isModified = true; } } } } if (item.F_PreWeight == null || item.F_PostWeight == null) { var find = listSourse.FirstOrDefault(t => t.F_Pid == item.F_Pid); if (item.F_PreWeight == null) { item.F_PreWeight = find.F_WeightTQ; isModified = true; } if (item.F_PostWeight == null) { item.F_PreWeight = find.F_WeightTH; isModified = true; } } if (item.F_PreWeight != null && item.F_PostWeight != null && item.F_PreUrea != null && item.F_PostUrea != null) { var preWeight = item.F_PreWeight.ToFloat(2); var postWeight = item.F_PostWeight.ToFloat(2); if (preWeight > postWeight) { var preUrea = item.F_PreUrea.ToFloat(2); var postUrea = item.F_PostUrea.ToFloat(2); if (preUrea > postUrea) { var duration = item.F_TotalHours.ToFloat(1); if (duration > 0) { //计算Kt/V item.F_Result = (-Math.Log(postUrea / preUrea - 0.008 * duration) + (4 - 3.5 * postUrea / preUrea) * (preWeight - postWeight) / postWeight).ToFloat(2); isModified = true; } } } } if (isModified) { _service.Update(item); } } }
public IActionResult GetRecordCountJson(string keyValue) { WorkloadOutput output = new WorkloadOutput(); var json = keyValue.ToJObject(); var startDate = json.Value <DateTime>("startDate"); var endDate = json.Value <DateTime>("endDate"); var pid = json.Value <string>("pid"); var users = _usersService.GetUserNameDict("").Select(t => new { t.F_Id, t.F_RealName }).ToList(); //查询治疗记录 穿刺 核对 上机 下机 //var list = _patVisitApp.GetList() // .Where(t => t.F_VisitDate >= startDate && t.F_VisitDate <= endDate) // .Select(r => new // { // r.F_PuncturePerson, // r.F_StartPerson, // r.F_CheckPerson, // r.F_EndPerson // }); var query = _patVisitApp.GetList() .Where(t => t.F_VisitDate >= startDate && t.F_VisitDate <= endDate && t.F_DeleteMark != true); query = query.Where(t => t.F_PuncturePerson != null || t.F_StartPerson != null || t.F_CheckPerson != null || t.F_EndPerson != null); if (!pid.IsEmpty()) { query = query.Where(t => t.F_StartPerson == pid || t.F_EndPerson == pid || t.F_CheckPerson == pid || t.F_PuncturePerson == pid); } var list = query.Select(r => new { r.F_PuncturePerson, r.F_StartPerson, r.F_CheckPerson, r.F_EndPerson }).ToList(); foreach (var item in list) { if (item.F_PuncturePerson != null) { if (!string.IsNullOrEmpty(pid)) { if (!pid.Equals(item.F_PuncturePerson)) { continue; } } output.GroupItems.PunctureSum++; var find = output.Items.FirstOrDefault(t => t.UId.Equals(item.F_PuncturePerson)); if (find == null) { find = new WorkloadItem { UId = item.F_PuncturePerson, UName = users.FirstOrDefault(t => t.F_Id.Equals(item.F_PuncturePerson))?.F_RealName ?? "" }; output.Items.Add(find); } find.PunctureCount++; } if (item.F_StartPerson != null) { if (!string.IsNullOrEmpty(pid)) { if (!pid.Equals(item.F_StartPerson)) { continue; } } output.GroupItems.StarteSum++; var find = output.Items.FirstOrDefault(t => t.UId.Equals(item.F_StartPerson)); if (find == null) { find = new WorkloadItem { UId = item.F_StartPerson, UName = users.FirstOrDefault(t => t.F_Id.Equals(item.F_StartPerson))?.F_RealName ?? "" }; output.Items.Add(find); } find.StarteCount++; } if (item.F_CheckPerson != null) { if (!string.IsNullOrEmpty(pid)) { if (!pid.Equals(item.F_CheckPerson)) { continue; } } output.GroupItems.CheckSum++; var find = output.Items.FirstOrDefault(t => t.UId.Equals(item.F_CheckPerson)); if (find == null) { find = new WorkloadItem { UId = item.F_CheckPerson, UName = users.FirstOrDefault(t => t.F_Id.Equals(item.F_CheckPerson))?.F_RealName ?? "" }; output.Items.Add(find); } find.CheckCount++; } if (item.F_EndPerson != null) { if (!string.IsNullOrEmpty(pid)) { if (!pid.Equals(item.F_EndPerson)) { continue; } } output.GroupItems.EndSum++; var find = output.Items.FirstOrDefault(t => t.UId.Equals(item.F_EndPerson)); if (find == null) { find = new WorkloadItem { UId = item.F_EndPerson, UName = users.FirstOrDefault(t => t.F_Id.Equals(item.F_EndPerson))?.F_RealName ?? "" }; output.Items.Add(find); } find.EndCount++; } } return(Content(output.ToJson())); }
public IActionResult GetRecordSummary() { //总数 var bedCount = _machineApp.GetQueryable().Count(); //今日记录 var records = _patVisitApp.GetList().Where(t => t.F_VisitDate == DateTime.Today && t.F_EnabledMark == true && t.F_DeleteMark != true);//.FindAll(t => t.F_DialysisStartTime != null && t.F_DialysisEndTime == null) //透析中数量 var usingCount = records.Count(t => t.F_DialysisStartTime != null && t.F_DialysisEndTime == null); //已透析数量 var finishCount = records.Count(t => t.F_DialysisEndTime != null); var todoCount = records.Count(t => t.F_DialysisStartTime == null); var leftBedCount = bedCount - usingCount; leftBedCount = leftBedCount < 0 ? 0 : leftBedCount; //本月透析人数 var monthStartDay = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date; var monthCount = (from r in _patVisitApp.GetList() where r.F_VisitDate >= monthStartDay && r.F_DialysisEndTime != null select r.F_Id).Count(); //统计最近15天的数据 var startDate = DateTime.Now.AddDays(-14).Date; var endDate = DateTime.Now.Date; var _15daysRecords = (from r in _patVisitApp.GetList() where r.F_VisitDate >= startDate && r.F_VisitDate <= endDate && r.F_DialysisEndTime != null orderby r.F_VisitDate select new { date = r.F_VisitDate.ToDateString().Substring(5), mode = r.F_DialysisType }).ToList(); var lineX = new List <string>(); var lineY = new List <int>(); var circleX = new List <string>(); var circleY = new List <int>(); foreach (var item in _15daysRecords) { if (lineX.IndexOf(item.date) < 0) { lineX.Add(item.date); lineY.Add(_15daysRecords.Count(t => t.date.Equals(item.date))); } if (circleX.IndexOf(item.mode) < 0) { circleX.Add(item.mode); circleY.Add(_15daysRecords.Count(t => t.mode.Equals(item.mode))); } } var data = new { todoCount, finishCount, usingCount, leftBedCount, bedCount, monthCount, line = new { lineX, lineY }, circle = new { circleX, circleY } }; return(Content(data.ToJson())); }
public ActionResult GetRecordCountJson(string keyValue) { DialysisRecordOutput output = new DialysisRecordOutput(); var json = keyValue.ToJObject(); var startDate = json.Value <DateTime>("startDate"); var endDate = json.Value <DateTime>("endDate"); var pid = json.Value <string>("pid"); //查询治疗记录 var visitQuery = _patVisit.GetList().Where(t => t.F_Pid == pid && t.F_DialysisEndTime != null && t.F_VisitDate >= startDate && t.F_VisitDate <= endDate && t.F_EnabledMark != false); var list = (from r in visitQuery //join d in _drugsApp.GetSelectJson() on r.F_HeparinType equals d.F_Id //into temp //from t in temp.DefaultIfEmpty() orderby r.F_VisitDate select new { dialysisType = r.F_DialysisType, id = r.F_Id, r.F_AccessName, r.F_BedNo, r.F_BirthDay, r.F_BloodSpeed, r.F_DialysisBedNo, r.F_DialysisEndTime, r.F_DialysisNo, r.F_DialysisStartTime, r.F_DialysisType, r.F_DialyzerType1, r.F_DialyzerType2, r.F_Gender, r.F_GroupName, //r.F_HeparinType, //t == null? "" : t.F_DrugName, //F_HeparinType = t == null ? "" : t.F_DrugName, r.F_InpNo, r.F_Machine, r.F_Name, r.F_PatientSourse, r.F_Pid, r.F_VascularAccess, r.F_VisitDate, r.F_VisitNo }).ToList(); output.PatientId = pid; output.TotalCount = list.Count; output.Rows = list; //List<KeyValuePair<string, int>> data = new List<KeyValuePair<string, int>>(); foreach (var item in list.GroupBy(t => t.dialysisType)) { DialysisRecordItem dialysisRecordItem = new DialysisRecordItem { DialysisType = item.Key, Count = item.Count(), Percent = (((float)item.Count()) / output.TotalCount).ToFloat(2) }; output.Items.Add(dialysisRecordItem); } foreach (var item in list.GroupBy(t => t.F_VisitDate)) { DialysisRecordGroup recordItem = new DialysisRecordGroup { VisitDate = item.Key.ToDateString().Substring(5), }; foreach (var ele in item.GroupBy(t => t.dialysisType)) { recordItem.Value.Add(new KeyValuePair <string, int>( ele.Key, ele.Count() )); } output.GroupItems.Add(recordItem); } return(Content(output.ToJson())); }
public IActionResult GetList(GetListInput input) { var list = _patVisitApp.GetList(input.visitDate, input.visitNo).ToList(); if (!string.IsNullOrEmpty(input.bedNo)) { list = list.Where(t => t.F_DialysisBedNo.Equals(input.bedNo)).ToList(); } var groups = (input.groupNames + "").Split(','); list = list.Where(t => groups.Contains(t.F_GroupName)) .Where(t => t.F_DialysisStartTime != null && t.F_DialysisEndTime != null) .ToList(); var target = _machineDisinfectionApp.GetListByDate(input.visitDate, input.visitDate) .Select(t => new { t.F_Id, t.F_Vid, t.F_StartTime, t.F_EndTime, t.F_Option1, t.F_Option1Value, t.F_Option2, t.F_Option2Value, t.F_Option3, t.F_Option4, t.F_Option5, t.F_OperatePerson, t.F_WipeStartTime, t.F_WipeEndTime, t.F_Option6, t.F_Option6Value, t.F_CheckPerson }); var output = new GetListOutput(); //保存操作用户字典 //Hashtable table = new Hashtable(); var users = _usersService.GetUserNameDict("").Select(t => new { id = t.F_Id, name = t.F_RealName }).ToList(); foreach (var item in list) { DisinfectionInfo disinfection = new DisinfectionInfo { vId = item.F_Id, groupName = item.F_GroupName, bedNo = item.F_DialysisBedNo, visitNo = item.F_VisitNo.ToInt(), patientName = item.F_Name, dialysisStartTime = item.F_DialysisStartTime, dialysisEndTime = item.F_DialysisEndTime }; var find = target.FirstOrDefault(t => t.F_Vid.Equals(item.F_Id)); if (find == null) { disinfection.beDisinfected = false; } else { if (string.IsNullOrEmpty(find.F_OperatePerson) || string.IsNullOrEmpty(find.F_CheckPerson)) { disinfection.beDisinfected = false; } else { disinfection.beDisinfected = true; } disinfection.StartTime = find.F_StartTime; disinfection.EndTime = find.F_EndTime; disinfection.Option1 = find.F_Option1; disinfection.Option1Value = find.F_Option1Value; disinfection.Option2 = find.F_Option2; disinfection.Option2Value = find.F_Option2Value; disinfection.Option3 = find.F_Option3; disinfection.Option4 = find.F_Option4; disinfection.Option5 = find.F_Option5; disinfection.Option6 = find.F_Option6; disinfection.Option6Value = find.F_Option6Value; disinfection.WipeStartTime = find.F_WipeStartTime; disinfection.WipeEndTime = find.F_WipeEndTime; disinfection.OperatePerson = find.F_OperatePerson == null ? "" : users.First(t => t.id.Equals(find.F_OperatePerson)).name; disinfection.CheckPerson = find.F_CheckPerson == null ? "" : users.First(t => t.id.Equals(find.F_CheckPerson)).name; } output.items.Add(disinfection); } output.bedNo = input.bedNo; output.groupNames = input.groupNames; output.visitDate = input.visitDate; output.visitNo = input.visitNo; return(Ok(output)); }