diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 52d141259..34b68eac9 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -2460,6 +2460,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class GetSingleVisitJudgeAnswerOutDto { + public Guid R1VisitTaskId { get; set; } + public Guid R2VisitTaskId { get; set; } public List QuestionList { get; set; } = new List(); } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs index 5852b444d..3fcac31fb 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs @@ -105,21 +105,26 @@ namespace IRaCIS.Core.Application.Service .FirstNotNullAsync(); var taskIds = new List { judgeDataInfo.TaskIdOne, judgeDataInfo.TaskIdTwo }; - var taskInfo = await _visitTaskRepository - .Where(x => x.Id == judgeDataInfo.TaskIdOne) + var readingTasks = await _visitTaskRepository + .Where(x => taskIds.Contains(x.Id)) .Select(x => new { + x.Id, + x.ArmEnum, x.TrialReadingCriterionId, x.VisitTaskNum, }) - .FirstNotNullAsync(); + .ToListAsync(); + + var r1Task = readingTasks.First(x => x.ArmEnum == Arm.DoubleReadingArm1); + var r2Task = readingTasks.First(x => x.ArmEnum == Arm.DoubleReadingArm2); var judgeRule = await _readingQuestionCriterionTrialRepository - .Where(x => x.Id == taskInfo.TrialReadingCriterionId) + .Where(x => x.Id == r1Task.TrialReadingCriterionId) .Select(x => x.JudgeRuleEnum) .FirstNotNullAsync(); - var displayQuestions = await GetJudgeDisplayQuestions(taskInfo.TrialReadingCriterionId, taskInfo.VisitTaskNum, judgeRule); + var displayQuestions = await GetJudgeDisplayQuestions(r1Task.TrialReadingCriterionId, r1Task.VisitTaskNum, judgeRule); var judgeAnswers = displayQuestions .Select(x => new SingleVisitJudgeAnswerItemDto { @@ -149,12 +154,14 @@ namespace IRaCIS.Core.Application.Service judgeAnswers.ForEach(question => { - question.R1Answer = answerList.FirstOrDefault(x => x.VisitTaskId == judgeDataInfo.TaskIdOne && x.ReadingQuestionTrialId == question.ReadingQuestionId)?.Answer ?? string.Empty; - question.R2Answer = answerList.FirstOrDefault(x => x.VisitTaskId == judgeDataInfo.TaskIdTwo && x.ReadingQuestionTrialId == question.ReadingQuestionId)?.Answer ?? string.Empty; + question.R1Answer = answerList.FirstOrDefault(x => x.VisitTaskId == r1Task.Id && x.ReadingQuestionTrialId == question.ReadingQuestionId)?.Answer ?? string.Empty; + question.R2Answer = answerList.FirstOrDefault(x => x.VisitTaskId == r2Task.Id && x.ReadingQuestionTrialId == question.ReadingQuestionId)?.Answer ?? string.Empty; }); return new GetSingleVisitJudgeAnswerOutDto { + R1VisitTaskId = r1Task.Id, + R2VisitTaskId = r2Task.Id, QuestionList = judgeAnswers, }; }