diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 4de34635b..aee683cf7 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -42,7 +42,7 @@ namespace IRaCIS.Core.Application.Image.QA IOSSService _oSSService, IRepository _readingClinicalDataReposiotry, IRepository _subjectVisitImageBackRecordReposiotry, - IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IWebHostEnvironment _hostEnvironment) : BaseService, IQCOperationService + IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IWebHostEnvironment _hostEnvironment, IFusionCache _fusionCache) : BaseService, IQCOperationService { @@ -1097,7 +1097,6 @@ namespace IRaCIS.Core.Application.Image.QA public async Task DeleteStudyList(Guid[] ids, Guid subjectVisitId, Guid trialId) { - //提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除 if (await _subjectVisitRepository.AnyAsync(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.Submitted && (!t.QCChallengeList.Any(u => u.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload)))) @@ -1107,6 +1106,14 @@ namespace IRaCIS.Core.Application.Image.QA } var waitDeleteStudyList = await _dicomStudyRepository.Where(x => ids.Contains(x.Id), false, true).ToListAsync(); + foreach (var item in waitDeleteStudyList) + { + if (_fusionCache.GetOrDefault(CacheKeys.TrialStudyUidUploading(trialId, item.StudyInstanceUid)) != Guid.Empty) + { + return ResponseOutput.NotOk(_localizer["QCOperation_IsInUploadingNoDelete"]); + } + } + foreach (var study in waitDeleteStudyList) { @@ -1274,7 +1281,7 @@ namespace IRaCIS.Core.Application.Image.QA break; case TrialQCProcess.SingleAudit: visitList = await _subjectVisitRepository - .Where(t=> t.SecondReviewState == SecondReviewState.None) + .Where(t => t.SecondReviewState == SecondReviewState.None) .Where(x => !x.SubjectVisitImageBackRecordList.Any(t => t.ImageBackState == ImageBackStateEnum.None)) .Where(x => x.SubmitState == SubmitStateEnum.Submitted && x.SecondReviewState == SecondReviewState.None && x.TrialId == inDto.TrialId && x.PreliminaryAuditUserId != _userInfo.UserRoleId && (x.CurrentActionUserId == _userInfo.UserRoleId || (x.AuditState != AuditStateEnum.PrimaryQCPassed && !x.IsTake)))