diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 9dfacdcfe..81092d152 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -1546,6 +1546,20 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public QuestionClassify? QuestionClassify { get; set; } } + public class GetFilterTableQuestionInDto + { + public Guid TrialId { get; set; } + + public Guid VisitTaskId { get; set; } + + public Guid QuestionId { get; set; } + + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + } + #endregion public class GetHistoryGlobalInfoOutDto { diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index d2a04e586..2b0534458 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -1401,6 +1401,38 @@ namespace IRaCIS.Core.Application.Service }); ; } + /// + /// 获取单个表格问题及答案 过滤问题 + /// + /// + /// + [HttpPost] + public async Task GetFilterTableQuestion(GetFilterTableQuestionInDto inDto) + { + var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); + var tableAnswers = await _readingTableQuestionAnswerRepository + .ProjectTo(_mapper.ConfigurationProvider) + .Where(x => x.VisitTaskId == inDto.VisitTaskId).ToListAsync(); + var tableAnsweRowInfos = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var organIds = tableAnsweRowInfos.Where(x => x.OrganInfoId != null).Select(x => x.OrganInfoId).Distinct().ToList(); + var organList = await _organInfoRepository.Where(x => organIds.Contains(x.Id)).ToListAsync(); + var questionPage = await GetReadingTableQuestion( + new GetReadingTableQuestionOrAnswerInDto() + { + TrialReadingCriterionId = taskinfo.TrialReadingCriterionId, + TaskId = inDto.VisitTaskId, + TableAnswers = tableAnswers, + TableAnsweRowInfos = tableAnsweRowInfos, + OrganInfos = organList, + QuestionClassify = inDto.QuestionClassify, + }); + + + var result = questionPage.SinglePage.SelectMany(x => x.Childrens).Where(x => x.Id == inDto.QuestionId).FirstOrDefault(); + + return result; + } + /// /// 获取自定义问题以及答案 ///