diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 1e1f70dc0..e56c07879 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -435,7 +435,7 @@ namespace IRaCIS.Application.Services taskQuery = _visitTaskRepository.Where(x => taskInfo.RelatedVisitTaskIdList.Contains(x.Id) || x.Id == taskInfo.Id); } - var result = await taskQuery + var result = await taskQuery.OrderBy(x => x.VisitTaskNum).ThenBy(x => x.TaskState) .Select(x => new GetRelatedVisitTaskOutDto() { TaskBlindName = x.TaskBlindName, @@ -449,7 +449,7 @@ namespace IRaCIS.Application.Services IsConvertedTask=x.IsConvertedTask, IsFirstChangeTask=x.BeforeConvertedTaskId!=null, - }).OrderBy(x => x.VisitTaskNum).ToListAsync(); + }).ToListAsync(); if (!taskInfo.TrialReadingCriterion.IsReadingTaskViewInOrder) @@ -492,7 +492,7 @@ namespace IRaCIS.Application.Services taskQuery = _visitTaskRepository.Where(x => taskInfo.PastResultTaskIdList.Contains(x.Id)); } - var readingPastResultList = await taskQuery.Select(x => new GetReadingPastResultListOutDto() + var readingPastResultList = await taskQuery.OrderBy(x => x.VisitTaskNum).ThenBy(x => x.TaskState).Select(x => new GetReadingPastResultListOutDto() { VisitTaskId = x.Id, TaskBlindName = x.TaskBlindName, @@ -500,7 +500,7 @@ namespace IRaCIS.Application.Services VisitTaskNum = x.VisitTaskNum, JudgeResultArm = x.JudgeResultTask == null ? null : x.JudgeResultTask.ArmEnum, - }).OrderBy(x => x.VisitTaskNum).ToListAsync(); + }).ToListAsync(); return readingPastResultList; } @@ -2430,7 +2430,7 @@ namespace IRaCIS.Application.Services // 判断任务类型 - // 关联Id + // 关联访视Id List relatedVisitTaskIdList = new List(); // 既往任务Id @@ -2442,17 +2442,17 @@ namespace IRaCIS.Application.Services pastResultTaskIdList = await _visitTaskRepository.Where(x => x.TrialId == taskInfo.TrialId && x.SubjectId == taskInfo.SubjectId && - x.VisitTaskNum < taskInfo.VisitTaskNum && + x.VisitTaskNum <= taskInfo.VisitTaskNum && x.ArmEnum == taskInfo.ArmEnum && x.DoctorUserId == taskInfo.DoctorUserId && x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && x.ReadingTaskState == ReadingTaskState.HaveSigned && - x.TaskState == TaskState.Effect && + (x.TaskState == TaskState.Effect||x.TaskState== TaskState.Freeze) && x.IsSelfAnalysis == taskInfo.IsSelfAnalysis && x.IsAnalysisCreate == taskInfo.IsAnalysisCreate && x.ReadingCategory == taskInfo.ReadingCategory && x.Id != taskInfo.Id - ).Select(x => x.Id).ToListAsync(); + ).OrderBy(x=>x.VisitTaskNum).ThenBy(x=>x.TaskState).Select(x => x.Id).ToListAsync(); switch (taskInfo.ReadingCategory) { @@ -2460,16 +2460,16 @@ namespace IRaCIS.Application.Services case ReadingCategory.Global: case ReadingCategory.Oncology: relatedVisitTaskIdList = await _visitTaskRepository.Where(x => - x.TrialId == taskInfo.TrialId && - x.SubjectId == taskInfo.SubjectId && - x.ReadingCategory == ReadingCategory.Visit && - x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && - x.ReadingTaskState == ReadingTaskState.HaveSigned && - x.IsAnalysisCreate == taskInfo.IsAnalysisCreate && - x.ArmEnum == taskInfo.ArmEnum && - x.IsSelfAnalysis == taskInfo.IsSelfAnalysis && - x.DoctorUserId == taskInfo.DoctorUserId && - x.TaskState == TaskState.Effect && x.VisitTaskNum <= taskInfo.VisitTaskNum).Select(x => x.Id).ToListAsync(); + x.TrialId == taskInfo.TrialId && + x.SubjectId == taskInfo.SubjectId && + x.ReadingCategory == ReadingCategory.Visit && + x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && + x.ReadingTaskState == ReadingTaskState.HaveSigned && + x.IsAnalysisCreate == taskInfo.IsAnalysisCreate && + x.ArmEnum == taskInfo.ArmEnum && + x.IsSelfAnalysis == taskInfo.IsSelfAnalysis && + x.DoctorUserId == taskInfo.DoctorUserId && + x.TaskState == TaskState.Effect && x.VisitTaskNum <= taskInfo.VisitTaskNum).Select(x => x.Id).ToListAsync(); break; } } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs index e94290fbb..79591cffe 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs @@ -131,7 +131,7 @@ namespace IRaCIS.Application.Services var globalVisitTaskIds = await _visitTaskRepository.Where(x=>x.Id== taskList[0].Id).Select(x=>x.RelatedVisitTaskIdList).FirstNotNullAsync(); // 找到所有的的任务 - var globalVisitTasks = await _visitTaskRepository.Where(x => globalVisitTaskIds.Contains(x.Id)).Select(x => new { + var globalVisitTasks = await _visitTaskRepository.Where(x => globalVisitTaskIds.Contains(x.Id)||x.Id== taskList[0].Id).Select(x => new { x.Id, x.ArmEnum, x.VisitTaskNum, @@ -142,7 +142,7 @@ namespace IRaCIS.Application.Services var globalVisitTwoTaskIds = await _visitTaskRepository.Where(x => x.Id == taskList[1].Id).Select(x => x.RelatedVisitTaskIdList).FirstNotNullAsync(); // 找到所有的的任务 - var globalVisitTwoTasks = await _visitTaskRepository.Where(x => globalVisitTwoTaskIds.Contains(x.Id)).Select(x => new { + var globalVisitTwoTasks = await _visitTaskRepository.Where(x => globalVisitTwoTaskIds.Contains(x.Id) || x.Id == taskList[1].Id).Select(x => new { x.Id, x.ArmEnum, x.VisitTaskNum, diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs index 583dd715f..48e8ee2a7 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs @@ -153,14 +153,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var isAdditionalQuestionId = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == visitTaskInfo.TrialReadingCriterionId && x.IsAdditional).IgnoreQueryFilters().Select(x => x.Id).ToListAsync(); var taskquery = _visitTaskRepository - .Where(x => (x.SubjectId == visitTaskInfo.SubjectId && x.TaskState == TaskState.Effect + .Where(x => (x.SubjectId == visitTaskInfo.SubjectId + && (x.TaskState == TaskState.Effect||x.TaskState==TaskState.Freeze) && x.IsAnalysisCreate == visitTaskInfo.IsAnalysisCreate && x.DoctorUserId == visitTaskInfo.DoctorUserId && x.IsSelfAnalysis == visitTaskInfo.IsSelfAnalysis && x.VisitTaskNum <= visitTaskInfo.VisitTaskNum && x.ArmEnum == visitTaskInfo.ArmEnum && x.TrialReadingCriterionId == visitTaskInfo.TrialReadingCriterionId - && x.ReadingCategory == ReadingCategory.Visit && x.ReadingTaskState == ReadingTaskState.HaveSigned) || x.Id == visitTaskId + && x.ReadingCategory == ReadingCategory.Visit && x.ReadingTaskState == ReadingTaskState.HaveSigned) ||x.Id == visitTaskId ); if(visitTaskInfo.ReadingTaskState==ReadingTaskState.HaveSigned) { diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs index 047541361..1d8538f2a 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs @@ -200,7 +200,7 @@ namespace IRaCIS.Core.Domain.Models public string RelatedVisitTaskIds { get; set; } = "[]"; /// - /// 关联的访视任务ID (当前任务是访视任务的话会有自己)集合 + /// 关联的访视任务ID (当前任务是访视任务的话会有自己)集合 不包括冻结 /// [NotMapped] public List RelatedVisitTaskIdList @@ -223,7 +223,7 @@ namespace IRaCIS.Core.Domain.Models } /// - /// 既往任务Id 不包括自己 + /// 既往任务Id 不包括自己 包括冻结 /// public string PastResultTaskIds { get; set; } = "[]"; @@ -231,7 +231,7 @@ namespace IRaCIS.Core.Domain.Models /// - /// 既往任务Id 不包括自己集合 + /// 既往任务Id 不包括自己集合 包括冻结 /// [NotMapped] public List PastResultTaskIdList