From 180b02b28ce558a75209c4c2b71de90b74b8a62c Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 13 Jun 2025 14:33:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E9=98=85=E7=89=87NextTask-4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 49 +++++++++++++------ 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index cd0794b3f..220594f33 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -647,7 +647,7 @@ namespace IRaCIS.Core.Application.Service IsCurrentTask = x.Id == inDto.VisitTaskId, IsConvertedTask = x.IsConvertedTask, IsFirstChangeTask = x.BeforeConvertedTaskId != null, - IsExistUnprocessedFeedback=x.UserFeedBackList.Any(y => y.State == 0), + IsExistUnprocessedFeedback = x.UserFeedBackList.Any(y => y.State == 0), }).ToListAsync(); @@ -1649,7 +1649,7 @@ namespace IRaCIS.Core.Application.Service QuestionMark.IsLymph, }; - + switch (taskInfo.TrialReadingCriterion.CriterionType) { @@ -2449,14 +2449,14 @@ namespace IRaCIS.Core.Application.Service // } // } // } - + //} - + break; } - + var criterionId = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.TrialReadingCriterionId).FirstOrDefaultAsync(); var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == criterionId).FirstNotNullAsync(); var tableQuestionIds = inDto.AnswerList.Select(x => x.TableQuestionId).ToList(); @@ -3117,17 +3117,11 @@ namespace IRaCIS.Core.Application.Service && x.TrialReadingCriterionId == trialReadingCriterionId && x.TaskState == TaskState.Effect) .Where(x => !cacheSkipIds.Contains(x.Id)); - var count = await query.CountAsync(); - if (count == 0) - { - throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows); - } + + //如果是随机阅片 + Random random = new Random(); var skipcount = 0; - if (count >= 2) - { - skipcount = random.Next(0, count - 1); - } var maxReadingTime = query.MaxOrDefault(x => x.FirstReadingTime); if (maxReadingTime != null) @@ -3135,6 +3129,29 @@ namespace IRaCIS.Core.Application.Service query = query.Where(x => x.FirstReadingTime == maxReadingTime); skipcount = 0; } + + var minRandomOrder = query.Where(t => t.RandomOrder != null).Select(t => t.RandomOrder).MinOrDefault(); + + //阅片中的可能没序号,以阅片中优先先给IR + if (minRandomOrder != null && maxReadingTime == null) + { + query = query.Where(x => x.RandomOrder == minRandomOrder); + skipcount = 0; + } + + + var count = await query.CountAsync(); + if (count >= 2) + { + skipcount = random.Next(0, count - 1); + } + if (count == 0) + { + throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows); + } + + + task = await query .Select(x => new GetReadingTaskDto() { @@ -3235,7 +3252,7 @@ namespace IRaCIS.Core.Application.Service task.SubjectCode = blindSubjectCode.IsNullOrEmpty() ? task.SubjectCode : blindSubjectCode; task.ExistsManual = (await GetManualList(new GetManualListInDto() { TrialId = visitTaskInfo.TrialId })).Count > 0; task.ReadingTaskState = visitTaskInfo.ReadingTaskState; - task.IsShowStudyName= trialInfo.IsShowStudyName; + task.IsShowStudyName = trialInfo.IsShowStudyName; task.IsBaseLine = isBaseLine; task.ReadingVersionEnum = criterionInfo.ReadingVersionEnum; task.ReadingToolList = criterionInfo.ReadingToolList; @@ -3351,7 +3368,7 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task ResetReadingRestTime(Guid? userRoleId) { - var roleId = (userRoleId != null && userRoleId != Guid.Empty) ? (Guid) userRoleId : _userInfo.UserRoleId; + var roleId = (userRoleId != null && userRoleId != Guid.Empty) ? (Guid)userRoleId : _userInfo.UserRoleId; //int readingMinute = 120; // 为60整数 int restMinute = 10; //