修改一版

Uat_Study
he 2022-06-07 13:58:20 +08:00
parent d41b46b526
commit df15f9e22a
2 changed files with 43 additions and 43 deletions

View File

@ -68,7 +68,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List<Guid> SubjectVisitIds { get; set; }
}
public class PreviewTheReadingListInDto
public class PreviewTheReadingListInDto:PageInput
{
/// <summary>
/// 阅片期ID

View File

@ -81,7 +81,8 @@ namespace IRaCIS.Application.Services
/// 获取影像阅片的预览 // 需要清除之前已经选中的
/// </summary>
/// <returns></returns>
public async Task<List<PreviewTheReadingListOutDto>> GetPreviewTheReadingList(PreviewTheReadingListInDto inDto)
[HttpPost]
public async Task<PageOutput<PreviewTheReadingListOutDto> > 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<SubjectVisit> visits = new List<SubjectVisit>();
subjectVisits.ForEach(x =>
{
var expirationDate = readSet.ExpirationDate;
var subjectvisitlist = new List<SubjectVisit>();
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<PreviewTheReadingListOutDto> result = new PageOutput<PreviewTheReadingListOutDto>()
{
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;
}
/// <summary>
@ -207,6 +206,7 @@ namespace IRaCIS.Application.Services
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<List<PreviewTheReadingListOutDto>> 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)