From 1959045ab288ea4accbcdf65d88ca39c46332429 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Wed, 15 Oct 2025 10:12:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 42 +++++++++++++++++-- .../ILuganoWithoutPETCalculateService.cs | 21 ++++++++++ .../LuganoWithoutPETCalculateService.cs | 2 +- 3 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ILuganoWithoutPETCalculateService.cs diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index c8843e03c..62638a459 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -59,6 +59,7 @@ namespace IRaCIS.Core.Application.Service IRepository _organTrialInfoRepository, IRepository _trialDocumentRepository, ILuganoCalculateService _luganoCalculateService, + ILuganoWithoutPETCalculateService _LuganoWithoutPETCalculateService, //IRepository _readingCustomTagRepository, IRepository _readingTaskQuestionMarkRepository, IRepository _readingTrialCriterionDictionaryRepository, @@ -1794,7 +1795,7 @@ namespace IRaCIS.Core.Application.Service switch (taskInfo.TrialReadingCriterion.CriterionType) { case CriterionType.Lugano2014: - + case CriterionType.Lugano2014WithoutPET: List needSetNa = new List() { QuestionMark.LowPPDAddPercent, @@ -1916,6 +1917,7 @@ namespace IRaCIS.Core.Application.Service switch (taskinfo.TrialReadingCriterion.CriterionType) { case CriterionType.Lugano2014: + await _luganoCalculateService.CalculateMergeTargetLesionStatus(new CalculateTargetLesionStatusInDto() { QuestionId = inDto.QuestionId, @@ -1923,6 +1925,14 @@ namespace IRaCIS.Core.Application.Service RowNumber = mergeRow.RowIndex, }); break; + case CriterionType.Lugano2014WithoutPET: + await _LuganoWithoutPETCalculateService.CalculateMergeTargetLesionStatus(new CalculateTargetLesionStatusInDto() + { + QuestionId = inDto.QuestionId, + VisitTaskId = inDto.VisitTaskId, + RowNumber = mergeRow.RowIndex, + }); + break; } } @@ -1949,6 +1959,7 @@ namespace IRaCIS.Core.Application.Service { case CriterionType.Lugano2014: + case CriterionType.Lugano2014WithoutPET: // (无法评估 或者 状态为消失的非靶病灶) 并且不能是无法评估的病灶 query = query.Where(x => (x.MeasureData == string.Empty || @@ -2252,9 +2263,9 @@ namespace IRaCIS.Core.Application.Service break; case CriterionType.Lugano2014: - + case CriterionType.Lugano2014WithoutPET: // 先找到需要删除的 - + foreach (var item in needDeleteMarkQuestionIds) { // 对于要删除的标记不能删除 要与问题解绑 @@ -2586,6 +2597,7 @@ namespace IRaCIS.Core.Application.Service switch (taskinfo.TrialReadingCriterion.CriterionType) { case CriterionType.Lugano2014: + if (deleteRowInfo.RowIndex % 1 != 0) { await _luganoCalculateService.CalculateTargetLesionStatus(new CalculateTargetLesionStatusInDto() @@ -2596,6 +2608,18 @@ namespace IRaCIS.Core.Application.Service }); } break; + case CriterionType.Lugano2014WithoutPET: + + if (deleteRowInfo.RowIndex % 1 != 0) + { + await _LuganoWithoutPETCalculateService.CalculateTargetLesionStatus(new CalculateTargetLesionStatusInDto() + { + QuestionId = inDto.QuestionId, + VisitTaskId = inDto.VisitTaskId, + RowNumber = deleteRowInfo.RowIndex + }); + } + break; } return ResponseOutput.Ok(true); } @@ -2761,6 +2785,7 @@ namespace IRaCIS.Core.Application.Service } break; case CriterionType.Lugano2014: + case CriterionType.Lugano2014WithoutPET: var targetTablequestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == taskinfo.TrialReadingCriterionId && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion).ToListAsync(); @@ -3059,6 +3084,17 @@ namespace IRaCIS.Core.Application.Service }); } break; + case CriterionType.Lugano2014WithoutPET: + if (inDto.RowIndex % 1 != 0) + { + await _LuganoWithoutPETCalculateService.CalculateTargetLesionStatus(new CalculateTargetLesionStatusInDto() + { + QuestionId = inDto.QuestionId, + VisitTaskId = inDto.VisitTaskId, + RowNumber = inDto.RowIndex + }); + } + break; } return result; diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ILuganoWithoutPETCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ILuganoWithoutPETCalculateService.cs new file mode 100644 index 000000000..7587ba034 --- /dev/null +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ILuganoWithoutPETCalculateService.cs @@ -0,0 +1,21 @@ +using IRaCIS.Core.Application.ViewModel; + +namespace IRaCIS.Core.Application.Service.ReadingCalculate.Interface +{ + public interface ILuganoWithoutPETCalculateService + { + /// + /// 计算靶病灶状态 + /// + /// + /// + Task CalculateTargetLesionStatus(CalculateTargetLesionStatusInDto inDto); + + /// + /// 计算靶病灶融合后状态 + /// + /// + /// + Task CalculateMergeTargetLesionStatus(CalculateTargetLesionStatusInDto inDto); + } +} diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs index 9dec37a77..2aa16011c 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs @@ -26,7 +26,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate IRepository _tumorAssessmentRepository, ISubjectVisitService _subjectVisitService, IGeneralCalculateService _generalCalculateService, - IRepository _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService, ILuganoCalculateService + IRepository _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService, ILuganoWithoutPETCalculateService { /// /// 阅片导入