重传影像时不允许删除检查
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
hang 2025-07-24 10:06:21 +08:00
parent f10b62c548
commit 26b17c12bb
1 changed files with 10 additions and 3 deletions

View File

@ -42,7 +42,7 @@ namespace IRaCIS.Core.Application.Image.QA
IOSSService _oSSService,
IRepository<ReadingClinicalData> _readingClinicalDataReposiotry,
IRepository<SubjectVisitImageBackRecord> _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<IResponseOutput> 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<Guid>(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)))