diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 5c40d456..85bd3aa0 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -73,7 +73,7 @@ namespace IRaCIS.Core.Application.Image.QA [TypeFilter(typeof(TrialResourceFilter))] public async Task VerifyQCCanAddChallenge(Guid subjectVisitId, [FromRoute] CurrentQC currentQCType) { - VerifyIsCanQC(null, subjectVisitId); + await VerifyIsCanQCAsync(null, subjectVisitId); if (!await _repository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == currentQCType)) { return ResponseOutput.NotOk("请先核查图像,保存审核问题后,再发质疑。"); @@ -95,7 +95,7 @@ namespace IRaCIS.Core.Application.Image.QA [Authorize(Policy = "ImageQCPolicy")] public async Task AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType) { - VerifyIsCanQC(null, qaQuestionCommand.SubjectVisitId); + await VerifyIsCanQCAsync(null, qaQuestionCommand.SubjectVisitId); if (qaQuestionCommand.Id == null) { @@ -156,7 +156,7 @@ namespace IRaCIS.Core.Application.Image.QA if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IQC) { - VerifyIsCanQC(null, subjectVisitId); + await VerifyIsCanQCAsync(null, subjectVisitId); } var dbQCChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException(); @@ -692,7 +692,7 @@ namespace IRaCIS.Core.Application.Image.QA public async Task AddOrUpdateQCQuestionAnswerList(QCQuestionAnswerCommand[] qcQuestionAnswerCommands, Guid trialId, Guid subjectVisitId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType) { //验证是否能操作 - VerifyIsCanQC(null, subjectVisitId); + await VerifyIsCanQCAsync(null, subjectVisitId); //更新 if (qcQuestionAnswerCommands.Any(t => t.Id != null)) @@ -762,7 +762,7 @@ namespace IRaCIS.Core.Application.Image.QA public async Task SetSeriesState(Guid subjectVisitId, Guid studyId, Guid seriesId, int state) { - VerifyIsCanQC(null, subjectVisitId); + await VerifyIsCanQCAsync(null, subjectVisitId); var series = await _repository.Where(t => t.Id == seriesId, true).IgnoreQueryFilters().FirstOrDefaultAsync(); @@ -838,7 +838,7 @@ namespace IRaCIS.Core.Application.Image.QA public async Task UpdateModality(Guid id, Guid subjectVisitId, int type, [FromQuery] string modality, [FromQuery] string bodyPart) { - VerifyIsCanQC(null, subjectVisitId); + await VerifyIsCanQCAsync(null, subjectVisitId); var DicomSeriesdata = await _repository.GetQueryable().Where(x => x.StudyId == id).ToListAsync(); var study = await _repository.FirstOrDefaultAsync(t => t.Id == id); @@ -931,7 +931,7 @@ namespace IRaCIS.Core.Application.Image.QA [HttpGet("{subjectVisitId:guid}")] public async Task VerifyCanQCPassedOrFailed(Guid subjectVisitId) { - VerifyIsCanQC(null, subjectVisitId); + await VerifyIsCanQCAsync(null, subjectVisitId); if (await _repository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false)) { @@ -965,13 +965,13 @@ namespace IRaCIS.Core.Application.Image.QA } var waitDeleteStudyList = await _dicomStudyRepository.Where(x => ids.Contains(x.Id)).ToListAsync(); - - - - + + + + foreach (var study in waitDeleteStudyList) { @@ -997,7 +997,7 @@ namespace IRaCIS.Core.Application.Image.QA }).ToListAsync(); - + var success3 = await _repository.BatchDeleteAsync(t => t.StudyId == id); var success4 = await _repository.BatchDeleteAsync(t => t.StudyId == id); @@ -1029,7 +1029,7 @@ namespace IRaCIS.Core.Application.Image.QA #endregion - public async void VerifyIsCanQC(SubjectVisit? subjectVisit, Guid? sujectVisitId = null) + public async Task VerifyIsCanQCAsync(SubjectVisit? subjectVisit, Guid? sujectVisitId = null) { if (sujectVisitId != null) { @@ -1406,7 +1406,7 @@ namespace IRaCIS.Core.Application.Image.QA var dbSubjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException(); - VerifyIsCanQC(dbSubjectVisit); + await VerifyIsCanQCAsync(dbSubjectVisit); //有人QC Passed if (auditState == AuditStateEnum.QCPassed) @@ -1534,7 +1534,7 @@ namespace IRaCIS.Core.Application.Image.QA var instanceIdList = await _repository.Where(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId) .Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync(); - + instanceIdList.ForEach(t => { var path = _dicomFileStoreHelper.GetInstanceFilePath(new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId }, t.SeriesId, t.InstanceId.ToString()); diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectService.cs index d415b381..f9c974f2 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectService.cs @@ -104,11 +104,7 @@ namespace IRaCIS.Application.Services } - - - [HttpDelete("{id:guid}/{trialId:guid}")] - [TrialAudit(AuditType.SubjectAudit, AuditOptType.DeleteSubject)] [TypeFilter(typeof(TrialResourceFilter))] public async Task DeleteSubject(Guid id)