修改判断多帧图像
continuous-integration/drone/push Build is passing Details

Test_HIR_Net8
hang 2025-12-25 16:27:56 +08:00
parent 7b5b7e4ffa
commit 0cb2015aae
1 changed files with 25 additions and 23 deletions

View File

@ -1085,20 +1085,21 @@ namespace IRaCIS.Core.API.Controllers
{ {
#region 将多帧合并为一帧 #region 将多帧合并为一帧
try
{
// 如果你是从 stream 打开 // 如果你是从 stream 打开
var dicomFile = await DicomFile.OpenAsync(source); var dicomFile = await DicomFile.OpenAsync(source);
// 获取 Pixel Data 标签
var pixelData = DicomPixelData.Create(dicomFile.Dataset);
//获取像素是否为封装形式 //获取像素是否为封装形式
var syntax = dicomFile.Dataset.InternalTransferSyntax; var syntax = dicomFile.Dataset.InternalTransferSyntax;
try
{
//对于封装像素的文件做转换 //对于封装像素的文件做转换
if (syntax.IsEncapsulated) if (syntax.IsEncapsulated)
{ {
// 获取 Pixel Data 标签
var pixelData = DicomPixelData.Create(dicomFile.Dataset);
// 创建一个新的片段序列 // 创建一个新的片段序列
var newFragments = new DicomOtherByteFragment(DicomTag.PixelData); var newFragments = new DicomOtherByteFragment(DicomTag.PixelData);
@ -1117,6 +1118,9 @@ namespace IRaCIS.Core.API.Controllers
// 替换原有的片段序列 // 替换原有的片段序列
dicomFile.Dataset.AddOrUpdate(newFragments); dicomFile.Dataset.AddOrUpdate(newFragments);
} }
await dicomFile.SaveAsync(entryStream);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -1126,7 +1130,6 @@ namespace IRaCIS.Core.API.Controllers
#endregion #endregion
await dicomFile.SaveAsync(entryStream);
} }
else else
@ -1984,24 +1987,23 @@ namespace IRaCIS.Core.API.Controllers
await using var entryStream = entry.Open(); await using var entryStream = entry.Open();
await using var source = await _oSSService.GetStreamFromOSSAsync(instance.Path); await using var source = await _oSSService.GetStreamFromOSSAsync(instance.Path);
if (instance.IsEncapsulated) if (instance.IsEncapsulated)
{ {
#region 将多帧合并为一帧 #region 将多帧合并为一帧
try
{
// 如果你是从 stream 打开 // 如果你是从 stream 打开
var dicomFile = await DicomFile.OpenAsync(source); var dicomFile = await DicomFile.OpenAsync(source);
// 获取 Pixel Data 标签
var pixelData = DicomPixelData.Create(dicomFile.Dataset);
//获取像素是否为封装形式 //获取像素是否为封装形式
var syntax = dicomFile.Dataset.InternalTransferSyntax; var syntax = dicomFile.Dataset.InternalTransferSyntax;
try
{
//对于封装像素的文件做转换 //对于封装像素的文件做转换
if (syntax.IsEncapsulated) if (syntax.IsEncapsulated)
{ {
// 获取 Pixel Data 标签
var pixelData = DicomPixelData.Create(dicomFile.Dataset);
// 创建一个新的片段序列 // 创建一个新的片段序列
var newFragments = new DicomOtherByteFragment(DicomTag.PixelData); var newFragments = new DicomOtherByteFragment(DicomTag.PixelData);
@ -2020,6 +2022,9 @@ namespace IRaCIS.Core.API.Controllers
// 替换原有的片段序列 // 替换原有的片段序列
dicomFile.Dataset.AddOrUpdate(newFragments); dicomFile.Dataset.AddOrUpdate(newFragments);
} }
await dicomFile.SaveAsync(entryStream);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -2028,15 +2033,12 @@ namespace IRaCIS.Core.API.Controllers
} }
#endregion #endregion
await dicomFile.SaveAsync(entryStream);
} }
else else
{ {
await source.CopyToAsync(entryStream, 32 * 1024, abortToken); await source.CopyToAsync(entryStream, 32 * 1024, abortToken);
}
// }
} }
catch (Exception ex) catch (Exception ex)
{ {