diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/PatientViewModel.cs b/IRaCIS.Core.Application/Service/Visit/DTO/PatientViewModel.cs index be8e4026e..b7a6cb81b 100644 --- a/IRaCIS.Core.Application/Service/Visit/DTO/PatientViewModel.cs +++ b/IRaCIS.Core.Application/Service/Visit/DTO/PatientViewModel.cs @@ -1,4 +1,5 @@ -using IRaCIS.Core.Application.ViewModel; +using IRaCIS.Core.Application.Contracts.Dicom.DTO; +using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure.Extention; using Newtonsoft.Json; @@ -1035,9 +1036,7 @@ namespace IRaCIS.Application.Contracts public bool IsDeleted { get; set; } public bool IsReading { get; set; } = true; - public List InstanceList { get; set; } = new List(); - - public List InstancePathList { get; set; } = new List(); + public List InstanceInfoList { get; set; } = new List(); public string ImageResizePath { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs index 46a38dbd0..1c2bdcf03 100644 --- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs +++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs @@ -703,36 +703,22 @@ namespace IRaCIS.Application.Services ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - var idList = await _instanceRepository.Where(s => s.StudyId == scpStudyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber) + 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 item in seriesList) + foreach (var series in seriesList) { - item.InstanceList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Id).ToList(); + 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, - //处理多帧 - item.InstancePathList = idList.Where(s => s.SeriesId == item.Id).OrderBy(t => t.InstanceNumber) - .SelectMany(u => - { - - if (u.NumberOfFrames > 1) - { - var pathList = new List(); - - for (int i = 1; i <= u.NumberOfFrames; i++) - { - pathList.Add(u.Path + "?frame=" + (i - 1)); - } - return pathList; - } - else - { - return new List { u.Path }; - - } - }) - .ToList(); + }).ToList(); } @@ -2757,7 +2743,7 @@ namespace IRaCIS.Application.Services SubjectVisitId = subjectVisitId, DownloadStartTime = DateTime.Now, ImageCount = result.StudyList.Sum(s => s.SeriesList.Sum(s => s.InstanceList.Count())), - ImageSize = result.StudyList.Sum(t => t.SeriesList.Sum(s => s.InstanceList.Sum(i => i.FileSize)))?? 0 + ImageSize = result.StudyList.Sum(t => t.SeriesList.Sum(s => s.InstanceList.Sum(i => i.FileSize))) ?? 0 }; await _subejctVisitDownloadRepository.AddAsync(preDownloadInfo, true);