diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs b/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs index 566c028bc..497695152 100644 --- a/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs +++ b/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs @@ -189,7 +189,7 @@ namespace IRaCIS.Core.Application.Contracts public string StudyCode { get; set; } = String.Empty; public string Modalities { get; set; } = String.Empty; - public bool IsLastTaskStudy { get; set; } = false; + public bool IsCriticalSequence { get; set; } = false; public int SeriesCount { get; set; } public int InstanceCount { get; set; } diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index a1571ed6f..9743af4de 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -248,45 +248,35 @@ namespace IRaCIS.Core.Application.Services var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync(); - var lasttask = await _visitTaskRepository.Where(x => - x.TrialId == taskInfo.TrialId && - x.SubjectId == taskInfo.SubjectId && - x.VisitTaskNum < taskInfo.VisitTaskNum && - x.ArmEnum == taskInfo.ArmEnum && - x.ReadingCategory == taskInfo.ReadingCategory && - x.Id != visitTaskId && - x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && - x.ReadingTaskState == ReadingTaskState.HaveSigned && - x.TaskState == TaskState.Effect && - x.IsAnalysisCreate == taskInfo.IsAnalysisCreate).OrderByDescending(x => x.VisitTaskNum).FirstOrDefaultAsync(); - if(lasttask != null) + + if(taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned) { - var lastRowinfo = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == lasttask.Id && x.StudyId != null).ToListAsync(); - var lastStudyIds = lastRowinfo.Select(x => x.StudyId).ToList(); - var lastSeriesIdIds = lastRowinfo.Where(x=>x.SeriesId!=null).Select(x => x.SeriesId).ToList(); - if (lastRowinfo.Count>0) + + var thisStudyIds = thisRowinfo.Select(x => x.StudyId).ToList(); + var thisSeriesIdIds = thisRowinfo.Where(x=>x.SeriesId!=null).Select(x => x.SeriesId).ToList(); + if (thisRowinfo.Count>0) { - var lastVisitTaskStudy= await _repository.Where(t => lastStudyIds.Contains(t.Id)).Select(k => new VisitStudyDTO() + var lastVisitTaskStudy= await _repository.Where(t => thisStudyIds.Contains(t.Id)).Select(k => new VisitStudyDTO() { InstanceCount = k.InstanceCount, Modalities = k.Modalities, SeriesCount = k.SeriesCount, StudyCode = k.StudyCode, StudyId = k.Id, - IsLastTaskStudy=true, + IsCriticalSequence=true, }).FirstOrDefaultAsync(); if (lastVisitTaskStudy != null) { - lastVisitTaskStudy.SeriesList = await _repository.Where(s => lastSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber). + lastVisitTaskStudy.SeriesList = await _repository.Where(s => thisSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber). ThenBy(s => s.SeriesTime) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); lastVisitTaskStudy.SeriesCount = lastVisitTaskStudy.SeriesList.Count(); lastVisitTaskStudy.SeriesList.ForEach(x => { - x.InstanceList = lastRowinfo.Where(y => y.SeriesId == x.Id&&y.InstanceId!=null).Select(y => y.InstanceId.Value).ToList(); + x.InstanceList = thisRowinfo.Where(y => y.SeriesId == x.Id&&y.InstanceId!=null).Select(y => y.InstanceId.Value).ToList(); x.InstanceCount = x.InstanceList.Count(); }); }