diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 3ebd840cc..dd1ec03fa 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -529,11 +529,26 @@ namespace IRaCIS.Application.Services }).ToListAsync(); - if (taskInfo.TrialReadingCriterion.IsReadingTaskViewInOrder != ReadingOrder.InOrder) - { - result = result.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToList(); - } + switch (taskInfo.TrialReadingCriterion.IsReadingTaskViewInOrder) + { + case ReadingOrder.InOrder: + /// 有序不做处理 + break; + case ReadingOrder.Random: + result = result.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToList(); + break; + case ReadingOrder.SubjectRandom: + // 受试者随机 当前任务为第一个 其他的 随机 + var self = result.Where(x => x.VisitTaskId == inDto.VisitTaskId).FirstOrDefault(); + Random random = new Random(); + var otherList = result.Where(x => x.VisitTaskId != inDto.VisitTaskId).OrderBy(x => random.Next()).ToList(); + var newList = new List() { self }; + newList.AddRange(otherList); + result = newList; + break; + + } var visitaskIds = result.Select(x => x.VisitTaskId).ToList();