diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index c66972069..8975d9c7e 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -292,6 +292,66 @@ namespace IRaCIS.Application.Services #region 阅片页面 关联信息查询 以及基本验证 + /// + /// 根据任务ID获取ReadingTool + /// + /// + /// + [HttpPost] + public async Task GetReadingTool(GetReadingToolInDto indto) + { + var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync(); + GetReadingToolOutDto result = new GetReadingToolOutDto(); + result.ReadingTool = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == visitTaskInfo.TrialReadingCriterionId).Select(x => x.ReadingTool).FirstOrDefaultAsync(); + return result; + } + + /// + /// 获取关联的阅片任务 + /// + /// + /// + [HttpPost] + public async Task<(List, object)> GetRelatedVisitTask(GetRelatedVisitTaskInDto inDto) + { + var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); + + if (taskInfo.TaskState != TaskState.Effect) + { + throw new BusinessValidationFailedException($"当前任务已失效!"); + } + var baselineVisitId = await _subjectVisitRepository.Where(x => x.SubjectId == taskInfo.SubjectId && x.IsBaseLine && !x.IsLostVisit).Select(x => x.Id).FirstNotNullAsync(); + var result = await _visitTaskRepository.Where(x => + (x.TrialId == taskInfo.TrialId && + x.SubjectId == taskInfo.SubjectId && + x.ArmEnum == taskInfo.ArmEnum && + x.DoctorUserId == taskInfo.DoctorUserId && + x.ReadingTaskState == ReadingTaskState.HaveSigned && + x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && + x.TaskState == TaskState.Effect && + x.IsAnalysisCreate == taskInfo.IsAnalysisCreate && + x.ReadingCategory == ReadingCategory.Visit) || x.Id == inDto.VisitTaskId) + .Select(x => new GetRelatedVisitTaskOutDto() + { + TaskBlindName = x.TaskBlindName, + TaskName = x.TaskName, + ReadingTaskState = x.ReadingTaskState, + VisitId = x.SourceSubjectVisitId, + VisitTaskId = x.Id, + VisitTaskNum = x.VisitTaskNum, + IsBaseLineTask = x.SourceSubjectVisitId == baselineVisitId, + IsCurrentTask = x.Id == inDto.VisitTaskId, + + }).OrderBy(x => x.VisitTaskNum).ToListAsync(); + + + + return (result, new + { + ReadingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync() + }); + } + /// /// 获取既往任务名称和编号 /// @@ -373,22 +433,23 @@ namespace IRaCIS.Application.Services - - /// - /// 根据任务ID获取ReadingTool + /// 验证任务是否签名 /// - /// + /// /// - [HttpPost] - public async Task GetReadingTool(GetReadingToolInDto indto) + /// + private async Task VerifyTaskIsSign(Guid visitTaskid) { - var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync(); - GetReadingToolOutDto result = new GetReadingToolOutDto(); - result.ReadingTool = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == visitTaskInfo.TrialReadingCriterionId).Select(x => x.ReadingTool).FirstOrDefaultAsync(); - return result; + if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.ReadingTaskState == ReadingTaskState.HaveSigned)) + { + throw new BusinessValidationFailedException($"当前任务已经签名!"); + + } } + + #endregion @@ -938,51 +999,7 @@ namespace IRaCIS.Application.Services } - /// - /// 获取关联的阅片任务 - /// - /// - /// - [HttpPost] - public async Task<(List, object)> GetRelatedVisitTask(GetRelatedVisitTaskInDto inDto) - { - var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); - if (taskInfo.TaskState != TaskState.Effect) - { - throw new BusinessValidationFailedException($"当前任务已失效!"); - } - var baselineVisitId = await _subjectVisitRepository.Where(x => x.SubjectId == taskInfo.SubjectId && x.IsBaseLine && !x.IsLostVisit).Select(x => x.Id).FirstNotNullAsync(); - var result = await _visitTaskRepository.Where(x => - (x.TrialId == taskInfo.TrialId && - x.SubjectId == taskInfo.SubjectId && - x.ArmEnum == taskInfo.ArmEnum && - x.DoctorUserId == taskInfo.DoctorUserId && - x.ReadingTaskState == ReadingTaskState.HaveSigned && - x.TrialReadingCriterionId== taskInfo.TrialReadingCriterionId&& - x.TaskState == TaskState.Effect && - x.IsAnalysisCreate == taskInfo.IsAnalysisCreate && - x.ReadingCategory == ReadingCategory.Visit) || x.Id == inDto.VisitTaskId) - .Select(x => new GetRelatedVisitTaskOutDto() - { - TaskBlindName = x.TaskBlindName, - TaskName = x.TaskName, - ReadingTaskState=x.ReadingTaskState, - VisitId = x.SourceSubjectVisitId, - VisitTaskId = x.Id, - VisitTaskNum = x.VisitTaskNum, - IsBaseLineTask= x.SourceSubjectVisitId== baselineVisitId, - IsCurrentTask = x.Id == inDto.VisitTaskId, - - }).OrderBy(x => x.VisitTaskNum).ToListAsync(); - - - - return (result, new - { - ReadingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync() - }); - } #endregion @@ -1634,64 +1651,5 @@ namespace IRaCIS.Application.Services - - - - - - - - #region 阅片任务 签名验证 - - /// - /// 验证任务是否签名 - /// - /// - /// - /// - private async Task VerifyTaskIsSign(Guid visitTaskid) - { - if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.ReadingTaskState == ReadingTaskState.HaveSigned)) - { - throw new BusinessValidationFailedException($"当前任务已经签名!"); - - } - } - #endregion - - - - #region 废弃 - - - /// - /// 完成阅片修改状态 - /// - /// - private async Task FinishReadUpdateState(Guid visitTaskId) - { - //var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync(); - //if (!await _visitTaskRepository.AnyAsync(x => x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && x.SouceReadModuleId == taskInfo.SouceReadModuleId && x.ReadingTaskState != ReadingTaskState.HaveSigned)) - //{ - // if (taskInfo.SouceReadModuleId != null) - // { - // await _readModuleRepository.UpdatePartialFromQueryAsync(taskInfo.SouceReadModuleId.Value, x => new ReadModule - // { - // ReadingStatus = ReadingStatusEnum.ReadCompleted - // }); - // } - // else if (taskInfo.SourceSubjectVisitId != null) - // { - // await _subjectVisitRepository.UpdatePartialFromQueryAsync(taskInfo.SourceSubjectVisitId.Value, x => new SubjectVisit - // { - // ReadingStatus = ReadingStatusEnum.ReadCompleted - // }); - // } - // await _subjectVisitRepository.SaveChangesAsync(); - //} - } - - #endregion - } }