From 8ab0241225160d5898bb7fb9fdde7ddf960323b3 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 22 Sep 2022 15:17:36 +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/ReadingCalculateViewModel.cs | 4 ++++ .../Service/Reading/ReadingCalculateService.cs | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs index 0494c18fc..005428748 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs @@ -101,6 +101,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid VisitTaskId { get; set; } + public Guid BaseLineTaskId { get; set; } + public Guid CriterionId { get; set; } public Guid TrialId { get; set; } @@ -109,6 +111,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid SubjectVisitId { get; set; } + public Arm ArmEnum { get; set; } + /// /// 是否修改其他任务 /// diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCalculateService.cs index 6bc64367b..a2a121d1b 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCalculateService.cs @@ -299,6 +299,12 @@ namespace IRaCIS.Core.Application.Service { var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync(); var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == (visitTask.SourceSubjectVisitId ?? default(Guid))).FirstOrDefaultAsync(); + + var baseLineVisitId = await _subjectVisitRepository.Where(x => x.SubjectId == visitTask.SubjectId && x.IsBaseLine).Select(x => x.Id).FirstOrDefaultAsync(); + + + + var baseLinetaskId = await _visitTaskRepository.Where(x => x.SourceSubjectVisitId == baseLineVisitId && x.TaskState == TaskState.Effect && x.ArmEnum == visitTask.ArmEnum).Select(x => x.Id).FirstOrDefaultAsync(); var criterionId = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == visitTask.TrialId && x.IsConfirm).Select(x => x.Id).FirstOrDefaultAsync(); List questionInfos = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == criterionId).Select(x => new QuestionInfo() { @@ -348,6 +354,8 @@ namespace IRaCIS.Core.Application.Service TrialId = visitTask.TrialId, IsBaseLine = subjectVisit!.IsBaseLine, DoctorUserId = visitTask.DoctorUserId, + BaseLineTaskId= baseLinetaskId, + ArmEnum=visitTask.ArmEnum, }; return readingData; @@ -702,7 +710,7 @@ namespace IRaCIS.Core.Application.Service { var visitTaskList = await GetVisitTaskAnswerList(inDto.calculateDto); var lowSod = visitTaskList.Select(x => x.SOD).OrderBy(x => x).FirstOrDefault(); - foreach (var item in visitTaskList) + foreach (var item in visitTaskList.Where(x=>x.VisitTaskId!=inDto.calculateDto.BaseLineTaskId)) { await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == inDto.QuestionId, x => new ReadingTaskQuestionAnswer() { @@ -725,7 +733,7 @@ namespace IRaCIS.Core.Application.Service { var visitTaskList = await GetVisitTaskAnswerList(inDto.calculateDto); var lowSod = visitTaskList.Select(x => x.SOD).OrderBy(x => x).FirstOrDefault(); - foreach (var item in visitTaskList) + foreach (var item in visitTaskList.Where(x => x.VisitTaskId != inDto.calculateDto.BaseLineTaskId)) { decimal percent = 0; if (lowSod == 0) @@ -760,6 +768,7 @@ namespace IRaCIS.Core.Application.Service x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.DoctorUserId == inDto.calculateDto.DoctorUserId).Select(x => x.Id).ToListAsync(); var answer = (await GetLowVisit(inDto.calculateDto)).ToString(); + visitTaskIds = visitTaskIds.Where(x => x != inDto.calculateDto.BaseLineTaskId).ToList(); await this.ChangeAllVisitTaskAnswer(visitTaskIds, inDto.QuestionId, answer); } @@ -823,7 +832,7 @@ namespace IRaCIS.Core.Application.Service if (visitTaskAnswerList == null) { visitTaskAnswerList = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTask.ReadingCategory == ReadingCategory.Visit - && x.SubjectId == inDto.SubjectId && x.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned && x.VisitTask.TaskState == TaskState.Effect && x.ReadingQuestionTrial.QuestionType == QuestionType.SOD) + && x.SubjectId == inDto.SubjectId && x.VisitTask.ReadingTaskState == ReadingTaskState.HaveSigned &&x.VisitTask.ArmEnum==inDto.ArmEnum&& x.VisitTask.TaskState == TaskState.Effect && x.ReadingQuestionTrial.QuestionType == QuestionType.SOD) .Select(x => new VisitTaskAnswerInfo { VisitTaskId = x.VisitTaskId,