修改一版

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();
}
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)
{
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)
.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
{
SubjectId = x.Key,
Visit = x.ToList()
}).ToListAsync();
List<SubjectVisit> visits = new List<SubjectVisit>();
subjectVisits.ForEach(x =>
{
var finalVisit = x.Visit.Where(x => x.IsFinalVisit).FirstOrDefault();
if (finalVisit != null)
var expirationDate = readSet.ExpirationDate;
var subjectvisitlist = new List<SubjectVisit>();
if (expirationDate != null)
{
var visit = x.Visit.Where(x => x.VisitNum < finalVisit.VisitNum).OrderByDescending(x=>x.VisitNum).FirstOrDefault();
if(visit!=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);
}
@ -123,11 +130,15 @@ namespace IRaCIS.Application.Services
{
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
{
ExpirationDate= readSet.ExpirationDate,