From 9ac7ed7bf4f86f82971e729aa2d2ea69b321c57c Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 21 Jul 2022 17:17:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingImageTaskViewModel.cs | 30 ++++- .../Reading/ReadingImageTaskService.cs | 121 ++++++++++++++---- 2 files changed, 123 insertions(+), 28 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index aaa596243..b0e1bee25 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -79,6 +79,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public decimal VisitNum { get; set; } + public Arm ArmEnum { get; set; } + public List BeforeQuestionList { get; set; } public List AfterQuestionList { get; set; } @@ -93,6 +95,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string Answer { get; set; } + + + /// /// 答案分组 /// @@ -253,12 +258,21 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid ReadingQuestionCriterionTrialId { get; set; } } + public class VisitTaskArm + { + public Arm ArmEnum { get; set; } + + + public Guid VisitTaskId { get; set; } + } public class GetJudgeReadingInfoOutDto { public Guid? JudgeResultTaskId { get; set; } - public List VisitTaskInfoList { get; set; } + public List VisitInfoList { get; set; } + + public List VisitTaskArmList { get; set; } public ReadingTaskState ReadingTaskState { get; set; } @@ -314,14 +328,24 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid VisitId { get; set; } - public Guid VisitTaskId { get; set; } + + + public List VisitTaskInfoList { get; set; } + + } + + + public class JudgeReadingQuestion + { public Arm ArmEnum { get; set; } + + public Guid VisitTaskId { get; set; } + public List JudgeQuestionList { get; set; } } - public class JudgeQuestion { public Guid QuestionId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs index 2aa19ff11..fde93d292 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs @@ -151,7 +151,8 @@ namespace IRaCIS.Application.Services GetGlobalReadingInfoOutDto result = new GetGlobalReadingInfoOutDto() { GlobalTaskId = inDto.VisitTaskId, - ReadingTaskState=taskInfo.ReadingTaskState + ReadingTaskState=taskInfo.ReadingTaskState, + }; result.TaskList = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit && @@ -160,7 +161,8 @@ namespace IRaCIS.Application.Services { VisitName = x.SourceSubjectVisit.VisitName, VisitTaskId = x.Id, - VisitNum=x.SourceSubjectVisit.VisitNum, + ArmEnum= taskInfo.ArmEnum, + VisitNum =x.SourceSubjectVisit.VisitNum, VisitId = x.SourceSubjectVisitId.Value, BeforeQuestionList = x.ReadingTaskQuestionAnswerList.Where(y => y.ReadingQuestionTrial.IsJudgeQuestion).OrderBy(y => y.ReadingQuestionTrial.ShowOrder) .Select(y => new GlobalQuestionInfo() @@ -168,6 +170,7 @@ namespace IRaCIS.Application.Services QuestionId = y.ReadingQuestionTrialId, QuestionName = y.ReadingQuestionTrial.QuestionName, AnswerGroup=y.ReadingQuestionTrial.AnswerGroup, + AnswerCombination=y.ReadingQuestionTrial.AnswerCombination, JudgeType=y.ReadingQuestionTrial.JudgeType, Type = y.ReadingQuestionTrial.Type, @@ -192,6 +195,7 @@ namespace IRaCIS.Application.Services QuestionId = lr.question.QuestionId, QuestionName = lr.question.QuestionName, Type = lr.question.Type, + AnswerGroup = lr.question.AnswerGroup, AnswerCombination = lr.question.AnswerCombination, JudgeType = lr.question.JudgeType, @@ -630,44 +634,111 @@ namespace IRaCIS.Application.Services JudgeResultTaskId = visitTask.JudgeResultTaskId, JudgeResultRemark = visitTask.JudgeResultRemark, JudgeResultImagePath = visitTask.JudgeResultImagePath, - VisitTaskInfoList = new List() + VisitInfoList = new List() }; - var firstTask = await _visitTaskRepository.Where(x => x.JudgeVisitTaskId == inDto.VisitTaskId).FirstNotNullAsync(); + var taskList = await _visitTaskRepository.Where(x => x.JudgeVisitTaskId == inDto.VisitTaskId).OrderBy(x=>x.ArmEnum).ToListAsync(); + judgeInfo.VisitTaskArmList = taskList.Select(x => new VisitTaskArm() + { + ArmEnum = x.ArmEnum, + VisitTaskId = x.Id + + }).ToList(); var visitIds = await _visitTaskRepository.Where(x => x.JudgeVisitTaskId == inDto.VisitTaskId).Select(x => new { x.Id, x.ArmEnum, }).ToListAsync(); - switch (firstTask.ReadingCategory) + switch (taskList[0].ReadingCategory) { case ReadingCategory.Visit: - JudgeReadingInfoDto judgeReadingInfoDto = new JudgeReadingInfoDto() { - VisitId= firstTask.SourceSubjectVisitId.Value, - VisitName= firstTask.TaskBlindName, + JudgeReadingInfoDto judgeReadingInfoDto = new JudgeReadingInfoDto() { + VisitId = taskList[0].SourceSubjectVisitId.Value, + VisitName = taskList[0].TaskBlindName, + VisitTaskInfoList = new List(), }; - + foreach (var item in taskList) + { + judgeReadingInfoDto.VisitTaskInfoList.Add(new JudgeReadingQuestion() + { + ArmEnum = item.ArmEnum, + VisitTaskId = item.Id, + JudgeQuestionList = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == item.Id && x.ReadingQuestionTrial.IsJudgeQuestion).OrderBy(x => x.ReadingQuestionTrial.ShowOrder) + .Select(x => new JudgeQuestion() + { + Answer = x.Answer, + QuestionId = x.ReadingQuestionTrial.Id, + QuestionName = x.ReadingQuestionTrial.QuestionName + + }).ToListAsync(), + }); + } + judgeInfo.VisitInfoList.Add(judgeReadingInfoDto); + break; + + case ReadingCategory.Global: + var taskOneInfo = await this.GetGlobalReadingInfo(new GetGlobalReadingInfoInDto() + { + UsingOriginalData = true, + VisitTaskId = taskList[0].Id + }); + + var taskTwoInfo = await this.GetGlobalReadingInfo(new GetGlobalReadingInfoInDto() + { + UsingOriginalData = true, + VisitTaskId = taskList[0].Id + }); + + + foreach (var item in taskOneInfo.TaskList) + { + GlobalVisitInfo twoItem = taskTwoInfo.TaskList.Where(x => x.VisitId == item.VisitId).FirstOrDefault(); + + JudgeReadingInfoDto judgeReadingInfo = new JudgeReadingInfoDto() + { + VisitId = item.VisitId, + VisitName = item.VisitName, + VisitTaskInfoList = new List(), + }; + + judgeReadingInfo.VisitTaskInfoList.Add(new JudgeReadingQuestion() + { + ArmEnum = item.ArmEnum, + VisitTaskId = item.VisitTaskId, + JudgeQuestionList = item.AfterQuestionList.Where(x => x.QuestionId != null).Select(x => new JudgeQuestion() + { + + Answer = x.Answer, + QuestionId = x.QuestionId.Value, + QuestionName = x.QuestionName + }).ToList() + }); + if (twoItem != null) + { + judgeReadingInfo.VisitTaskInfoList.Add(new JudgeReadingQuestion() + { + ArmEnum = twoItem.ArmEnum, + VisitTaskId = twoItem.VisitTaskId, + JudgeQuestionList = twoItem.AfterQuestionList.Where(x => x.QuestionId != null).Select(x => new JudgeQuestion() + { + + Answer = x.Answer, + QuestionId = x.QuestionId.Value, + QuestionName = x.QuestionName + }).ToList() + }); + } + + judgeInfo.VisitInfoList.Add(judgeReadingInfo); + + + } break; } - //foreach (var item in visitIds) - //{ - // var taskReadingQuestionList = await this.GetTaskAndAnswer(item.Id); - // judgeInfo.VisitTaskInfoList.Add( - // new JudgeReadingInfoDto() - // { - // JudgeQuestionAnswerInfoList = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == item.Id && x.ReadingQuestionTrial.IsJudgeQuestion).Select(x => new JudgeQuestionAnswerInfo - // { - // Answer = x.Answer, - // QuestionName = x.ReadingQuestionTrial.QuestionName, - // }).ToListAsync(), - // VisitTaskId = item.Id, - // ArmEnum = item.ArmEnum, - // TaskReadingQuestionList = taskReadingQuestionList, - // }); - //} + return judgeInfo; } #endregion