Uat_Study
			
			
		
		
							parent
							
								
									b65c82a20a
								
							
						
					
					
						commit
						2e94a7d9e4
					
				| 
						 | 
				
			
			@ -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; }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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<DicomStudy>(t => lastStudyIds.Contains(t.Id)).Select(k => new VisitStudyDTO()
 | 
			
		||||
                    var lastVisitTaskStudy= await _repository.Where<DicomStudy>(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<DicomSeries>(s => lastSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber).
 | 
			
		||||
                        lastVisitTaskStudy.SeriesList = await _repository.Where<DicomSeries>(s => thisSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber).
 | 
			
		||||
                            ThenBy(s => s.SeriesTime)
 | 
			
		||||
                            .ProjectTo<DicomSeriesDTO>(_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(); 
 | 
			
		||||
                        });
 | 
			
		||||
                    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue