diff --git a/IRaCIS.Core.Application/Service/Doctor/DoctorService.cs b/IRaCIS.Core.Application/Service/Doctor/DoctorService.cs index d21fd09e9..7c3424066 100644 --- a/IRaCIS.Core.Application/Service/Doctor/DoctorService.cs +++ b/IRaCIS.Core.Application/Service/Doctor/DoctorService.cs @@ -262,14 +262,7 @@ namespace IRaCIS.Core.Application.Service } } - var exists = await _doctorSummarizeRepository - .WhereIf(_userInfo.IsEn_Us, x=>x.IndicationEn == inDto.IndicationEn) - .WhereIf(!_userInfo.IsEn_Us, x=>x.Indication == inDto.Indication) - .AnyAsync(x => x.DoctorId == inDto.DoctorId && x.TrialId == null); - if (exists) - { - throw new BusinessValidationFailedException(_localizer["DoctorSummarize_repeat"]); - } + if (inDto.TrialId != null && inDto.SaveSummarizeInfoType!= SaveSummarizeInfo.SaveSelf) { @@ -286,6 +279,15 @@ namespace IRaCIS.Core.Application.Service break; case SaveSummarizeInfo.SaveAndAdd: + + var exists = await _doctorSummarizeRepository + .WhereIf(_userInfo.IsEn_Us, x => x.IndicationEn == inDto.IndicationEn) + .WhereIf(!_userInfo.IsEn_Us, x => x.Indication == inDto.Indication) + .AnyAsync(x => x.DoctorId == inDto.DoctorId && x.TrialId == null); + if (exists) + { + throw new BusinessValidationFailedException(_localizer["DoctorSummarize_repeat"]); + } await _doctorSummarizeRepository.BatchDeleteNoTrackingAsync(x => x.DoctorId == inDto.DoctorId && x.TrialId == inDto.TrialId);