diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index ce0e76b1b..62fefa122 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1500,6 +1500,27 @@ + + + 获取转化的靶病灶评估 + + + + + + + 获取转化的非靶病灶评估 + + + + + + + 获取转化的整体肿瘤评估 + + + + @@ -2925,6 +2946,11 @@ 问题标识 + + + 是否是正在转化 + + 项目ID diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index 9c893806a..c7e5e28ca 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -1287,6 +1287,9 @@ namespace IRaCIS.Core.Application.Service taskUrgent = TaskUrgentType.VisitUrgent; } bool isCanEditUrgent = taskUrgent == TaskUrgentType.EnrollmentConfirm || taskUrgent == TaskUrgentType.PDProgress ? false : true; + + //加一个去重的判断 IR 申请重阅的时候,有脏数据 (例如多个follow 2 ),但是生成时候不生成 + var newTask = await _visitTaskRepository.AddAsync(new VisitTask() { diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index d2d3ce0b7..b50c7ae7e 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1852,6 +1852,8 @@ namespace IRaCIS.Core.Application.Service.Allocation var trakingOrigenalTask = influenceTaskList.Where(t => t.Id == origenalTask.Id).FirstOrDefault(); + + foreach (var influenceTask in influenceTaskList) { var beforeTaskState = influenceTask.TaskState; @@ -1897,7 +1899,7 @@ namespace IRaCIS.Core.Application.Service.Allocation } // 影响的任务 仅仅访视类别的才生成 或者就是IR 申请的任务 - if ((beforeTaskState==TaskState.Effect && influenceTask.ReadingCategory == ReadingCategory.Visit) || influenceTask.Id == origenalTask.Id) + if ( influenceTask.ReadingCategory == ReadingCategory.Visit || influenceTask.Id == origenalTask.Id) { @@ -1910,9 +1912,20 @@ namespace IRaCIS.Core.Application.Service.Allocation // i1.1标准 当前任务是转变任务,并且影响列表里有转变之前的任务 那么该访视任务就不生成 - if (criterionConfig.CriterionType == CriterionType.IRECIST1Point1 && influenceTask.BeforeConvertedTaskId != null && influenceTaskList.Any(t => t.Id == influenceTask.BeforeConvertedTaskId)) + if (criterionConfig.CriterionType == CriterionType.IRECIST1Point1 ) { - continue; + //申请的任务是冻结的任务(该任务发生转变) 影响自己 以及转变后的 以及后续任务 但是生成的时候,仅仅生成转变之前的 + //申请的是转变之后的任务 (转变生成的任务) 影响自己以及后续任务 生成转变后的任务 + if ( influenceTask.BeforeConvertedTaskId != null && influenceTaskList.Any(t => t.Id == influenceTask.BeforeConvertedTaskId)) + { + //有转化的任务 和转化之前的任务时,转化后的任务时不生成的 + continue; + + } + + //var canGenerateTaskIdList = influenceTaskList.GroupBy(t => new { t.VisitTaskNum, t.DoctorUserId, t.TrialReadingCriterionId, t.SubjectId }) + // .Select(g => g.First().Id); + } #region 影响的任务生成 @@ -2081,7 +2094,7 @@ namespace IRaCIS.Core.Application.Service.Allocation newTask.TaskAllocationState = TaskAllocationState.Allocated; newTask.AllocateTime = DateTime.Now; newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); - + //裁判任务 需要进行特殊处理 在重阅逻辑里面处理