diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 1115daea4..97659e204 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -25,6 +25,18 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public int Index { get; set; } } + + public class GetNextTaskInDto + { + public Guid? SubjectId { get; set; } + + + public Guid TrialId { get; set; } + + + public Guid? VisistTaskId { get; set; } + } + public class GetReadingTaskDto { public Guid VisitTaskId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs index b1387f391..304d11dad 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs @@ -75,16 +75,16 @@ namespace IRaCIS.Application.Services /// /// 获取下一个阅片任务 /// - /// - /// + /// /// - private async Task GetNextTask(Guid? subjectId,Guid trialId,Guid? visistTaskId) + [HttpPost] + public async Task GetNextTask(GetNextTaskInDto inDto) { GetReadingTaskDto? task = new GetReadingTaskDto(); - if (visistTaskId != null) + if (inDto.VisistTaskId != null) { - task = await _visitTaskRepository.Where(x => x.Id==visistTaskId).Select(x => new GetReadingTaskDto() + task = await _visitTaskRepository.Where(x => x.Id== inDto.VisistTaskId).Select(x => new GetReadingTaskDto() { VisitTaskId = x.Id, TaskBlindName = x.TaskBlindName, @@ -96,9 +96,9 @@ namespace IRaCIS.Application.Services }).FirstOrDefaultAsync(); } - else if (subjectId != null) + else if (inDto.SubjectId != null) { - var subjectList =await _subjectRepository.Where(t => t.TrialId == trialId) + var subjectList =await _subjectRepository.Where(t => t.TrialId == inDto.TrialId) .Where(t => t.SubjectDoctorList.Any(t => t.DoctorUserId == _userInfo.Id)) .Select(s => new SubjectTask() { @@ -113,10 +113,10 @@ namespace IRaCIS.Application.Services }).ToList(); - var subjectIndex = subjectList.Where(x => x.SubjectId == subjectId).Select(x=>x.Index).FirstOrDefault(); + var subjectIndex = subjectList.Where(x => x.SubjectId == inDto.SubjectId).Select(x=>x.Index).FirstOrDefault(); var newSubjectId = subjectList.Where(x => x.Index >= subjectIndex && x.UnReadTaskCount != 0).Select(x=>x.SubjectId).FirstOrDefault(); - var taskquery = _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.SubjectId == newSubjectId && x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto() + var taskquery = _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.SubjectId == newSubjectId && x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto() { VisitTaskId = x.Id, TaskBlindName=x.TaskBlindName, @@ -130,13 +130,13 @@ namespace IRaCIS.Application.Services { throw new BusinessValidationFailedException("任务都已经完成"); } - task.SubjectId = subjectId.Value; + task.SubjectId = inDto.SubjectId.Value; } else { - task = await _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto() + task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto() { VisitTaskId = x.Id, TaskBlindName = x.TaskBlindName, @@ -163,12 +163,6 @@ namespace IRaCIS.Application.Services }); await _visitTaskRepository.SaveChangesAsync(); return task; - - - - - - } /// @@ -179,7 +173,11 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task<(List,object)> GetReadingImageFile(GetReadingImgInDto inDto) { - var task=await GetNextTask(inDto.SubjectId, inDto.TrialId,inDto.VisistTaskId); + var task=await GetNextTask( new GetNextTaskInDto() { + TrialId=inDto.TrialId, + SubjectId=inDto.SubjectId, + VisistTaskId=inDto.VisistTaskId, + }); List visitIds = new List(); if (task.ReadingCategory == ReadingCategory.Visit) {