diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 01aa79d6c..fd58e4f9d 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -8599,6 +8599,14 @@ + + + 验证医学审核问题是否可确认 + + + + + 从系统里面选择问题添加到项目里面 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs index f6f47de0d..b231084fa 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs @@ -263,8 +263,12 @@ namespace IRaCIS.Core.Application.ViewModel public ReadingCategory? ReadingCategory { get; set; } } + public class VerifyIsCanConfirmInDto + { + public Guid TrialReadingCriterionId { get; set; } + } - public class GetMedicineQuestionPreviewOutDto + public class GetMedicineQuestionPreviewOutDto { public Guid Id { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs index 84962df64..6330be83d 100644 --- a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs @@ -36,6 +36,7 @@ namespace IRaCIS.Core.Application.Service this._readingMedicineSystemQuestionRepository = readingMedicineSystemQuestionRepository; } + #region 系统 @@ -605,6 +606,39 @@ namespace IRaCIS.Core.Application.Service } + /// + /// 验证医学审核问题是否可确认 + /// + /// + /// + /// + [HttpPost] + public async Task VerifyIsCanConfirm(VerifyIsCanConfirmInDto inDto) + { + var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); + + if (!criterionInfo.IsSigned) + { + throw new BusinessValidationFailedException(_localizer["ReadingMed_NoConfirmed"]); + } + if (!(await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.ReadingCategory == ReadingCategory.Visit))) + { + throw new BusinessValidationFailedException(_localizer["ReadingMed_NoVisitQ"]); + } + if (criterionInfo.IsReadingPeriod&& !(await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.ReadingCategory == ReadingCategory.Global))) + { + throw new BusinessValidationFailedException(_localizer["ReadingMed_NoGlobalQ"]); + } + if (criterionInfo.IsArbitrationReading&&!(await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.ReadingCategory == ReadingCategory.Judge))) + { + throw new BusinessValidationFailedException(_localizer["ReadingMed_NoJudgeQ"]); + } + if (criterionInfo.IsOncologyReading&& !(await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.ReadingCategory == ReadingCategory.Oncology))) + { + throw new BusinessValidationFailedException(_localizer["ReadingMed_NoOncologyQ"]); + } + } + /// /// 从系统里面选择问题添加到项目里面 ///