diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
index b1b3b5f63..f7a63a868 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
@@ -1438,8 +1438,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
///
- /// 重阅原任务跟踪处理 只会在同意的时候调用这个
- ///
+ /// 重阅原任务跟踪处理
///
///
private void ReReadingTaskTrackingDeal(VisitTask origenalTask, ConfirmReReadingCommand agreeReReadingCommand)
@@ -1483,7 +1482,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
///
///
///
- private async Task SetReReadingOrBackInfluenceAnalysisAsync(Guid subjectId)
+ private async Task PMReReadingConfirmOrBackInfluenceAnalysisAsync(Guid subjectId)
{
if (await _repository.AnyAsync(t => t.IsAnalysisCreate && t.SubjectId == subjectId))
{
@@ -1566,7 +1565,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
isIR1Point1AdditionalAssessmentBaseline = true;
- //filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB);
}
// 1.1 非基线任务不影响BM任务
else
@@ -1584,33 +1582,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree)
{
- //PM申请 SPM / CPM审批 回退访视,在此不生成访视任务 影响多个标准的任务
+ //PM申请 SPM / CPM审批 回退访视,因此这里不生成访视任务 影响多个标准的任务
if (visitTaskReReadingAppply.RequestReReadingType == RequestReReadingType.TrialGroupApply && (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM))
{
- #region PM 申请两个IR 同一访视,其他人的申请记录也设置为同意 不会出现,因为在未处理前 一个Subject只能申请一次
-
-
- // await _visitTaskReReadingRepository.BatchUpdateNoTrackingAsync(t => t.OriginalReReadingTask.SubjectId == origenalTask.SubjectId &&
- // t.OriginalReReadingTask.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed &&
- // t.RequestReReadingType == RequestReReadingType.TrialGroupApply &&
- //t.OriginalReReadingTask.VisitTaskNum == origenalTask.VisitTaskNum &&
- //t.Id != item.Id, u => new VisitTaskReReading()
- //{
- // RequestReReadingConfirmUserId = _userInfo.Id,
- // RequestReReadingResultEnum = RequestReReadingResult.Agree,
- //});
-
- // //只更新 PM 申请 同一访视的数据
- // await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == origenalTask.SubjectId &&
- // t.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed &&
- // t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId &&
- // t.IsAnalysisCreate == origenalTask.IsAnalysisCreate &&
- // t.VisitTaskNum == origenalTask.VisitTaskNum &&
- // t.Id != origenalTask.Id, u => new VisitTask()
- // {
- // ReReadingApplyState = ReReadingApplyState.Agree
- // });
- #endregion
// 不管有序 无序 都会 回退访视
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
@@ -1651,7 +1625,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
await InfluenceAddtioncalEvaluationCritrionAsync(origenalTask, influenceTaskList.Where(t => t.Id != origenalTask.Id).Where(t => t.SourceSubjectVisitId != null).Select(t => (Guid)t.SourceSubjectVisitId).Distinct().ToList());
- await SetReReadingOrBackInfluenceAnalysisAsync(origenalTask.SubjectId);
+ await PMReReadingConfirmOrBackInfluenceAnalysisAsync(origenalTask.SubjectId);
await SetMedicalReviewInvalidAsync(influenceTaskList);
@@ -1671,52 +1645,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
}
- #region 废弃 分配 留存
-
- ////申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配
- //if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != origenalTask.VisitTaskNum)
- //{
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.TaskState = TaskState.HaveReturned;
-
- // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
- // }
- // else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
- // {
- // influenceTask.TaskState = TaskState.Adbandon;
- // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
- // }
- // else
- // {
- // influenceTask.DoctorUserId = null;
- // influenceTask.AllocateTime = null;
- // influenceTask.SuggesteFinishedTime = null;
- // influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate;
-
- // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.CancelAssign });
- // }
- //}
- ////当前访视
- //else
- //{
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.TaskState = TaskState.HaveReturned;
-
- // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
- // }
- // else
- // {
- // influenceTask.TaskState = TaskState.Adbandon;
-
- // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
- // }
-
- //}
-
- #endregion
-
}
#endregion
@@ -1746,7 +1674,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
- await SetReReadingOrBackInfluenceAnalysisAsync(origenalTask.SubjectId);
+ await PMReReadingConfirmOrBackInfluenceAnalysisAsync(origenalTask.SubjectId);
await SetMedicalReviewInvalidAsync(influenceTaskList);
@@ -1868,7 +1796,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
#endregion
- #region 这里时影响其他的任务 /*不包括申请的任务 申请的任务,在上面会统一处理*/
var influenceTaskList = await _visitTaskRepository.Where(filterExpression, true).OrderBy(t => t.VisitTaskNum).ToListAsync();
@@ -1906,7 +1833,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
-
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
{
influenceTask.TaskState = TaskState.HaveReturned;
@@ -1920,6 +1846,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
}
+
+ #region 受影响的任务生成
+
// 影响的任务 仅仅访视类别的才生成 或者就是IR 申请的任务
if (influenceTask.ReadingCategory == ReadingCategory.Visit || influenceTask.Id == origenalTask.Id)
{
@@ -1945,12 +1874,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
}
- //var canGenerateTaskIdList = influenceTaskList.GroupBy(t => new { t.VisitTaskNum, t.DoctorUserId, t.TrialReadingCriterionId, t.SubjectId })
- // .Select(g => g.First().Id);
}
- #region 影响的任务生成
await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand()
{
@@ -1972,7 +1898,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
newTask.AllocateTime = DateTime.Now;
newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget);
-
+ //拷贝原始表单
if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id)
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
@@ -2004,18 +1930,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
}
-
-
-
}
- #endregion
-
-
}
- //无序阅片 只会申请访视类型和裁判类型的任务 注意这里有一致性分析的申请同意
+ //无序阅片 IR只会申请访视类型和裁判类型的任务 注意这里有一致性分析的申请同意
else
{
@@ -2056,6 +1976,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
}
}
+ #region 受影响任务的生成
if (influenceTask.ReadingCategory == ReadingCategory.Visit || influenceTask.Id == origenalTask.Id)
{
@@ -2108,16 +2029,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
});
}
+ #endregion
}
}
-
-
-
-
-
}
else
{
@@ -2343,7 +2260,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
await InfluenceAddtioncalEvaluationCritrionAsync(task, influenceTaskList.Where(t => t.Id != task.Id).Where(t => t.SourceSubjectVisitId != null).Select(t => (Guid)t.SourceSubjectVisitId).Distinct().ToList());
- await SetReReadingOrBackInfluenceAnalysisAsync(influenceTask.SubjectId);
+ await PMReReadingConfirmOrBackInfluenceAnalysisAsync(influenceTask.SubjectId);
await SetMedicalReviewInvalidAsync(influenceTaskList);
@@ -2362,53 +2279,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
}
- #region 废弃取消分配留存
-
- ////申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配
- //if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != task.VisitTaskNum)
- //{
- // //后续访视处理访视
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.TaskState = TaskState.HaveReturned;
-
- // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
- // }
- // else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
- // {
- // influenceTask.TaskState = TaskState.Adbandon;
- // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
- // }
- // else
- // {
- // influenceTask.DoctorUserId = null;
- // influenceTask.AllocateTime = null;
- // influenceTask.SuggesteFinishedTime = null;
- // influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate;
-
- // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.CancelAssign });
- // }
- //}
- //else
- //{
- // //申请的访视 全局肿瘤学
-
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.TaskState = TaskState.HaveReturned;
- // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
- // }
- // else
- // {
- // influenceTask.TaskState = TaskState.Adbandon;
- // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
- // }
-
- //}
- #endregion
-
-
-
}
#endregion
@@ -2890,147 +2760,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
foreach (var influenceTask in list)
{
influenceTask.OptType = influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned ? ReReadingOrBackOptType.Return : ReReadingOrBackOptType.Abandon;
-
-
- #region 变更前 注释
-
- //if (isReReading)
- //{
-
- // if ((_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && applyId != null) || (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer && applyId == null))
- // {
- // //有序
- // if (criterionConfig.IsReadingTaskViewInOrder)
- // {
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Return;
- // }
- // else
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Abandon;
- // }
- // //else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
- // //{
- // // influenceTask.OptType = ReReadingOrBackOptType.Abandon;
- // //}
- // //else
- // //{
- // // throw new BusinessValidationFailedException("IR 申请重阅,不会影响到后续未读的任务,当前影响列表有未读的任务,请核查");
- // //}
- // }
- // else
- // {
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Return;
- // }
- // else
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Abandon;
- // }
- // }
- // }
- // if (((_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM) && applyId != null) || (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && applyId == null))
- // {
- // //有序
- // if (criterionConfig.IsReadingTaskViewInOrder)
- // {
- // //申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配
- // if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != filterObj.VisitTaskNum)
- // {
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Return;
- // }
- // else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Abandon;
- // }
- // else
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.CancelAssign;
- // }
- // }
- // else
- // {
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Return;
- // }
- // else
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Abandon;
- // }
- // }
- // }
- // else
- // {
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Return;
- // }
- // else
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Abandon;
- // }
- // }
- // }
-
- //}
- ////PM退回
- //else
- //{
-
-
-
- // //有序
- // if (criterionConfig.IsReadingTaskViewInOrder)
- // {
- // //申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配
- // if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != filterObj.VisitTaskNum)
- // {
- // //后续访视处理访视
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Return;
- // }
- // else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Abandon;
- // }
- // else
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.CancelAssign;
- // }
- // }
- // else
- // {
- // //申请的访视 全局肿瘤学
-
- // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Return;
- // }
- // else
- // {
- // influenceTask.OptType = ReReadingOrBackOptType.Abandon;
- // }
- // }
- // }
- // //无序
- // else
- // {
- // //重阅重置或者失效
- // influenceTask.OptType = influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned ? ReReadingOrBackOptType.Return : ReReadingOrBackOptType.Abandon;
- // }
-
-
- //}
-
-
- #endregion
-
}
#endregion
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
index 25bf021ee..9b76956a4 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
@@ -50,6 +50,10 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
{
public Guid Id { get;set; }
public Guid SubjectId { get; set; }
+
+ public Guid SiteId { get; set; }
+ public Guid? SubjectVisitId { get; set; }
+
public String TrialSiteCode { get; set; } = String.Empty;
public string SubjectCode { get; set; } = String.Empty;
public string UserName { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs b/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
index 900ca913f..8ed74ac65 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
@@ -17,6 +17,8 @@ namespace IRaCIS.Core.Application.Service
{
CreateMap()
+ .ForMember(o => o.SubjectVisitId, t => t.MapFrom(u => u.SourceSubjectVisitId))
+ .ForMember(o => o.SiteId, t => t.MapFrom(u => u.Subject.SiteId))
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))