修改bug
							parent
							
								
									0c03361791
								
							
						
					
					
						commit
						526af5fb1e
					
				| 
						 | 
				
			
			@ -27,7 +27,7 @@ namespace IRaCIS.Core.Application.Filter
 | 
			
		|||
 | 
			
		||||
                if (context.Exception.GetType() == typeof(BusinessValidationFailedException))
 | 
			
		||||
                {
 | 
			
		||||
                    context.Result = new JsonResult(ResponseOutput.NotOk("Verify error: " + context.Exception.Message));
 | 
			
		||||
                    context.Result = new JsonResult(ResponseOutput.NotOk(context.Exception.Message));
 | 
			
		||||
                }
 | 
			
		||||
                else if(context.Exception.GetType() == typeof(QueryBusinessObjectNotExistException))
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1514,8 +1514,6 @@
 | 
			
		|||
            <summary>
 | 
			
		||||
            手动设置一致性核查通过
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="subjectVisitId"></param>
 | 
			
		||||
            <param name="signId"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Image.QA.QCOperationService.CRCRequstCheckBack(System.Guid)">
 | 
			
		||||
| 
						 | 
				
			
			@ -1579,6 +1577,9 @@
 | 
			
		|||
            <param name="trialId"></param>
 | 
			
		||||
            <returns></returns>SeriesCount
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Image.QA.QCOperationService.ReplaceQCTaskActionUser(System.Guid,System.Guid)">
 | 
			
		||||
            <summary>替换当前领取人 </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Image.QA.QCOperationService.ObtainOrCancelQCTask(System.Guid,System.Guid,System.Boolean)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            手动领取 或者取消 QC任务
 | 
			
		||||
| 
						 | 
				
			
			@ -1612,12 +1613,14 @@
 | 
			
		|||
            <param name="setOrCancel"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Image.QA.QCOperationService.VerifyReuploadIsCanJump(System.Guid,System.Guid)">
 | 
			
		||||
            <summary>验证质疑对话页面  是否可以 跳转到重传页面 进行重传  </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Image.QA.QCOperationService.SetNeedReupload(System.Guid,System.Guid)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            QA设置  需要重传
 | 
			
		||||
            QA设置  同意重传
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="trialId"></param> 
 | 
			
		||||
            <param name="signId"></param>
 | 
			
		||||
            <param name="qcChallengeId"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,12 +58,12 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
 | 
			
		||||
                if (addOrEditUserTypeRole.MenuIds.Count > 0)
 | 
			
		||||
                {
 | 
			
		||||
                    entity = userTypeServiceRepository.Where(t => t.Id == addOrEditUserTypeRole.Id, true).Include(t => t.UserTypeMenuList).Include(t=>t.UserTypeGroupList).FirstOrDefault();
 | 
			
		||||
                    entity = userTypeServiceRepository.Where(t => t.Id == addOrEditUserTypeRole.Id, true).Include(t => t.UserTypeMenuList).Include(t=>t.UserTypeGroupList).FirstOrDefault().IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    entity = userTypeServiceRepository.Where(t => t.Id == addOrEditUserTypeRole.Id, true).FirstOrDefault();
 | 
			
		||||
                    entity = userTypeServiceRepository.Where(t => t.Id == addOrEditUserTypeRole.Id, true).FirstOrDefault().IfNullThrowException();
 | 
			
		||||
                }
 | 
			
		||||
                _mapper.Map(addOrEditUserTypeRole, entity);
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,7 +68,6 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
 | 
			
		||||
        public bool SetOrCancel { get; set; }
 | 
			
		||||
 | 
			
		||||
        public Guid? SignId { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class UploadSubjectAndVisitCommand
 | 
			
		||||
| 
						 | 
				
			
			@ -147,8 +146,6 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
        public int? Age { get; set; }
 | 
			
		||||
        public string Sex { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -70,11 +70,6 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
                subjectVisit = _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == sujectVisitId).Result.IfNullThrowException();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (subjectVisit.PreliminaryAuditUserId != null)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BusinessValidationFailedException("当前访视已审核通过,不允许操作");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (subjectVisit.CurrentActionUserId != _userInfo.Id)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BusinessValidationFailedException("您不是该质控任务当前领取人,没有操作权限!");
 | 
			
		||||
| 
						 | 
				
			
			@ -115,7 +110,6 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            NoneDicomStudyAddReturnDto noneDicom = new NoneDicomStudyAddReturnDto()
 | 
			
		||||
            {
 | 
			
		||||
                StudyCode = optEntity.StudyCode,
 | 
			
		||||
| 
						 | 
				
			
			@ -129,20 +123,14 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
        [HttpDelete("{noneDicomStudyId:guid}/{trialId:guid}")]
 | 
			
		||||
        public async Task<IResponseOutput> DeleteNoneDicomStudy(Guid noneDicomStudyId)
 | 
			
		||||
        {
 | 
			
		||||
            if (_noneDicomStudyRepository.Where(t => t.Id == noneDicomStudyId).SelectMany(t => t.NoneDicomFileList).Count() > 0)
 | 
			
		||||
            {
 | 
			
		||||
                return ResponseOutput.NotOk("先移除文件,才允许删除非Dicom");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var noneDicomStudy = await _noneDicomStudyRepository.FirstOrDefaultAsync(t => t.Id == noneDicomStudyId);
 | 
			
		||||
 | 
			
		||||
            if (noneDicomStudy == null) return Null404NotFound(noneDicomStudy);
 | 
			
		||||
            var noneDicomStudy = (await _noneDicomStudyRepository.FirstOrDefaultAsync(t => t.Id == noneDicomStudyId)).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            await _noneDicomStudyRepository.DeleteAsync(noneDicomStudy);
 | 
			
		||||
 | 
			
		||||
            await _noneDicomStudyFileRepository.BatchDeleteNoTrackingAsync(t => t.NoneDicomStudyId == noneDicomStudyId);
 | 
			
		||||
 | 
			
		||||
            await _repository.BatchDeleteAsync<StudyMonitor>(t => t.StudyId == noneDicomStudyId);
 | 
			
		||||
            await _studyMonitorRepository.BatchDeleteNoTrackingAsync(t => t.StudyId == noneDicomStudyId);
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Ok();
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -156,10 +144,6 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
            var success = await _noneDicomStudyFileRepository.BatchDeleteNoTrackingAsync(t => t.Id == noneDicomStudyFileId);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var subvisit = await _repository.GetQueryable<SubjectVisit>().FirstOrDefaultAsync(x => x.Id == subjectVisitId);
 | 
			
		||||
 | 
			
		||||
           
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Ok();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -269,7 +269,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
            qaReply.UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt;
 | 
			
		||||
 | 
			
		||||
            var dbQCChallenge = (await _repository.FirstOrDefaultAsync<QCChallenge>(t => t.Id == qaDialogCommand.QCChallengeId)).IfNullThrowException();
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
            dbQCChallenge.LatestMsgTime = DateTime.Now;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -359,8 +359,6 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        /// <summary>
 | 
			
		||||
        /// 手动设置一致性核查通过
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="subjectVisitId"></param>
 | 
			
		||||
        /// <param name="signId"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        [HttpPut("{trialId:guid}/{signId:guid}/{subjectVisitId:guid}")]
 | 
			
		||||
        [TypeFilter(typeof(TrialResourceFilter))]
 | 
			
		||||
| 
						 | 
				
			
			@ -1100,6 +1098,24 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        #region  临床数据签名  领取、 设置紧急、RequestToQC QC通过、不通过
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>替换当前领取人 </summary>
 | 
			
		||||
        [HttpPut("{trialId:guid}/{subjectVisitId:guid}")]
 | 
			
		||||
        public async Task<IResponseOutput> ReplaceQCTaskActionUser(Guid trialId, Guid subjectVisitId)
 | 
			
		||||
        {
 | 
			
		||||
            var dbSubjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            dbSubjectVisit.IsTake = true;
 | 
			
		||||
 | 
			
		||||
            dbSubjectVisit.CurrentActionUserId = _userInfo.Id;
 | 
			
		||||
 | 
			
		||||
            dbSubjectVisit.CurrentActionUserExpireTime = DateTime.Now.AddHours(1);
 | 
			
		||||
 | 
			
		||||
            var success = await _subjectVisitRepository.SaveChangesAsync();
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Result(success);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 手动领取 或者取消 QC任务
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -1112,6 +1128,11 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        public async Task<IResponseOutput> ObtainOrCancelQCTask(Guid trialId, Guid subjectVisitId, bool obtaionOrCancel)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            if (await _subjectVisitRepository.AnyAsync(t => t.CurrentActionUserId != null && t.IsTake && t.Id == subjectVisitId))
 | 
			
		||||
            {
 | 
			
		||||
                throw new BusinessValidationFailedException("当前访视已被领取,不允许领取");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var dbSubjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1241,7 +1262,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        return ResponseOutput.NotOk("项目配置为复审,不满足提交状态:已提交 或者 审核状态:InPrimaryQC/InSecondaryQC, 不允许领取");
 | 
			
		||||
                        return ResponseOutput.NotOk("项目配置为复审,不满足提交状态:已提交 或者 审核状态:InPrimaryQC/InSecondaryQC, 不允许释放");
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1268,14 +1289,14 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
            {
 | 
			
		||||
                var sv = dbSubjectVisitList[0];
 | 
			
		||||
 | 
			
		||||
                var nameList = await  _subjectVisitRepository.Where(t => t.SubjectId == sv.SubjectId && t.SubmitState != SubmitStateEnum.Submitted && t.VisitNum < sv.VisitNum).Select(t=>t.VisitName).ToListAsync()??new List<string>();
 | 
			
		||||
                var nameList = await _subjectVisitRepository.Where(t => t.SubjectId == sv.SubjectId && t.SubmitState != SubmitStateEnum.Submitted && t.VisitNum < sv.VisitNum).Select(t => t.VisitName).ToListAsync() ?? new List<string>();
 | 
			
		||||
 | 
			
		||||
                if (sv.PDState == PDStateEnum.PDProgress)
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    if (nameList.Count()>0)
 | 
			
		||||
                    if (nameList.Count() > 0)
 | 
			
		||||
                    {
 | 
			
		||||
                        return ResponseOutput.NotOk($"系统检测发现该受试者当前访视之前的访视:{string.Join('、',nameList)},未提交,疾病进展确认对阅片时限要求很高,请将上述访视提交或标记失访后,再提交当前访视!", 1,ApiResponseCodeEnum.NeedTips);
 | 
			
		||||
                        return ResponseOutput.NotOk($"系统检测发现该受试者当前访视之前的访视:{string.Join('、', nameList)},未提交,疾病进展确认对阅片时限要求很高,请将上述访视提交或标记失访后,再提交当前访视!", 1, ApiResponseCodeEnum.NeedTips);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
| 
						 | 
				
			
			@ -1693,14 +1714,27 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
 | 
			
		||||
        #region 重传、重传完设置
 | 
			
		||||
 | 
			
		||||
        /// <summary>验证质疑对话页面  是否可以 跳转到重传页面 进行重传  </summary>
 | 
			
		||||
        [HttpGet("{trialId:guid}/{qcChallengeId:guid}")]
 | 
			
		||||
        public async Task<IResponseOutput> VerifyReuploadIsCanJump(Guid trialId, Guid qcChallengeId)
 | 
			
		||||
        {
 | 
			
		||||
            var qcChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            if (qcChallenge.ReuploadEnum != QCChanllengeReuploadEnum.QCAgreeUpload)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BusinessValidationFailedException("当前重传状态不为QC同意重传,不允许重传");
 | 
			
		||||
            }
 | 
			
		||||
            return ResponseOutput.Ok();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// QA设置  需要重传
 | 
			
		||||
        /// QA设置  同意重传
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="trialId"></param> 
 | 
			
		||||
        /// <param name="signId"></param>
 | 
			
		||||
        /// <param name="qcChallengeId"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        [HttpPut("{trialId:guid}/{qcChallengeId:guid}/{signId:guid}")]
 | 
			
		||||
        [HttpPut("{trialId:guid}/{qcChallengeId:guid}")]
 | 
			
		||||
        [TypeFilter(typeof(TrialResourceFilter))]
 | 
			
		||||
        public async Task<IResponseOutput> SetNeedReupload(Guid trialId, Guid qcChallengeId)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -1718,14 +1752,21 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
                return ResponseOutput.NotOk("不审操作,不会有需要重传的操作!");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var qcChallenge = await _repository.FirstOrDefaultAsync<QCChallenge>(t => t.Id == qcChallengeId);
 | 
			
		||||
            if (qcChallenge == null) return Null404NotFound(qcChallenge);
 | 
			
		||||
            var qcChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            if (await _repository.CountAsync<QCChallenge>(t => t.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload && t.SubjectVisitId == qcChallenge.SubjectVisitId && t.IsClosed == false) >= 1)
 | 
			
		||||
            if (qcChallenge.ReuploadEnum != QCChanllengeReuploadEnum.CRCRequestReupload)
 | 
			
		||||
            {
 | 
			
		||||
                return ResponseOutput.NotOk("当前访视,有一个未关闭的质疑 QC设置了需要重传,CRC还未完成上传,当前不允许再次设置");
 | 
			
		||||
                throw new BusinessValidationFailedException("当前重传状态不为CRC申请重传,不允许设置同意重传");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            if (await _qcChallengeRepository.CountAsync(t => t.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload && t.SubjectVisitId == qcChallenge.SubjectVisitId && t.IsClosed == false) >= 1)
 | 
			
		||||
            {
 | 
			
		||||
                return ResponseOutput.NotOk("当前访视,有一个未关闭的质疑 QC设置了同意重传,CRC还未完成上传,当前不允许再次设置");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            qcChallenge.ReuploadEnum = QCChanllengeReuploadEnum.QCAgreeUpload;
 | 
			
		||||
            qcChallenge.LatestMsgTime = DateTime.Now;
 | 
			
		||||
            qcChallenge.LatestReplyUserId = _userInfo.Id;
 | 
			
		||||
| 
						 | 
				
			
			@ -1777,15 +1818,11 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
 | 
			
		||||
            var success = await _repository.SaveChangesAsync();
 | 
			
		||||
 | 
			
		||||
            //var signSuccess = await _repository.UpdateFromQueryAsync<TrialSign>(t => t.Id == signId, u => new TrialSign() { IsCompleted = true });
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Result(success);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// CRC  设置已经重传完成
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -1797,20 +1834,22 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        {
 | 
			
		||||
            if (_userInfo.UserTypeEnumInt != (int)UserTypeEnum.ClinicalResearchCoordinator)
 | 
			
		||||
            {
 | 
			
		||||
                return ResponseOutput.NotOk("重传完成 只允许CRC 设置!");
 | 
			
		||||
                throw new BusinessValidationFailedException("重传完成 只允许CRC 设置!");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var qcChallenge = await _repository.FirstOrDefaultAsync<QCChallenge>(t => t.Id == cRCReuploadFinishedCommand.QCChallengeId);
 | 
			
		||||
            var qcChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == cRCReuploadFinishedCommand.QCChallengeId)).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            if (qcChallenge.ReuploadEnum != QCChanllengeReuploadEnum.QCAgreeUpload)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BusinessValidationFailedException("当前重传状态不为QC同意重传,不允许设置重传完成");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (qcChallenge == null) return Null404NotFound(qcChallenge);
 | 
			
		||||
 | 
			
		||||
            var subjectVisitId = qcChallenge.SubjectVisitId;
 | 
			
		||||
 | 
			
		||||
            if (await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).SelectMany(t => t.StudyList)
 | 
			
		||||
                    .CountAsync() == 0 &&
 | 
			
		||||
                await _subjectVisitRepository.Where(t => t.Id == subjectVisitId)
 | 
			
		||||
                    .SelectMany(t => t.NoneDicomStudyList).SelectMany(u => u.NoneDicomFileList).CountAsync() == 0)
 | 
			
		||||
            if (await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).SelectMany(t => t.StudyList).CountAsync() == 0 &&
 | 
			
		||||
                await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).SelectMany(t => t.NoneDicomStudyList).SelectMany(u => u.NoneDicomFileList).CountAsync() == 0)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BusinessValidationFailedException("当前没有影像,不允许设置重传完成");
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -1821,11 +1860,12 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            qcChallenge.ReuploadEnum = QCChanllengeReuploadEnum.CRCReuploaded;
 | 
			
		||||
 | 
			
		||||
            qcChallenge.ReUploadedTime = DateTime.Now;
 | 
			
		||||
 | 
			
		||||
            qcChallenge.ReUploadUserId = _userInfo.Id;
 | 
			
		||||
 | 
			
		||||
            qcChallenge.ReUploader = _userInfo.RealName;
 | 
			
		||||
 | 
			
		||||
            qcChallenge.LatestMsgTime = DateTime.Now;
 | 
			
		||||
| 
						 | 
				
			
			@ -1855,13 +1895,13 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
                //已确认临床数据完整性
 | 
			
		||||
                dbSubjectVisit.IsConfirmedClinicalData = true;
 | 
			
		||||
 | 
			
		||||
                var signSuccess = await _repository.BatchUpdateAsync<TrialSign>(t => t.Id == cRCReuploadFinishedCommand.SignId, u => new TrialSign() { IsCompleted = true });
 | 
			
		||||
                //var signSuccess = await _repository.BatchUpdateAsync<TrialSign>(t => t.Id == cRCReuploadFinishedCommand.SignId, u => new TrialSign() { IsCompleted = true });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var success = await _repository.SaveChangesAsync();
 | 
			
		||||
            var success = await _subjectVisitRepository.SaveChangesAsync();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Ok(success);
 | 
			
		||||
            return ResponseOutput.Result(success);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1871,9 +1911,14 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        [TypeFilter(typeof(TrialResourceFilter))]
 | 
			
		||||
        public async Task<IResponseOutput> CRCRequestReUpload(Guid qcChallengeId)
 | 
			
		||||
        {
 | 
			
		||||
            var qcChallenge = await _repository.FirstOrDefaultAsync<QCChallenge>(t => t.Id == qcChallengeId);
 | 
			
		||||
            var qcChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            if (qcChallenge.ReuploadEnum != QCChanllengeReuploadEnum.None || qcChallenge.ReuploadEnum != QCChanllengeReuploadEnum.CRCReuploaded)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BusinessValidationFailedException("当前质疑重传状态不为初始状态|CRC重传完成状态状态,不允许申请重传");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (qcChallenge == null) return Null404NotFound(qcChallenge);
 | 
			
		||||
 | 
			
		||||
            if (qcChallenge.ReuploadEnum == QCChanllengeReuploadEnum.CRCReuploaded)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -1892,7 +1937,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
                TalkContent = "CRC申请重传/上传影像"
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            await _repository.SaveChangesAsync();
 | 
			
		||||
            await _qcChallengeRepository.SaveChangesAsync();
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Ok();
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -1911,7 +1956,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        [TypeFilter(typeof(TrialResourceFilter))]
 | 
			
		||||
        public async Task<IResponseOutput> UpdateSubjectAndSVInfo(UploadSubjectAndVisitCommand command)
 | 
			
		||||
        {
 | 
			
		||||
            var dbSubjectVisit = ( await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == command.SubjectVisitId)).IfNullThrowException();
 | 
			
		||||
            var dbSubjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == command.SubjectVisitId)).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            dbSubjectVisit.PDState = command.PDState;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1931,7 +1976,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
 | 
			
		||||
                dbSubjectVisit.IsEnrollmentConfirm = command.IsEnrollmentConfirm.Value;
 | 
			
		||||
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1964,7 +2009,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
                await _inspectionService.AddListInspectionRecordAsync(datas);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
           await _subjectVisitRepository.SaveChangesAsync();
 | 
			
		||||
            await _subjectVisitRepository.SaveChangesAsync();
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Ok();
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -2073,7 +2118,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
                          u => new SubjectVisit() { ForwardState = ForwardStateEnum.ForwardFailed });
 | 
			
		||||
                    keyValuePairs["ForwardState"] = ForwardStateEnum.ForwardFailed;
 | 
			
		||||
 | 
			
		||||
                  return  ResponseOutput.NotOk("转发失败 "+e.Message);
 | 
			
		||||
                    return ResponseOutput.NotOk("转发失败 " + e.Message);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2087,7 +2132,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
 | 
			
		||||
            await _subjectVisitRepository.SaveChangesAsync();
 | 
			
		||||
 | 
			
		||||
            return isSuccess?ResponseOutput.Ok():ResponseOutput.NotOk("转发失败");
 | 
			
		||||
            return isSuccess ? ResponseOutput.Ok() : ResponseOutput.NotOk("转发失败");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,6 +32,8 @@ namespace IRaCIS.Core.Domain.Models
 | 
			
		|||
 | 
			
		||||
        public string ReUploader { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        public Guid? ReUploadUserId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public TrialQCProcess QCProcessEnum { get; set; }
 | 
			
		||||
 | 
			
		||||
        public CurrentQC CurrentQCEnum { get; set; }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue