From 932cb89a4434cbbb753cf0fea5cc55957797aba8 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 3 Jan 2023 14:54:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingImageTaskViewModel.cs | 63 +++++++++++++++++-- .../ReadingGlobalTaskService.cs | 39 ++++++++++++ .../ReadingImageTaskService.cs | 27 +++++++- 3 files changed, 121 insertions(+), 8 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 406250b5..922129b9 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -265,12 +265,34 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid RowId { get; set; } } - //public class ChangeCalculationAnswerInDto - //{ - // public Guid VisitTaskId { get; set; } + public class ChangeCalculationAnswerInDto + { + public Guid VisitTaskId { get; set; } + + public List QuestionAnswer { get; set; } = new List(); + + public List TableQuestionAnswer { get; set; } = new List(); + } + + public class ChangeTableQuestion + { + public Guid RowId { get; set; } + + public Guid QuestionId { get; set; } + + public Guid TableQuestionId { get; set; } + + public string Answer { get; set; } + } + + public class ChangeQuestion + { + public Guid QuestionId { get; set; } + + public string Answer { get; set; } + } + - // public - //} public class ReadClinicalDataInDto { @@ -742,6 +764,37 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public List OncologyQuestionList { get; set; } } + public class BatchSubmitGlobalReadingInfo + { + public Guid GlobalTaskId { get; set; } + + public Guid SubjectId { get; set; } + + public Guid TrialId { get; set; } + + public List VisitTaskAnswerList { get; set; } + + } + + + public class SubmitGlobalReading + { + public Guid VisitTaskId { get; set; } + + public List AnswerList { get; set; } + } + + public class GlobalAnswer + { + public Guid? QuestionId { get; set; } + + + + public GlobalAnswerType GlobalAnswerType { get; set; } + + public string Answer { get; set; } + } + public class SaveGlobalReadingInfoInDto { public Guid GlobalTaskId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs index cdc49682..42e9b27d 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs @@ -34,6 +34,45 @@ namespace IRaCIS.Application.Services return ResponseOutput.Ok(true); } + + /// + /// 批量提交全局阅片信息 + /// + /// + /// + [HttpPost] + public async Task BatchSubmitGlobalReadingInfo(BatchSubmitGlobalReadingInfo inDto) + { + await VerifyTaskIsSign(inDto.GlobalTaskId); + foreach (var item in inDto.VisitTaskAnswerList) + { + foreach (var answer in item.AnswerList) + { + await _readingGlobalTaskInfoRepository.BatchDeleteNoTrackingAsync(x => x.GlobalTaskId == inDto.GlobalTaskId && x.TaskId == item.VisitTaskId && x.GlobalAnswerType == answer.GlobalAnswerType && x.QuestionId == answer.QuestionId); + await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == answer.QuestionId, x => new ReadingTaskQuestionAnswer() + { + GlobalChangeAnswer = answer.Answer + }); + } + } + var answers= inDto.VisitTaskAnswerList.SelectMany(x => x.AnswerList.Select(y => new ReadingGlobalTaskInfo() + { + Answer = y.Answer, + QuestionId = y.QuestionId, + SubjectId = inDto.SubjectId, + GlobalTaskId = inDto.GlobalTaskId, + GlobalAnswerType = y.GlobalAnswerType, + TaskId = x.VisitTaskId, + TrialId = inDto.TrialId, + })).ToList(); + + await _readingGlobalTaskInfoRepository.AddRangeAsync(answers); + await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == inDto.GlobalTaskId, u => new VisitTask() { ReadingTaskState = ReadingTaskState.Reading }); + var result = await _readingGlobalTaskInfoRepository.SaveChangesAsync(); + return ResponseOutput.Ok(result); + } + + #region 全局阅片相关 /// /// 保存全局阅片结果 diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index e8204e49..83ed5904 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -120,10 +120,31 @@ namespace IRaCIS.Application.Services this._trialEmailNoticeConfigService = trialEmailNoticeConfigService; } - - public async Task ChangeCalculationAnswer() + /// + /// 修改计算问题 + /// + /// + /// + [HttpPost] + public async Task ChangeCalculationAnswer(ChangeCalculationAnswerInDto inDto) { - + foreach (var item in inDto.QuestionAnswer) + { + await _readingTaskQuestionAnswerRepository.UpdatePartialFromQueryAsync(x=>x.VisitTaskId==inDto.VisitTaskId&&x.ReadingQuestionTrialId==item.QuestionId, x => new ReadingTaskQuestionAnswer() + { + Answer = item.Answer, + }); + } + + foreach (var item in inDto.TableQuestionAnswer) + { + await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowId == item.RowId&&x.TableQuestionId==item.TableQuestionId, x => new ReadingTableQuestionAnswer() + { + Answer = item.Answer, + }); + } + + await _readingTableQuestionAnswerRepository.SaveChangesAsync(); } ///