Uat_Study
			
			
		
		
							parent
							
								
									49ce934300
								
							
						
					
					
						commit
						d07838071a
					
				| 
						 | 
				
			
			@ -441,7 +441,7 @@
 | 
			
		|||
            </summary>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.InfluenceAddtioncalEvaluationCritrionAsync(IRaCIS.Core.Domain.Models.VisitTask,System.Collections.Generic.List{System.Guid})">
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.InfluenceAddtioncalEvaluationCritrionAsync(IRaCIS.Core.Domain.Models.VisitTask,System.Collections.Generic.List{System.Guid},System.Boolean)">
 | 
			
		||||
            <summary>
 | 
			
		||||
             如果是基线退回   影响附加评估标准  是否参与评估
 | 
			
		||||
            </summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -136,7 +136,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
                 .WhereIf(querySubjectAssign.SubjectId != null, t => t.Id == querySubjectAssign.SubjectId)
 | 
			
		||||
                 .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(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))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                 .ProjectTo<SubjectAssignStat>(_mapper.ConfigurationProvider, new { trialReadingCriterionId = querySubjectAssign.TrialReadingCriterionId });
 | 
			
		||||
| 
						 | 
				
			
			@ -909,7 +909,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
            #region 按照Subject 维度
 | 
			
		||||
            if (isReadingTaskViewInOrder)
 | 
			
		||||
            {
 | 
			
		||||
               
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                var visitTaskListInfo = await GetOrderReadingIQueryable(new GetOrderReadingIQueryableInDto()
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -959,7 +959,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
            {
 | 
			
		||||
                var taskQuery = _visitTaskRepository.Where(x => x.TrialId == iRUnReadSubjectQuery.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);
 | 
			
		||||
                       .Where(x => !x.Subject.IsDeleted).Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign);
 | 
			
		||||
 | 
			
		||||
                IRUnReadOutDto iRUnReadOut = new IRUnReadOutDto()
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -1021,15 +1021,15 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
                var totalCount = await visitGroupQuery.CountAsync();
 | 
			
		||||
                var currentPageData =await visitTaskQuery.ToListAsync();
 | 
			
		||||
                var currentPageData = await visitTaskQuery.ToListAsync();
 | 
			
		||||
 | 
			
		||||
                var result = new PageOutput<IRUnReadSubjectView>()
 | 
			
		||||
                   {
 | 
			
		||||
                       PageSize = iRUnReadSubjectQuery.PageSize,
 | 
			
		||||
                       PageIndex = iRUnReadSubjectQuery.PageIndex,
 | 
			
		||||
                       TotalCount = totalCount,
 | 
			
		||||
                       CurrentPageData = currentPageData,
 | 
			
		||||
                   };
 | 
			
		||||
                {
 | 
			
		||||
                    PageSize = iRUnReadSubjectQuery.PageSize,
 | 
			
		||||
                    PageIndex = iRUnReadSubjectQuery.PageIndex,
 | 
			
		||||
                    TotalCount = totalCount,
 | 
			
		||||
                    CurrentPageData = currentPageData,
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
                return (result, new
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -1068,7 +1068,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
 | 
			
		||||
            var visitGroupQuery = _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.DoctorUserId == _userInfo.Id
 | 
			
		||||
            && x.TaskState == TaskState.Effect /*&& x.TrialReadingCriterionId== inDto.TrialReadingCriterionId*/)
 | 
			
		||||
                .WhereIf(critrion.IsAutoCreate==false, t=>t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(t => t.ImageFilterState != ImageFilterState.Finished) ?
 | 
			
		||||
                .WhereIf(critrion.IsAutoCreate == false, t => t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(t => t.ImageFilterState != ImageFilterState.Finished) ?
 | 
			
		||||
                t.VisitTaskNum <= t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Min(t => t.SubjectVisit.VisitNum) : true)
 | 
			
		||||
 | 
			
		||||
                .Where(t => t.TrialReadingCriterion.IsAutoCreate == false && t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(t => t.ImageFilterState != ImageFilterState.Finished) ?
 | 
			
		||||
| 
						 | 
				
			
			@ -1076,7 +1076,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                .Where(t => t.Subject.SubjectVisitList.Any(t => t.CheckState != CheckStateEnum.CVPassed) ? t.VisitTaskNum <=t.Subject.SubjectVisitList.Where(t => t.CheckState != CheckStateEnum.CVPassed).Min(t => t.VisitNum) : true)
 | 
			
		||||
                .Where(t => t.Subject.SubjectVisitList.Any(t => t.CheckState != CheckStateEnum.CVPassed) ? t.VisitTaskNum <= t.Subject.SubjectVisitList.Where(t => t.CheckState != CheckStateEnum.CVPassed).Min(t => t.VisitNum) : true)
 | 
			
		||||
                //满足前序访视不存在 需要签署但是未签署  sql  相当复杂    同时想查询所有未读的统计数字 就无法统计   byzhouhang  
 | 
			
		||||
                //但是加字段 IsFrontTaskNeedSignButNotSign   那么签名临床数据的时候,要对该subject 该标准的有效的任务  这个字段需要在签名的时候维护   采取这种方式   统计数字灵活
 | 
			
		||||
                //.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum))
 | 
			
		||||
| 
						 | 
				
			
			@ -1253,7 +1253,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
 | 
			
		||||
            var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == trialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsAutoCreate, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            foreach (var task in taskList)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -1495,7 +1495,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
                }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                var criterionConfig = await _trialReadingCriterionRepository.Where(x => x.Id == origenalTask.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync();
 | 
			
		||||
                var criterionConfig = await _trialReadingCriterionRepository.Where(x => x.Id == origenalTask.TrialReadingCriterionId).Select(x => new { x.ReadingTool,x.CriterionType,x.IsAdditionalAssessment, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                //更新申请信息
 | 
			
		||||
| 
						 | 
				
			
			@ -1722,13 +1722,25 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
                        #endregion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                        //影响申请标准的任务
 | 
			
		||||
                        filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                        //有序阅片
 | 
			
		||||
                        if (criterionConfig.IsReadingTaskViewInOrder)
 | 
			
		||||
                        {
 | 
			
		||||
 | 
			
		||||
                            if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment==true)
 | 
			
		||||
                            {
 | 
			
		||||
                                filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB);
 | 
			
		||||
 | 
			
		||||
                            }
 | 
			
		||||
                            else
 | 
			
		||||
                            {
 | 
			
		||||
                                filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId);
 | 
			
		||||
                            }
 | 
			
		||||
                          
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                            #region 有序 IR 申请  重阅 影响的其他访视查询
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1775,8 +1787,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
                            #endregion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                            #region 这里时影响其他的任务  /*不包括申请的任务  申请的任务,在上面会统一处理*/
 | 
			
		||||
 | 
			
		||||
                            var influenceTaskList = await _visitTaskRepository.Where(filterExpression, true).ToListAsync();
 | 
			
		||||
| 
						 | 
				
			
			@ -1794,7 +1804,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
 | 
			
		||||
                                    await SetMedicalReviewInvalidAsync(influenceTaskList, false);
 | 
			
		||||
 | 
			
		||||
                                    await InfluenceAddtioncalEvaluationCritrionAsync(origenalTask ,influenceTaskList.Where(t => t.Id != origenalTask.Id).Where(t => t.SourceSubjectVisitId != null).Select(t => (Guid)t.SourceSubjectVisitId).Distinct().ToList());
 | 
			
		||||
                                    await InfluenceAddtioncalEvaluationCritrionAsync(origenalTask, influenceTaskList.Where(t => t.Id != origenalTask.Id).Where(t => t.SourceSubjectVisitId != null).Select(t => (Guid)t.SourceSubjectVisitId).Distinct().ToList(), false);
 | 
			
		||||
 | 
			
		||||
                                    trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
 | 
			
		||||
                                }
 | 
			
		||||
| 
						 | 
				
			
			@ -1817,8 +1827,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
                                        trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
 | 
			
		||||
                                    }
 | 
			
		||||
 | 
			
		||||
                                    //冻结的任务不生成任务
 | 
			
		||||
                                    if (/*influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned &&*/ influenceTask.ReadingCategory == ReadingCategory.Visit && beforeTaskState == TaskState.Effect)
 | 
			
		||||
                                    //冻结的任务不生成任务   附加评估的任务在同意的时候生成
 | 
			
		||||
                                    if ( influenceTask.ReadingCategory == ReadingCategory.Visit && beforeTaskState == TaskState.Effect && influenceTask.TrialReadingCriterionId== origenalTask.TrialReadingCriterionId)
 | 
			
		||||
                                    {
 | 
			
		||||
                                        await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand()
 | 
			
		||||
                                        {
 | 
			
		||||
| 
						 | 
				
			
			@ -1887,6 +1897,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
                        //无序阅片  只会申请访视类型和裁判类型的任务    注意这里有一致性分析的申请同意
 | 
			
		||||
                        else
 | 
			
		||||
                        {
 | 
			
		||||
 | 
			
		||||
                            filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId);
 | 
			
		||||
                            //1.当前任务及裁判任务
 | 
			
		||||
                            //2.影响当前阅片人的任务
 | 
			
		||||
                            filterExpression = filterExpression.And(t => t.Id == origenalTask.Id || t.Id == origenalTask.JudgeVisitTaskId);
 | 
			
		||||
| 
						 | 
				
			
			@ -2019,7 +2031,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
             
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2363,48 +2375,60 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
        ///  如果是基线退回   影响附加评估标准  是否参与评估
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        private async Task InfluenceAddtioncalEvaluationCritrionAsync(VisitTask task,List<Guid> otherVisitIdList)
 | 
			
		||||
        private async Task InfluenceAddtioncalEvaluationCritrionAsync(VisitTask task, List<Guid> otherVisitIdList, bool isImageBack = true)
 | 
			
		||||
        {
 | 
			
		||||
           
 | 
			
		||||
            if (_subjectVisitRepository.Any(t => t.Id == task.SourceSubjectVisitId && t.IsBaseLine))
 | 
			
		||||
 | 
			
		||||
            var criterion = await _trialReadingCriterionRepository.FindAsync(task.TrialReadingCriterionId);
 | 
			
		||||
 | 
			
		||||
            if (criterion.CriterionType == CriterionType.RECIST1Point1)
 | 
			
		||||
            {
 | 
			
		||||
                await _subjectCriteriaEvaluationRepository.UpdatePartialFromQueryAsync(t => t.TrialReadingCriterion.IsAutoCreate == false && t.SubjectId == task.SubjectId, u => new SubjectCriteriaEvaluation()
 | 
			
		||||
                //影像回退了|| IR 申请及基线重阅
 | 
			
		||||
                if (_subjectVisitRepository.Any(t => t.Id == task.SourceSubjectVisitId && t.IsBaseLine) || isImageBack)
 | 
			
		||||
                {
 | 
			
		||||
                    IsJoinEvaluation = false
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
                //删除筛选的访视数据
 | 
			
		||||
                await _subjectCriteriaEvaluationVisitFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterion.IsAutoCreate == false && t.SubjectId == task.SubjectId);
 | 
			
		||||
 | 
			
		||||
                //删除筛选的序列数据
 | 
			
		||||
                await _subjectCriteriaEvaluationVisitStudyFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterion.IsAutoCreate == false && t.SubjectVisit.SubjectId == task.SubjectId);
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                //当前访视筛选状态重置,任务生成状态重置
 | 
			
		||||
                if(task.SourceSubjectVisitId != null)
 | 
			
		||||
                {
 | 
			
		||||
                            await _subjectCriteriaEvaluationVisitFilterRepository.UpdatePartialFromQueryAsync(t => t.TrialReadingCriterion.IsAutoCreate == false && t.SubjectVisit.SubjectId == task.SubjectId && t.SubjectVisitId == task.SourceSubjectVisitId,
 | 
			
		||||
                      t => new SubjectCriteriaEvaluationVisitFilter()
 | 
			
		||||
                      {
 | 
			
		||||
                          ImageFilterState = ImageFilterState.None,
 | 
			
		||||
                          ImageDeterminationResultState = ImageDeterminationResultState.None,
 | 
			
		||||
                          IsGeneratedTask = false
 | 
			
		||||
                      });
 | 
			
		||||
 | 
			
		||||
                    //删除序列数据
 | 
			
		||||
                    await _subjectCriteriaEvaluationVisitStudyFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterion.IsAutoCreate == false && t.SubjectVisit.SubjectId == task.SubjectId && t.SubjectVisitId == task.SourceSubjectVisitId);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                //BM后续访视 ,筛选状态不变,任务生成状态重置(实际该访视任务状态 可能是重阅重置了或者失效了,需要后续生成,或者取消分配了,需要后续重新分配)
 | 
			
		||||
                await _subjectCriteriaEvaluationVisitFilterRepository.BatchUpdateNoTrackingAsync(t => t.TrialReadingCriterion.IsAutoCreate == false && t.SubjectVisit.SubjectId == task.SubjectId && otherVisitIdList.Contains(t.SubjectVisitId),
 | 
			
		||||
                    t => new SubjectCriteriaEvaluationVisitFilter()
 | 
			
		||||
                    await _subjectCriteriaEvaluationRepository.UpdatePartialFromQueryAsync(t => t.TrialReadingCriterion.IsAutoCreate == false && t.SubjectId == task.SubjectId, u => new SubjectCriteriaEvaluation()
 | 
			
		||||
                    {
 | 
			
		||||
                        IsGeneratedTask = false
 | 
			
		||||
                        IsJoinEvaluation = false
 | 
			
		||||
                    });
 | 
			
		||||
 | 
			
		||||
                    //删除筛选的访视数据
 | 
			
		||||
                    await _subjectCriteriaEvaluationVisitFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB && t.SubjectId == task.SubjectId);
 | 
			
		||||
 | 
			
		||||
                    //删除筛选的序列数据
 | 
			
		||||
                    await _subjectCriteriaEvaluationVisitStudyFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB && t.SubjectVisit.SubjectId == task.SubjectId);
 | 
			
		||||
                }
 | 
			
		||||
                else if (isImageBack)
 | 
			
		||||
                {
 | 
			
		||||
                    //当前访视筛选状态重置,任务生成状态重置
 | 
			
		||||
                    if (task.SourceSubjectVisitId != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        await _subjectCriteriaEvaluationVisitFilterRepository.UpdatePartialFromQueryAsync(t => t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB && t.SubjectVisit.SubjectId == task.SubjectId && t.SubjectVisitId == task.SourceSubjectVisitId,
 | 
			
		||||
                  t => new SubjectCriteriaEvaluationVisitFilter()
 | 
			
		||||
                  {
 | 
			
		||||
                      ImageFilterState = ImageFilterState.None,
 | 
			
		||||
                      ImageDeterminationResultState = ImageDeterminationResultState.None,
 | 
			
		||||
                      IsGeneratedTask = false
 | 
			
		||||
                  });
 | 
			
		||||
 | 
			
		||||
                        //删除序列数据
 | 
			
		||||
                        await _subjectCriteriaEvaluationVisitStudyFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB && t.SubjectVisit.SubjectId == task.SubjectId && t.SubjectVisitId == task.SourceSubjectVisitId);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                    //BM后续访视 ,筛选状态不变,任务生成状态重置(实际该访视任务状态 可能是重阅重置了或者失效了,需要后续生成,或者取消分配了,需要后续重新分配)
 | 
			
		||||
                    await _subjectCriteriaEvaluationVisitFilterRepository.BatchUpdateNoTrackingAsync(t => t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB && t.SubjectVisit.SubjectId == task.SubjectId && otherVisitIdList.Contains(t.SubjectVisitId),
 | 
			
		||||
                        t => new SubjectCriteriaEvaluationVisitFilter()
 | 
			
		||||
                        {
 | 
			
		||||
                            IsGeneratedTask = false
 | 
			
		||||
                        });
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    //IR 端  非基线申请重阅 不影响
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //包括临床数据签名状态
 | 
			
		||||
| 
						 | 
				
			
			@ -2489,9 +2513,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
 | 
			
		||||
            //var trialConfig = (await _trialRepository.Where(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.IsReadingTaskViewInOrder, t.ReadingType }).FirstOrDefaultAsync()).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == filterObj.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
 | 
			
		||||
            var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == filterObj.TrialReadingCriterionId).Select(x => new { x.ReadingTool,x.CriterionType, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId &&  (t.TaskState == TaskState.Effect||t.TaskState==TaskState.Freeze) && t.TaskAllocationState == TaskAllocationState.Allocated;
 | 
			
		||||
            Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.TaskAllocationState == TaskAllocationState.Allocated;
 | 
			
		||||
 | 
			
		||||
            //是否是一致性分析任务 (一致性分析的任务 不会产生裁判 肿瘤学  仅仅有生成的访视和全局)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2508,7 +2532,25 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
                if ((_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && applyId != null && await _visitTaskReReadingRepository.AnyAsync(t => t.Id == applyId && t.CreateUser.UserTypeEnum == UserTypeEnum.IndependentReviewer))
 | 
			
		||||
                    || (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer && applyId == null))
 | 
			
		||||
                {
 | 
			
		||||
                    filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId);
 | 
			
		||||
 | 
			
		||||
                    if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
 | 
			
		||||
                    {
 | 
			
		||||
                        filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId);
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        if (criterionConfig.CriterionType == CriterionType.RECIST1Point1)
 | 
			
		||||
                        {
 | 
			
		||||
                            filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB);
 | 
			
		||||
 | 
			
		||||
                        }
 | 
			
		||||
                        else
 | 
			
		||||
                        {
 | 
			
		||||
                            filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId);
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    //当前任务及其之后的所有访视任务、全局任务、裁判任务、肿瘤学阅片任务
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue