diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs index 681920557..529e92feb 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs @@ -142,7 +142,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate ComputationTrigger=ComputationTrigger.Report, }); - await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.VisitTaskId, x => new VisitTask() + await _visitTaskRepository.UpdatePartialFromQueryAsync(inDto.VisitTaskId, x => new VisitTask() { ReadingTaskState = ReadingTaskState.Reading, diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index c57f47806..2f7d09b59 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -11,6 +11,7 @@ using Microsoft.Extensions.Caching.Memory; using IRaCIS.Core.Infrastructure; using MassTransit; using System.Reflection.Metadata.Ecma335; +using System.Linq; namespace IRaCIS.Core.Application.Service.ReadingCalculate { @@ -817,6 +818,25 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate errorMassage += _localizer["ReadingCalculate_NoMarkerEmpty", string.Join(',', stateIsNullList)] + ","; } + // 判断是否有pet + if (await _readingTaskQuestionAnswerRepository.AnyAsync(x => x.ReadingQuestionTrial.QuestionType == QuestionType.ExistPET && x.VisitTaskId == inDto.VisitTaskId && x.Answer == ReadingYesOrNo.Yes.GetEnumInt())) + { + List required=new List() { + QuestionType.LiverSUVmax, + QuestionType.MediastinumSUVmax, + QuestionType.SUVmax, + QuestionType.SUVmaxLesion, + QuestionType.PET5PS, + QuestionType.UptakeChange, + QuestionType.EvidenceFocalFDG + }; + + if ((await _readingTaskQuestionAnswerRepository.CountAsync(x => required.Contains(x.ReadingQuestionTrial.QuestionType) && x.VisitTaskId == inDto.VisitTaskId && x.Answer != string.Empty)) != required.Count()) + { + errorMassage += _localizer["ReadingCalculate_LuganoPetVerification"] + ","; + } + } + if (errorMassage != string.Empty) {