diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index f1891c7cb..542556a00 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1647,6 +1647,11 @@ 问题名称 + + + 类型值 + + 当前ID diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index f98055ad5..716b1f1ea 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -220,6 +220,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// 问题名称 /// public string QuestionName { get; set; } + + /// + /// 类型值 + /// + public string TypeValue { get; set; } } public class GetTrialCriterionOtherQuestionInDto { diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs index 46ce46cb3..e3c9653a9 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs @@ -191,7 +191,8 @@ namespace IRaCIS.Application.Services .Select(x => new CriterionOtherQuestionOutDto() { QuestionId = x.Id, - QuestionName = x.QuestionName + QuestionName = x.QuestionName, + TypeValue=x.TypeValue, }).ToListAsync(); return questionList; @@ -413,7 +414,8 @@ namespace IRaCIS.Application.Services .Select(x => new CriterionOtherQuestionOutDto() { QuestionId = x.Id, - QuestionName = x.QuestionName + QuestionName = x.QuestionName, + TypeValue = x.TypeValue, }).ToListAsync(); return questionList; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 110dcaa7f..e6d5cd95f 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -16,17 +16,20 @@ namespace IRaCIS.Core.Application { private readonly IRepository _trialRepository; private readonly IRepository _trialQCQuestionRepository; + private readonly IRepository _readingQuestionCriterionTrialRepository; private readonly IRepository _clinicalDataTrialSetRepository; private readonly IEasyCachingProvider _provider; public TrialConfigService(IRepository trialRepository, IRepository trialQCQuestionRepository, + IRepository readingQuestionCriterionTrialRepository, IRepository clinicalDataTrialSetRepository, IEasyCachingProvider provider ) { _trialRepository = trialRepository; this._trialQCQuestionRepository = trialQCQuestionRepository; + this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository; this._provider = provider; } @@ -332,12 +335,21 @@ namespace IRaCIS.Core.Application trialInfo.UpdateTime = DateTime.Now; + var cancelConfirmCriterionIds = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId && x.IsConfirm && !trialConfig.TrialCriterionIds.Contains(x.Id)).Select(x => x.Id).ToListAsync(); - + await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => cancelConfirmCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial() + { + IsConfirm = false + }); + + await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => trialConfig.TrialCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial() + { + IsConfirm = true + }); ; + - return ResponseOutput.Ok(await _repository.SaveChangesAsync()); }