From 760f75061eb9c35aa533c96a3f1532364ffd7fd6 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Fri, 26 Dec 2025 10:49:16 +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 --- .../LuganoCalculateService.cs | 65 ++++++++----------- .../LuganoWithoutPETCalculateService.cs | 65 ++++++++----------- 2 files changed, 56 insertions(+), 74 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 73e2eac79..60d4c416b 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -1149,20 +1149,12 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }); - List needCopyMarks = new List() - { - - QuestionMark.IsLymph, - QuestionMark.Lesion, - QuestionMark.Organ, - QuestionMark.Location, - QuestionMark.Part, - QuestionMark.BodyPartDescription, - QuestionMark.LowPPDLDi, - QuestionMark.LowPPDSDi, - QuestionMark.NadirPPD, - QuestionMark.LowPPDVisit, - }; + List notNeedCopyMarks = new List() + { + QuestionMark.MajorAxis, + QuestionMark.ShortAxis, + QuestionMark.State, + }; @@ -1206,30 +1198,29 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }); } - var tableAnswers = new List(); - // 处理状态 - - var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToList(); - copyTableAnswers.ForEach(x => - { - var tableAnswer = new ReadingTableQuestionAnswer() + var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet(); + var tableAnswers = copyTableAnswers + .Select(x => { - Id = NewId.NextGuid(), - Answer = needCopyMarks.Contains(x.QuestionMark) ? x.Answer : string.Empty, - QuestionId = x.QuestionId, - RowIndex = x.RowIndex, - RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), - TableQuestionId = x.TableQuestionId, - TrialId = x.TrialId, - VisitTaskId = visitTaskId, - }; - if (mergedRowIds.Contains(tableAnswer.RowId) && x.QuestionMark == QuestionMark.State) - { - tableAnswer.Answer = TargetState.Loss.GetEnumInt(); - - } - tableAnswers.Add(tableAnswer); - }); + var rowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(y => y.Id).FirstOrDefault(); + var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer; + if (mergedRowIds.Contains(rowId) && (x.QuestionMark == QuestionMark.State || x.QuestionMark == QuestionMark.ShortAxis || x.QuestionMark == QuestionMark.MajorAxis)) + { + answer = x.Answer; + } + return new ReadingTableQuestionAnswer + { + Id = NewId.NextGuid(), + Answer = answer, + QuestionId = x.QuestionId, + RowIndex = x.RowIndex, + RowId = rowId, + TableQuestionId = x.TableQuestionId, + TrialId = x.TrialId, + VisitTaskId = visitTaskId, + }; + }) + .ToList(); var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == LastVisitTaskId).Select(x => new ReadingTaskQuestionMark() { diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs index 21e307d71..a7f266175 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs @@ -1148,20 +1148,12 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }); - List needCopyMarks = new List() - { - - QuestionMark.IsLymph, - QuestionMark.Lesion, - QuestionMark.Organ, - QuestionMark.Location, - QuestionMark.Part, - QuestionMark.BodyPartDescription, - QuestionMark.LowPPDLDi, - QuestionMark.LowPPDSDi, - QuestionMark.NadirPPD, - QuestionMark.LowPPDVisit, - }; + List notNeedCopyMarks = new List() + { + QuestionMark.MajorAxis, + QuestionMark.ShortAxis, + QuestionMark.State, + }; @@ -1205,30 +1197,29 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }); } - var tableAnswers = new List(); - // 处理状态 - - var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToList(); - copyTableAnswers.ForEach(x => - { - var tableAnswer = new ReadingTableQuestionAnswer() + var mergedRowIds = tableRowAnswers.Where(x => x.SplitOrMergeType == SplitOrMergeType.Merged).Select(x => x.Id).ToHashSet(); + var tableAnswers = copyTableAnswers + .Select(x => { - Id = NewId.NextGuid(), - Answer = needCopyMarks.Contains(x.QuestionMark) ? x.Answer : string.Empty, - QuestionId = x.QuestionId, - RowIndex = x.RowIndex, - RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), - TableQuestionId = x.TableQuestionId, - TrialId = x.TrialId, - VisitTaskId = visitTaskId, - }; - if (mergedRowIds.Contains(tableAnswer.RowId) && x.QuestionMark == QuestionMark.State) - { - tableAnswer.Answer = TargetState.Loss.GetEnumInt(); - - } - tableAnswers.Add(tableAnswer); - }); + var rowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(y => y.Id).FirstOrDefault(); + var answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer; + if (mergedRowIds.Contains(rowId) && (x.QuestionMark == QuestionMark.State || x.QuestionMark == QuestionMark.ShortAxis || x.QuestionMark == QuestionMark.MajorAxis)) + { + answer = x.Answer; + } + return new ReadingTableQuestionAnswer + { + Id = NewId.NextGuid(), + Answer = answer, + QuestionId = x.QuestionId, + RowIndex = x.RowIndex, + RowId = rowId, + TableQuestionId = x.TableQuestionId, + TrialId = x.TrialId, + VisitTaskId = visitTaskId, + }; + }) + .ToList(); var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == LastVisitTaskId).Select(x => new ReadingTaskQuestionMark() {