From df15f9e22a13166e6afcbc8ebead517ab5735b8d Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 7 Jun 2022 13:58:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingPeriodSetViewModel.cs | 2 +- .../Reading/ReadingPeriodSetService.cs | 84 +++++++++---------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingPeriodSetViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingPeriodSetViewModel.cs index 06396180f..5fcc52a3d 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingPeriodSetViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingPeriodSetViewModel.cs @@ -68,7 +68,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public List SubjectVisitIds { get; set; } } - public class PreviewTheReadingListInDto + public class PreviewTheReadingListInDto:PageInput { /// /// 阅片期ID diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs index 47ef287e9..b1c2a6bcd 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs @@ -81,7 +81,8 @@ namespace IRaCIS.Application.Services /// 获取影像阅片的预览 // 需要清除之前已经选中的 /// /// - public async Task> GetPreviewTheReadingList(PreviewTheReadingListInDto inDto) + [HttpPost] + public async Task > GetPreviewTheReadingList(PreviewTheReadingListInDto inDto) { if (await _readingPeriodPlanRepository.AnyAsync(x => x.ReadingPeriodSetId == inDto.ReadingPeriodSetId)) { @@ -95,63 +96,61 @@ namespace IRaCIS.Application.Services var siteIds = readSet.ReadingPeriodSites.Select(x => x.SiteId); visitQuery = visitQuery.Where(x => siteIds.Contains(x.SiteId)); } - visitQuery = visitQuery.WhereIf(readSet.ExpirationDate != null, x => x.LatestScanDate <= readSet.ExpirationDate.Value) .WhereIf(readSet.ExpirationVisitNum != null, x => x.VisitNum == readSet.ExpirationVisitNum); - var subjectVisits = await visitQuery.Include(x => x.Subject).Include(x => x.TrialSite).GroupBy(x => x.SubjectId).Select(x => new + var subjectIdlist = await visitQuery.OrderBy(x => x.SubjectId).Select(x => x.SubjectId).Distinct().Skip((inDto.PageIndex - 1) * inDto.PageSize).Take(inDto.PageSize).ToListAsync(); + var totalCount = visitQuery.Select(x => x.SubjectId).Distinct().Count(); + var visitlist= await visitQuery.Include(x=>x.Subject).Include(x=>x.TrialSite).Where(x => subjectIdlist.Contains(x.SubjectId)).ToListAsync(); + var subjectVisits = visitlist.GroupBy(x => x.SubjectId).Select(x => new { SubjectId = x.Key, Visit = x.ToList() - }).ToListAsync(); + }); + // 这地方用分页报错 + //var visitListQuery = visitQuery.GroupBy(x => x.SubjectId).Select(x => new + //{ + // SubjectId = x.Key, + // Visit = x.ToList() + //}); + // var subjectVisits = await visitListQuery.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? "SubjectId" : inDto.SortField, + // inDto.Asc); + List visits = new List(); subjectVisits.ForEach(x => { - var expirationDate = readSet.ExpirationDate; - var subjectvisitlist = new List(); - if (expirationDate != null) + var visit = x.Visit.OrderByDescending(x => x.VisitNum).FirstOrDefault(); + if (visit != null) { - subjectvisitlist = x.Visit.Where(x => x.LatestScanDate <= expirationDate).ToList(); + visits.Add(visit); } - - if (readSet.ExpirationVisitNum != null) - { - var visit = x.Visit.Where(x => x.VisitNum == readSet.ExpirationVisitNum).FirstOrDefault(); - if (visit != null) - { - visits.Add(visit); - } - } - else - { - var visit = x.Visit.OrderByDescending(x => x.VisitNum).FirstOrDefault(); - if (visit != null) - { - visits.Add(visit); - } - - } - - - }); - return visits + + PageOutput result = new PageOutput() + { + CurrentPageData = visits //Where(x => _readModuleRepository.Where(y => y.ReadingSetType == readSet.ReadingSetType && x.Id == y.SubjectVisitId).Count() == 0) .Select(x => new PreviewTheReadingListOutDto - { - ExpirationDate= readSet.ExpirationDate, - SubjectVisitId= x.Id, - TrialSiteCode = x.TrialSite.TrialSiteCode, - LatestScanDate=x.LatestScanDate, - ReadingPeriodName= readSet.ReadingPeriodName, - ReadingPeriodSetId= readSet.Id, - SubjectCode=x.Subject.Code, - SubjectId=x.SubjectId, - SubjectVisitName=x.VisitName, - //Remark= readset.Remark - }).ToList(); + { + ExpirationDate = readSet.ExpirationDate, + SubjectVisitId = x.Id, + TrialSiteCode = x.TrialSite.TrialSiteCode, + LatestScanDate = x.LatestScanDate, + ReadingPeriodName = readSet.ReadingPeriodName, + ReadingPeriodSetId = readSet.Id, + SubjectCode = x.Subject.Code, + SubjectId = x.SubjectId, + SubjectVisitName = x.VisitName, + //Remark= readset.Remark + }).ToList(), + PageSize = inDto.PageSize, + PageIndex = inDto.PageIndex, + TotalCount = totalCount, + + }; + return result; } /// @@ -207,6 +206,7 @@ namespace IRaCIS.Application.Services /// /// /// + [HttpPost] public async Task> GetPreviewTheReadingPlanList(PreviewTheReadingListInDto inDto) { var plans =await _readingPeriodPlanRepository.Where(x => x.ReadingPeriodSetId == inDto.ReadingPeriodSetId).Include(x => x.SubjectVisit).Include(x => x.SubjectVisit.TrialSite).Include(x => x.SubjectVisit.Subject)