修改待阅列表
	
		
			
	
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
					Details
				
			
		
	
				
					
				
			
				
	
				continuous-integration/drone/push Build is passing
				
					Details
				
			
		
	
							parent
							
								
									d727703075
								
							
						
					
					
						commit
						e3b6feb4da
					
				| 
						 | 
					@ -63,7 +63,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "AutoLoginOutMinutes": 1,
 | 
					    "AutoLoginOutMinutes": 1,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "OpenLoginMFA": true
 | 
					    "OpenLoginMFA": false
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  "SystemEmailSendConfig": {
 | 
					  "SystemEmailSendConfig": {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -105,21 +105,22 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
            var list = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId && t.IsConfirm)
 | 
					            var list = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId && t.IsConfirm)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                .OrderBy(t => t.ShowOrder)
 | 
					                .OrderBy(t => t.ShowOrder)
 | 
				
			||||||
                .Select(t => new TrialReadingCriterionDto() {
 | 
					                .Select(t => new TrialReadingCriterionDto()
 | 
				
			||||||
                    TrialReadingCriterionId = t.Id,  
 | 
					                {
 | 
				
			||||||
 | 
					                    TrialReadingCriterionId = t.Id,
 | 
				
			||||||
                    IsAutoCreate = t.IsAutoCreate,
 | 
					                    IsAutoCreate = t.IsAutoCreate,
 | 
				
			||||||
                    IsAdditionalAssessment = t.IsAdditionalAssessment, 
 | 
					                    IsAdditionalAssessment = t.IsAdditionalAssessment,
 | 
				
			||||||
                    TrialReadingCriterionName = t.CriterionName,
 | 
					                    TrialReadingCriterionName = t.CriterionName,
 | 
				
			||||||
                    CriterionType = t.CriterionType, 
 | 
					                    CriterionType = t.CriterionType,
 | 
				
			||||||
                    ReadingType = t.ReadingType, 
 | 
					                    ReadingType = t.ReadingType,
 | 
				
			||||||
                    ReadingInfoSignTime = t.ReadingInfoSignTime , 
 | 
					                    ReadingInfoSignTime = t.ReadingInfoSignTime,
 | 
				
			||||||
                    IsReadingPeriod= t.IsReadingPeriod,
 | 
					                    IsReadingPeriod = t.IsReadingPeriod,
 | 
				
			||||||
                    IsArbitrationReading=t.IsArbitrationReading,
 | 
					                    IsArbitrationReading = t.IsArbitrationReading,
 | 
				
			||||||
                    IsGlobalReading=t.IsGlobalReading,
 | 
					                    IsGlobalReading = t.IsGlobalReading,
 | 
				
			||||||
                    IsOncologyReading=t.IsOncologyReading,
 | 
					                    IsOncologyReading = t.IsOncologyReading,
 | 
				
			||||||
                    ImageDownloadEnum=t.ImageDownloadEnum,
 | 
					                    ImageDownloadEnum = t.ImageDownloadEnum,
 | 
				
			||||||
                    ImageUploadEnum=t.ImageUploadEnum,
 | 
					                    ImageUploadEnum = t.ImageUploadEnum,
 | 
				
			||||||
                    IsReadingTaskViewInOrder= t.IsReadingTaskViewInOrder
 | 
					                    IsReadingTaskViewInOrder = t.IsReadingTaskViewInOrder
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
                .ToListAsync();
 | 
					                .ToListAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -154,12 +155,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
                 .WhereIf(querySubjectAssign.DoctorUserId != null, t => t.SubjectDoctorList.Any(t => t.DoctorUserId == querySubjectAssign.DoctorUserId && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId))
 | 
					                 .WhereIf(querySubjectAssign.DoctorUserId != null, t => t.SubjectDoctorList.Any(t => t.DoctorUserId == querySubjectAssign.DoctorUserId && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId))
 | 
				
			||||||
                 .WhereIf(!string.IsNullOrEmpty(querySubjectAssign.SubjectCode), t => t.Code.Contains(querySubjectAssign.SubjectCode))
 | 
					                 .WhereIf(!string.IsNullOrEmpty(querySubjectAssign.SubjectCode), t => t.Code.Contains(querySubjectAssign.SubjectCode))
 | 
				
			||||||
                 //未分配
 | 
					                 //未分配
 | 
				
			||||||
                 .WhereIf(querySubjectAssign.SubjectAllocateState == 0, t => !t.SubjectDoctorList.Any(t => t.AssignTime!=null && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId))
 | 
					                 .WhereIf(querySubjectAssign.SubjectAllocateState == 0, t => !t.SubjectDoctorList.Any(t => t.AssignTime != null && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId))
 | 
				
			||||||
                 //已分配
 | 
					                  //已分配
 | 
				
			||||||
                  .WhereIf(querySubjectAssign.SubjectAllocateState == 1, t => t.SubjectDoctorList.Any(t => t.AssignTime != null && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId))
 | 
					                  .WhereIf(querySubjectAssign.SubjectAllocateState == 1, t => t.SubjectDoctorList.Any(t => t.AssignTime != null && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                  .WhereIf(querySubjectAssign.ArmList.Count >0 , t => !querySubjectAssign.ArmList.Except(t.SubjectDoctorList.Where(t => t.AssignTime != null && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId).Select(c => c.ArmEnum)).Any()  )
 | 
					                  .WhereIf(querySubjectAssign.ArmList.Count > 0, t => !querySubjectAssign.ArmList.Except(t.SubjectDoctorList.Where(t => t.AssignTime != null && t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId).Select(c => c.ArmEnum)).Any())
 | 
				
			||||||
                  
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                 .WhereIf(isAddtinoarlCriterion, t => t.SubjectCriteriaEvaluationList.Where(t => t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId).Any(t => t.IsJoinEvaluation))
 | 
					                 .WhereIf(isAddtinoarlCriterion, t => t.SubjectCriteriaEvaluationList.Where(t => t.TrialReadingCriterionId == querySubjectAssign.TrialReadingCriterionId).Any(t => t.IsJoinEvaluation))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -173,7 +174,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == querySubjectAssign.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder, x.ReadingType, x.IsArbitrationReading, x.IsOncologyReading, x.IsGlobalReading }).FirstOrDefaultAsync()).IfNullThrowException();
 | 
					            var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == querySubjectAssign.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder, x.ReadingType, x.IsArbitrationReading, x.IsOncologyReading, x.IsGlobalReading }).FirstOrDefaultAsync()).IfNullThrowException();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ResponseOutput.Ok (pageList, criterionConfig);
 | 
					            return ResponseOutput.Ok(pageList, criterionConfig);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
| 
						 | 
					@ -307,7 +308,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var subjectId = cancelCommand.CancelList.First().SubjectId;
 | 
					            var subjectId = cancelCommand.CancelList.First().SubjectId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await _repository.AddAsync(new SubjectCanceDoctor() { SubjectId = subjectId, Note = cancelCommand.Note,TrialReadingCriterionId=cancelCommand.TrialReadingCriterionId });
 | 
					            await _repository.AddAsync(new SubjectCanceDoctor() { SubjectId = subjectId, Note = cancelCommand.Note, TrialReadingCriterionId = cancelCommand.TrialReadingCriterionId });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await _visitTaskRepository.SaveChangesAsync();
 | 
					            await _visitTaskRepository.SaveChangesAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -757,12 +758,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
        /// <param name="queryVisitTask"></param>
 | 
					        /// <param name="queryVisitTask"></param>
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        [HttpPost]
 | 
					        [HttpPost]
 | 
				
			||||||
        public async Task<IResponseOutput< PageOutput<ReadingTaskView>>> GetReadingTaskList(VisitTaskQuery queryVisitTask)
 | 
					        public async Task<IResponseOutput<PageOutput<ReadingTaskView>>> GetReadingTaskList(VisitTaskQuery queryVisitTask)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.IsAnalysisCreate == false)
 | 
					            var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.IsAnalysisCreate == false)
 | 
				
			||||||
                //.Where(t => t.IsAnalysisCreate == false && t.DoctorUserId != null)
 | 
					                //.Where(t => t.IsAnalysisCreate == false && t.DoctorUserId != null)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                .WhereIf(queryVisitTask.IsEffect ==true, t => t.TaskState ==TaskState.Effect || t.TaskState == TaskState.Freeze)
 | 
					                .WhereIf(queryVisitTask.IsEffect == true, t => t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze)
 | 
				
			||||||
                 .WhereIf(queryVisitTask.IsEffect == false, t => t.TaskState == TaskState.Adbandon || t.TaskState == TaskState.HaveReturned)
 | 
					                 .WhereIf(queryVisitTask.IsEffect == false, t => t.TaskState == TaskState.Adbandon || t.TaskState == TaskState.HaveReturned)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
               .WhereIf(queryVisitTask.TaskState != null, t => t.TaskState == queryVisitTask.TaskState)
 | 
					               .WhereIf(queryVisitTask.TaskState != null, t => t.TaskState == queryVisitTask.TaskState)
 | 
				
			||||||
| 
						 | 
					@ -784,9 +785,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
               .WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => (t.Subject.Code.Contains(queryVisitTask.SubjectCode) && t.IsAnalysisCreate == false) || (t.BlindSubjectCode.Contains(queryVisitTask.SubjectCode) && t.IsAnalysisCreate))
 | 
					               .WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => (t.Subject.Code.Contains(queryVisitTask.SubjectCode) && t.IsAnalysisCreate == false) || (t.BlindSubjectCode.Contains(queryVisitTask.SubjectCode) && t.IsAnalysisCreate))
 | 
				
			||||||
               .WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.AllocateTime > queryVisitTask.BeginAllocateDate)
 | 
					               .WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.AllocateTime > queryVisitTask.BeginAllocateDate)
 | 
				
			||||||
               .WhereIf(queryVisitTask.EndAllocateDate != null, t => t.AllocateTime < queryVisitTask.EndAllocateDate)
 | 
					               .WhereIf(queryVisitTask.EndAllocateDate != null, t => t.AllocateTime < queryVisitTask.EndAllocateDate)
 | 
				
			||||||
				  .WhereIf(queryVisitTask.BeginSignTime != null, t => t.SignTime > queryVisitTask.BeginSignTime)
 | 
					                  .WhereIf(queryVisitTask.BeginSignTime != null, t => t.SignTime > queryVisitTask.BeginSignTime)
 | 
				
			||||||
			   .WhereIf(queryVisitTask.EndSignTime != null, t => t.SignTime < queryVisitTask.EndSignTime)
 | 
					               .WhereIf(queryVisitTask.EndSignTime != null, t => t.SignTime < queryVisitTask.EndSignTime)
 | 
				
			||||||
			   .ProjectTo<ReadingTaskView>(_mapper.ConfigurationProvider);
 | 
					               .ProjectTo<ReadingTaskView>(_mapper.ConfigurationProvider);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var defalutSortArray = new string[] { nameof(VisitTask.IsUrgent) + " desc", nameof(VisitTask.SubjectId), nameof(VisitTask.VisitTaskNum) };
 | 
					            var defalutSortArray = new string[] { nameof(VisitTask.IsUrgent) + " desc", nameof(VisitTask.SubjectId), nameof(VisitTask.VisitTaskNum) };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -794,7 +795,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo<TrialUrgentConfig>(_mapper.ConfigurationProvider).FirstOrDefault();
 | 
					            var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo<TrialUrgentConfig>(_mapper.ConfigurationProvider).FirstOrDefault();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ResponseOutput.Ok  (pageList, trialTaskConfig);
 | 
					            return ResponseOutput.Ok(pageList, trialTaskConfig);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -826,13 +827,13 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
                .WhereIf(queryVisitTask.ReadingCategory != null, t => t.OriginalReReadingTask.ReadingCategory == queryVisitTask.ReadingCategory)
 | 
					                .WhereIf(queryVisitTask.ReadingCategory != null, t => t.OriginalReReadingTask.ReadingCategory == queryVisitTask.ReadingCategory)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                .WhereIf(!string.IsNullOrEmpty(queryVisitTask.RequestReReadingReason), t => t.RequestReReadingReason.Contains(queryVisitTask.RequestReReadingReason))
 | 
					                .WhereIf(!string.IsNullOrEmpty(queryVisitTask.RequestReReadingReason), t => t.RequestReReadingReason.Contains(queryVisitTask.RequestReReadingReason))
 | 
				
			||||||
                
 | 
					
 | 
				
			||||||
                .WhereIf(queryVisitTask.RequestReReadingResultEnum != null, t => t.RequestReReadingResultEnum == queryVisitTask.RequestReReadingResultEnum)
 | 
					                .WhereIf(queryVisitTask.RequestReReadingResultEnum != null, t => t.RequestReReadingResultEnum == queryVisitTask.RequestReReadingResultEnum)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                 .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TrialSiteCode), t => (t.OriginalReReadingTask.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode!) && t.OriginalReReadingTask.IsAnalysisCreate) || (t.OriginalReReadingTask.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode!) && t.OriginalReReadingTask.IsAnalysisCreate == false))
 | 
					                 .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TrialSiteCode), t => (t.OriginalReReadingTask.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode!) && t.OriginalReReadingTask.IsAnalysisCreate) || (t.OriginalReReadingTask.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode!) && t.OriginalReReadingTask.IsAnalysisCreate == false))
 | 
				
			||||||
                .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.OriginalReReadingTask.TaskName.Contains(queryVisitTask.TaskName) || t.OriginalReReadingTask.TaskBlindName.Contains(queryVisitTask.TaskName))
 | 
					                .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.OriginalReReadingTask.TaskName.Contains(queryVisitTask.TaskName) || t.OriginalReReadingTask.TaskBlindName.Contains(queryVisitTask.TaskName))
 | 
				
			||||||
                .WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => ((t.OriginalReReadingTask.Subject.Code.Contains(queryVisitTask.SubjectCode)|| t.OriginalReReadingTask.Subject.MedicalNo.Contains(queryVisitTask.SubjectCode)) && t.OriginalReReadingTask.IsAnalysisCreate == false) || (t.OriginalReReadingTask.BlindSubjectCode.Contains(queryVisitTask.SubjectCode) && t.OriginalReReadingTask.IsAnalysisCreate))
 | 
					                .WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => ((t.OriginalReReadingTask.Subject.Code.Contains(queryVisitTask.SubjectCode) || t.OriginalReReadingTask.Subject.MedicalNo.Contains(queryVisitTask.SubjectCode)) && t.OriginalReReadingTask.IsAnalysisCreate == false) || (t.OriginalReReadingTask.BlindSubjectCode.Contains(queryVisitTask.SubjectCode) && t.OriginalReReadingTask.IsAnalysisCreate))
 | 
				
			||||||
                .WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate)
 | 
					                .WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate)
 | 
				
			||||||
                .WhereIf(queryVisitTask.EndAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime < queryVisitTask.EndAllocateDate!.Value.AddDays(1))
 | 
					                .WhereIf(queryVisitTask.EndAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime < queryVisitTask.EndAllocateDate!.Value.AddDays(1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -870,12 +871,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
                .Where(t => t.RequestReReadingType == RequestReReadingType.DocotorApply)
 | 
					                .Where(t => t.RequestReReadingType == RequestReReadingType.DocotorApply)
 | 
				
			||||||
                .Where(t => t.OriginalReReadingTask.DoctorUserId == _userInfo.Id)
 | 
					                .Where(t => t.OriginalReReadingTask.DoctorUserId == _userInfo.Id)
 | 
				
			||||||
                .Where(t => t.OriginalReReadingTask.TrialId == queryVisitTask.TrialId)
 | 
					                .Where(t => t.OriginalReReadingTask.TrialId == queryVisitTask.TrialId)
 | 
				
			||||||
		    	 .WhereIf(queryVisitTask.RequestReReadingResultEnum != null, t => t.RequestReReadingResultEnum == queryVisitTask.RequestReReadingResultEnum)
 | 
					                 .WhereIf(queryVisitTask.RequestReReadingResultEnum != null, t => t.RequestReReadingResultEnum == queryVisitTask.RequestReReadingResultEnum)
 | 
				
			||||||
				.WhereIf(queryVisitTask.RootReReadingTaskId != null, t => t.RootReReadingTaskId == queryVisitTask.RootReReadingTaskId || t.OriginalReReadingTaskId == queryVisitTask.RootReReadingTaskId)
 | 
					                .WhereIf(queryVisitTask.RootReReadingTaskId != null, t => t.RootReReadingTaskId == queryVisitTask.RootReReadingTaskId || t.OriginalReReadingTaskId == queryVisitTask.RootReReadingTaskId)
 | 
				
			||||||
                .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskCode), t => t.OriginalReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode!) || t.RootReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode!))
 | 
					                .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskCode), t => t.OriginalReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode!) || t.RootReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode!))
 | 
				
			||||||
                .WhereIf(queryVisitTask.TaskState != null, t => t.OriginalReReadingTask.TaskState == queryVisitTask.TaskState)
 | 
					                .WhereIf(queryVisitTask.TaskState != null, t => t.OriginalReReadingTask.TaskState == queryVisitTask.TaskState)
 | 
				
			||||||
				   .WhereIf(queryVisitTask.ReadingCategory != null, t => t.OriginalReReadingTask.ReadingCategory == queryVisitTask.ReadingCategory)
 | 
					                   .WhereIf(queryVisitTask.ReadingCategory != null, t => t.OriginalReReadingTask.ReadingCategory == queryVisitTask.ReadingCategory)
 | 
				
			||||||
				 .WhereIf(queryVisitTask.ReReadingApplyState != null, t => t.OriginalReReadingTask.ReReadingApplyState == queryVisitTask.ReReadingApplyState)
 | 
					                 .WhereIf(queryVisitTask.ReReadingApplyState != null, t => t.OriginalReReadingTask.ReReadingApplyState == queryVisitTask.ReReadingApplyState)
 | 
				
			||||||
                .WhereIf(queryVisitTask.TrialSiteId != null, t => t.OriginalReReadingTask.Subject.TrialSiteId == queryVisitTask.TrialSiteId)
 | 
					                .WhereIf(queryVisitTask.TrialSiteId != null, t => t.OriginalReReadingTask.Subject.TrialSiteId == queryVisitTask.TrialSiteId)
 | 
				
			||||||
                .WhereIf(queryVisitTask.SubjectId != null, t => t.OriginalReReadingTask.SubjectId == queryVisitTask.SubjectId)
 | 
					                .WhereIf(queryVisitTask.SubjectId != null, t => t.OriginalReReadingTask.SubjectId == queryVisitTask.SubjectId)
 | 
				
			||||||
                .WhereIf(queryVisitTask.IsUrgent != null, t => t.OriginalReReadingTask.IsUrgent == queryVisitTask.IsUrgent)
 | 
					                .WhereIf(queryVisitTask.IsUrgent != null, t => t.OriginalReReadingTask.IsUrgent == queryVisitTask.IsUrgent)
 | 
				
			||||||
| 
						 | 
					@ -943,14 +944,15 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        [HttpPost]
 | 
					        [HttpPost]
 | 
				
			||||||
        public async Task<(PageOutput<IRUnReadSubjectView>, object)> GetIRUnReadSubjectTaskList(IRUnReadSubjectQuery iRUnReadSubjectQuery)
 | 
					        public async Task<IResponseOutput<PageOutput<IRUnReadSubjectView>>> GetIRUnReadSubjectTaskList(IRUnReadSubjectQuery inQuery)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var trialId = iRUnReadSubjectQuery.TrialId;
 | 
					            var trialId = inQuery.TrialId;
 | 
				
			||||||
 | 
					            var subjectCode = inQuery.SubjectCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var trialReadingCriterionId = iRUnReadSubjectQuery.TrialReadingCriterionId;
 | 
					            var trialReadingCriterionId = inQuery.TrialReadingCriterionId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var criterionConfig = await _trialReadingCriterionRepository.Where(x => x.Id == iRUnReadSubjectQuery.TrialReadingCriterionId).FirstNotNullAsync();
 | 
					            var criterionConfig = await _trialReadingCriterionRepository.Where(x => x.Id == inQuery.TrialReadingCriterionId).FirstNotNullAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var readingTool = criterionConfig.ReadingTool;
 | 
					            var readingTool = criterionConfig.ReadingTool;
 | 
				
			||||||
            var isReadingTaskViewInOrder = criterionConfig.IsReadingTaskViewInOrder;
 | 
					            var isReadingTaskViewInOrder = criterionConfig.IsReadingTaskViewInOrder;
 | 
				
			||||||
| 
						 | 
					@ -964,13 +966,13 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    TrialId = trialId,
 | 
					                    TrialId = trialId,
 | 
				
			||||||
                    TrialReadingCriterionId = trialReadingCriterionId,
 | 
					                    TrialReadingCriterionId = trialReadingCriterionId,
 | 
				
			||||||
                    SubjectCode = iRUnReadSubjectQuery.SubjectCode,
 | 
					                    SubjectCode = inQuery.SubjectCode,
 | 
				
			||||||
                    Page = new PageInput()
 | 
					                    Page = new PageInput()
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        PageIndex = iRUnReadSubjectQuery.PageIndex,
 | 
					                        PageIndex = inQuery.PageIndex,
 | 
				
			||||||
                        PageSize = iRUnReadSubjectQuery.PageSize,
 | 
					                        PageSize = inQuery.PageSize,
 | 
				
			||||||
                        Asc = iRUnReadSubjectQuery.Asc,
 | 
					                        Asc = inQuery.Asc,
 | 
				
			||||||
                        SortField = iRUnReadSubjectQuery.SortField,
 | 
					                        SortField = inQuery.SortField,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -984,15 +986,15 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var result = new PageOutput<IRUnReadSubjectView>()
 | 
					                var result = new PageOutput<IRUnReadSubjectView>()
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    PageSize = iRUnReadSubjectQuery.PageSize,
 | 
					                    PageSize = inQuery.PageSize,
 | 
				
			||||||
                    PageIndex = iRUnReadSubjectQuery.PageIndex,
 | 
					                    PageIndex = inQuery.PageIndex,
 | 
				
			||||||
                    TotalCount = totalCount,
 | 
					                    TotalCount = totalCount,
 | 
				
			||||||
                    CurrentPageData = currentPageData,
 | 
					                    CurrentPageData = currentPageData,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // 封装的方法有问题
 | 
					                // 封装的方法有问题
 | 
				
			||||||
                //var result = await visitQuery.ToPagedListAsync(iRUnReadSubjectQuery.PageIndex, iRUnReadSubjectQuery.PageSize, String.IsNullOrEmpty(iRUnReadSubjectQuery.SortField) ? nameof(IRUnReadSubjectView.SubjectId) : iRUnReadSubjectQuery.SortField, iRUnReadSubjectQuery.Asc);
 | 
					                //var result = await visitQuery.ToPagedListAsync(iRUnReadSubjectQuery.PageIndex, iRUnReadSubjectQuery.PageSize, String.IsNullOrEmpty(iRUnReadSubjectQuery.SortField) ? nameof(IRUnReadSubjectView.SubjectId) : iRUnReadSubjectQuery.SortField, iRUnReadSubjectQuery.Asc);
 | 
				
			||||||
                return (result, new
 | 
					                return ResponseOutput.Ok(result, new
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    RandomReadInfo = new IRUnReadOutDto(),
 | 
					                    RandomReadInfo = new IRUnReadOutDto(),
 | 
				
			||||||
                    IsReadingTaskViewInOrder = isReadingTaskViewInOrder,
 | 
					                    IsReadingTaskViewInOrder = isReadingTaskViewInOrder,
 | 
				
			||||||
| 
						 | 
					@ -1004,26 +1006,15 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
                    CriterionType = criterionConfig.CriterionType,
 | 
					                    CriterionType = criterionConfig.CriterionType,
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else if(isReadingTaskViewInOrder == ReadingOrder.SubjectRandom)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                var taskQuery = _visitTaskRepository.Where(x => x.TrialId == iRUnReadSubjectQuery.TrialId && x.DoctorUserId == _userInfo.Id && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId == trialReadingCriterionId)
 | 
					                var critrion = await _trialReadingCriterionRepository.FindAsync(trialReadingCriterionId);
 | 
				
			||||||
                       // .Where(x=>x.Subject.ClinicalDataList.Any(c => c.IsSign && (c.ReadingId == x.SouceReadModuleId || c.ReadingId == x.SourceSubjectVisitId)))
 | 
					 | 
				
			||||||
                       .Where(x => !x.Subject.IsDeleted).Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                IRUnReadOutDto iRUnReadOut = new IRUnReadOutDto()
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    FinishJudgeTaskCount = await taskQuery.Where(x => x.ReadingCategory == ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).CountAsync(),
 | 
					 | 
				
			||||||
                    FinishTaskCount = await taskQuery.Where(x => x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).CountAsync(),
 | 
					 | 
				
			||||||
                    SuggesteFinishedTime = await taskQuery.Where(x => x.ReadingTaskState != ReadingTaskState.HaveSigned).MaxAsync(x => x.SuggesteFinishedTime),
 | 
					 | 
				
			||||||
                    UnReadJudgeTaskCount = await taskQuery.Where(x => x.ReadingCategory == ReadingCategory.Judge && x.ReadingTaskState != ReadingTaskState.HaveSigned).CountAsync(),
 | 
					 | 
				
			||||||
                    UnReadTaskCount = await taskQuery.Where(x => x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState != ReadingTaskState.HaveSigned).CountAsync(),
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                var visitGroupQuery = taskQuery.GroupBy(x => new { x.SubjectId, x.Subject.Code, x.BlindSubjectCode });
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var visitQuery = _visitTaskRepository.Where(x => x.TrialId == trialId && x.DoctorUserId == _userInfo.Id && x.TaskState == TaskState.Effect)
 | 
				
			||||||
 | 
					                  
 | 
				
			||||||
 | 
					                    .WhereIf(!string.IsNullOrEmpty(subjectCode), t => (t.Subject.Code.Contains(subjectCode!) && t.IsAnalysisCreate == false) || (t.BlindSubjectCode.Contains(subjectCode!) && t.IsAnalysisCreate));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var visitGroupQuery = visitQuery.GroupBy(x => new { x.SubjectId, x.Subject.Code, x.BlindSubjectCode });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var visitTaskQuery = visitGroupQuery.Select(x => new IRUnReadSubjectView()
 | 
					                var visitTaskQuery = visitGroupQuery.Select(x => new IRUnReadSubjectView()
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
| 
						 | 
					@ -1033,22 +1024,17 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
                    SuggesteFinishedTime = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned).Min(x => x.SuggesteFinishedTime),
 | 
					                    SuggesteFinishedTime = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned).Min(x => x.SuggesteFinishedTime),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    //未读任务量
 | 
					                    //未读任务量
 | 
				
			||||||
                    UnReadTaskCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned).Count(),
 | 
					                    UnReadCanReadTaskCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned).Count(),
 | 
				
			||||||
 | 
					 | 
				
			||||||
                    //未读 里可读任务量   
 | 
					 | 
				
			||||||
                    UnReadCanReadTaskCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned && y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true)
 | 
					 | 
				
			||||||
                    //不能对包含聚合或子查询的表达式执行聚合函数
 | 
					 | 
				
			||||||
                    //&& !x.Any(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.IsNeedClinicalDataSign == true && t.IsClinicalDataSign == false && t.VisitTaskNum<y.VisitTaskNum )
 | 
					 | 
				
			||||||
                    ).Count(),
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    UrgentCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned).Where(x => x.IsUrgent).Count(),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    //已读任务量
 | 
					                    //已读任务量
 | 
				
			||||||
                    HaveReadTaskCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState == ReadingTaskState.HaveSigned).Count(),
 | 
					                    HaveReadTaskCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState == ReadingTaskState.HaveSigned).Count(),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    ExistReadingApply = x.Any(y => (y.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed && y.TrialReadingCriterionId == trialReadingCriterionId) || y.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed),
 | 
					                    ExistReadingApply = x.Any(y => (y.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed && y.TrialReadingCriterionId == trialReadingCriterionId) || y.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed),
 | 
				
			||||||
 | 
					                   
 | 
				
			||||||
                    //查出所有未读的  未读的可读的  在这个列表基础上 过滤下   y.IsFrontTaskNeedSignButNotSign==false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true)  这样容易排错 确认这三个字段是否维护有误
 | 
					                    UnReadCanReadTaskList = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned)
 | 
				
			||||||
                    UnReadTaskList = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned).OrderBy(x => x.VisitTaskNum)
 | 
					                    .OrderBy(x => x.VisitTaskNum)
 | 
				
			||||||
                    .Select(u => new IRUnreadTaskView()
 | 
					                    .Select(u => new IRUnreadTaskView()
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        Id = u.Id,
 | 
					                        Id = u.Id,
 | 
				
			||||||
| 
						 | 
					@ -1065,22 +1051,48 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
                        IsClinicalDataSign = u.IsClinicalDataSign,
 | 
					                        IsClinicalDataSign = u.IsClinicalDataSign,
 | 
				
			||||||
                        IsFrontTaskNeedSignButNotSign = u.IsFrontTaskNeedSignButNotSign
 | 
					                        IsFrontTaskNeedSignButNotSign = u.IsFrontTaskNeedSignButNotSign
 | 
				
			||||||
                    })
 | 
					                    })
 | 
				
			||||||
                    .ToList(),
 | 
					                    .ToList()
 | 
				
			||||||
                }).Where(x => x.UnReadCanReadTaskCount > 0);
 | 
					                }).Where(x => x.UnReadCanReadTaskCount > 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var pageList = await visitTaskQuery.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField)? nameof(IRUnReadSubjectView.UnReadCanReadTaskList): inQuery.SortField, inQuery.Asc );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var totalCount = await visitGroupQuery.CountAsync();
 | 
					
 | 
				
			||||||
                var currentPageData = await visitTaskQuery.ToListAsync();
 | 
					                return ResponseOutput.Ok(pageList, new
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    RandomReadInfo = new IRUnReadOutDto(),
 | 
				
			||||||
 | 
					                    IsReadingTaskViewInOrder = isReadingTaskViewInOrder,
 | 
				
			||||||
 | 
					                    ReadingTool = readingTool,
 | 
				
			||||||
 | 
					                    IseCRFShowInDicomReading = criterionConfig.IseCRFShowInDicomReading,
 | 
				
			||||||
 | 
					                    IsReadingShowSubjectInfo = criterionConfig.IsReadingShowSubjectInfo,
 | 
				
			||||||
 | 
					                    IsReadingShowPreviousResults = criterionConfig.IsReadingShowPreviousResults,
 | 
				
			||||||
 | 
					                    DigitPlaces = criterionConfig.DigitPlaces,
 | 
				
			||||||
 | 
					                    CriterionType = criterionConfig.CriterionType,
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                var taskQuery = _visitTaskRepository.Where(x => x.TrialId == inQuery.TrialId && x.DoctorUserId == _userInfo.Id && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId == trialReadingCriterionId)
 | 
				
			||||||
 | 
					                       // .Where(x=>x.Subject.ClinicalDataList.Any(c => c.IsSign && (c.ReadingId == x.SouceReadModuleId || c.ReadingId == x.SourceSubjectVisitId)))
 | 
				
			||||||
 | 
					                       .Where(x => !x.Subject.IsDeleted).Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                IRUnReadOutDto iRUnReadOut = new IRUnReadOutDto()
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    FinishJudgeTaskCount = await taskQuery.Where(x => x.ReadingCategory == ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).CountAsync(),
 | 
				
			||||||
 | 
					                    FinishTaskCount = await taskQuery.Where(x => x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).CountAsync(),
 | 
				
			||||||
 | 
					                    SuggesteFinishedTime = await taskQuery.Where(x => x.ReadingTaskState != ReadingTaskState.HaveSigned).MaxAsync(x => x.SuggesteFinishedTime),
 | 
				
			||||||
 | 
					                    UnReadJudgeTaskCount = await taskQuery.Where(x => x.ReadingCategory == ReadingCategory.Judge && x.ReadingTaskState != ReadingTaskState.HaveSigned).CountAsync(),
 | 
				
			||||||
 | 
					                    UnReadTaskCount = await taskQuery.Where(x => x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState != ReadingTaskState.HaveSigned).CountAsync(),
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var result = new PageOutput<IRUnReadSubjectView>()
 | 
					                var result = new PageOutput<IRUnReadSubjectView>()
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    PageSize = iRUnReadSubjectQuery.PageSize,
 | 
					                    PageSize = inQuery.PageSize,
 | 
				
			||||||
                    PageIndex = iRUnReadSubjectQuery.PageIndex,
 | 
					                    PageIndex = inQuery.PageIndex,
 | 
				
			||||||
                    TotalCount = totalCount,
 | 
					                    TotalCount = 0,
 | 
				
			||||||
                    CurrentPageData = currentPageData,
 | 
					                    CurrentPageData = null,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                return (result, new
 | 
					                return ResponseOutput.Ok(result, new
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    IsReadingTaskViewInOrder = isReadingTaskViewInOrder,
 | 
					                    IsReadingTaskViewInOrder = isReadingTaskViewInOrder,
 | 
				
			||||||
                    RandomReadInfo = iRUnReadOut,
 | 
					                    RandomReadInfo = iRUnReadOut,
 | 
				
			||||||
| 
						 | 
					@ -1114,8 +1126,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
            var critrion = await _trialReadingCriterionRepository.FindAsync(trialReadingCriterionId);
 | 
					            var critrion = await _trialReadingCriterionRepository.FindAsync(trialReadingCriterionId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var visitQuery = _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.DoctorUserId == _userInfo.Id
 | 
					            var visitQuery = _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.DoctorUserId == _userInfo.Id && x.TaskState == TaskState.Effect)
 | 
				
			||||||
            && x.TaskState == TaskState.Effect /*&& x.TrialReadingCriterionId== inDto.TrialReadingCriterionId*/)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                 //前序 不存在  未生成任务的访视
 | 
					                 //前序 不存在  未生成任务的访视
 | 
				
			||||||
                 .WhereIf(critrion.IsAutoCreate == false, t => !t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(f => f.IsGeneratedTask == false && t.VisitTaskNum > f.SubjectVisit.VisitNum))
 | 
					                 .WhereIf(critrion.IsAutoCreate == false, t => !t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(f => f.IsGeneratedTask == false && t.VisitTaskNum > f.SubjectVisit.VisitNum))
 | 
				
			||||||
| 
						 | 
					@ -1150,34 +1161,34 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
                ).Count(),
 | 
					                ).Count(),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				UnReadCanReadTaskList= x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned)
 | 
					                UnReadCanReadTaskList = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned)
 | 
				
			||||||
				.Where(y => y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true))
 | 
					                .Where(y => y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true))
 | 
				
			||||||
				.OrderBy(x => x.VisitTaskNum)
 | 
					                .OrderBy(x => x.VisitTaskNum)
 | 
				
			||||||
				.Select(u => new IRUnreadTaskView()
 | 
					                .Select(u => new IRUnreadTaskView()
 | 
				
			||||||
				{
 | 
					                {
 | 
				
			||||||
					Id = u.Id,
 | 
					                    Id = u.Id,
 | 
				
			||||||
					IsUrgent = u.IsUrgent,
 | 
					                    IsUrgent = u.IsUrgent,
 | 
				
			||||||
					VisitNum = u.VisitTaskNum,
 | 
					                    VisitNum = u.VisitTaskNum,
 | 
				
			||||||
					TaskBlindName = u.TaskBlindName,
 | 
					                    TaskBlindName = u.TaskBlindName,
 | 
				
			||||||
					VisistId = u.SourceSubjectVisitId,
 | 
					                    VisistId = u.SourceSubjectVisitId,
 | 
				
			||||||
					SuggesteFinishedTime = u.SuggesteFinishedTime,
 | 
					                    SuggesteFinishedTime = u.SuggesteFinishedTime,
 | 
				
			||||||
					ReadingCategory = u.ReadingCategory,
 | 
					                    ReadingCategory = u.ReadingCategory,
 | 
				
			||||||
					IsAnalysisCreate = u.IsAnalysisCreate,
 | 
					                    IsAnalysisCreate = u.IsAnalysisCreate,
 | 
				
			||||||
					ArmEnum = u.ArmEnum,
 | 
					                    ArmEnum = u.ArmEnum,
 | 
				
			||||||
					TrialReadingCriterionId = u.TrialReadingCriterionId,
 | 
					                    TrialReadingCriterionId = u.TrialReadingCriterionId,
 | 
				
			||||||
					IsNeedClinicalDataSign = u.IsNeedClinicalDataSign,
 | 
					                    IsNeedClinicalDataSign = u.IsNeedClinicalDataSign,
 | 
				
			||||||
					IsClinicalDataSign = u.IsClinicalDataSign,
 | 
					                    IsClinicalDataSign = u.IsClinicalDataSign,
 | 
				
			||||||
					IsFrontTaskNeedSignButNotSign = u.IsFrontTaskNeedSignButNotSign
 | 
					                    IsFrontTaskNeedSignButNotSign = u.IsFrontTaskNeedSignButNotSign
 | 
				
			||||||
				})
 | 
					                })
 | 
				
			||||||
				.ToList(),
 | 
					                .ToList(),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				UrgentCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned)
 | 
					                UrgentCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned)
 | 
				
			||||||
				.Where(y => y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true))
 | 
					                .Where(y => y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true))
 | 
				
			||||||
				.Where(x=>x.IsUrgent).Count(),
 | 
					                .Where(x => x.IsUrgent).Count(),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				//已读任务量
 | 
					                //已读任务量
 | 
				
			||||||
				HaveReadTaskCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState == ReadingTaskState.HaveSigned).Count(),
 | 
					                HaveReadTaskCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState == ReadingTaskState.HaveSigned).Count(),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                ExistReadingApply = x.Any(y => (y.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed && y.TrialReadingCriterionId == trialReadingCriterionId) || y.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed),
 | 
					                ExistReadingApply = x.Any(y => (y.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed && y.TrialReadingCriterionId == trialReadingCriterionId) || y.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1210,7 +1221,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var result = new List<IRUnReadSubjectView>();
 | 
					            var result = new List<IRUnReadSubjectView>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var propName = string.IsNullOrWhiteSpace(inDto.Page!.SortField) ? "UnReadCanReadTaskCount" : inDto.Page.SortField;
 | 
					            var propName = string.IsNullOrWhiteSpace(inDto.Page!.SortField) ? nameof(IRUnReadSubjectView.UnReadCanReadTaskCount) : inDto.Page.SortField;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var visitTaskOrderQuery = inDto.Page.Asc ? visitTaskQuery.OrderBy(propName) : visitTaskQuery.OrderBy(propName + " desc");
 | 
					            var visitTaskOrderQuery = inDto.Page.Asc ? visitTaskQuery.OrderBy(propName) : visitTaskQuery.OrderBy(propName + " desc");
 | 
				
			||||||
            if (inDto.Page != null)
 | 
					            if (inDto.Page != null)
 | 
				
			||||||
| 
						 | 
					@ -1275,14 +1286,14 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
            var baseLineTaskList = await _visitTaskRepository.Where(t => t.TrialId == command.TrialId && t.TrialReadingCriterionId == command.TrialReadingCriterionId && t.DoctorUserId == _userInfo.Id
 | 
					            var baseLineTaskList = await _visitTaskRepository.Where(t => t.TrialId == command.TrialId && t.TrialReadingCriterionId == command.TrialReadingCriterionId && t.DoctorUserId == _userInfo.Id
 | 
				
			||||||
                 && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState == ReadingTaskState.HaveSigned && t.SourceSubjectVisit.IsBaseLine == true).ToListAsync();
 | 
					                 && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState == ReadingTaskState.HaveSigned && t.SourceSubjectVisit.IsBaseLine == true).ToListAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var judegeList= await _visitTaskRepository.Where(t => t.TrialId == command.TrialId && t.TrialReadingCriterionId == command.TrialReadingCriterionId && t.DoctorUserId == _userInfo.Id
 | 
					            var judegeList = await _visitTaskRepository.Where(t => t.TrialId == command.TrialId && t.TrialReadingCriterionId == command.TrialReadingCriterionId && t.DoctorUserId == _userInfo.Id
 | 
				
			||||||
             && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Judge && t.ReadingTaskState == ReadingTaskState.HaveSigned).ToListAsync();
 | 
					             && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Judge && t.ReadingTaskState == ReadingTaskState.HaveSigned).ToListAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            foreach (var item in judegeList)
 | 
					            foreach (var item in judegeList)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (!baseLineTaskList.Any(t => t.SubjectId == item.SubjectId))
 | 
					                if (!baseLineTaskList.Any(t => t.SubjectId == item.SubjectId))
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    baseLineTaskList.Add(item); 
 | 
					                    baseLineTaskList.Add(item);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2190,8 +2201,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
				
			||||||
            foreach (var item in readingTableAnswerRowInfoList)
 | 
					            foreach (var item in readingTableAnswerRowInfoList)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var originalVisitTaskId= item.VisitTaskId;
 | 
					                var originalVisitTaskId = item.VisitTaskId;
 | 
				
			||||||
                var originalFristAddTaskId= item.FristAddTaskId;
 | 
					                var originalFristAddTaskId = item.FristAddTaskId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                item.Id = NewId.NextSequentialGuid();
 | 
					                item.Id = NewId.NextSequentialGuid();
 | 
				
			||||||
                item.VisitTaskId = newTask.Id;
 | 
					                item.VisitTaskId = newTask.Id;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,7 +62,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
 | 
				
			||||||
            if (_visitTaskRepository.Any(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.TrialReadingCriterion.IsReadingTaskViewInOrder == ReadingOrder.SubjectRandom))
 | 
					            if (_visitTaskRepository.Any(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.TrialReadingCriterion.IsReadingTaskViewInOrder == ReadingOrder.SubjectRandom))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                //找到 非一致性分析,未签名,状态正常的 并且任务名称不是TimePoint的 任务
 | 
					                //找到 非一致性分析,未签名,状态正常的 并且任务名称不是TimePoint的 任务
 | 
				
			||||||
                var needDealTaskList = await _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsAnalysisCreate == false
 | 
					                var needDealTaskList = await _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsAnalysisCreate == false && t.DoctorUserId==_userInfo.Id
 | 
				
			||||||
                   && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskBlindName != "Timepoint" && t.ReadingCategory == ReadingCategory.Visit
 | 
					                   && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskBlindName != "Timepoint" && t.ReadingCategory == ReadingCategory.Visit
 | 
				
			||||||
                   && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze), true).ToListAsync();
 | 
					                   && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze), true).ToListAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue