diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 67b56b21e..6da8f4684 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -438,7 +438,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { public Guid VisitTaskId { get; set; } - public string? OtherPicturePath { get; set; } + public string? PicturePath { get; set; } public string TaskBlindName { get; set; } = string.Empty; @@ -447,7 +447,14 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class GetPreviousOtherPicturePathInDto { - public Guid RowId { get; set; } + public Guid? RowId { get; set; } + + public Guid? VisitTaskId { get; set; } + + /// + /// 问题类型 + /// + public QuestionType? QuestionType { get; set; } } public class GetReadingCalculationDataInDto diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index cb630ae1d..1a2206d05 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -177,17 +177,37 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task> GetPreviousOtherPicturePath(GetPreviousOtherPicturePathInDto inDto) { - var rowinfo = await _readingTableAnswerRowInfoRepository.Where(x => x.Id == inDto.RowId).FirstNotNullAsync(); - var taskInfoList = await _generalCalculateService.GetReadingReportTaskList(rowinfo.VisitTaskId); - var visitTaskIds = taskInfoList.Select(x => x.VisitTaskId).ToList(); - List result = await _readingTableAnswerRowInfoRepository.Where(x => x.QuestionId == rowinfo.QuestionId && x.RowIndex == rowinfo.RowIndex && visitTaskIds.Contains(x.VisitTaskId)) - .Where(x=>x.OtherPicturePath!=null&&x.OtherPicturePath!=string.Empty) - .OrderBy(x => x.VisitTask.VisitTaskNum).Select(x => new GetPreviousOtherPicturePathOutDto() - { - VisitTaskId = x.VisitTaskId, - OtherPicturePath = x.OtherPicturePath, - TaskBlindName = x.VisitTask.TaskBlindName - }).ToListAsync(); + List result = new List() { }; + + if (inDto.RowId != null) + { + var rowinfo = await _readingTableAnswerRowInfoRepository.Where(x => x.Id == inDto.RowId).FirstNotNullAsync(); + var taskInfoList = await _generalCalculateService.GetReadingReportTaskList(rowinfo.VisitTaskId); + var visitTaskIds = taskInfoList.Select(x => x.VisitTaskId).ToList(); + result = await _readingTableAnswerRowInfoRepository.Where(x => x.QuestionId == rowinfo.QuestionId && x.RowIndex == rowinfo.RowIndex && visitTaskIds.Contains(x.VisitTaskId)) + + .OrderBy(x => x.VisitTask.VisitTaskNum).Select(x => new GetPreviousOtherPicturePathOutDto() + { + VisitTaskId = x.VisitTaskId, + PicturePath = x.OtherPicturePath, + TaskBlindName = x.VisitTask.TaskBlindName + }).ToListAsync(); + } + else if(inDto.VisitTaskId!=null&&inDto.QuestionType!=null) + { + var taskInfoList = await _generalCalculateService.GetReadingReportTaskList(inDto.VisitTaskId.Value); + var visitTaskIds = taskInfoList.Select(x => x.VisitTaskId).ToList(); + result = await _readingTaskQuestionMarkRepository.Where(x => x.ReadingQuestionTrial.QuestionType == inDto.QuestionType && visitTaskIds.Contains(x.VisitTaskId)) + + .OrderBy(x => x.VisitTask.VisitTaskNum).Select(x => new GetPreviousOtherPicturePathOutDto() + { + VisitTaskId = x.VisitTaskId, + PicturePath = x.PicturePath, + TaskBlindName = x.VisitTask.TaskBlindName + }).ToListAsync(); + } + + return result; } diff --git a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionMark.cs b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionMark.cs index 5704b3298..17ced3c74 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionMark.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionMark.cs @@ -106,8 +106,14 @@ namespace IRaCIS.Core.Domain.Models public int? OtherNumberOfFrames { get; set; } public string? OtherMeasureData { get; set; } = string.Empty; + [JsonIgnore] + [ForeignKey("QuestionId")] + public ReadingQuestionTrial ReadingQuestionTrial { get; set; } - } + [JsonIgnore] + [ForeignKey("VisitTaskId")] + public VisitTask VisitTask { get; set; } + } }