diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 1e53ba805..ace138aac 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -1130,7 +1130,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { public Guid OncologyTaskId { get; set; } - public Guid GlobalTaskId { get; set; } + public Guid RelatedTaskId { get; set; } public List OncologyQuestionList { get; set; } } @@ -1265,6 +1265,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid GlobalTaskId { get; set; } + public Guid RelatedTaskId { get; set; } + public Guid SubjectId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs index 863333e4e..2000770b2 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs @@ -56,10 +56,19 @@ namespace IRaCIS.Application.Services var relatedVisitTaskIdList = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.RelatedVisitTaskIdList).FirstNotNullAsync(); if (taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned && relatedVisitTaskIdList.Count() > 0) { - if (relatedVisitTaskIdList.Count() > 0) + var judgeResultTaskId = await _visitTaskRepository.Where(x => x.Id == relatedVisitTaskIdList[0]).Select(x => x.JudgeResultTaskId).FirstOrDefaultAsync(); + + // 说明是裁判 取裁判结果 + if (judgeResultTaskId != null) { - globalTaskInfo = await _visitTaskRepository.Where(x => x.Id == relatedVisitTaskIdList[0]).FirstNotNullAsync(); + globalTaskInfo = await _visitTaskRepository.Where(x =>x.Id== judgeResultTaskId).FirstNotNullAsync(); } + else + { + globalTaskInfo = await _visitTaskRepository.Where(x => x.Id == relatedVisitTaskIdList[0]).FirstNotNullAsync(); + } + + } else { @@ -83,7 +92,7 @@ namespace IRaCIS.Application.Services // 判断是否产生裁判 - if (globalTaskInfo.JudgeVisitTaskId == null) + if (globalTaskInfo!.JudgeVisitTaskId == null) { visitTask = globalTaskInfo; // 全局的关联访视 @@ -96,10 +105,11 @@ namespace IRaCIS.Application.Services { throw new BusinessValidationFailedException(_localizer["ReadingOncology_Abnormal"]); } - visitTask = await _visitTaskRepository.Where(x => x.Id == judgeResultTaskId).FirstOrDefaultAsync(); + visitTask = await _visitTaskRepository.Where(x => x.Id == judgeResultTaskId).FirstNotNullAsync(); visitTaskIdList= await _visitTaskRepository.Where(x => x.Id == judgeResultTaskId).Select(x=>x.RelatedVisitTaskIdList).FirstNotNullAsync(); } + result.RelatedTaskId = globalTaskInfo!.JudgeVisitTaskId ?? globalTaskInfo.Id; result.GlobalTaskId = visitTask.Id; result.SubjectId = visitTask.SubjectId; @@ -201,7 +211,7 @@ namespace IRaCIS.Application.Services await _readingOncologyTaskInfoRepository.AddRangeAsync(readingOncologies); var relatedVisitTaskIdList=new List(); - relatedVisitTaskIdList.Add(inDto.GlobalTaskId); + relatedVisitTaskIdList.Add(inDto.RelatedTaskId); var relatedVisitTaskIds = JsonConvert.SerializeObject(relatedVisitTaskIdList);