From bd2aed96370bab981de6c4f242e11834398b6d93 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 15 Jul 2022 17:27:33 +0800 Subject: [PATCH] x --- .../Service/Allocation/VisitTaskHelpeService.cs | 17 +++++++++++------ .../Service/Allocation/VisitTaskService.cs | 10 +++++++++- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index 92058df45..974664acb 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -200,7 +200,7 @@ namespace IRaCIS.Core.Application.Service //后续未分配的访视 PM 有序退回 或者PM 有序 申请重阅 var notAllocateList = await _visitTaskRepository.Where(t => t.TrialId == trialId && t.SubjectId == subjectVisit.SubjectId && t.TaskState == TaskState.Effect && t.DoctorUserId == null - && t.VisitTaskNum > subjectVisit.VisitNum && t.ReadingCategory == ReadingCategory.Visit, true).ToListAsync(); + && t.VisitTaskNum >= subjectVisit.VisitNum && t.ReadingCategory == ReadingCategory.Visit, true).ToListAsync(); foreach (var notAllocate in notAllocateList) @@ -211,6 +211,8 @@ namespace IRaCIS.Core.Application.Service notAllocate.DoctorUserId = notAllocate.ArmEnum == Arm.DoubleReadingArm1 ? task1.DoctorUserId : task2.DoctorUserId; } + //先回退访视1 再回退基线 这个时候 如果访视1都未做 这个时候是不需要生成任务的 + //后续 废弃的任务 重阅重置,或者失效的 访视 需要重新生成 var needAddTaskList = await _visitTaskRepository.Where(t => t.TrialId == trialId && t.SubjectId == subjectVisit.SubjectId && (t.TaskState == TaskState.Adbandon || t.TaskState == TaskState.HaveReturned) && t.VisitTaskNum > subjectVisit.VisitNum && t.ReadingCategory == ReadingCategory.Visit).ToListAsync(); @@ -226,8 +228,7 @@ namespace IRaCIS.Core.Application.Service TrialId = trialId, SubjectId = subjectVisit.SubjectId, IsUrgent = subjectVisit.IsUrgent, - TaskBlindName = subjectVisit.BlindName, - TaskName = subjectVisit.VisitName, + VisitTaskNum = subjectVisit.VisitNum, ArmEnum = Arm.DoubleReadingArm1,//特殊 Code = currentMaxCodeInt + 1, @@ -235,8 +236,10 @@ namespace IRaCIS.Core.Application.Service TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)), ReadingCategory = ReadingCategory.Visit, + TaskBlindName = latestTask.TaskBlindName, + TaskName = latestTask.TaskName, - BlindSubjectCode=latestTask.BlindSubjectCode, + BlindSubjectCode =latestTask.BlindSubjectCode, BlindTrialSiteCode=latestTask.BlindTrialSiteCode, IsAnalysisCreate= latestTask.IsAnalysisCreate, IsSelfAnalysis= latestTask.IsSelfAnalysis, @@ -250,8 +253,7 @@ namespace IRaCIS.Core.Application.Service TrialId = trialId, SubjectId = subjectVisit.SubjectId, IsUrgent = subjectVisit.IsUrgent, - TaskBlindName = subjectVisit.BlindName, - TaskName = subjectVisit.VisitName, + VisitTaskNum = subjectVisit.VisitNum, //CheckPassedTime = subjectVisit.CheckPassedTime, ArmEnum = Arm.DoubleReadingArm2,//特殊 @@ -261,6 +263,9 @@ namespace IRaCIS.Core.Application.Service ReadingCategory = ReadingCategory.Visit, + TaskBlindName = latestTask.TaskBlindName, + TaskName = latestTask.TaskName, + BlindSubjectCode = latestTask.BlindSubjectCode, BlindTrialSiteCode = latestTask.BlindTrialSiteCode, IsAnalysisCreate = latestTask.IsAnalysisCreate, diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 3b70a8eac..0fed4b414 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1426,6 +1426,7 @@ namespace IRaCIS.Core.Application.Service /// /// [HttpPut("{trialId:guid}/{taskId:guid}")] + [UnitOfWork] public async Task PMSetTaskBack(Guid trialId, Guid taskId) { @@ -1532,10 +1533,17 @@ namespace IRaCIS.Core.Application.Service { influenceTask.TaskState = TaskState.HaveReturned; } - else + else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) { influenceTask.TaskState = TaskState.Adbandon; } + else + { + influenceTask.DoctorUserId = null; + influenceTask.AllocateTime = null; + influenceTask.SuggesteFinishedTime = null; + influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate; + } break;