设置重阅
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())
|
||||
{
|
||||
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,
|
||||
RequestReReadingResultEnum = RequestReReadingResult.Agree,
|
||||
ConfirmReReadingList = requestRecordList.Select(t => new ConfirmReReadingDTO() { Id = t.Id, OriginalReReadingTaskId = t.OriginalReReadingTaskId }).ToList()
|
||||
});
|
||||
await AgreeReReading(item, RequestReReadingType.TrialGroupApply, null);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#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)
|
||||
{
|
||||
|
@ -1629,9 +1619,6 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
|||
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);
|
||||
visitTaskReReadingAppply.RequestReReadingConfirmUserId = _userInfo.UserRoleId;
|
||||
|
@ -1639,6 +1626,72 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
|||
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;
|
||||
|
||||
//是否是一致性分析任务 正常申请 会影响一致性分析任务
|
||||
|
@ -1653,7 +1706,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
|||
if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment)
|
||||
{
|
||||
// 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);
|
||||
}
|
||||
|
@ -1681,11 +1734,8 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
|||
filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId);
|
||||
}
|
||||
|
||||
|
||||
if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree)
|
||||
{
|
||||
//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)
|
||||
{
|
||||
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());
|
||||
|
||||
|
@ -1773,7 +1822,6 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
|||
//处理申请的任务
|
||||
if (influenceTask.Id == origenalTask.Id)
|
||||
{
|
||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
||||
|
||||
|
||||
await PMReReadingConfirmOrBackInfluenceAnalysisAsync(origenalTask.SubjectId);
|
||||
|
@ -1805,7 +1853,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
|||
|
||||
}
|
||||
//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)
|
||||
{
|
||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
||||
|
||||
|
||||
await SetMedicalReviewInvalidAsync(influenceTaskList, false);
|
||||
|
@ -1991,8 +2038,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
|||
//同步才可以
|
||||
Action = (newTask) =>
|
||||
{
|
||||
//申请表 设置新任务Id
|
||||
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
|
||||
|
||||
|
||||
//生成的任务分配给原始医生
|
||||
newTask.DoctorUserId = origenalTask.DoctorUserId;
|
||||
|
@ -2000,6 +2046,11 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
|||
newTask.AllocateTime = DateTime.Now;
|
||||
newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget);
|
||||
|
||||
if (visitTaskReReadingAppply != null)
|
||||
{
|
||||
//申请表 设置新任务Id
|
||||
visitTaskReReadingAppply.NewReReadingTaskId = newTask.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)
|
||||
{
|
||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
||||
|
||||
await SetMedicalReviewInvalidAsync(influenceTaskList, false);
|
||||
|
||||
|
@ -2093,8 +2144,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
|||
//同步才可以
|
||||
Action = (newTask) =>
|
||||
{
|
||||
//申请表 设置新任务Id
|
||||
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
|
||||
|
||||
|
||||
////生成的任务分配给原始医生
|
||||
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)
|
||||
{
|
||||
|
@ -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 审批
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue