奇怪的问题
continuous-integration/drone/push Build is passing Details

Test_HIR_Net8
hang 2025-12-23 22:24:09 +08:00
parent 37b942f0a6
commit 4240015056
1 changed files with 53 additions and 49 deletions

View File

@ -498,51 +498,22 @@ namespace IRaCIS.Core.SCP.Service
var newFragments = new DicomOtherByteFragment(DicomTag.PixelData);
var newDicomFile = dicomFile.Clone();
#region test
//var newDicomFile = dicomFile.Clone();
var newDataset = newDicomFile.Dataset;
//var newDataset = newDicomFile.Dataset;
var dstPd = DicomPixelData.Create(newDataset, true);
//var dstPd = DicomPixelData.Create(newDataset, true);
for (int i = 0; i < pixelData.NumberOfFrames; i++)
{
var frame = pixelData.GetFrame(i);
dstPd.AddFrame(frame);
var data = frame.Data;
int offset = 0;
while (offset < data.Length)
{
int size = Math.Min(fragmentSize, data.Length - offset);
var buffer = new byte[size];
Buffer.BlockCopy(data, offset, buffer, 0, size);
newFragments.Fragments.Add(new MemoryByteBuffer(buffer));
offset += size;
}
}
var newOffsetTable = newDataset.GetDicomItem<DicomOtherByteFragment>(DicomTag.PixelData).OffsetTable;
newFragments.OffsetTable.AddRange(newOffsetTable.ToArray());
#region 暂时废弃
//for (int n = 0; n < pixelData.NumberOfFrames; n++)
//for (int i = 0; i < pixelData.NumberOfFrames; i++)
//{
// var frameData = pixelData.GetFrame(n); // 获取完整一帧
// var data = frameData.Data;
// var frame = pixelData.GetFrame(i);
// dstPd.AddFrame(frame);
// var data = frame.Data;
// int offset = 0;
// bot.Add(botOffset);
// botOffset += (uint)data.Length + 8; // 累加帧长度
// while (offset < data.Length)
// {
// int size = Math.Min(fragmentSize, data.Length - offset);
@ -554,19 +525,52 @@ namespace IRaCIS.Core.SCP.Service
// offset += size;
// }
//}
////保留原始偏移表
//if (originOffsetTable.Count == pixelData.NumberOfFrames)
//{
// newFragments.OffsetTable.AddRange(originOffsetTable.ToArray());
//}
//else
//{
// newFragments.OffsetTable.AddRange(bot.ToArray());
//}
//var newOffsetTable = newDataset.GetDicomItem<DicomOtherByteFragment>(DicomTag.PixelData).OffsetTable;
//newFragments.OffsetTable.AddRange(newOffsetTable.ToArray());
#endregion
#region 暂时废弃
for (int n = 0; n < pixelData.NumberOfFrames; n++)
{
var frameData = pixelData.GetFrame(n); // 获取完整一帧
var data = frameData.Data;
int offset = 0;
bot.Add(botOffset);
botOffset += (uint)data.Length + 8; // 累加帧长度
while (offset < data.Length)
{
int size = Math.Min(fragmentSize, data.Length - offset);
var buffer = new byte[size];
Buffer.BlockCopy(data, offset, buffer, 0, size);
newFragments.Fragments.Add(new MemoryByteBuffer(buffer));
offset += size;
}
}
//保留原始偏移表
if (originOffsetTable.Count == pixelData.NumberOfFrames)
{
newFragments.OffsetTable.AddRange(originOffsetTable.ToArray());
}
else
{
newFragments.OffsetTable.AddRange(bot.ToArray());
}
#endregion