diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs index 5b3886fee..8e41acc53 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs @@ -90,6 +90,7 @@ namespace IRaCIS.Core.Application.Service .ForMember(o => o.IsReading, t => t.MapFrom(u => u.DicomSerie.IsReading)); CreateMap(); CreateMap(); + CreateMap(); diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs index 471d97fe5..dce64507d 100644 --- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs +++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs @@ -69,6 +69,43 @@ namespace IRaCIS.Application.Services } + + public async Task>> GetPatientSeriesList(Guid scpStudyId, + [FromServices] IRepository _seriesRepository, + [FromServices] IRepository _instanceRepository + ) + { + + var seriesList = await _seriesRepository.Where(s => s.StudyId == scpStudyId).OrderBy(s => s.SeriesNumber). + ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime) + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + var instanceList = await _instanceRepository.Where(s => s.StudyId == scpStudyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber) + .ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime) + .Select(t => new { t.SeriesId, t.Id, t.Path, t.NumberOfFrames, t.InstanceNumber }).ToListAsync();//.GroupBy(u => u.SeriesId); + + foreach (var series in seriesList) + { + + series.InstanceInfoList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => + new InstanceBasicInfo() + { + Id = k.Id, + NumberOfFrames = k.NumberOfFrames, + //HtmlPath = string.Empty, + Path = k.Path, + InstanceNumber = k.InstanceNumber, + + }).ToList(); + } + + var study = await _scpStudyRepository.FindAsync(scpStudyId); + + return ResponseOutput.Ok(seriesList, study); + } + + + /// /// scp 影像推送记录表 ///