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;