医学审核问题修改

IRC_NewDev
he 2024-03-07 10:01:07 +08:00
parent 6319f1e82d
commit 875af7e9f7
3 changed files with 10 additions and 6 deletions

View File

@ -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

View File

@ -501,9 +501,13 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task<IResponseOutput> 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<ReadingCategory> needAddCategory = new List<ReadingCategory>() { 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<TrialDataFromSystem> 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()
{

View File

@ -101,6 +101,8 @@ namespace IRaCIS.Core.Domain.Models
/// </summary>
public Guid TrialReadingCriterionId { get; set; }
public Guid? SystemQuestionId { get; set; }
[JsonIgnore]
[ForeignKey("ParentId")]
public ReadingMedicineTrialQuestion ParentQuestion { get; set; }