重阅生成任务
parent
4227002816
commit
156e9df954
|
@ -1439,7 +1439,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
visitTaskReReadingAppply.RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason;
|
visitTaskReReadingAppply.RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason;
|
||||||
|
|
||||||
|
|
||||||
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == origenalTask.SubjectId && t.TaskState == TaskState.Effect && 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;
|
||||||
|
|
||||||
//是否是一致性分析任务 正常申请 会影响一致性分析任务
|
//是否是一致性分析任务 正常申请 会影响一致性分析任务
|
||||||
filterExpression = filterExpression.And(t => t.IsAnalysisCreate == origenalTask.IsAnalysisCreate);
|
filterExpression = filterExpression.And(t => t.IsAnalysisCreate == origenalTask.IsAnalysisCreate);
|
||||||
|
@ -2001,6 +2001,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
return ResponseOutput.NotOk("一致性分析的任务,不允许设置退回");
|
return ResponseOutput.NotOk("一致性分析的任务,不允许设置退回");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == task.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.TaskAllocationState == TaskAllocationState.Allocated;
|
||||||
//PM 才允许操作
|
//PM 才允许操作
|
||||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
|
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
|
||||||
{
|
{
|
||||||
|
@ -2019,7 +2020,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
if (criterionConfig.IsReadingTaskViewInOrder)
|
if (criterionConfig.IsReadingTaskViewInOrder)
|
||||||
{
|
{
|
||||||
|
|
||||||
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == task.SubjectId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.TaskAllocationState == TaskAllocationState.Allocated;
|
//Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == task.SubjectId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.TaskAllocationState == TaskAllocationState.Allocated;
|
||||||
|
filterExpression = filterExpression.And(t => t.IsAnalysisCreate == false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//另一个阅片人的任务根据任务进度自动进入PM退回或PM申请重阅
|
//另一个阅片人的任务根据任务进度自动进入PM退回或PM申请重阅
|
||||||
|
@ -2230,7 +2233,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
|
|
||||||
// 申请该访视的任务 申请人失效 另外一个人重阅重置或者失效
|
// 申请该访视的任务 申请人失效 另外一个人重阅重置或者失效
|
||||||
|
|
||||||
var currentVisitList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == task.SourceSubjectVisitId && t.ReadingCategory == ReadingCategory.Visit && t.TaskState == TaskState.Effect && t.VisitTaskNum == task.VisitTaskNum, true).ToListAsync();
|
var currentVisitList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == task.SourceSubjectVisitId && t.ReadingCategory == ReadingCategory.Visit && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.VisitTaskNum == task.VisitTaskNum, true).ToListAsync();
|
||||||
|
|
||||||
await SetMedicalReviewInvalidAsync(currentVisitList);
|
await SetMedicalReviewInvalidAsync(currentVisitList);
|
||||||
|
|
||||||
|
@ -2389,7 +2392,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
|
|
||||||
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == filterObj.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
|
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == filterObj.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
|
|
||||||
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId && t.TaskState == TaskState.Effect && t.TaskAllocationState == TaskAllocationState.Allocated;
|
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId && (t.TaskState == TaskState.Effect||t.TaskState==TaskState.Freeze) && t.TaskAllocationState == TaskAllocationState.Allocated;
|
||||||
|
|
||||||
//是否是一致性分析任务 (一致性分析的任务 不会产生裁判 肿瘤学 仅仅有生成的访视和全局)
|
//是否是一致性分析任务 (一致性分析的任务 不会产生裁判 肿瘤学 仅仅有生成的访视和全局)
|
||||||
|
|
||||||
|
|
|
@ -43,11 +43,12 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
private readonly IVisitTaskHelpeService _IVisitTaskHelpeService;
|
private readonly IVisitTaskHelpeService _IVisitTaskHelpeService;
|
||||||
private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository;
|
private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository;
|
||||||
|
private readonly IRepository<VisitTaskReReading> _visitTaskReReadingRepository;
|
||||||
|
|
||||||
public SubjectCriteriaEvaluationService(IRepository<SubjectCriteriaEvaluation> subjectCriteriaEvaluationRepository, IRepository<Subject> subjectRepository,
|
public SubjectCriteriaEvaluationService(IRepository<SubjectCriteriaEvaluation> subjectCriteriaEvaluationRepository, IRepository<Subject> subjectRepository,
|
||||||
IRepository<SubjectCriteriaEvaluationVisitFilter> subjectCriteriaEvaluationVisitFilterRepository, IRepository<SubjectVisit> subjectVisitRepository,
|
IRepository<SubjectCriteriaEvaluationVisitFilter> subjectCriteriaEvaluationVisitFilterRepository, IRepository<SubjectVisit> subjectVisitRepository,
|
||||||
IRepository<SubjectCriteriaEvaluationVisitStudyFilter> subjectCriteriaEvaluationVisitStudyFilterRepository,
|
IRepository<SubjectCriteriaEvaluationVisitStudyFilter> subjectCriteriaEvaluationVisitStudyFilterRepository,
|
||||||
IRepository<ReadingQuestionCriterionTrial> trialReadingCriterionRepository, IVisitTaskHelpeService IVisitTaskHelpeService, IRepository<ReadingQuestionTrial> trialReadingQuestionRepository, IRepository<VisitTask> visitTaskRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository)
|
IRepository<ReadingQuestionCriterionTrial> trialReadingCriterionRepository, IVisitTaskHelpeService IVisitTaskHelpeService, IRepository<ReadingQuestionTrial> trialReadingQuestionRepository, IRepository<VisitTask> visitTaskRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<VisitTaskReReading> visitTaskReReadingRepository)
|
||||||
{
|
{
|
||||||
_subjectCriteriaEvaluationRepository = subjectCriteriaEvaluationRepository;
|
_subjectCriteriaEvaluationRepository = subjectCriteriaEvaluationRepository;
|
||||||
_subjectRepository = subjectRepository;
|
_subjectRepository = subjectRepository;
|
||||||
|
@ -61,6 +62,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
_trialReadingQuestionRepository = trialReadingQuestionRepository;
|
_trialReadingQuestionRepository = trialReadingQuestionRepository;
|
||||||
_visitTaskRepository = visitTaskRepository;
|
_visitTaskRepository = visitTaskRepository;
|
||||||
_taskMedicalReviewRepository = taskMedicalReviewRepository;
|
_taskMedicalReviewRepository = taskMedicalReviewRepository;
|
||||||
|
_visitTaskReReadingRepository = visitTaskReReadingRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -581,15 +583,26 @@ namespace IRaCIS.Core.Application.Service
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
|
|
||||||
public async Task<List<InfluenceTaskInfo>> GetCriteriaVisitBackInfluenceTaskList(CriteriaVisitBackCommand command)
|
public async Task<(List<InfluenceTaskInfo>, object)> GetCriteriaVisitBackInfluenceTaskList(CriteriaVisitBackCommand command)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var isIRAppyTaskInfluenced = false;
|
||||||
|
|
||||||
var filterExpression = await GetTaskExpressionAsync(command);
|
var filterExpression = await GetTaskExpressionAsync(command);
|
||||||
|
|
||||||
|
var subjectVisit = await _subjectVisitRepository.FindAsync(command.SubjectVisitId);
|
||||||
|
|
||||||
|
if (await _visitTaskReReadingRepository.AnyAsync(t => t.RequestReReadingType == RequestReReadingType.DocotorApply && t.RequestReReadingResultEnum == RequestReReadingResult.Default &&
|
||||||
|
t.OriginalReReadingTask.VisitTaskNum >= subjectVisit.VisitNum && t.OriginalReReadingTask.SubjectId == subjectVisit.SubjectId && t.OriginalReReadingTask.TrialReadingCriterionId == command.TrialReadingCriterionId))
|
||||||
|
{
|
||||||
|
isIRAppyTaskInfluenced = true;
|
||||||
|
}
|
||||||
|
|
||||||
var list = await _visitTaskRepository.Where(filterExpression)
|
var list = await _visitTaskRepository.Where(filterExpression)
|
||||||
|
|
||||||
.OrderBy(t => t.VisitTaskNum).ProjectTo<InfluenceTaskInfo>(_mapper.ConfigurationProvider).ToListAsync();
|
.OrderBy(t => t.VisitTaskNum).ProjectTo<InfluenceTaskInfo>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
|
||||||
return list;
|
return (list, new { IsIRAppyTaskInfluenced = isIRAppyTaskInfluenced });
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<Expression<Func<VisitTask, bool>>> GetTaskExpressionAsync(CriteriaVisitBackCommand command)
|
private async Task<Expression<Func<VisitTask, bool>>> GetTaskExpressionAsync(CriteriaVisitBackCommand command)
|
||||||
|
@ -622,12 +635,21 @@ namespace IRaCIS.Core.Application.Service
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task ConfirmBackCriteriaVisitTask(CriteriaVisitBackCommand command)
|
public async Task ConfirmBackCriteriaVisitTask(CriteriaVisitBackCommand command)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var filterExpression = await GetTaskExpressionAsync(command);
|
var filterExpression = await GetTaskExpressionAsync(command);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var influenceTaskList = await _visitTaskRepository.Where(filterExpression, true).ToListAsync();
|
var influenceTaskList = await _visitTaskRepository.Where(filterExpression, true).ToListAsync();
|
||||||
|
|
||||||
var subjectVisit = await _subjectVisitRepository.FindAsync(command.SubjectVisitId);
|
var subjectVisit = await _subjectVisitRepository.FindAsync(command.SubjectVisitId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach (var influenceTask in influenceTaskList)
|
foreach (var influenceTask in influenceTaskList)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue