AIR 增加接口
parent
8b3b69fbb8
commit
674cd139ea
|
@ -1274,7 +1274,7 @@
|
|||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.SelfDefineCalculateService.AddTaskLesionAnswerFromLastTask(IRaCIS.Core.Application.ViewModel.AddTaskLesionAnswerFromLastTaskInDto)">
|
||||
<summary>
|
||||
将上一次的病灶信息添加到这一次
|
||||
将上一次的访视病灶添加到这一次
|
||||
</summary>
|
||||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
|
|
|
@ -688,6 +688,20 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
}
|
||||
|
||||
|
||||
|
||||
public class AIRReReadingCommand
|
||||
{
|
||||
[NotDefault]
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
[NotDefault]
|
||||
public Guid SubjectId { get; set; }
|
||||
|
||||
[NotDefault]
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class ApplyReReadingCommand
|
||||
{
|
||||
|
||||
|
|
|
@ -1044,6 +1044,36 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
|
||||
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
public async Task<IResponseOutput> AIRReReading(AIRReReadingCommand command, [FromServices] IVisitTaskHelpeService _visitTaskCommonService)
|
||||
{
|
||||
var task= await _visitTaskRepository.Where(t => t.TrialId == command.TrialId && t.SubjectId == command.SubjectId && t.TrialReadingCriterionId == command.TrialReadingCriterionId
|
||||
&& t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Visit && t.SourceSubjectVisit.IsBaseLine == true && t.DoctorUserId == _userInfo.Id).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
if (task == null)
|
||||
{
|
||||
return ResponseOutput.NotOk("基线任务未阅完,不允许重阅基线任务");
|
||||
}
|
||||
|
||||
await ApplyReReading(new ApplyReReadingCommand() { IsCopyFollowForms = false, IsCopyOrigenalForms = false, TaskIdList = new List<Guid>() { task.Id }, TrialId = command.TrialId, RequestReReadingReason = "AIR自动重阅基线", RequestReReadingType = RequestReReadingType.DocotorApply });
|
||||
|
||||
|
||||
var requestRecord = await _visitTaskReReadingRepository.Where(t => t.OriginalReReadingTaskId == task.Id && t.RequestReReadingUserId == _userInfo.Id && t.RequestReReadingReason == "AIR自动重阅基线").OrderByDescending(t => t.CreateTime).FirstOrDefaultAsync();
|
||||
|
||||
await ConfirmReReading(new ConfirmReReadingCommand()
|
||||
{
|
||||
TrialId = command.TrialId,
|
||||
RequestReReadingResultEnum = RequestReReadingResult.Agree,
|
||||
ConfirmReReadingList = new List<ConfirmReReadingDTO>() { new ConfirmReReadingDTO() { Id = requestRecord.Id, OriginalReReadingTaskId = task.Id } }
|
||||
}, _visitTaskCommonService);
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 申请重阅 1:IR 2:PM
|
||||
|
@ -1062,8 +1092,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
var trialReadingCriterionId = taskList.First()!.TrialReadingCriterionId;
|
||||
|
||||
//var trialConfig = (await _trialRepository.Where(t => t.Id == applyReReadingCommand.TrialId).Select(t => new { TrialId = t.Id, t.ReadingType, t.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == trialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
foreach (var task in taskList)
|
||||
|
@ -1197,7 +1225,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
RequestReReadingReason = applyReReadingCommand.RequestReReadingReason,
|
||||
RequestReReadingType = applyReReadingCommand.RequestReReadingType,
|
||||
|
||||
}); ;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
@ -1275,22 +1303,10 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
public async Task<IResponseOutput> ConfirmReReading(ConfirmReReadingCommand agreeReReadingCommand, [FromServices] IVisitTaskHelpeService _visitTaskCommonService)
|
||||
{
|
||||
|
||||
|
||||
var trialId = agreeReReadingCommand.TrialId;
|
||||
|
||||
//var trialConfig = (await _trialRepository.Where(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.IsReadingTaskViewInOrder, t.ReadingType }).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
|
||||
foreach (var item in agreeReReadingCommand.ConfirmReReadingList)
|
||||
{
|
||||
//var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id, true).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
////更新原始任务 当前任务处理
|
||||
//origenalTask.ReReadingApplyState = agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject;
|
||||
//origenalTask.TaskState = agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? TaskState.HaveReturned : origenalTask.TaskState;
|
||||
|
||||
|
||||
|
||||
|
||||
var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
|
@ -1304,7 +1320,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
var criterionConfig = await _trialReadingCriterionRepository.Where(x => x.Id == origenalTask.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
|
||||
//更新申请信息
|
||||
var visitTaskReReadingAppply = await _visitTaskReReadingRepository.FirstOrDefaultAsync(t => t.Id == item.Id);
|
||||
visitTaskReReadingAppply.RequestReReadingConfirmUserId = _userInfo.Id;
|
||||
|
@ -1312,22 +1327,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
visitTaskReReadingAppply.RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason;
|
||||
|
||||
|
||||
//// 当前访视之前 已有任务申请
|
||||
//if (trialConfig.IsReadingTaskViewInOrder)
|
||||
//{
|
||||
|
||||
// var query = _visitTaskReReadingRepository.Where(t => t.OriginalReReadingTask.SubjectId == origenalTask.SubjectId && t.OriginalReReadingTask.TaskState == TaskState.Effect && t.OriginalReReadingTask.ReadingCategory == ReadingCategory.Visit
|
||||
// && t.OriginalReReadingTask.ReadingTaskState == ReadingTaskState.HaveSigned && t.OriginalReReadingTask.VisitTaskNum > origenalTask.VisitTaskNum && t.RequestReReadingResultEnum == RequestReReadingResult.Default)
|
||||
// .Where(t => t.OriginalReReadingTask.IsAnalysisCreate == origenalTask.IsAnalysisCreate);
|
||||
|
||||
// if (await query.AnyAsync())
|
||||
// {
|
||||
// return ResponseOutput.NotOk("当前为有序阅片,当前访视之后,也申请了重阅 必须从后向前处理");
|
||||
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == origenalTask.SubjectId && t.TaskState == TaskState.Effect && t.TaskAllocationState == TaskAllocationState.Allocated;
|
||||
|
||||
//是否是一致性分析任务 正常申请 会影响一致性分析任务
|
||||
|
@ -1518,7 +1517,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
}
|
||||
//IR申请 PM 审批 注意这里有一致性分析的申请同意 不会回退访视,在此要生成影响的访视任务
|
||||
else if (visitTaskReReadingAppply.RequestReReadingType == RequestReReadingType.DocotorApply && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
|
||||
else if (visitTaskReReadingAppply.RequestReReadingType == RequestReReadingType.DocotorApply && (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager ||_userInfo.UserTypeEnumInt==(int)UserTypeEnum.AIR))
|
||||
{
|
||||
#region 两个IR 申请同一访视,其他人的申请记录也设置为同意
|
||||
|
||||
|
|
|
@ -55,9 +55,15 @@
|
|||
|
||||
CMM=19,
|
||||
|
||||
|
||||
AIR=21,
|
||||
|
||||
//医生用户类型暂不处理
|
||||
|
||||
ShareImage = 15,
|
||||
ShareImage = 125,
|
||||
|
||||
|
||||
|
||||
|
||||
Undefined=0
|
||||
|
||||
|
|
Loading…
Reference in New Issue