diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs index 56867ac30..655a89854 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs @@ -110,6 +110,9 @@ namespace IRaCIS.Core.Application.ViewModel { public Guid TrialId { get; set; } + [NotDefault] + public Guid TrialReadingCriterionId { get; set; } + public List SystemQuestionIds { get; set; } } @@ -163,6 +166,10 @@ namespace IRaCIS.Core.Application.ViewModel public int? ShowOrder { get; set; } + + [NotDefault] + public Guid TrialReadingCriterionId { get; set; } + /// /// 任务类型 /// @@ -252,6 +259,9 @@ namespace IRaCIS.Core.Application.ViewModel { public Guid TrialId { get; set; } + [NotDefault] + public Guid TrialReadingCriterionId { get; set; } + /// /// 任务类型 /// @@ -330,6 +340,8 @@ namespace IRaCIS.Core.Application.ViewModel /// public Guid TrialId { get; set; } + public Guid TrialReadingCriterionId { get; set; } + public string Type { get; set; } = string.Empty; public string ParentTriggerValue { get; set; } = string.Empty; @@ -349,8 +361,11 @@ namespace IRaCIS.Core.Application.ViewModel public class ReadingMedicineTrialQuestionAddOrEdit { public Guid? Id { get; set; } - - public string Type { get; set; } + + [NotDefault] + public Guid TrialReadingCriterionId { get; set; } + + public string Type { get; set; } public string? ParentTriggerValue { get; set; }=string.Empty; public string QuestionName { get; set; } public string TypeValue { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingMedicineQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingMedicineQuestionService.cs index c857c23c3..46668fca3 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingMedicineQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingMedicineQuestionService.cs @@ -134,7 +134,7 @@ namespace IRaCIS.Core.Application.Service public async Task<(List,object)> GetReadingMedicineTrialQuestionList(ReadingMedicineTrialQuestionQuery inDto) { var query = _readingMedicineTrialQuestionRepository.AsQueryable() - .Where(x=>x.TrialId==inDto.TrialId) + .Where(x=>x.TrialId==inDto.TrialId&&x.TrialReadingCriterionId==inDto.TrialReadingCriterionId) .WhereIf(!inDto.TypeValue.IsNullOrEmpty(), x => x.TypeValue.Contains(inDto.TypeValue)) .WhereIf(!inDto.ParentTriggerValue.IsNullOrEmpty(), x => x.ParentTriggerValue.Contains(inDto.ParentTriggerValue)) .WhereIf(!inDto.QuestionName.IsNullOrEmpty(), x => x.QuestionName.Contains(inDto.QuestionName)) @@ -143,7 +143,7 @@ namespace IRaCIS.Core.Application.Service .ProjectTo(_mapper.ConfigurationProvider).OrderBy(x=>x.ShowOrder); - var isConfirmMedicineQuestion = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => x.IsConfirmMedicineQuestion).FirstOrDefaultAsync(); + var isConfirmMedicineQuestion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id==inDto.TrialReadingCriterionId).Select(x => x.IsConfirmMedicineQuestion).FirstOrDefaultAsync(); var questionList = await query.ToListAsync(); return (questionList, new { IsConfirmMedicineQuestion= isConfirmMedicineQuestion, @@ -159,7 +159,7 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetMedicineQuestionPreview(GetMedicineQuestionPreviewInDto inDto) { - var trialQuestionList = await _readingMedicineTrialQuestionRepository.Where(x=>x.TrialId==inDto.TrialId) + var trialQuestionList = await _readingMedicineTrialQuestionRepository.Where(x=>x.TrialId==inDto.TrialId&&x.TrialReadingCriterionId==inDto.TrialReadingCriterionId) .WhereIf(inDto.ReadingCategory != null, x => x.ReadingCategory == inDto.ReadingCategory) .ProjectTo(_mapper.ConfigurationProvider).OrderBy(x=>x.ShowOrder).ToListAsync(); @@ -194,7 +194,7 @@ namespace IRaCIS.Core.Application.Service { var existsQuery = _readingMedicineTrialQuestionRepository .WhereIf(inDto.Id != null, x => x.Id != inDto.Id) - .Where(x => x.TrialId==inDto.TrialId) + .Where(x => x.TrialId==inDto.TrialId&&x.TrialReadingCriterionId==inDto.TrialReadingCriterionId) .Where(x => x.ShowOrder == inDto.ShowOrder); if (await existsQuery.AnyAsync()) @@ -220,7 +220,7 @@ namespace IRaCIS.Core.Application.Service "select","radio" }; - var questionList = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId) + var questionList = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId&&x.TrialReadingCriterionId==inDto.TrialReadingCriterionId) .Where(x => types.Contains(x.Type)) .WhereIf(inDto.Id != null, x => x.Id != inDto.Id && x.ParentId != inDto.Id) .WhereIf(inDto.ShowOrder != null, x => x.ShowOrder new Trial() + await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial() { IsConfirmMedicineQuestion = true }); diff --git a/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs index 49439e17e..126ed3c6d 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs @@ -143,6 +143,13 @@ namespace IRaCIS.Core.Domain.Models public bool IsReadingShowPreviousResults { get; set; } = false; + /// + /// 是确认医学审核问题 + /// + + public bool IsConfirmMedicineQuestion { get; set; } = false; + + /// /// 仲裁对象 /// diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index fc9b92283..b791b4041 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -379,11 +379,11 @@ namespace IRaCIS.Core.Domain.Models /// public DateTime? SyncClinicalDataTime { get; set; } - /// - /// ȷҽѧ - /// + ///// + ///// ȷҽѧ + ///// - public bool IsConfirmMedicineQuestion { get; set; } = false; + //public bool IsConfirmMedicineQuestion { get; set; } = false; /// /// ͼǷбע