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"]);
+ }
+ }
+
///
/// 从系统里面选择问题添加到项目里面
///