格式化
							parent
							
								
									fc36cbcb75
								
							
						
					
					
						commit
						4f4dda7a09
					
				| 
						 | 
				
			
			@ -84,7 +84,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
        {
 | 
			
		||||
            var existsQuery = _readingClinicalDataRepository
 | 
			
		||||
                .WhereIf(indto.Id != null, x => x.Id != indto.Id)
 | 
			
		||||
                .Where(x => x.ClinicalDataTrialSetId == indto.ClinicalDataTrialSetId && x.ReadingId == indto.ReadingId&&x.StudyId==indto.StudyId);
 | 
			
		||||
                .Where(x => x.ClinicalDataTrialSetId == indto.ClinicalDataTrialSetId && x.ReadingId == indto.ReadingId && x.StudyId == indto.StudyId);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -189,60 +189,60 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
        public async Task<List<GetCRCClinicalDataOutDto>> GetStudyClinicalData(GetStudyClinicalDataInDto inDto)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
			var cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)
 | 
			
		||||
				.Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Study).Select(x => new GetCRCClinicalDataOutDto()
 | 
			
		||||
				{
 | 
			
		||||
					Id = x.Id,
 | 
			
		||||
					ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
 | 
			
		||||
					ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
 | 
			
		||||
					ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
 | 
			
		||||
					ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
 | 
			
		||||
					ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
 | 
			
		||||
					FileName = x.ClinicalDataTrialSet.FileName,
 | 
			
		||||
					UploadRole = x.ClinicalDataTrialSet.UploadRole,
 | 
			
		||||
					Path = x.ClinicalDataTrialSet.Path,
 | 
			
		||||
					IsBlind = x.IsBlind,
 | 
			
		||||
					IsComplete = x.IsComplete,
 | 
			
		||||
					ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
 | 
			
		||||
					{
 | 
			
		||||
						CheckDate = y.CheckDate,
 | 
			
		||||
						ClinicalFormId = y.Id
 | 
			
		||||
					}).ToList(),
 | 
			
		||||
					PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
 | 
			
		||||
					{
 | 
			
		||||
						Id = y.Id,
 | 
			
		||||
            var cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)
 | 
			
		||||
                .Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Study).Select(x => new GetCRCClinicalDataOutDto()
 | 
			
		||||
                {
 | 
			
		||||
                    Id = x.Id,
 | 
			
		||||
                    ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
 | 
			
		||||
                    ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
 | 
			
		||||
                    ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
 | 
			
		||||
                    ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
 | 
			
		||||
                    ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
 | 
			
		||||
                    FileName = x.ClinicalDataTrialSet.FileName,
 | 
			
		||||
                    UploadRole = x.ClinicalDataTrialSet.UploadRole,
 | 
			
		||||
                    Path = x.ClinicalDataTrialSet.Path,
 | 
			
		||||
                    IsBlind = x.IsBlind,
 | 
			
		||||
                    IsComplete = x.IsComplete,
 | 
			
		||||
                    ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
 | 
			
		||||
                    {
 | 
			
		||||
                        CheckDate = y.CheckDate,
 | 
			
		||||
                        ClinicalFormId = y.Id
 | 
			
		||||
                    }).ToList(),
 | 
			
		||||
                    PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
 | 
			
		||||
                    {
 | 
			
		||||
                        Id = y.Id,
 | 
			
		||||
                        Size = y.Size,
 | 
			
		||||
                        Type = y.Type,
 | 
			
		||||
                        FileName = y.FileName,
 | 
			
		||||
						Path = y.Path,
 | 
			
		||||
						CreateTime = y.CreateTime,
 | 
			
		||||
					}).ToList(),
 | 
			
		||||
                        Path = y.Path,
 | 
			
		||||
                        CreateTime = y.CreateTime,
 | 
			
		||||
                    }).ToList(),
 | 
			
		||||
 | 
			
		||||
				}).ToListAsync();
 | 
			
		||||
                }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
			var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
			var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousOtherView>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
			var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousSurgeryView>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
            var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
            var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousOtherView>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
            var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousSurgeryView>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
 | 
			
		||||
			foreach (var item in cRCClinicalDataList)
 | 
			
		||||
			{
 | 
			
		||||
				item.ClinicalTableData = new ClinicalDataTable()
 | 
			
		||||
				{
 | 
			
		||||
					PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
 | 
			
		||||
					PreviousOtherList = previousOtherList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
 | 
			
		||||
					PreviousSurgeryList = previousSurgeryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
 | 
			
		||||
				};
 | 
			
		||||
            foreach (var item in cRCClinicalDataList)
 | 
			
		||||
            {
 | 
			
		||||
                item.ClinicalTableData = new ClinicalDataTable()
 | 
			
		||||
                {
 | 
			
		||||
                    PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
 | 
			
		||||
                    PreviousOtherList = previousOtherList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
 | 
			
		||||
                    PreviousSurgeryList = previousSurgeryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
			return cRCClinicalDataList;
 | 
			
		||||
		}
 | 
			
		||||
            }
 | 
			
		||||
            return cRCClinicalDataList;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// 获取CRC上传的文件
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		/// <param name="inDto"></param>
 | 
			
		||||
		/// <returns></returns>
 | 
			
		||||
		[HttpPost]
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 获取CRC上传的文件
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="inDto"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        public async Task<List<GetCRCClinicalDataOutDto>> GetCRCClinicalData(GetCRCClinicalDataInDto inDto)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -258,26 +258,27 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                .WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
 | 
			
		||||
                .Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC);
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await query
 | 
			
		||||
				.Select(x => new GetCRCClinicalDataOutDto()
 | 
			
		||||
            List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await query
 | 
			
		||||
                .Select(x => new GetCRCClinicalDataOutDto()
 | 
			
		||||
                {
 | 
			
		||||
                    Id = x.Id,
 | 
			
		||||
                    ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us) ,
 | 
			
		||||
                    ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
 | 
			
		||||
                    ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
 | 
			
		||||
					ClinicalDataLevel=x.ClinicalDataTrialSet.ClinicalDataLevel,
 | 
			
		||||
					ClinicalDataSetEnName =x.ClinicalDataTrialSet.ClinicalDataSetEnName,
 | 
			
		||||
                    ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
 | 
			
		||||
                    ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
 | 
			
		||||
                    ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
 | 
			
		||||
                    FileName = x.ClinicalDataTrialSet.FileName,
 | 
			
		||||
                    UploadRole = x.ClinicalDataTrialSet.UploadRole,
 | 
			
		||||
                    Path = x.ClinicalDataTrialSet.Path,
 | 
			
		||||
                    IsBlind = x.IsBlind,
 | 
			
		||||
                    IsComplete = x.IsComplete,
 | 
			
		||||
                    ClinicalFromList=x.Subject.ClinicalFormList.Where(y=>y.ReadingId==x.ReadingId&&y.ClinicalDataTrialSetId==x.ClinicalDataTrialSetId).Select(y=> new ClinicalFromData() { 
 | 
			
		||||
                    CheckDate=y.CheckDate,
 | 
			
		||||
                    ClinicalFormId=y.Id
 | 
			
		||||
                    ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
 | 
			
		||||
                    {
 | 
			
		||||
                        CheckDate = y.CheckDate,
 | 
			
		||||
                        ClinicalFormId = y.Id
 | 
			
		||||
                    }).ToList(),
 | 
			
		||||
                    PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -288,7 +289,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                        Type = y.Type,
 | 
			
		||||
                        CreateTime = y.CreateTime,
 | 
			
		||||
                    }).ToList(),
 | 
			
		||||
                 
 | 
			
		||||
 | 
			
		||||
                }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
            var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
| 
						 | 
				
			
			@ -310,7 +311,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            {
 | 
			
		||||
                cRCClinicalDataList = cRCClinicalDataList.Where(x => !(x.ClinicalFromList.Count() == 0 && x.ClinicalUploadType == ClinicalUploadType.Structuring)).ToList();
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return cRCClinicalDataList;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -367,7 +368,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            //}
 | 
			
		||||
 | 
			
		||||
            data.IsBlind = inDto.IsBlind;
 | 
			
		||||
            data.IsComplete=inDto.IsComplete;
 | 
			
		||||
            data.IsComplete = inDto.IsComplete;
 | 
			
		||||
            data.IsSign = true;
 | 
			
		||||
            data.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -385,8 +386,8 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            //await this.iServiceProvider.GetService<IReadingImageTaskService>().AddOncologyTask(readingId);
 | 
			
		||||
 | 
			
		||||
            //如果先生成了任务,再签名subject级别 PM 临床数据,那么会导致其他标准的任务签名状态无法得到维护
 | 
			
		||||
           
 | 
			
		||||
            if (await _repository.AnyAsync<ClinicalDataTrialSet>(t=>t.Id == data.ClinicalDataTrialSetId && t.UploadRole == UploadRole.PM && t.ClinicalDataLevel == ClinicalLevel.Subject))
 | 
			
		||||
 | 
			
		||||
            if (await _repository.AnyAsync<ClinicalDataTrialSet>(t => t.Id == data.ClinicalDataTrialSetId && t.UploadRole == UploadRole.PM && t.ClinicalDataLevel == ClinicalLevel.Subject))
 | 
			
		||||
            {
 | 
			
		||||
                var needDealTrialReadingCriterionIdList = _repository.Where<ClinicalDataTrialSet>(t => t.Id == data.ClinicalDataTrialSetId)
 | 
			
		||||
                  .SelectMany(t => t.TrialClinicalDataSetCriteriaList)
 | 
			
		||||
| 
						 | 
				
			
			@ -412,7 +413,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
        public async Task DealVisiTaskClinicalDataSignedAsync(Guid trialId, Guid subjectId, Guid readingId, bool isVisit, Guid trialReadingCritrialId)
 | 
			
		||||
        {
 | 
			
		||||
            //获取确认的临床数据配置
 | 
			
		||||
             var trialClinicalDataSetList = _clinicalDataTrialSetRepository.Where(t => t.TrialId == trialId && t.IsConfirm).Include(t => t.TrialClinicalDataSetCriteriaList).ToList();
 | 
			
		||||
            var trialClinicalDataSetList = _clinicalDataTrialSetRepository.Where(t => t.TrialId == trialId && t.IsConfirm).Include(t => t.TrialClinicalDataSetCriteriaList).ToList();
 | 
			
		||||
 | 
			
		||||
            //var criterionType = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCritrialId).Select(t => t.CriterionType).FirstOrDefaultAsync();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -427,7 +428,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            {
 | 
			
		||||
                var isBaseLine = await _subjectVisitRepository.Where(t => t.Id == readingId).Select(t => t.IsBaseLine).FirstOrDefaultAsync();
 | 
			
		||||
 | 
			
		||||
              
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                //判断是否基线
 | 
			
		||||
                if (isBaseLine)
 | 
			
		||||
| 
						 | 
				
			
			@ -513,7 +514,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            }
 | 
			
		||||
 | 
			
		||||
            //有序阅片才维护 IsFrontTaskNeedSignButNotSign 这个状态 
 | 
			
		||||
            if (_readingQuestionCriterionTrialRepository.Any(t=>t.Id==trialReadingCritrialId && t.IsReadingTaskViewInOrder == ReadingOrder.InOrder))
 | 
			
		||||
            if (_readingQuestionCriterionTrialRepository.Any(t => t.Id == trialReadingCritrialId && t.IsReadingTaskViewInOrder == ReadingOrder.InOrder))
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -538,8 +539,8 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                         (t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
 | 
			
		||||
 | 
			
		||||
                         // 前序存在 未一致性核查未通过的
 | 
			
		||||
                         || t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed  && t.VisitTaskNum>sv.VisitNum)
 | 
			
		||||
                         
 | 
			
		||||
                         || t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum)
 | 
			
		||||
 | 
			
		||||
                           ))
 | 
			
		||||
                          .Select(t => t.Id);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -551,7 +552,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
                var visitTaskIdQueryable2 = _visitTaskRepository.Where(visitTaskLambda) //该Subject  该标准的任务
 | 
			
		||||
                                                                                       
 | 
			
		||||
 | 
			
		||||
                          .Where(t => t.IsFrontTaskNeedSignButNotSign == true &&
 | 
			
		||||
 | 
			
		||||
                          //前序任务  不存在需要签名  但是没签名
 | 
			
		||||
| 
						 | 
				
			
			@ -570,14 +571,14 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
           
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // 废弃 接口合并到签名哪里
 | 
			
		||||
       
 | 
			
		||||
 | 
			
		||||
        [HttpPut]
 | 
			
		||||
        public async Task<IResponseOutput> PMClinicalDataConfirm(PMClinicalDataConfirmCommand command)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -631,7 +632,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            keyValuePairs.Add(ModuleTypeEnum.Oncology, ClinicalLevel.OncologyRead);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var usedIdsQuery = _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.ReadingId && x.Id != inDto.ReadingClinicalDataId).Select(x => x.ClinicalDataTrialSetId);
 | 
			
		||||
| 
						 | 
				
			
			@ -646,20 +647,20 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                .WhereIf(inDto.IsVisit && !inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
 | 
			
		||||
                .WhereIf(!inDto.IsVisit, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
 | 
			
		||||
                .WhereIf(readModule != null, x => x.ClinicalDataLevel == keyValuePairs[readModule!.ModuleType])
 | 
			
		||||
                .WhereIf(inDto.TrialReadingCriterionId!=null,x=>x.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId== inDto.TrialReadingCriterionId))
 | 
			
		||||
                .WhereIf(inDto.TrialReadingCriterionId != null, x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inDto.TrialReadingCriterionId))
 | 
			
		||||
                //.WhereIf(criterion!=null,x=>x.CriterionEnumListStr.Contains($"|{(int)criterion.CriterionType}|"))
 | 
			
		||||
                .Select(x => new GetTrialClinicalDataSelectOutDto()
 | 
			
		||||
                {
 | 
			
		||||
                    ClinicalDataLevel = x.ClinicalDataLevel,
 | 
			
		||||
                    ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
 | 
			
		||||
                    ClinicalDataSetEnName=x.ClinicalDataSetEnName,
 | 
			
		||||
                    ClinicalDataSetEnName = x.ClinicalDataSetEnName,
 | 
			
		||||
                    ClinicalUploadType = x.ClinicalUploadType,
 | 
			
		||||
                    FileName = x.FileName,
 | 
			
		||||
                    Path = x.Path,
 | 
			
		||||
                    Id = x.Id,
 | 
			
		||||
                    CriterionEnumList = x.CriterionEnumList,
 | 
			
		||||
                }).ToListAsync();
 | 
			
		||||
         
 | 
			
		||||
 | 
			
		||||
            return clinicalList;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -713,8 +714,8 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                {ClinicalLevel.ImageRead,2 },
 | 
			
		||||
                {ClinicalLevel.OncologyRead,3 },
 | 
			
		||||
                {ClinicalLevel.Subject,4 },
 | 
			
		||||
				 {ClinicalLevel.Study,5 },
 | 
			
		||||
			};
 | 
			
		||||
                 {ClinicalLevel.Study,5 },
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            result = result.OrderBy(x => keys[x.ClinicalDataLevel]).ToList();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -809,20 +810,21 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                         Path = y.Path,
 | 
			
		||||
                         CreateTime = y.CreateTime,
 | 
			
		||||
                     }).ToList(),
 | 
			
		||||
                   
 | 
			
		||||
 | 
			
		||||
                 });
 | 
			
		||||
 | 
			
		||||
            var result = new List<GetReadingClinicalDataListOutDto>();
 | 
			
		||||
            if (!inDto.IsOnlyGetCRCReadModule)
 | 
			
		||||
            {
 | 
			
		||||
                 result = await resultQuery.ToListAsync();
 | 
			
		||||
                result = await resultQuery.ToListAsync();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var readingIds = result.Select(x => x.ReadingId).ToList();
 | 
			
		||||
            var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId??default(Guid))).ToListAsync();
 | 
			
		||||
            result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => {
 | 
			
		||||
            var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync();
 | 
			
		||||
            result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x =>
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId&&y.ClinicalDataTrialSetId==x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
 | 
			
		||||
                x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
 | 
			
		||||
                {
 | 
			
		||||
                    CheckDate = y.CheckDate,
 | 
			
		||||
                    ClinicalFormId = y.Id
 | 
			
		||||
| 
						 | 
				
			
			@ -833,35 +835,36 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
            // 这里处理CRC上传 阅片期的临床数据
 | 
			
		||||
            var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId)
 | 
			
		||||
                .WhereIf(inDto.SelectIsSign,x=>x.IsPMConfirm)
 | 
			
		||||
				 .WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm)
 | 
			
		||||
				.FirstOrDefaultAsync();
 | 
			
		||||
                .WhereIf(inDto.SelectIsSign, x => x.IsPMConfirm)
 | 
			
		||||
                 .WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm)
 | 
			
		||||
                .FirstOrDefaultAsync();
 | 
			
		||||
            if (readModule != null)
 | 
			
		||||
            {
 | 
			
		||||
                var moduleCriterionFromList = await _readModuleCriterionFromRepository
 | 
			
		||||
                    .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId)
 | 
			
		||||
                    .Where(x => x.ReadModuleId == readModule.Id).Select(x => new{
 | 
			
		||||
					ClinicalFormId=  x.ClinicalFormId,
 | 
			
		||||
					CheckDate= x.ClinicalForm.CheckDate,
 | 
			
		||||
					ClinicalDataTrialSetId= x.ClinicalForm.ClinicalDataTrialSetId
 | 
			
		||||
                
 | 
			
		||||
                
 | 
			
		||||
                }).ToListAsync();
 | 
			
		||||
                    .Where(x => x.ReadModuleId == readModule.Id).Select(x => new
 | 
			
		||||
                    {
 | 
			
		||||
                        ClinicalFormId = x.ClinicalFormId,
 | 
			
		||||
                        CheckDate = x.ClinicalForm.CheckDate,
 | 
			
		||||
                        ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                    }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring)
 | 
			
		||||
                    .WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead)
 | 
			
		||||
                       .WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
 | 
			
		||||
                       .Where(x=>x.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId==readModule.TrialReadingCriterionId))
 | 
			
		||||
                       .Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId))
 | 
			
		||||
                  .Select(x => new GetReadingClinicalDataListOutDto()
 | 
			
		||||
                  {
 | 
			
		||||
 | 
			
		||||
                      ClinicalDataLevel = x.ClinicalDataLevel,
 | 
			
		||||
                      SubjectId = inDto.SubjectId,
 | 
			
		||||
                      ReadingId = default(Guid),
 | 
			
		||||
                      IsCRCApplicationRevoke=readModule.IsCRCApplicationRevoke,
 | 
			
		||||
                      IsCRCConfirm= readModule.IsCRCConfirm,
 | 
			
		||||
                      IsPMConfirm= readModule.IsPMConfirm,
 | 
			
		||||
                      IsCRCApplicationRevoke = readModule.IsCRCApplicationRevoke,
 | 
			
		||||
                      IsCRCConfirm = readModule.IsCRCConfirm,
 | 
			
		||||
                      IsPMConfirm = readModule.IsPMConfirm,
 | 
			
		||||
                      ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
 | 
			
		||||
                      ClinicalDataSetEnName = x.ClinicalDataSetEnName,
 | 
			
		||||
                      ClinicalDataTrialSetId = x.Id,
 | 
			
		||||
| 
						 | 
				
			
			@ -872,7 +875,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                      IsCRCUpload = x.UploadRole == UploadRole.CRC,
 | 
			
		||||
                      IsNeedMerge = true,
 | 
			
		||||
                      ReadModuleId = readModule.Id,
 | 
			
		||||
                      TrialClinicalDataSetCriteriaList=x.TrialClinicalDataSetCriteriaList,
 | 
			
		||||
                      TrialClinicalDataSetCriteriaList = x.TrialClinicalDataSetCriteriaList,
 | 
			
		||||
                      //FileCount = x.FileCount,
 | 
			
		||||
 | 
			
		||||
                      //ReadingClinicalDataState = x.ReadingClinicalDataState,
 | 
			
		||||
| 
						 | 
				
			
			@ -901,8 +904,8 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
				result.AddRange(clinicalresult);
 | 
			
		||||
			}
 | 
			
		||||
                result.AddRange(clinicalresult);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -923,7 +926,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                        result = result.Where(x => x.UploadRole == UploadRole.PM).ToList();
 | 
			
		||||
                        break;
 | 
			
		||||
                    case GetClinicalType.CRCConfirm:
 | 
			
		||||
                        result = result.Where(x => x.UploadRole == UploadRole.CRC&&x.IsCRCConfirm&&!x.IsPMConfirm).ToList();
 | 
			
		||||
                        result = result.Where(x => x.UploadRole == UploadRole.CRC && x.IsCRCConfirm && !x.IsPMConfirm).ToList();
 | 
			
		||||
                        break;
 | 
			
		||||
                    case GetClinicalType.HasSign:
 | 
			
		||||
                        result = result.Where(x => x.IsSign).ToList();
 | 
			
		||||
| 
						 | 
				
			
			@ -959,15 +962,15 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
        {
 | 
			
		||||
            var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId)
 | 
			
		||||
             .Where(x => x.ReadingId == inDto.ReadingId)
 | 
			
		||||
              .WhereIf(inDto.ClinicalDataTrialSetId!=null, x=>x.ClinicalDataTrialSetId==inDto.TrialReadingCriterionId)
 | 
			
		||||
              .Where(x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t=>t.TrialReadingCriterionId==inDto.TrialReadingCriterionId))
 | 
			
		||||
              .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId)
 | 
			
		||||
              .Where(x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId))
 | 
			
		||||
              .Select(x => new GetReadingClinicalDataListOutDto()
 | 
			
		||||
              {
 | 
			
		||||
                  ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
 | 
			
		||||
                  SubjectId = x.SubjectId,
 | 
			
		||||
                  ReadingId = x.ReadingId,
 | 
			
		||||
                  ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
 | 
			
		||||
				  ClinicalDataSetEnName =x.ClinicalDataTrialSet.ClinicalDataSetEnName,
 | 
			
		||||
                  ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
 | 
			
		||||
                  ClinicalDataTrialSetId = x.ClinicalDataTrialSetId,
 | 
			
		||||
                  IsSign = x.IsSign,
 | 
			
		||||
                  ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
 | 
			
		||||
| 
						 | 
				
			
			@ -994,7 +997,8 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
            var readingIds = result.Select(x => x.ReadingId).ToList();
 | 
			
		||||
            var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync();
 | 
			
		||||
            result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => {
 | 
			
		||||
            result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x =>
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -1005,77 +1009,78 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            });
 | 
			
		||||
 | 
			
		||||
            // 这里处理CRC上传 阅片期的临床数据
 | 
			
		||||
            var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId&&x.IsCRCConfirm)
 | 
			
		||||
            var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId && x.IsCRCConfirm)
 | 
			
		||||
                .FirstOrDefaultAsync();
 | 
			
		||||
            if (readModule != null)
 | 
			
		||||
            {
 | 
			
		||||
				var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id)
 | 
			
		||||
                var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id)
 | 
			
		||||
 | 
			
		||||
                     .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId)
 | 
			
		||||
                    .Select(x => new {
 | 
			
		||||
					ClinicalFormId = x.ClinicalFormId,
 | 
			
		||||
					CheckDate = x.ClinicalForm.CheckDate,
 | 
			
		||||
					ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId
 | 
			
		||||
                    .Select(x => new
 | 
			
		||||
                    {
 | 
			
		||||
                        ClinicalFormId = x.ClinicalFormId,
 | 
			
		||||
                        CheckDate = x.ClinicalForm.CheckDate,
 | 
			
		||||
                        ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
				}).ToListAsync();
 | 
			
		||||
                    }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
			
 | 
			
		||||
				var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC&&x.ClinicalUploadType== ClinicalUploadType.Structuring)
 | 
			
		||||
                    .WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading,x=>x.ClinicalDataLevel== ClinicalLevel.ImageRead)
 | 
			
		||||
 | 
			
		||||
                var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring)
 | 
			
		||||
                    .WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead)
 | 
			
		||||
                       .WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
 | 
			
		||||
                        .Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId))
 | 
			
		||||
                  .Select(x => new GetReadingClinicalDataListOutDto()
 | 
			
		||||
				  {
 | 
			
		||||
                  {
 | 
			
		||||
 | 
			
		||||
					  ClinicalDataLevel = x.ClinicalDataLevel,
 | 
			
		||||
					  SubjectId = inDto.SubjectId,
 | 
			
		||||
					  ReadingId = default(Guid),
 | 
			
		||||
                      IsCRCApplicationRevoke= readModule.IsCRCApplicationRevoke,
 | 
			
		||||
                      ClinicalDataLevel = x.ClinicalDataLevel,
 | 
			
		||||
                      SubjectId = inDto.SubjectId,
 | 
			
		||||
                      ReadingId = default(Guid),
 | 
			
		||||
                      IsCRCApplicationRevoke = readModule.IsCRCApplicationRevoke,
 | 
			
		||||
                      IsCRCConfirm = readModule.IsCRCConfirm,
 | 
			
		||||
                      IsPMConfirm=readModule.IsPMConfirm,
 | 
			
		||||
                      IsPMConfirm = readModule.IsPMConfirm,
 | 
			
		||||
 | 
			
		||||
                      ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
 | 
			
		||||
					  ClinicalDataSetEnName = x.ClinicalDataSetEnName,
 | 
			
		||||
					  ClinicalDataTrialSetId = x.Id,
 | 
			
		||||
					  IsSign = readModule.IsPMConfirm,
 | 
			
		||||
					  ClinicalUploadType = x.ClinicalUploadType,
 | 
			
		||||
					  Id = default(Guid),
 | 
			
		||||
					  UploadRole = x.UploadRole,
 | 
			
		||||
					  IsCRCUpload = x.UploadRole == UploadRole.CRC,
 | 
			
		||||
					  IsNeedMerge = true,
 | 
			
		||||
					  ReadModuleId = readModule.Id,
 | 
			
		||||
					  //FileCount = x.FileCount,
 | 
			
		||||
                      ClinicalDataSetEnName = x.ClinicalDataSetEnName,
 | 
			
		||||
                      ClinicalDataTrialSetId = x.Id,
 | 
			
		||||
                      IsSign = readModule.IsPMConfirm,
 | 
			
		||||
                      ClinicalUploadType = x.ClinicalUploadType,
 | 
			
		||||
                      Id = default(Guid),
 | 
			
		||||
                      UploadRole = x.UploadRole,
 | 
			
		||||
                      IsCRCUpload = x.UploadRole == UploadRole.CRC,
 | 
			
		||||
                      IsNeedMerge = true,
 | 
			
		||||
                      ReadModuleId = readModule.Id,
 | 
			
		||||
                      //FileCount = x.FileCount,
 | 
			
		||||
 | 
			
		||||
					  //ReadingClinicalDataState = x.ReadingClinicalDataState,
 | 
			
		||||
                      //ReadingClinicalDataState = x.ReadingClinicalDataState,
 | 
			
		||||
 | 
			
		||||
					  //FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
 | 
			
		||||
					  //{
 | 
			
		||||
					  //    Id = y.Id,
 | 
			
		||||
					  //    FileName = y.FileName,
 | 
			
		||||
					  //    Path = y.Path,
 | 
			
		||||
					  //    CreateTime = y.CreateTime,
 | 
			
		||||
					  //}).ToList()
 | 
			
		||||
                      //FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
 | 
			
		||||
                      //{
 | 
			
		||||
                      //    Id = y.Id,
 | 
			
		||||
                      //    FileName = y.FileName,
 | 
			
		||||
                      //    Path = y.Path,
 | 
			
		||||
                      //    CreateTime = y.CreateTime,
 | 
			
		||||
                      //}).ToList()
 | 
			
		||||
 | 
			
		||||
				  }).ToListAsync();
 | 
			
		||||
                  }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
				clinicalresult.ForEach(x =>
 | 
			
		||||
				{
 | 
			
		||||
					x.FileCount = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Count();
 | 
			
		||||
					x.ClinicalFromList = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).OrderBy(y => y.CheckDate).Select(x => new ClinicalFromData
 | 
			
		||||
					{
 | 
			
		||||
						CheckDate = x.CheckDate,
 | 
			
		||||
						ClinicalFormId = x.ClinicalFormId
 | 
			
		||||
                clinicalresult.ForEach(x =>
 | 
			
		||||
                {
 | 
			
		||||
                    x.FileCount = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Count();
 | 
			
		||||
                    x.ClinicalFromList = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).OrderBy(y => y.CheckDate).Select(x => new ClinicalFromData
 | 
			
		||||
                    {
 | 
			
		||||
                        CheckDate = x.CheckDate,
 | 
			
		||||
                        ClinicalFormId = x.ClinicalFormId
 | 
			
		||||
 | 
			
		||||
					}).ToList();
 | 
			
		||||
                    }).ToList();
 | 
			
		||||
 | 
			
		||||
                    x.IsSign = readModule.IsPMConfirm ?true : false;
 | 
			
		||||
                    x.IsSign = readModule.IsPMConfirm ? true : false;
 | 
			
		||||
                    x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked;
 | 
			
		||||
 | 
			
		||||
				});
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
				result.AddRange(clinicalresult);
 | 
			
		||||
			}
 | 
			
		||||
                result.AddRange(clinicalresult);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            if (inDto.GetClinicalType != null)
 | 
			
		||||
| 
						 | 
				
			
			@ -1086,7 +1091,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                        result = result.Where(x => x.UploadRole == UploadRole.PM).ToList();
 | 
			
		||||
                        break;
 | 
			
		||||
                    case GetClinicalType.CRCConfirm:
 | 
			
		||||
                        result = result.Where(x => x.UploadRole == UploadRole.CRC&&x.IsCRCConfirm&&!x.IsPMConfirm).ToList();
 | 
			
		||||
                        result = result.Where(x => x.UploadRole == UploadRole.CRC && x.IsCRCConfirm && !x.IsPMConfirm).ToList();
 | 
			
		||||
                        break;
 | 
			
		||||
                    case GetClinicalType.HasSign:
 | 
			
		||||
                        result = result.Where(x => x.IsSign).ToList();
 | 
			
		||||
| 
						 | 
				
			
			@ -1094,7 +1099,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue