From 875af7e9f78c0bc1fa7d4cab080b633157ef88cb Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Thu, 7 Mar 2024 10:01:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BB=E5=AD=A6=E5=AE=A1=E6=A0=B8=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingMedicineQuestionViewModel.cs | 3 +-- .../MedicalAudit/ReadingMedicineQuestionService.cs | 11 +++++++---- .../MedicalAudit/ReadingMedicineTrialQuestion.cs | 2 ++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs index 763e4b7f9..f6f47de0d 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs @@ -89,7 +89,6 @@ namespace IRaCIS.Core.Application.ViewModel public class TrialDataFromSystem : ReadingMedicineTrialQuestion { - public Guid SystemQuestionId { get; set; } } @@ -100,7 +99,7 @@ namespace IRaCIS.Core.Application.ViewModel [NotDefault] public Guid TrialReadingCriterionId { get; set; } - public bool IsEnglish { get; set; } + public LanguageType LanguageType { get; set; } } public class AddTrialDataFromSystemInDto diff --git a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs index 4432c0499..030e34aa7 100644 --- a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs @@ -501,9 +501,13 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task AddDefaultQuestions(AddDefaultQuestionsInDto inDto) { - if (await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) + if (await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null)) { - throw new BusinessValidationFailedException(_localizer["Medicine_ExistsMedicineQuestion"]); + await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null); + } + else + { + await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType != inDto.LanguageType); } var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); List needAddCategory = new List() { ReadingCategory.Visit }; @@ -522,8 +526,7 @@ namespace IRaCIS.Core.Application.Service var maxOrder = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == inDto.TrialReadingCriterionId).OrderByDescending(x => x.ShowOrder).Select(x => x.ShowOrder).FirstOrDefaultAsync(); List needList = await _readingMedicineSystemQuestionRepository - .WhereIf(inDto.IsEnglish, x => x.LanguageType == LanguageType.English) - .WhereIf(!inDto.IsEnglish, x => x.LanguageType == LanguageType.Chinese) + .Where(x=>x.LanguageType==inDto.LanguageType) .Where(x => x.CriterionTypeEnum == criterionInfo.CriterionType && needAddCategory.Contains(x.ReadingCategory)) .Select(x => new TrialDataFromSystem() { diff --git a/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicineTrialQuestion.cs b/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicineTrialQuestion.cs index afc4cc6e9..e5f90f69c 100644 --- a/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicineTrialQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicineTrialQuestion.cs @@ -101,6 +101,8 @@ namespace IRaCIS.Core.Domain.Models /// public Guid TrialReadingCriterionId { get; set; } + public Guid? SystemQuestionId { get; set; } + [JsonIgnore] [ForeignKey("ParentId")] public ReadingMedicineTrialQuestion ParentQuestion { get; set; }