Merge branch '中心影像_Test环境' of http://192.168.1.2:8033/IRaCIS_Core_Api into 中心影像_Test环境
commit
0bde983ae9
|
@ -847,46 +847,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
|
||||
{
|
||||
if (criterionConfig.IsAutoCreate == false)
|
||||
{
|
||||
//---手动生成任务的不允许PM 申请影像重阅
|
||||
return ResponseOutput.NotOk(_localizer["VisitTask_NoPMRecheck"]);
|
||||
}
|
||||
|
||||
if (task.IsAnalysisCreate)
|
||||
{
|
||||
//---PM 不允许对一致性分析任务进行申请重阅
|
||||
throw new BusinessValidationFailedException(_localizer["VisitTask_Reapply"]);
|
||||
}
|
||||
|
||||
if (task.ReadingCategory != ReadingCategory.Visit)
|
||||
{
|
||||
//---PM 仅仅允许对访视类型的任务申请重阅
|
||||
throw new BusinessValidationFailedException(_localizer["VisitTask_ConsistencyAnalysis"]);
|
||||
}
|
||||
|
||||
|
||||
// 有序 一个受试者访视重阅未处理完,不能申请其他的
|
||||
if (criterionConfig.IsReadingTaskViewInOrder)
|
||||
{
|
||||
if (await _visitTaskReReadingRepository.AnyAsync(t => t.OriginalReReadingTask.TrialId == task.TrialId && t.OriginalReReadingTask.SubjectId == task.SubjectId && t.OriginalReReadingTask.TaskState == TaskState.Effect
|
||||
&& t.OriginalReReadingTask.TrialReadingCriterionId == task.TrialReadingCriterionId
|
||||
&& t.OriginalReReadingTask.ReadingTaskState == ReadingTaskState.HaveSigned && t.RequestReReadingType == RequestReReadingType.TrialGroupApply && t.RequestReReadingResultEnum == RequestReReadingResult.Default))
|
||||
{
|
||||
//---当前为有序阅片,该受试者已有访视已申请重阅还未处理(项目组申请),暂不能继续申请重阅
|
||||
return ResponseOutput.NotOk(_localizer["VisitTask_VisitTypeRestriction"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
task.ReReadingApplyState = ReReadingApplyState.TrialGroupHaveApplyed;
|
||||
|
||||
|
||||
}
|
||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI)
|
||||
{
|
||||
task.ReReadingApplyState = ReReadingApplyState.DocotorHaveApplyed;
|
||||
|
@ -896,58 +856,13 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
{
|
||||
// 针对同一个subject 不同阅片人 针对同一个访视申请重阅,是允许的,所以同一阅片人,针对同一suject 有访视申请重阅还未处理,不允许申请重阅
|
||||
if (await _visitTaskReReadingRepository.AnyAsync(t => t.OriginalReReadingTask.TrialId == task.TrialId && t.OriginalReReadingTask.SubjectId == task.SubjectId && t.OriginalReReadingTask.TaskState == TaskState.Effect
|
||||
&& t.OriginalReReadingTask.TrialReadingCriterionId == task.TrialReadingCriterionId && t.OriginalReReadingTask.DoctorUserId == task.DoctorUserId
|
||||
&& t.OriginalReReadingTask.TrialReadingCriterionId == task.TrialReadingCriterionId
|
||||
&& t.OriginalReReadingTask.ReadingTaskState == ReadingTaskState.HaveSigned && t.RequestReReadingType == RequestReReadingType.DocotorApply && t.RequestReReadingResultEnum == RequestReReadingResult.Default))
|
||||
{
|
||||
//---当前为有序阅片,该受试者已有访视已申请重阅还未处理,暂不能继续申请重阅
|
||||
throw new BusinessValidationFailedException(_localizer["VisitTask_SequentialReading"]);
|
||||
}
|
||||
|
||||
|
||||
//在PM 的申请重阅的影响列表里也不能申请重阅
|
||||
|
||||
var pmApply = await _visitTaskReReadingRepository.Where(t => t.OriginalReReadingTask.TrialId == task.TrialId && t.OriginalReReadingTask.SubjectId == task.SubjectId && t.OriginalReReadingTask.TaskState == TaskState.Effect && t.OriginalReReadingTask.ReadingCategory == ReadingCategory.Visit
|
||||
&& t.OriginalReReadingTask.ReadingTaskState == ReadingTaskState.HaveSigned && t.RequestReReadingType == RequestReReadingType.TrialGroupApply && t.RequestReReadingResultEnum == RequestReReadingResult.Default).Include(t => t.OriginalReReadingTask).FirstOrDefaultAsync();
|
||||
|
||||
if (pmApply != null)
|
||||
{
|
||||
var originalTask = pmApply.OriginalReReadingTask;
|
||||
|
||||
//PM 有序影响列表
|
||||
if (await _visitTaskRepository.Where(t => t.TrialId == originalTask.TrialId && t.SubjectId == originalTask.SubjectId && t.TaskState == TaskState.Effect /*&& t.TaskAllocationState == TaskAllocationState.Allocated*/ && t.IsAnalysisCreate == false && t.TrialReadingCriterionId == originalTask.TrialReadingCriterionId && t.VisitTaskNum >= originalTask.VisitTaskNum)
|
||||
.AnyAsync(t => t.VisitTaskNum == task.VisitTaskNum))
|
||||
{
|
||||
//---当前为有序阅片,影像存在问题,项目组已申请回退,暂不能申请重阅
|
||||
throw new BusinessValidationFailedException(_localizer["VisitTask_ImageProblem"]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == task.TrialId && t.SubjectId == task.SubjectId && t.TaskState == TaskState.Effect && t.TrialReadingCriterionId == task.TrialReadingCriterionId
|
||||
&& t.DoctorUserId == task.DoctorUserId && t.IsAnalysisCreate == false && t.VisitTaskNum > task.VisitTaskNum;
|
||||
|
||||
|
||||
|
||||
if (task.ReadingCategory == ReadingCategory.Global && await _visitTaskRepository.AnyAsync(filterExpression.And(t => t.ReadingCategory == ReadingCategory.Global)))
|
||||
{
|
||||
//---有序阅片,只允许申请该受试者阅片人最后一次完成全局任务重阅
|
||||
throw new BusinessValidationFailedException(_localizer["VisitTask_LastReading"]);
|
||||
}
|
||||
|
||||
if (task.ReadingCategory == ReadingCategory.Oncology && await _visitTaskRepository.AnyAsync(filterExpression.And(t => t.ReadingCategory == ReadingCategory.Oncology)))
|
||||
{
|
||||
//---有序阅片,只允许申请该受试者阅片人最后一次完成肿瘤学任务重阅
|
||||
throw new BusinessValidationFailedException(_localizer["VisitTask_LastOncologistRecheck"]);
|
||||
}
|
||||
|
||||
if (task.ReadingCategory == ReadingCategory.Judge && await _visitTaskRepository.AnyAsync(filterExpression.And(t => t.ReadingCategory == ReadingCategory.Judge)))
|
||||
{
|
||||
//---有序阅片,只允许申请该受试者阅片人最后一次完成裁判的任务重阅
|
||||
throw new BusinessValidationFailedException(_localizer["VisitTask_LastAdjudicatorRecheck"]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1252,7 +1167,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
|
||||
|
||||
//生成的任务分配给原始医生
|
||||
newTask.DoctorUserId = origenalTask.DoctorUserId;
|
||||
newTask.TaskAllocationState = TaskAllocationState.Allocated;
|
||||
newTask.AllocateTime = DateTime.Now;
|
||||
newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget);
|
||||
|
@ -1373,9 +1287,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
//申请表 设置新任务Id
|
||||
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
|
||||
|
||||
////生成的任务分配给原始医生
|
||||
newTask.DoctorUserId = origenalTask.DoctorUserId;
|
||||
newTask.TaskAllocationState = TaskAllocationState.Allocated;
|
||||
|
||||
newTask.AllocateTime = DateTime.Now;
|
||||
newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget);
|
||||
|
||||
|
|
Loading…
Reference in New Issue