医学审核问题修改

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 class TrialDataFromSystem : ReadingMedicineTrialQuestion
{ {
public Guid SystemQuestionId { get; set; }
} }
@ -100,7 +99,7 @@ namespace IRaCIS.Core.Application.ViewModel
[NotDefault] [NotDefault]
public Guid TrialReadingCriterionId { get; set; } public Guid TrialReadingCriterionId { get; set; }
public bool IsEnglish { get; set; } public LanguageType LanguageType { get; set; }
} }
public class AddTrialDataFromSystemInDto public class AddTrialDataFromSystemInDto

View File

@ -501,9 +501,13 @@ namespace IRaCIS.Core.Application.Service
[HttpPost] [HttpPost]
public async Task<IResponseOutput> AddDefaultQuestions(AddDefaultQuestionsInDto inDto) 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(); var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync();
List<ReadingCategory> needAddCategory = new List<ReadingCategory>() { ReadingCategory.Visit }; 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(); 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 List<TrialDataFromSystem> needList = await _readingMedicineSystemQuestionRepository
.WhereIf(inDto.IsEnglish, x => x.LanguageType == LanguageType.English) .Where(x=>x.LanguageType==inDto.LanguageType)
.WhereIf(!inDto.IsEnglish, x => x.LanguageType == LanguageType.Chinese)
.Where(x => x.CriterionTypeEnum == criterionInfo.CriterionType && needAddCategory.Contains(x.ReadingCategory)) .Where(x => x.CriterionTypeEnum == criterionInfo.CriterionType && needAddCategory.Contains(x.ReadingCategory))
.Select(x => new TrialDataFromSystem() .Select(x => new TrialDataFromSystem()
{ {

View File

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