From f8f0b5661a805735e7dd2bd636e535769698493d Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Tue, 29 Jul 2025 14:03:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A8=BD=E6=9F=A5=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 | 7 ++ .../ReadingImageTaskService.cs | 75 +++++++++++++++---- 2 files changed, 68 insertions(+), 14 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 1a82bb264..fb89ce93b 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -674,6 +674,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public CriterionType CriterionType { get; set; } } + + public class MarkAuditInfo + { + public string Param { get; set; } + + public bool IsGeneralMark { get; set; } + } public class ChangeDicomReadingQuestionAnswerInDto { public Guid VisitTaskId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 2077a4def..048921541 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -1997,28 +1997,75 @@ namespace IRaCIS.Core.Application.Service inDto.param= param; + List markAuditInfos = new List() { + + // 自定义 + new MarkAuditInfo (){Param="-10",IsGeneralMark=true }, + + // 保存脾尖 + new MarkAuditInfo (){Param="4",IsGeneralMark=true }, + + // 保存脾底 + new MarkAuditInfo (){Param="5",IsGeneralMark=true }, + + // 测量纵膈血池 + new MarkAuditInfo (){Param="3",IsGeneralMark=false }, + + // 测量肝脏血池 + new MarkAuditInfo (){Param="2",IsGeneralMark=false } + }; + + + var markInfo= markAuditInfos.Where(x => x.Param == param).FirstOrDefault(); + // 当 param == -10 时,为自定义标准 需要区分 绑定 更改 标记 - if (param == "-10") + if (markInfo!=null) { - // 自定义这边 移除标记 还是会传过来 不过 MeasureData 为空字符串 - inDto.QuestionMarkInfoList = inDto.QuestionMarkInfoList.Where(x => x.MeasureData.IsNotNullOrEmpty()).ToList(); - - var questionMarkList = inDto.QuestionMarkInfoList.Select(x => x.QuestionId).ToList(); - - var existsMark = await _readingTaskQuestionMarkRepository.AnyAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.MeasureData != string.Empty && questionMarkList.Contains(x.QuestionId)); - if (!existsMark && inDto.QuestionMarkInfoList.Count(x=>x.MeasureData.IsNotNullOrEmpty()) > 0) + if (markInfo.IsGeneralMark) { - _userInfo.AuditIdentification = "AddMark"; - } - else if (existsMark && inDto.QuestionMarkInfoList.Count(x => x.MeasureData.IsNotNullOrEmpty()) > 0) - { - _userInfo.AuditIdentification = "UpdateMark"; + // 自定义这边 移除标记 还是会传过来 不过 MeasureData 为空字符串 + inDto.QuestionMarkInfoList = inDto.QuestionMarkInfoList.Where(x => x.MeasureData.IsNotNullOrEmpty()).ToList(); + + + var questionMarkList = inDto.QuestionMarkInfoList.Select(x => x.QuestionId).ToList(); + + var existsMark = await _readingTaskQuestionMarkRepository.AnyAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.MeasureData != string.Empty && questionMarkList.Contains(x.QuestionId)); + if (!existsMark && inDto.QuestionMarkInfoList.Count(x => x.MeasureData.IsNotNullOrEmpty()) > 0) + { + _userInfo.AuditIdentification = "AddMark"; + } + else if (existsMark && inDto.QuestionMarkInfoList.Count(x => x.MeasureData.IsNotNullOrEmpty()) > 0) + { + _userInfo.AuditIdentification = "UpdateMark"; + } + else + { + _userInfo.AuditIdentification = "DeleteMark"; + } } else { - _userInfo.AuditIdentification = "DeleteMark"; + inDto.QuestionMarkInfoList = inDto.QuestionMarkInfoList.Where(x => x.OtherMeasureData.IsNotNullOrEmpty()).ToList(); + + + var questionMarkList = inDto.QuestionMarkInfoList.Select(x => x.QuestionId).ToList(); + + var existsMark = await _readingTaskQuestionMarkRepository.AnyAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.OtherMeasureData != string.Empty && questionMarkList.Contains(x.QuestionId)); + if (!existsMark && inDto.QuestionMarkInfoList.Count(x => x.OtherMeasureData.IsNotNullOrEmpty()) > 0) + { + _userInfo.AuditIdentification = "AddMark"; + } + else if (existsMark && inDto.QuestionMarkInfoList.Count(x => x.OtherMeasureData.IsNotNullOrEmpty()) > 0) + { + _userInfo.AuditIdentification = "UpdateMark"; + } + else + { + _userInfo.AuditIdentification = "DeleteMark"; + } } + } var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Include(x => x.TrialReadingCriterion).FirstNotNullAsync();