设置重阅
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
69f5b54919
commit
517c799e00
|
@ -1518,14 +1518,23 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
|
|
||||||
if (!isSPMjoin && IsPMOrAPm())
|
if (!isSPMjoin && IsPMOrAPm())
|
||||||
{
|
{
|
||||||
var requestRecordList = await _visitTaskReReadingRepository.Where(t => applyReReadingCommand.TaskIdList.Contains(t.OriginalReReadingTaskId) && t.RequestReReadingUserId == _userInfo.UserRoleId).ToListAsync();
|
//var requestRecordList = await _visitTaskReReadingRepository.Where(t => applyReReadingCommand.TaskIdList.Contains(t.OriginalReReadingTaskId) && t.RequestReReadingUserId == _userInfo.UserRoleId).ToListAsync();
|
||||||
|
|
||||||
await ConfirmReReading(new ConfirmReReadingCommand()
|
//await ConfirmReReading(new ConfirmReReadingCommand()
|
||||||
|
//{
|
||||||
|
// TrialId = trialId,
|
||||||
|
// RequestReReadingResultEnum = RequestReReadingResult.Agree,
|
||||||
|
// ConfirmReReadingList = requestRecordList.Select(t => new ConfirmReReadingDTO() { Id = t.Id, OriginalReReadingTaskId = t.OriginalReReadingTaskId }).ToList()
|
||||||
|
//});
|
||||||
|
|
||||||
|
//不想看到申请记录
|
||||||
|
|
||||||
|
foreach (var item in applyReReadingCommand.TaskIdList)
|
||||||
{
|
{
|
||||||
TrialId = trialId,
|
await AgreeReReading(item, RequestReReadingType.TrialGroupApply, null);
|
||||||
RequestReReadingResultEnum = RequestReReadingResult.Agree,
|
|
||||||
ConfirmReReadingList = requestRecordList.Select(t => new ConfirmReReadingDTO() { Id = t.Id, OriginalReReadingTaskId = t.OriginalReReadingTaskId }).ToList()
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -1536,26 +1545,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 重阅原任务跟踪处理
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="origenalTask"></param>
|
|
||||||
/// <param name="agreeReReadingCommand"></param>
|
|
||||||
/// <exception cref="BusinessValidationFailedException"></exception>
|
|
||||||
private void ReReadingTaskTrackingDeal(VisitTask origenalTask, ConfirmReReadingCommand agreeReReadingCommand)
|
|
||||||
{
|
|
||||||
if (origenalTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed || origenalTask.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed)
|
|
||||||
{
|
|
||||||
origenalTask.ReReadingApplyState = agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject;
|
|
||||||
origenalTask.TaskState = agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? TaskState.HaveReturned : origenalTask.TaskState;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//---当前重阅任务状态不为已申请状态,不允许进行处理,请刷新页面
|
|
||||||
throw new BusinessValidationFailedException(_localizer["VisitTask_InvalidReapplyStatus"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task SetMedicalReviewInvalidAsync(List<VisitTask> influenceTaskList, bool isPMApply = true)
|
private async Task SetMedicalReviewInvalidAsync(List<VisitTask> influenceTaskList, bool isPMApply = true)
|
||||||
{
|
{
|
||||||
|
@ -1629,9 +1619,6 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
throw new BusinessValidationFailedException(_localizer["VisitTask_ReapplyStatusConflict"]);
|
throw new BusinessValidationFailedException(_localizer["VisitTask_ReapplyStatusConflict"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var criterionConfig = await _trialReadingCriterionRepository.Where(x => x.Id == origenalTask.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.CriterionType, x.IsAdditionalAssessment, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync();
|
|
||||||
|
|
||||||
//更新申请信息
|
//更新申请信息
|
||||||
var visitTaskReReadingAppply = await _visitTaskReReadingRepository.FirstOrDefaultAsync(t => t.Id == item.Id);
|
var visitTaskReReadingAppply = await _visitTaskReReadingRepository.FirstOrDefaultAsync(t => t.Id == item.Id);
|
||||||
visitTaskReReadingAppply.RequestReReadingConfirmUserId = _userInfo.UserRoleId;
|
visitTaskReReadingAppply.RequestReReadingConfirmUserId = _userInfo.UserRoleId;
|
||||||
|
@ -1639,6 +1626,72 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
visitTaskReReadingAppply.RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason;
|
visitTaskReReadingAppply.RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree)
|
||||||
|
{
|
||||||
|
|
||||||
|
await AgreeReReading(origenalTask.Id, visitTaskReReadingAppply.RequestReReadingType, visitTaskReReadingAppply);
|
||||||
|
|
||||||
|
//找到跟踪的实体
|
||||||
|
var influenceTask = await _visitTaskRepository.FindAsync(origenalTask.Id);
|
||||||
|
|
||||||
|
if (origenalTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed || origenalTask.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed)
|
||||||
|
{
|
||||||
|
influenceTask.ReReadingApplyState = agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject;
|
||||||
|
influenceTask.TaskState = agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? TaskState.HaveReturned : origenalTask.TaskState;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//---当前重阅任务状态不为已申请状态,不允许进行处理,请刷新页面
|
||||||
|
throw new BusinessValidationFailedException(_localizer["VisitTask_InvalidReapplyStatus"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Reject)
|
||||||
|
{
|
||||||
|
if (origenalTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed || origenalTask.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed)
|
||||||
|
{
|
||||||
|
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == origenalTask.Id, u => new VisitTask()
|
||||||
|
{
|
||||||
|
ReReadingApplyState = ReReadingApplyState.Reject
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//---当前重阅任务状态不为已申请状态,不允许进行处理,请刷新页面
|
||||||
|
throw new BusinessValidationFailedException(_localizer["VisitTask_InvalidReapplyStatus"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
await _visitTaskRepository.SaveChangesAsync();
|
||||||
|
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task AgreeReReading(Guid visiTaskId, RequestReReadingType requestReReadingType, VisitTaskReReading? visitTaskReReadingAppply = null)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
var origenalTask = (await _visitTaskRepository.Where(t => t.Id == visiTaskId).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
|
var trialId = origenalTask.TrialId;
|
||||||
|
|
||||||
|
|
||||||
|
var criterionConfig = await _trialReadingCriterionRepository.Where(x => x.Id == origenalTask.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.CriterionType, x.IsAdditionalAssessment, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
|
||||||
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == origenalTask.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.TaskAllocationState == TaskAllocationState.Allocated;
|
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == origenalTask.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.TaskAllocationState == TaskAllocationState.Allocated;
|
||||||
|
|
||||||
//是否是一致性分析任务 正常申请 会影响一致性分析任务
|
//是否是一致性分析任务 正常申请 会影响一致性分析任务
|
||||||
|
@ -1653,7 +1706,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment)
|
if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment)
|
||||||
{
|
{
|
||||||
// PM申请 SPM / CPM审批
|
// PM申请 SPM / CPM审批
|
||||||
if (visitTaskReReadingAppply.RequestReReadingType == RequestReReadingType.TrialGroupApply)
|
if (requestReReadingType == RequestReReadingType.TrialGroupApply)
|
||||||
{
|
{
|
||||||
filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB);
|
filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB);
|
||||||
}
|
}
|
||||||
|
@ -1681,11 +1734,8 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId);
|
filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree)
|
|
||||||
{
|
|
||||||
//PM申请 SPM / CPM审批 回退访视,因此这里不生成访视任务 影响多个标准的任务
|
//PM申请 SPM / CPM审批 回退访视,因此这里不生成访视任务 影响多个标准的任务
|
||||||
if (visitTaskReReadingAppply.RequestReReadingType == RequestReReadingType.TrialGroupApply)
|
if (requestReReadingType == RequestReReadingType.TrialGroupApply)
|
||||||
{
|
{
|
||||||
|
|
||||||
// 不管有序 无序 都会 回退访视
|
// 不管有序 无序 都会 回退访视
|
||||||
|
@ -1723,7 +1773,6 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
//处理申请的任务
|
//处理申请的任务
|
||||||
if (influenceTask.Id == origenalTask.Id)
|
if (influenceTask.Id == origenalTask.Id)
|
||||||
{
|
{
|
||||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
|
||||||
|
|
||||||
await InfluenceAddtioncalEvaluationCritrionAsync(origenalTask, influenceTaskList.Where(t => t.Id != origenalTask.Id).Where(t => t.SourceSubjectVisitId != null).Select(t => t.SourceSubjectVisitId!.Value).Distinct().ToList());
|
await InfluenceAddtioncalEvaluationCritrionAsync(origenalTask, influenceTaskList.Where(t => t.Id != origenalTask.Id).Where(t => t.SourceSubjectVisitId != null).Select(t => t.SourceSubjectVisitId!.Value).Distinct().ToList());
|
||||||
|
|
||||||
|
@ -1773,7 +1822,6 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
//处理申请的任务
|
//处理申请的任务
|
||||||
if (influenceTask.Id == origenalTask.Id)
|
if (influenceTask.Id == origenalTask.Id)
|
||||||
{
|
{
|
||||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
|
||||||
|
|
||||||
|
|
||||||
await PMReReadingConfirmOrBackInfluenceAnalysisAsync(origenalTask.SubjectId);
|
await PMReReadingConfirmOrBackInfluenceAnalysisAsync(origenalTask.SubjectId);
|
||||||
|
@ -1805,7 +1853,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
|
|
||||||
}
|
}
|
||||||
//IR申请 PM 审批 注意这里有一致性分析的申请同意 不会回退访视,在此要生成影响的访视任务
|
//IR申请 PM 审批 注意这里有一致性分析的申请同意 不会回退访视,在此要生成影响的访视任务
|
||||||
else if (visitTaskReReadingAppply.RequestReReadingType == RequestReReadingType.DocotorApply && (IsPMOrAPm() || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.AIR))
|
else if (requestReReadingType == RequestReReadingType.DocotorApply && (IsPMOrAPm() || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.AIR))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
@ -1924,7 +1972,6 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
//处理申请的任务
|
//处理申请的任务
|
||||||
if (influenceTask.Id == origenalTask.Id)
|
if (influenceTask.Id == origenalTask.Id)
|
||||||
{
|
{
|
||||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
|
||||||
|
|
||||||
|
|
||||||
await SetMedicalReviewInvalidAsync(influenceTaskList, false);
|
await SetMedicalReviewInvalidAsync(influenceTaskList, false);
|
||||||
|
@ -1991,8 +2038,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
//同步才可以
|
//同步才可以
|
||||||
Action = (newTask) =>
|
Action = (newTask) =>
|
||||||
{
|
{
|
||||||
//申请表 设置新任务Id
|
|
||||||
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
|
|
||||||
|
|
||||||
//生成的任务分配给原始医生
|
//生成的任务分配给原始医生
|
||||||
newTask.DoctorUserId = origenalTask.DoctorUserId;
|
newTask.DoctorUserId = origenalTask.DoctorUserId;
|
||||||
|
@ -2000,6 +2046,11 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
newTask.AllocateTime = DateTime.Now;
|
newTask.AllocateTime = DateTime.Now;
|
||||||
newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget);
|
newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget);
|
||||||
|
|
||||||
|
if (visitTaskReReadingAppply != null)
|
||||||
|
{
|
||||||
|
//申请表 设置新任务Id
|
||||||
|
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
|
||||||
|
|
||||||
//拷贝原始表单
|
//拷贝原始表单
|
||||||
if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id)
|
if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id)
|
||||||
{
|
{
|
||||||
|
@ -2021,6 +2072,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2056,7 +2108,6 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
//申请原任务处理
|
//申请原任务处理
|
||||||
if (influenceTask.Id == origenalTask.Id)
|
if (influenceTask.Id == origenalTask.Id)
|
||||||
{
|
{
|
||||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
|
||||||
|
|
||||||
await SetMedicalReviewInvalidAsync(influenceTaskList, false);
|
await SetMedicalReviewInvalidAsync(influenceTaskList, false);
|
||||||
|
|
||||||
|
@ -2093,8 +2144,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
//同步才可以
|
//同步才可以
|
||||||
Action = (newTask) =>
|
Action = (newTask) =>
|
||||||
{
|
{
|
||||||
//申请表 设置新任务Id
|
|
||||||
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
|
|
||||||
|
|
||||||
////生成的任务分配给原始医生
|
////生成的任务分配给原始医生
|
||||||
newTask.DoctorUserId = origenalTask.DoctorUserId;
|
newTask.DoctorUserId = origenalTask.DoctorUserId;
|
||||||
|
@ -2105,6 +2155,10 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
|
|
||||||
//裁判任务 需要进行特殊处理 在重阅逻辑里面处理
|
//裁判任务 需要进行特殊处理 在重阅逻辑里面处理
|
||||||
|
|
||||||
|
if (visitTaskReReadingAppply != null)
|
||||||
|
{
|
||||||
|
//申请表 设置新任务Id
|
||||||
|
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
|
||||||
|
|
||||||
if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id)
|
if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id)
|
||||||
{
|
{
|
||||||
|
@ -2125,8 +2179,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2143,42 +2196,6 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
//---不符合 PM申请 SPM / CPM审批 | IR申请 PM 审批
|
//---不符合 PM申请 SPM / CPM审批 | IR申请 PM 审批
|
||||||
throw new BusinessValidationFailedException(_localizer["VisitTask_ReReadTaskAlreadyAffected"]);
|
throw new BusinessValidationFailedException(_localizer["VisitTask_ReReadTaskAlreadyAffected"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
else if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Reject)
|
|
||||||
{
|
|
||||||
if (origenalTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed || origenalTask.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed)
|
|
||||||
{
|
|
||||||
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == origenalTask.Id, u => new VisitTask()
|
|
||||||
{
|
|
||||||
ReReadingApplyState = ReReadingApplyState.Reject
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//---当前重阅任务状态不为已申请状态,不允许进行处理,请刷新页面
|
|
||||||
throw new BusinessValidationFailedException(_localizer["VisitTask_InvalidReapplyStatus"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
await _visitTaskRepository.SaveChangesAsync();
|
|
||||||
|
|
||||||
return ResponseOutput.Ok();
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task AgreeReReading(Guid visiTaskId, RequestReReadingType requestReReadingType)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CopyForms(VisitTask newTask, VisitTask origenalTask)
|
private void CopyForms(VisitTask newTask, VisitTask origenalTask)
|
||||||
|
|
Loading…
Reference in New Issue