diff --git a/src/Shentun.Peis.Application/PhoneFollowUps/PhoneFollowUpAppService.cs b/src/Shentun.Peis.Application/PhoneFollowUps/PhoneFollowUpAppService.cs index c3fbe57..ca0908e 100644 --- a/src/Shentun.Peis.Application/PhoneFollowUps/PhoneFollowUpAppService.cs +++ b/src/Shentun.Peis.Application/PhoneFollowUps/PhoneFollowUpAppService.cs @@ -404,33 +404,97 @@ namespace Shentun.Peis.PhoneFollowUps query = query.Where(m => m.patientRegister.Id == input.PatientRegisterId); + var registerCheckGroup = query.ToList().GroupBy(g => new { g.registerCheck, g.registerCheckItem }); + var entListDto = new List(); - var registerCheckGroup = query.ToList().GroupBy(g => new { g.registerCheck, g.registerCheckItem }); - - var entListDto = registerCheckGroup.Select(s => new GetAsbitemOrItemCriticalByPatientRegisterIdDto + foreach (var item in registerCheckGroup) { - RegisterCheckId = s.Key.registerCheck.Id, - AsbitemName = string.Join(",", s.Select(ss => ss.asbitem.DisplayName).Distinct()), - CriticalRangeValue = s.Key.registerCheck.CriticalRangeValue, - CriticalValueContent = s.Key.registerCheck.CriticalValueContent, - IsCriticalValue = s.Key.registerCheck.IsCriticalValue, - IsCriticalValueAudit = s.Key.registerCheck.IsCriticalValueAudit, - IsFollowUp = s.Key.registerCheck.IsFollowUp, - IsReview = s.Key.registerCheck.IsReview, - SummaryDetail = string.Join("
", s.Where(m => m.registerCheckSummaryHaveEmpty != null).Select(ss => ss.registerCheckSummaryHaveEmpty.Summary).Distinct()), - ItemCriticalRangeValue = s.Key.registerCheckItem.CriticalRangeValue, - ItemCriticalValueContent = s.Key.registerCheckItem.CriticalValueContent, - ItemIsCriticalValue = s.Key.registerCheckItem.IsCriticalValue, - ItemIsCriticalValueAudit = s.Key.registerCheckItem.IsCriticalValueAudit, - ItemIsFollowUp = s.Key.registerCheckItem.IsFollowUp, - ItemIsReview = s.Key.registerCheckItem.IsReview, - ItemName = s.FirstOrDefault().item.DisplayName, - ItemResult = s.Key.registerCheckItem.Result, - ReferenceRangeValue = s.Key.registerCheckItem.ReferenceRangeValue, - Unit = s.Key.registerCheckItem.Unit - }).ToList(); + if (item.Key.registerCheck.IsFollowUp == 'Y' + || item.Key.registerCheck.IsCriticalValue == 'Y' + || item.Key.registerCheckItem.IsFollowUp == 'Y' + || item.Key.registerCheckItem.IsCriticalValue == 'Y') + { + if (item.Key.registerCheckItem.IsFollowUp == 'Y' + || item.Key.registerCheckItem.IsCriticalValue == 'Y') + { + entListDto.Add(new GetAsbitemOrItemCriticalByPatientRegisterIdDto + { + RegisterCheckId = item.Key.registerCheck.Id, + AsbitemName = string.Join(",", item.Select(ss => ss.asbitem.DisplayName).Distinct()), + CriticalRangeValue = item.Key.registerCheck.CriticalRangeValue, + CriticalValueContent = item.Key.registerCheck.CriticalValueContent, + IsCriticalValue = item.Key.registerCheck.IsCriticalValue, + IsCriticalValueAudit = item.Key.registerCheck.IsCriticalValueAudit, + IsFollowUp = item.Key.registerCheck.IsFollowUp, + IsReview = item.Key.registerCheck.IsReview, + SummaryDetail = string.Join("
", item.Where(m => m.registerCheckSummaryHaveEmpty != null).Select(ss => ss.registerCheckSummaryHaveEmpty.Summary).Distinct()), + ItemCriticalRangeValue = item.Key.registerCheckItem.CriticalRangeValue, + ItemCriticalValueContent = item.Key.registerCheckItem.CriticalValueContent, + ItemIsCriticalValue = item.Key.registerCheckItem.IsCriticalValue, + ItemIsCriticalValueAudit = item.Key.registerCheckItem.IsCriticalValueAudit, + ItemIsFollowUp = item.Key.registerCheckItem.IsFollowUp, + ItemIsReview = item.Key.registerCheckItem.IsReview, + ItemName = item.FirstOrDefault().item.DisplayName, + ItemResult = item.Key.registerCheckItem.Result, + ReferenceRangeValue = item.Key.registerCheckItem.ReferenceRangeValue, + Unit = item.Key.registerCheckItem.Unit + }); + } + else + { + if (entListDto.Where(m => m.RegisterCheckId == item.Key.registerCheck.Id).Count() == 0) + { + entListDto.Add(new GetAsbitemOrItemCriticalByPatientRegisterIdDto + { + RegisterCheckId = item.Key.registerCheck.Id, + AsbitemName = string.Join(",", item.Select(ss => ss.asbitem.DisplayName).Distinct()), + CriticalRangeValue = item.Key.registerCheck.CriticalRangeValue, + CriticalValueContent = item.Key.registerCheck.CriticalValueContent, + IsCriticalValue = item.Key.registerCheck.IsCriticalValue, + IsCriticalValueAudit = item.Key.registerCheck.IsCriticalValueAudit, + IsFollowUp = item.Key.registerCheck.IsFollowUp, + IsReview = item.Key.registerCheck.IsReview, + SummaryDetail = string.Join("
", item.Where(m => m.registerCheckSummaryHaveEmpty != null).Select(ss => ss.registerCheckSummaryHaveEmpty.Summary).Distinct()), + ItemCriticalRangeValue = "", + ItemCriticalValueContent = "", + ItemIsCriticalValue = null, + ItemIsCriticalValueAudit = null, + ItemIsFollowUp = null, + ItemIsReview = null, + ItemName = "", + ItemResult = "", + ReferenceRangeValue = "", + Unit = "" + }); + } + } + } + } + + //var entListDto = registerCheckGroup.Select(s => new GetAsbitemOrItemCriticalByPatientRegisterIdDto + //{ + // RegisterCheckId = s.Key.registerCheck.Id, + // AsbitemName = string.Join(",", s.Select(ss => ss.asbitem.DisplayName).Distinct()), + // CriticalRangeValue = s.Key.registerCheck.CriticalRangeValue, + // CriticalValueContent = s.Key.registerCheck.CriticalValueContent, + // IsCriticalValue = s.Key.registerCheck.IsCriticalValue, + // IsCriticalValueAudit = s.Key.registerCheck.IsCriticalValueAudit, + // IsFollowUp = s.Key.registerCheck.IsFollowUp, + // IsReview = s.Key.registerCheck.IsReview, + // SummaryDetail = string.Join("
", s.Where(m => m.registerCheckSummaryHaveEmpty != null).Select(ss => ss.registerCheckSummaryHaveEmpty.Summary).Distinct()), + // ItemCriticalRangeValue = s.Key.registerCheckItemHaveEmpty.CriticalRangeValue, + // ItemCriticalValueContent = s.Key.registerCheckItemHaveEmpty.CriticalValueContent, + // ItemIsCriticalValue = s.Key.registerCheckItemHaveEmpty.IsCriticalValue, + // ItemIsCriticalValueAudit = s.Key.registerCheckItemHaveEmpty.IsCriticalValueAudit, + // ItemIsFollowUp = s.Key.registerCheckItemHaveEmpty.IsFollowUp, + // ItemIsReview = s.Key.registerCheckItemHaveEmpty.IsReview, + // ItemName = s.FirstOrDefault().item.DisplayName, + // ItemResult = s.Key.registerCheckItemHaveEmpty.Result, + // ReferenceRangeValue = s.Key.registerCheckItemHaveEmpty.ReferenceRangeValue, + // Unit = s.Key.registerCheckItemHaveEmpty.Unit + //}).ToList(); //var entListDto = registerCheckGroup.Select(s => new GetAsbitemOrItemCriticalByPatientRegisterIdDto //{