Uat_Study
			
			
		
		
						commit
						866e08c05e
					
				| 
						 | 
				
			
			@ -966,11 +966,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
        /// <returns></returns>
 | 
			
		||||
        public async Task<(int, List<IRUnReadSubjectView>)> GetOrderReadingIQueryable(GetOrderReadingIQueryableInDto inDto)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            var trialReadingCriterionId = inDto.TrialReadingCriterionId;
 | 
			
		||||
 | 
			
		||||
            //Expression<Func<VisitTask, bool>> visitTaskLambda = x => x.DoctorUserId == _userInfo.Id && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId == inDto.TrialReadingCriterionId;
 | 
			
		||||
 | 
			
		||||
            var visitGroupQuery = _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.DoctorUserId == _userInfo.Id && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId== inDto.TrialReadingCriterionId)
 | 
			
		||||
            var visitGroupQuery = _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.DoctorUserId == _userInfo.Id
 | 
			
		||||
            && x.TaskState == TaskState.Effect /*&& x.TrialReadingCriterionId== inDto.TrialReadingCriterionId*/)
 | 
			
		||||
                //满足前序访视不存在 需要签署但是未签署  sql  相当复杂    同时想查询所有未读的统计数字 就无法统计   byzhouhang  
 | 
			
		||||
                //但是加字段 IsFrontTaskNeedSignButNotSign   那么签名临床数据的时候,要对该subject 该标准的有效的任务  这个字段需要在签名的时候维护   采取这种方式   统计数字灵活
 | 
			
		||||
                //.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum))
 | 
			
		||||
| 
						 | 
				
			
			@ -983,22 +984,22 @@ namespace IRaCIS.Core.Application.Service.Allocation
 | 
			
		|||
                SubjectCode = x.Key.BlindSubjectCode == string.Empty ? x.Key.Code : x.Key.BlindSubjectCode,
 | 
			
		||||
 | 
			
		||||
                //未读任务量
 | 
			
		||||
                UnReadTaskCount = x.Where(y => y.ReadingTaskState != ReadingTaskState.HaveSigned).Count(),
 | 
			
		||||
                UnReadTaskCount = x.Where(y => y.TrialReadingCriterionId== trialReadingCriterionId &&   y.ReadingTaskState != ReadingTaskState.HaveSigned).Count(),
 | 
			
		||||
 | 
			
		||||
                //未读 里可读任务量   
 | 
			
		||||
                UnReadCanReadTaskCount = x.Where(y => y.ReadingTaskState != ReadingTaskState.HaveSigned && y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true)
 | 
			
		||||
                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(),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                //已读任务量
 | 
			
		||||
                HaveReadTaskCount = x.Where(y => 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.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed),
 | 
			
		||||
 | 
			
		||||
                //查出所有未读的  未读的可读的  在这个列表基础上 过滤下   y.IsFrontTaskNeedSignButNotSign==false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true)  这样容易排错 确认这三个字段是否维护有误
 | 
			
		||||
                UnReadTaskList = x.Where(y => y.ReadingTaskState != ReadingTaskState.HaveSigned ).OrderBy(x => x.VisitTaskNum)
 | 
			
		||||
                UnReadTaskList = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned ).OrderBy(x => x.VisitTaskNum)
 | 
			
		||||
                .Select(u => new IRUnreadTaskView()
 | 
			
		||||
                {
 | 
			
		||||
                    Id = u.Id,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue