From 0cb2015aaefd7fcb7ffb47014a212c735ab377cc Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 25 Dec 2025 16:27:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=A4=E6=96=AD=E5=A4=9A?= =?UTF-8?q?=E5=B8=A7=E5=9B=BE=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/UploadDownLoadController.cs | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index 5f459ebce..4533649ff 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -1085,20 +1085,21 @@ namespace IRaCIS.Core.API.Controllers { #region 将多帧合并为一帧 - // 如果你是从 stream 打开 - var dicomFile = await DicomFile.OpenAsync(source); - - // 获取 Pixel Data 标签 - var pixelData = DicomPixelData.Create(dicomFile.Dataset); - - //获取像素是否为封装形式 - var syntax = dicomFile.Dataset.InternalTransferSyntax; + try { + // 如果你是从 stream 打开 + var dicomFile = await DicomFile.OpenAsync(source); + + //获取像素是否为封装形式 + var syntax = dicomFile.Dataset.InternalTransferSyntax; + //对于封装像素的文件做转换 if (syntax.IsEncapsulated) { + // 获取 Pixel Data 标签 + var pixelData = DicomPixelData.Create(dicomFile.Dataset); // 创建一个新的片段序列 var newFragments = new DicomOtherByteFragment(DicomTag.PixelData); @@ -1117,6 +1118,9 @@ namespace IRaCIS.Core.API.Controllers // 替换原有的片段序列 dicomFile.Dataset.AddOrUpdate(newFragments); } + + await dicomFile.SaveAsync(entryStream); + } catch (Exception ex) { @@ -1126,7 +1130,6 @@ namespace IRaCIS.Core.API.Controllers #endregion - await dicomFile.SaveAsync(entryStream); } else @@ -1984,24 +1987,23 @@ namespace IRaCIS.Core.API.Controllers await using var entryStream = entry.Open(); await using var source = await _oSSService.GetStreamFromOSSAsync(instance.Path); + if (instance.IsEncapsulated) { - #region 将多帧合并为一帧 - - // 如果你是从 stream 打开 - var dicomFile = await DicomFile.OpenAsync(source); - - // 获取 Pixel Data 标签 - var pixelData = DicomPixelData.Create(dicomFile.Dataset); - //获取像素是否为封装形式 - var syntax = dicomFile.Dataset.InternalTransferSyntax; - try { + // 如果你是从 stream 打开 + var dicomFile = await DicomFile.OpenAsync(source); + + //获取像素是否为封装形式 + var syntax = dicomFile.Dataset.InternalTransferSyntax; + //对于封装像素的文件做转换 if (syntax.IsEncapsulated) { + // 获取 Pixel Data 标签 + var pixelData = DicomPixelData.Create(dicomFile.Dataset); // 创建一个新的片段序列 var newFragments = new DicomOtherByteFragment(DicomTag.PixelData); @@ -2020,6 +2022,9 @@ namespace IRaCIS.Core.API.Controllers // 替换原有的片段序列 dicomFile.Dataset.AddOrUpdate(newFragments); } + + await dicomFile.SaveAsync(entryStream); + } catch (Exception ex) { @@ -2028,15 +2033,12 @@ namespace IRaCIS.Core.API.Controllers } #endregion - - await dicomFile.SaveAsync(entryStream); } else { await source.CopyToAsync(entryStream, 32 * 1024, abortToken); - } - // + } } catch (Exception ex) {