From cd9769b39c6f519427fbf058a616db731e5703c4 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Tue, 30 Dec 2025 10:19:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96Series=E4=BF=A1=E6=81=AF=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ImageAndDoc/_MapConfig.cs | 3 ++ .../Service/Visit/SubjectVisitService.cs | 51 +++++++++++++------ 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs index 4b271380f..f74509831 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs @@ -92,6 +92,9 @@ namespace IRaCIS.Core.Application.Service CreateMap() .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.SubjectVisit.Subject.Code)) .ForMember(o => o.VisitName, t => t.MapFrom(u => u.SubjectVisit.VisitName)); + CreateMap() + .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.SubjectVisit.Subject.Code)) + .ForMember(o => o.VisitName, t => t.MapFrom(u => u.SubjectVisit.VisitName)); CreateMap(); diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index 268b171e5..bdddf04e0 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -28,6 +28,8 @@ namespace IRaCIS.Core.Application.Services IRepository _subjectRepository, IRepository _dicomInstanceRepository, IRepository _taskStudyRepository, + IRepository _taskSeriesRepository, + IRepository _taskInstanceRepository, IServiceProvider _serviceProvider, IRepository _dicomSeriesRepository, IRepository _trialReadingCriterionRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ISubjectVisitService @@ -337,29 +339,48 @@ namespace IRaCIS.Core.Application.Services [HttpPost] public async Task GetDicomSeriesInfo(GetDicomSeriesInfoInDto inDto) { - DicomSeriesDTO series = await _dicomSeriesRepository.Where(s => s.Id == inDto.SeriesId).ProjectTo(_mapper.ConfigurationProvider).FirstNotNullAsync(); + DicomSeriesDTO? series = await _dicomSeriesRepository.Where(s => s.Id == inDto.SeriesId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync(); - var instanceList = await _dicomInstanceRepository.Where(t => t.SeriesId == inDto.SeriesId) - .Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.SliceLocation, t.FileSize }).ToListAsync(); + if (series != null) + { + var instanceList = await _dicomInstanceRepository.Where(t => t.SeriesId == inDto.SeriesId) + .Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.SliceLocation, t.FileSize }).ToListAsync(); - series.InstanceInfoList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => - new InstanceBasicInfo() - { - Id = k.Id, - NumberOfFrames = k.NumberOfFrames, - HtmlPath = k.HtmlPath, - Path = k.Path, - InstanceNumber = k.InstanceNumber, - FileSize = k.FileSize + series.InstanceInfoList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => + new InstanceBasicInfo() + { + Id = k.Id, + NumberOfFrames = k.NumberOfFrames, + HtmlPath = k.HtmlPath, + Path = k.Path, + InstanceNumber = k.InstanceNumber, + FileSize = k.FileSize - }).ToList(); + }).ToList(); + } + else + { + series = await _taskSeriesRepository .Where(s => s.Id == inDto.SeriesId).ProjectTo(_mapper.ConfigurationProvider).FirstNotNullAsync(); + + var instanceList = await _taskInstanceRepository.Where(t => t.SeriesId == inDto.SeriesId) + .Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.SliceLocation, t.FileSize }).ToListAsync(); - //series.WindowWidth = instanceList.FirstOrDefault()!.WindowWidth; - //series.WindowCenter = instanceList.FirstOrDefault()!.WindowCenter; + series.InstanceInfoList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => + new InstanceBasicInfo() + { + Id = k.Id, + NumberOfFrames = k.NumberOfFrames, + HtmlPath = k.HtmlPath, + Path = k.Path, + InstanceNumber = k.InstanceNumber, + FileSize = k.FileSize + + }).ToList(); + } return series; }