修改一版

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 List<Guid> SubjectVisitIds { get; set; }
} }
public class PreviewTheReadingListInDto public class PreviewTheReadingListInDto:PageInput
{ {
/// <summary> /// <summary>
/// 阅片期ID /// 阅片期ID

View File

@ -81,7 +81,8 @@ namespace IRaCIS.Application.Services
/// 获取影像阅片的预览 // 需要清除之前已经选中的 /// 获取影像阅片的预览 // 需要清除之前已经选中的
/// </summary> /// </summary>
/// <returns></returns> /// <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)) 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); var siteIds = readSet.ReadingPeriodSites.Select(x => x.SiteId);
visitQuery = visitQuery.Where(x => siteIds.Contains(x.SiteId)); visitQuery = visitQuery.Where(x => siteIds.Contains(x.SiteId));
} }
visitQuery = visitQuery.WhereIf(readSet.ExpirationDate != null, x => x.LatestScanDate <= readSet.ExpirationDate.Value) visitQuery = visitQuery.WhereIf(readSet.ExpirationDate != null, x => x.LatestScanDate <= readSet.ExpirationDate.Value)
.WhereIf(readSet.ExpirationVisitNum != null, x => x.VisitNum == readSet.ExpirationVisitNum); .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, SubjectId = x.Key,
Visit = x.ToList() 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>(); List<SubjectVisit> visits = new List<SubjectVisit>();
subjectVisits.ForEach(x => subjectVisits.ForEach(x =>
{
var expirationDate = readSet.ExpirationDate;
var subjectvisitlist = new List<SubjectVisit>();
if (expirationDate != null)
{
subjectvisitlist = x.Visit.Where(x => x.LatestScanDate <= expirationDate).ToList();
}
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(); var visit = x.Visit.OrderByDescending(x => x.VisitNum).FirstOrDefault();
if (visit != null) if (visit != null)
{ {
visits.Add(visit); 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) //Where(x => _readModuleRepository.Where(y => y.ReadingSetType == readSet.ReadingSetType && x.Id == y.SubjectVisitId).Count() == 0)
.Select(x => new PreviewTheReadingListOutDto .Select(x => new PreviewTheReadingListOutDto
{ {
ExpirationDate= readSet.ExpirationDate, ExpirationDate = readSet.ExpirationDate,
SubjectVisitId= x.Id, SubjectVisitId = x.Id,
TrialSiteCode = x.TrialSite.TrialSiteCode, TrialSiteCode = x.TrialSite.TrialSiteCode,
LatestScanDate=x.LatestScanDate, LatestScanDate = x.LatestScanDate,
ReadingPeriodName= readSet.ReadingPeriodName, ReadingPeriodName = readSet.ReadingPeriodName,
ReadingPeriodSetId= readSet.Id, ReadingPeriodSetId = readSet.Id,
SubjectCode=x.Subject.Code, SubjectCode = x.Subject.Code,
SubjectId=x.SubjectId, SubjectId = x.SubjectId,
SubjectVisitName=x.VisitName, SubjectVisitName = x.VisitName,
//Remark= readset.Remark //Remark= readset.Remark
}).ToList(); }).ToList(),
PageSize = inDto.PageSize,
PageIndex = inDto.PageIndex,
TotalCount = totalCount,
};
return result;
} }
/// <summary> /// <summary>
@ -207,6 +206,7 @@ namespace IRaCIS.Application.Services
/// </summary> /// </summary>
/// <param name="inDto"></param> /// <param name="inDto"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost]
public async Task<List<PreviewTheReadingListOutDto>> GetPreviewTheReadingPlanList(PreviewTheReadingListInDto inDto) 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) var plans =await _readingPeriodPlanRepository.Where(x => x.ReadingPeriodSetId == inDto.ReadingPeriodSetId).Include(x => x.SubjectVisit).Include(x => x.SubjectVisit.TrialSite).Include(x => x.SubjectVisit.Subject)