修改一版

Uat_Study
he 2022-06-07 11:47:27 +08:00
parent 8912beb1a5
commit 9709898475
1 changed files with 18 additions and 7 deletions

View File

@ -89,7 +89,7 @@ namespace IRaCIS.Application.Services
await _readingPeriodPlanRepository.SaveChangesAsync(); await _readingPeriodPlanRepository.SaveChangesAsync();
} }
var readSet = (await _readingPeriodSetRepository.Where(x => x.Id == inDto.ReadingPeriodSetId).Include(x => x.ReadingPeriodSites).FirstOrDefaultAsync()).IfNullThrowException(); var readSet = (await _readingPeriodSetRepository.Where(x => x.Id == inDto.ReadingPeriodSetId).Include(x => x.ReadingPeriodSites).FirstOrDefaultAsync()).IfNullThrowException();
var visitQuery = _subjectVisitRepository.Where(x => x.TrialId == readSet.TrialId && x.InPlan); var visitQuery = _subjectVisitRepository.Where(x => x.TrialId == readSet.TrialId && x.InPlan&&x.LatestScanDate!=null);
if (readSet.ReadingScope == ReadingScopeEnum.Site) if (readSet.ReadingScope == ReadingScopeEnum.Site)
{ {
var siteIds = readSet.ReadingPeriodSites.Select(x => x.SiteId); var siteIds = readSet.ReadingPeriodSites.Select(x => x.SiteId);
@ -97,21 +97,28 @@ namespace IRaCIS.Application.Services
} }
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 subjectVisits = await visitQuery.Include(x => x.Subject).Include(x => x.TrialSite).GroupBy(x => x.SubjectId).Select(x => new
{ {
SubjectId = x.Key, SubjectId = x.Key,
Visit = x.ToList() Visit = x.ToList()
}).ToListAsync(); }).ToListAsync();
List<SubjectVisit> visits = new List<SubjectVisit>(); List<SubjectVisit> visits = new List<SubjectVisit>();
subjectVisits.ForEach(x => subjectVisits.ForEach(x =>
{ {
var finalVisit = x.Visit.Where(x => x.IsFinalVisit).FirstOrDefault(); var expirationDate = readSet.ExpirationDate;
if (finalVisit != null) var subjectvisitlist = new List<SubjectVisit>();
if (expirationDate != null)
{ {
var visit = x.Visit.Where(x => x.VisitNum < finalVisit.VisitNum).OrderByDescending(x=>x.VisitNum).FirstOrDefault(); subjectvisitlist = x.Visit.Where(x => x.LatestScanDate <= expirationDate).ToList();
if(visit!=null) }
if (readSet.ExpirationVisitNum != null)
{
var visit = x.Visit.Where(x => x.VisitNum == readSet.ExpirationVisitNum).FirstOrDefault();
if (visit != null)
{ {
visits.Add(visit); visits.Add(visit);
} }
@ -123,11 +130,15 @@ namespace IRaCIS.Application.Services
{ {
visits.Add(visit); visits.Add(visit);
} }
} }
}); });
return visits.Where(x => _readModuleRepository.Where(y => y.ReadingSetType == readSet.ReadingSetType && x.Id == y.SubjectVisitId).Count() == 0) return visits
//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,