diff --git a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs index 92edb2fc3..502dab06c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs @@ -243,6 +243,8 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task AddReadModule(ReadModuleAddDto dto) { + + var visitQuery = _subjectVisitRepository.Where(x => x.SubjectId == dto.SubjectId); visitQuery = visitQuery @@ -250,8 +252,15 @@ namespace IRaCIS.Application.Services .WhereIf(dto.ExpirationVisitNum != null, x => x.VisitNum == dto.ExpirationVisitNum!); var visit = visitQuery.OrderByDescending(x => x.VisitNum).FirstOrDefault(); + + if (visit != null) { + + if (await _readModuleRepository.AnyAsync(x => x.SubjectVisitId == visit.Id && x.TrialReadingCriterionId == dto.TrialReadingCriterionId)) + { + throw new BusinessValidationFailedException($"当前访视已经添加过阅片期"); + } var readModuleData = new ReadModule() { Id = NewId.NextGuid(),