修改回退流程代码
parent
14c2a9393f
commit
15b24f27b5
|
@ -12,6 +12,7 @@ using IRaCIS.Core.Domain.Share;
|
||||||
using IRaCIS.Core.Infrastructure;
|
using IRaCIS.Core.Infrastructure;
|
||||||
using IRaCIS.Core.Application.Contracts;
|
using IRaCIS.Core.Application.Contracts;
|
||||||
using IRaCIS.Core.Infra.EFCore.Common;
|
using IRaCIS.Core.Infra.EFCore.Common;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Service
|
namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
|
@ -1222,77 +1223,11 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////产生的新任务
|
|
||||||
|
|
||||||
//await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand()
|
|
||||||
//{
|
|
||||||
// TrialId = trialId,
|
|
||||||
|
|
||||||
// ReadingCategory = ReadingCategory.ReReading,
|
|
||||||
|
|
||||||
// ReReadingTask = origenalTask,
|
|
||||||
|
|
||||||
// //同步才可以
|
|
||||||
// Action = (newTask) =>
|
|
||||||
// {
|
|
||||||
|
|
||||||
// visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
|
|
||||||
|
|
||||||
|
|
||||||
// if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
|
|
||||||
// {
|
|
||||||
|
|
||||||
// if (visitTaskReReadingAppply.IsCopyOrigenalForms)
|
|
||||||
// {
|
|
||||||
// var origenalAnswerList = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
|
|
||||||
|
|
||||||
// origenalAnswerList.ForEach(t => { t.VisitTaskId = newTask.Id; t.Id = Guid.Empty; });
|
|
||||||
|
|
||||||
// _readingTaskQuestionAnswerRepository.AddRangeAsync(origenalAnswerList).Wait();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// //IR申请 PM同意 立即分配
|
|
||||||
// if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
|
|
||||||
// {
|
|
||||||
// //有序阅片
|
|
||||||
// if (trialConfig.IsReadingTaskViewInOrder)
|
|
||||||
// {
|
|
||||||
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// //无序阅片
|
|
||||||
|
|
||||||
// newTask.DoctorUserId = origenalTask.DoctorUserId;
|
|
||||||
// newTask.TaskAllocationState = TaskAllocationState.Allocated;
|
|
||||||
// newTask.AllocateTime = DateTime.Now;
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//});
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
await _visitTaskRepository.SaveChangesAsync();
|
await _visitTaskRepository.SaveChangesAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return ResponseOutput.Ok();
|
return ResponseOutput.Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1309,39 +1244,77 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
|
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
|
||||||
{
|
{
|
||||||
|
var task = (await _visitTaskRepository.FirstOrDefaultAsync(t => t.Id == taskId)).IfNullThrowException();
|
||||||
|
|
||||||
|
//申请的任务 肯定是未完成阅片的 并且是访视类型的
|
||||||
|
if (task.ReadingTaskState != ReadingTaskState.HaveSigned && task.ReadingCategory == ReadingCategory.Visit)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#region 有序 无序公用流程
|
||||||
|
|
||||||
|
// 当前任务标为失效
|
||||||
|
task.TaskState = TaskState.Adbandon;
|
||||||
|
|
||||||
|
//执行类似一致性核查回退流程 回退访视到影像上传流程
|
||||||
|
await VisitBackAsync(task.SourceSubjectVisitId);
|
||||||
|
|
||||||
|
|
||||||
|
//考虑该访视 另外一个阅片人的任务
|
||||||
|
var otherReviewerTask = await _visitTaskRepository.FirstOrDefaultAsync(t => t.SourceSubjectVisitId == task.SourceSubjectVisitId && t.Id != task.Id && t.TaskState == TaskState.Effect);
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
//有序
|
//有序
|
||||||
if (trialConfig.IsReadingTaskViewInOrder)
|
if (trialConfig.IsReadingTaskViewInOrder)
|
||||||
{
|
{
|
||||||
|
//本身自己 有序 PM 申请回退流程
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (otherReviewerTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
{
|
||||||
|
//另外阅片人完成阅片了 就设置为重阅重置
|
||||||
|
otherReviewerTask.TaskState = TaskState.HaveReturned;
|
||||||
|
|
||||||
|
|
||||||
|
//另外一个阅片人 有序PM 申请重阅流程
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
otherReviewerTask.TaskState = TaskState.Adbandon;
|
||||||
|
|
||||||
|
|
||||||
|
//另外一个阅片人 有序 PM 申请回退流程
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//无序 无序阅片没有 全局 肿瘤学
|
//无序 无序阅片没有 全局 肿瘤学
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 当前任务标为失效,后续任务不处理
|
if (otherReviewerTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
|
||||||
var task = (await _visitTaskRepository.FirstOrDefaultAsync(t => t.Id == taskId)).IfNullThrowException();
|
|
||||||
task.TaskState = TaskState.Adbandon;
|
|
||||||
|
|
||||||
|
|
||||||
//考虑该访视 另外一个阅片人的任务也同时退回
|
|
||||||
var otherTask = await _visitTaskRepository.FirstOrDefaultAsync(t => t.SourceSubjectVisitId == task.SourceSubjectVisitId && t.Id != task.Id && t.TaskState == TaskState.Effect);
|
|
||||||
|
|
||||||
if (otherTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
{
|
{
|
||||||
otherTask.TaskState = TaskState.HaveReturned;
|
//另外阅片人完成阅片了 就设置为重阅重置
|
||||||
|
otherReviewerTask.TaskState = TaskState.HaveReturned;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
otherTask.TaskState = TaskState.Adbandon;
|
|
||||||
|
otherReviewerTask.TaskState = TaskState.Adbandon;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//回退访视
|
|
||||||
if (task.ReadingCategory == ReadingCategory.Visit)
|
|
||||||
{
|
|
||||||
//执行类似一致性核查回退流程
|
|
||||||
await VisitBackAsync(task.SourceSubjectVisitId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await _visitTaskRepository.SaveChangesAsync();
|
await _visitTaskRepository.SaveChangesAsync();
|
||||||
|
@ -1395,7 +1368,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 重阅影响提示列表
|
/// 重阅影响提示列表 仅仅针对已完成的任务申请
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="taskId"></param>
|
/// <param name="taskId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
@ -1407,8 +1380,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
var trialConfig = (await _trialRepository.Where(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.IsReadingTaskViewInOrder, t.ReadingType }).FirstOrDefaultAsync()).IfNullThrowException();
|
var trialConfig = (await _trialRepository.Where(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.IsReadingTaskViewInOrder, t.ReadingType }).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
|
|
||||||
|
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId && t.TaskState == TaskState.Effect;
|
||||||
|
|
||||||
List<VisitTaskSimpleView> list = null;
|
|
||||||
|
|
||||||
//有序
|
//有序
|
||||||
if (trialConfig.IsReadingTaskViewInOrder)
|
if (trialConfig.IsReadingTaskViewInOrder)
|
||||||
|
@ -1416,23 +1389,13 @@ namespace IRaCIS.Core.Application.Service
|
||||||
//当前任务及其之后的所有访视任务、全局任务、裁判任务、肿瘤学阅片任务
|
//当前任务及其之后的所有访视任务、全局任务、裁判任务、肿瘤学阅片任务
|
||||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
|
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
|
||||||
{
|
{
|
||||||
list = await _visitTaskRepository.Where(t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId)
|
filterExpression = filterExpression.And(t => t.VisitTaskNum >= filterObj.VisitTaskNum && t.DoctorUserId == filterObj.DoctorUserId);
|
||||||
.Where(t => t.TaskState == TaskState.Effect && !t.IsAnalysisCreate)
|
|
||||||
//过滤区别
|
|
||||||
.Where(t => t.VisitTaskNum >= filterObj.VisitTaskNum && t.DoctorUserId==filterObj.DoctorUserId)
|
|
||||||
|
|
||||||
.ProjectTo<VisitTaskSimpleView>(_mapper.ConfigurationProvider).ToListAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//影响所有阅片人
|
//影响所有阅片人
|
||||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
|
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
|
||||||
{
|
{
|
||||||
list = await _visitTaskRepository.Where(t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId)
|
filterExpression = filterExpression.And(t => t.VisitTaskNum >= filterObj.VisitTaskNum);
|
||||||
.Where(t => t.TaskState == TaskState.Effect && !t.IsAnalysisCreate)
|
|
||||||
//过滤区别
|
|
||||||
.Where(t => t.VisitTaskNum >= filterObj.VisitTaskNum )
|
|
||||||
|
|
||||||
.ProjectTo<VisitTaskSimpleView>(_mapper.ConfigurationProvider).ToListAsync();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//无序
|
//无序
|
||||||
|
@ -1442,15 +1405,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
//2.影响当前阅片人的任务
|
//2.影响当前阅片人的任务
|
||||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
|
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
|
||||||
{
|
{
|
||||||
|
filterExpression = filterExpression.And(t => t.Id == filterObj.Id || t.Id == filterObj.JudgeVisitTaskId);
|
||||||
list = await _visitTaskRepository.Where(t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId )
|
|
||||||
.Where(t => t.TaskState == TaskState.Effect && !t.IsAnalysisCreate)
|
|
||||||
//过滤区别
|
|
||||||
.Where (t=> t.Id==filterObj.Id || t.Id ==filterObj.JudgeVisitTaskId)
|
|
||||||
|
|
||||||
.ProjectTo<VisitTaskSimpleView>(_mapper.ConfigurationProvider).ToListAsync();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1.当前任务及裁判任务
|
// 1.当前任务及裁判任务
|
||||||
|
@ -1459,14 +1414,11 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
var judegTaskNum = filterObj.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Judge];
|
var judegTaskNum = filterObj.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Judge];
|
||||||
|
|
||||||
list = await _visitTaskRepository.Where(t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId)
|
filterExpression = filterExpression.And(t => t.VisitTaskNum == filterObj.VisitTaskNum || t.VisitTaskNum == judegTaskNum);
|
||||||
.Where(t => t.TaskState == TaskState.Effect && !t.IsAnalysisCreate)
|
}
|
||||||
//过滤区别
|
}
|
||||||
.Where(t => t.VisitTaskNum==filterObj.VisitTaskNum || t.VisitTaskNum== judegTaskNum)
|
|
||||||
|
|
||||||
.ProjectTo<VisitTaskSimpleView>(_mapper.ConfigurationProvider).ToListAsync();
|
var list = await _visitTaskRepository.Where(filterExpression).ProjectTo<VisitTaskSimpleView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue