diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs index aafe690fc..67b991764 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs @@ -202,7 +202,7 @@ namespace IRaCIS.Core.Application.ViewModel public UserSimpleInfo DoctorUser { get; set; } - public ReReadingOrBackOptType OPtType { get; set; } + public ReReadingOrBackOptType OptType { get; set; } } public enum ReReadingOrBackOptType diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index ae42053be..8249c0ea3 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1341,7 +1341,7 @@ namespace IRaCIS.Core.Application.Service.Allocation } - if(influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned && influenceTask.ReadingCategory == ReadingCategory.Visit) + if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned && influenceTask.ReadingCategory == ReadingCategory.Visit) { await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() { @@ -1362,40 +1362,31 @@ namespace IRaCIS.Core.Application.Service.Allocation newTask.TaskAllocationState = TaskAllocationState.Allocated; newTask.AllocateTime = DateTime.Now; + //拷贝表单 + if (visitTaskReReadingAppply.IsCopyOrigenalForms) + { + + var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == influenceTask.Id).ToList(); + + foreach (var item in list) + { + item.Id = Guid.Empty; + item.VisitTaskId = newTask.Id; + } + + _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result; + + } + } }); } - + } #endregion - #region 申请任务 重新生成 - //申请的任务 重新生成 - await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() - { - TrialId = trialId, - - ReadingCategory = GenerateTaskCategory.ReReading, - - ReReadingTask = origenalTask, - - //同步才可以 - Action = (newTask) => - { - //申请表 设置新任务Id - visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id; - - //生成的任务分配给原始医生 - newTask.DoctorUserId = origenalTask.DoctorUserId; - newTask.TaskAllocationState = TaskAllocationState.Allocated; - newTask.AllocateTime = DateTime.Now; - - } - }); - - #endregion } @@ -1422,28 +1413,81 @@ namespace IRaCIS.Core.Application.Service.Allocation // 不管是访视还是裁判 都会立马产生的新任务并分配出去 - await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() - { - TrialId = trialId, - ReadingCategory = GenerateTaskCategory.ReReading, - - ReReadingTask = origenalTask, - - //同步才可以 - Action = (newTask) => - { - //申请表 设置新任务Id - visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id; - - //生成的任务分配给原始医生 - newTask.DoctorUserId = origenalTask.DoctorUserId; - newTask.TaskAllocationState = TaskAllocationState.Allocated; - newTask.AllocateTime = DateTime.Now; - - } - }); } + + + + #region 申请任务 重新生成 拷贝表单 + + + + //申请的任务 重新生成 + await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() + { + TrialId = trialId, + + ReadingCategory = GenerateTaskCategory.ReReading, + + ReReadingTask = origenalTask, + + //同步才可以 + Action = (newTask) => + { + //申请表 设置新任务Id + visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id; + + //生成的任务分配给原始医生 + newTask.DoctorUserId = origenalTask.DoctorUserId; + newTask.TaskAllocationState = TaskAllocationState.Allocated; + newTask.AllocateTime = DateTime.Now; + + //拷贝表单 + if (visitTaskReReadingAppply.IsCopyOrigenalForms) + { + if (origenalTask.ReadingCategory == ReadingCategory.Visit) + { + var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList(); + + foreach (var item in list) + { + item.Id = Guid.Empty; + item.VisitTaskId = newTask.Id; + } + + _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result; + } + //else if (origenalTask.ReadingCategory == ReadingCategory.Global) + //{ + + //} + //else if (origenalTask.ReadingCategory == ReadingCategory.Judge) + //{ + // newTask.JudgeResultImagePath = origenalTask.JudgeResultImagePath; + // newTask.JudgeResultRemark = origenalTask.JudgeResultRemark; + // newTask.JudgeResultTaskId = origenalTask.JudgeResultTaskId; + + // //引起裁判的两个任务的 裁判任务Id 需要更新 + + // _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.JudgeVisitTaskId == origenalTask.Id, u => new VisitTask() + // { + // JudgeVisitTaskId = newTask.Id, + // }).Wait(); + + + //} + //else + //{ + + //} + } + + } + }); + + #endregion + + } else { @@ -1962,22 +2006,22 @@ namespace IRaCIS.Core.Application.Service.Allocation { if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - influenceTask.OPtType = ReReadingOrBackOptType.Return; + influenceTask.OptType = ReReadingOrBackOptType.Return; } else { - influenceTask.OPtType = ReReadingOrBackOptType.Abandon; + influenceTask.OptType = ReReadingOrBackOptType.Abandon; } } else { if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - influenceTask.OPtType = ReReadingOrBackOptType.Return; + influenceTask.OptType = ReReadingOrBackOptType.Return; } else { - influenceTask.OPtType = ReReadingOrBackOptType.Abandon; + influenceTask.OptType = ReReadingOrBackOptType.Abandon; } } } @@ -1991,26 +2035,26 @@ namespace IRaCIS.Core.Application.Service.Allocation { if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - influenceTask.OPtType = ReReadingOrBackOptType.Return; + influenceTask.OptType = ReReadingOrBackOptType.Return; } else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) { - influenceTask.OPtType = ReReadingOrBackOptType.Abandon; + influenceTask.OptType = ReReadingOrBackOptType.Abandon; } else { - influenceTask.OPtType = ReReadingOrBackOptType.CancelAssign; + influenceTask.OptType = ReReadingOrBackOptType.CancelAssign; } } else { if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - influenceTask.OPtType = ReReadingOrBackOptType.Return; + influenceTask.OptType = ReReadingOrBackOptType.Return; } else { - influenceTask.OPtType = ReReadingOrBackOptType.Abandon; + influenceTask.OptType = ReReadingOrBackOptType.Abandon; } } } @@ -2018,11 +2062,11 @@ namespace IRaCIS.Core.Application.Service.Allocation { if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - influenceTask.OPtType = ReReadingOrBackOptType.Return; + influenceTask.OptType = ReReadingOrBackOptType.Return; } else { - influenceTask.OPtType = ReReadingOrBackOptType.Abandon; + influenceTask.OptType = ReReadingOrBackOptType.Abandon; } } } @@ -2040,15 +2084,15 @@ namespace IRaCIS.Core.Application.Service.Allocation //后续访视处理访视 if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - influenceTask.OPtType = ReReadingOrBackOptType.Return; + influenceTask.OptType = ReReadingOrBackOptType.Return; } else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) { - influenceTask.OPtType = ReReadingOrBackOptType.Abandon; + influenceTask.OptType = ReReadingOrBackOptType.Abandon; } else { - influenceTask.OPtType = ReReadingOrBackOptType.CancelAssign; + influenceTask.OptType = ReReadingOrBackOptType.CancelAssign; } } else @@ -2057,11 +2101,11 @@ namespace IRaCIS.Core.Application.Service.Allocation if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - influenceTask.OPtType = ReReadingOrBackOptType.Return; + influenceTask.OptType = ReReadingOrBackOptType.Return; } else { - influenceTask.OPtType = ReReadingOrBackOptType.Abandon; + influenceTask.OptType = ReReadingOrBackOptType.Abandon; } } } @@ -2069,7 +2113,7 @@ namespace IRaCIS.Core.Application.Service.Allocation else { //重阅重置或者失效 - influenceTask.OPtType = influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned ? ReReadingOrBackOptType.Return : ReReadingOrBackOptType.Abandon; + influenceTask.OptType = influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned ? ReReadingOrBackOptType.Return : ReReadingOrBackOptType.Abandon; } } diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs index 64e4ee219..3fa9525ab 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs @@ -103,7 +103,7 @@ namespace IRaCIS.Core.Domain.Models public Subject Subject { get; set; } - public List ReadingTaskQuestionAnswerList { get; set; } + public List ReadingTaskQuestionAnswerList { get; set; } = new List(); //对于裁判项而言,触发裁判的列表 public List JudgeVisitList { get; set; } @@ -137,10 +137,7 @@ namespace IRaCIS.Core.Domain.Models [ForeignKey("JudgeResultTaskId")] public VisitTask JudgeResultTask { get; set; } - /// - /// 裁判结果的备注 - /// - public string JudgeResultRemark { get; set; } = string.Empty; + //随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.002 全局任务在截止访视号上+0.03 肿瘤待定 public decimal VisitTaskNum { get; set; } @@ -158,11 +155,20 @@ namespace IRaCIS.Core.Domain.Models public bool? IsGlobalHaveUpdate { get; set; } + #region 裁判任务特有 + + /// + /// 裁判结果的备注 + /// + public string JudgeResultRemark { get; set; } = string.Empty; /// /// 裁判结果的图片路径 /// public string JudgeResultImagePath { get; set; } = string.Empty; + #endregion + + #region 一致性分析的任务特有数据 ///