From 32ce326133640434c006e6da84cdbcd3fe972d3a Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 16 Mar 2023 17:53:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 19 +++++++++++++++++-- .../TrialSiteUser/DTO/TrialConfigDTO.cs | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index f1377c18d..66eb29044 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -135,9 +135,24 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task<(List,bool)> GetTaskAdditionalQuestion(GetTaskAdditionalQuestionInDto inDto) { + + var answerList = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).IgnoreAutoIncludes().ToListAsync(); var taskInfo = await _visitTaskRepository.Where(x => inDto.VisitTaskId == x.Id).FirstNotNullAsync(); - var result= await _readingQuestionTrialRepository.Where(x => x.IsAdditional && x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId).IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync(); - return (result,true); + var result= await _readingQuestionTrialRepository.Where(x => x.IsAdditional && x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId).IgnoreAutoIncludes().IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync(); + + result.ForEach(x => + { + + var answer = answerList.Where(y => y.ReadingQuestionTrialId == x.Id).FirstOrDefault(); + if (answer != null) + { + x.Answer = answer.Answer; + } + }); + + + + return (result,true); } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index fe0c4589b..cf3c2906c 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -550,6 +550,8 @@ namespace IRaCIS.Core.Application.Contracts public int? ParentQuestionShowOrder { get; set; } + public string Answer { get; set; } = string.Empty; + } public class TrialJudgeQuestion From b818c05525ebc8b0e0eb3eb833b473b2b411acfe Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 17 Mar 2023 13:37:58 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/Dto/ReadingImageTaskViewModel.cs | 2 ++ .../ReadingCalculate/GeneralCalculateService.cs | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index e4a2862b3..bf1ad0c21 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -260,6 +260,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string BlindName { get; set; } + public bool IsHaveAdditionalQuestion { get; set; } + public bool IsBaseLine { get; set; } public DateTime? LatestScanDate { get; set; } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/GeneralCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/GeneralCalculateService.cs index 09e656644..b79089363 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/GeneralCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/GeneralCalculateService.cs @@ -150,6 +150,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync(); + var isAdditionalQuestionId = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == visitTaskInfo.TrialReadingCriterionId && x.IsAdditional).IgnoreQueryFilters().Select(x => x.Id).ToListAsync(); + var taskquery = _visitTaskRepository .Where(x => (x.SubjectId == visitTaskInfo.SubjectId && x.TaskState == TaskState.Effect && x.IsAnalysisCreate == visitTaskInfo.IsAnalysisCreate @@ -166,11 +168,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } + + var taskInfoList = await taskquery.OrderBy(x => x.VisitTaskNum).Select(x => new VisitTaskInfo() { BlindName = x.TaskBlindName, IsBaseLine = x.SourceSubjectVisit.IsBaseLine, VisitTaskId = x.Id, + TaskName = x.TaskName, LatestScanDate= x.SourceSubjectVisit!=null?x.SourceSubjectVisit.LatestScanDate : null, VisitTaskNum = x.VisitTaskNum, @@ -178,6 +183,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }).ToListAsync(); + var taskIds = taskInfoList.Select(x => x.VisitTaskId).ToList(); + + var isHaveAdditionalTaskIds = await _readingTaskQuestionAnswerRepository.Where(x => taskIds.Contains(x.VisitTaskId) && isAdditionalQuestionId.Contains(x.ReadingQuestionTrialId)).Select(x => x.VisitTaskId).Distinct().ToListAsync(); + + taskInfoList.ForEach(x => { + x.IsHaveAdditionalQuestion = isHaveAdditionalTaskIds.Contains(x.VisitTaskId); + }); return taskInfoList; } }