diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs index e5dff07f2..959e29a84 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs @@ -25,6 +25,7 @@ namespace IRaCIS.Application.Services private readonly IRepository _trialRepository; private readonly IVisitTaskHelpeService _visitTaskHelpeService; private readonly IRepository _visitTaskRepository; + private readonly IRepository _readModuleCriterionFromRepository; private readonly IRepository _clinicalDataTrialSetRepository; private readonly IRepository _readModuleViewRepository; private readonly IRepository _readingQuestionCriterionTrialRepository; @@ -41,6 +42,7 @@ namespace IRaCIS.Application.Services IRepository trialRepository, IVisitTaskHelpeService visitTaskHelpeService, IRepository visitTaskRepository, + IRepository readModuleCriterionFromRepository, IRepository clinicalDataTrialSetRepository, IRepository readModuleViewRepository, IRepository readingQuestionCriterionTrialRepository, @@ -57,6 +59,7 @@ namespace IRaCIS.Application.Services this._trialRepository = trialRepository; this._visitTaskHelpeService = visitTaskHelpeService; this._visitTaskRepository = visitTaskRepository; + this._readModuleCriterionFromRepository = readModuleCriterionFromRepository; this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository; this._readModuleViewRepository = readModuleViewRepository; this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; @@ -480,6 +483,14 @@ namespace IRaCIS.Application.Services return ResponseOutput.NotOk(_localizer["ReadModule_SignedDataCannotDelete"]); } + await _readModuleCriterionFromRepository.BatchDeleteNoTrackingAsync(x => x.ReadModuleId == readModuleId); + + if (await _readModuleCriterionFromRepository.AnyAsync(x => x.ReadModuleId == readModuleId)) + { + //---CRC已经确认临床数据 不允许删除 + return ResponseOutput.NotOk(_localizer["ReadModule_CRCConfirmClinicalData"]); + } + //增加标准 if (readModule.ModuleType==ModuleTypeEnum.Global&&(await _readModuleRepository.AnyAsync(x=>x.ModuleType==ModuleTypeEnum.Oncology&&x.SubjectVisitId== readModule.SubjectVisitId && x.TrialReadingCriterionId==readModule.TrialReadingCriterionId))) { @@ -499,6 +510,7 @@ namespace IRaCIS.Application.Services TaskState = TaskState.Adbandon }); + await _readModuleRepository.UpdatePartialFromQueryAsync(t => t.Id == readModuleId, x => new ReadModule() {