偏移表bug修复
parent
e40a9fe9cb
commit
9bd090da66
|
|
@ -540,12 +540,12 @@ namespace IRaCIS.Core.SCP.Service
|
||||||
|
|
||||||
//保留原始偏移表
|
//保留原始偏移表
|
||||||
|
|
||||||
if (originOffsetTable.Count == pixelData.NumberOfFrames)
|
//if (originOffsetTable.Count == pixelData.NumberOfFrames)
|
||||||
{
|
//{
|
||||||
newFragments.OffsetTable.AddRange(originOffsetTable.ToArray());
|
// newFragments.OffsetTable.AddRange(originOffsetTable.ToArray());
|
||||||
|
|
||||||
}
|
//}
|
||||||
else
|
//else
|
||||||
{
|
{
|
||||||
newFragments.OffsetTable.AddRange(bot.ToArray());
|
newFragments.OffsetTable.AddRange(bot.ToArray());
|
||||||
|
|
||||||
|
|
@ -674,7 +674,7 @@ namespace IRaCIS.Core.SCP.Service
|
||||||
|
|
||||||
// 上传缩略图到 OSS
|
// 上传缩略图到 OSS
|
||||||
|
|
||||||
var seriesPath = await ossService.UploadToOSSAsync(memoryStream, ossFolderPath, $"{seriesId.ToString()}_{instanceId.ToString()}.preview.jpg", false,uploadInfo: new FileUploadRecordAddOrEdit() { TrialId = _trialId, BatchDataType = BatchDataType.PACSReceive });
|
var seriesPath = await ossService.UploadToOSSAsync(memoryStream, ossFolderPath, $"{seriesId.ToString()}_{instanceId.ToString()}.preview.jpg", false, uploadInfo: new FileUploadRecordAddOrEdit() { TrialId = _trialId, BatchDataType = BatchDataType.PACSReceive });
|
||||||
|
|
||||||
|
|
||||||
series.ImageResizePath = seriesPath;
|
series.ImageResizePath = seriesPath;
|
||||||
|
|
|
||||||
|
|
@ -166,43 +166,72 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
var newFragments = new DicomOtherByteFragment(DicomTag.PixelData);
|
var newFragments = new DicomOtherByteFragment(DicomTag.PixelData);
|
||||||
|
|
||||||
|
|
||||||
#region 最终使用
|
|
||||||
|
|
||||||
for (int n = 0; n < pixelData.NumberOfFrames; n++)
|
for (int n = 0; n < pixelData.NumberOfFrames; n++)
|
||||||
{
|
{
|
||||||
var frameData = pixelData.GetFrame(n); // 获取完整一帧
|
var frameData = pixelData.GetFrame(n);
|
||||||
var data = frameData.Data;
|
var data = frameData.Data;
|
||||||
int offset = 0;
|
|
||||||
|
|
||||||
|
// 当前 frame 起始 offset
|
||||||
bot.Add(botOffset);
|
bot.Add(botOffset);
|
||||||
|
|
||||||
botOffset += (uint)data.Length;
|
int offset = 0;
|
||||||
|
|
||||||
|
|
||||||
while (offset < data.Length)
|
while (offset < data.Length)
|
||||||
{
|
{
|
||||||
botOffset += 8;
|
|
||||||
|
|
||||||
|
|
||||||
int size = Math.Min(fragmentSize, data.Length - offset);
|
int size = Math.Min(fragmentSize, data.Length - offset);
|
||||||
|
|
||||||
var buffer = new byte[size];
|
var buffer = new byte[size];
|
||||||
Buffer.BlockCopy(data, offset, buffer, 0, size);
|
Buffer.BlockCopy(data, offset, buffer, 0, size);
|
||||||
|
|
||||||
newFragments.Fragments.Add(new MemoryByteBuffer(buffer));
|
newFragments.Fragments.Add(new MemoryByteBuffer(buffer));
|
||||||
|
|
||||||
offset += size;
|
// 一个 fragment:
|
||||||
|
// 8-byte item header
|
||||||
|
// + fragment payload
|
||||||
|
botOffset += (uint)(8 + size);
|
||||||
|
|
||||||
|
offset += size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#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;
|
||||||
|
|
||||||
|
|
||||||
|
// while (offset < data.Length)
|
||||||
|
// {
|
||||||
|
// botOffset += 8;
|
||||||
|
|
||||||
|
|
||||||
|
// 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)
|
//if (originOffsetTable.Count == pixelData.NumberOfFrames)
|
||||||
{
|
//{
|
||||||
newFragments.OffsetTable.AddRange(originOffsetTable.ToArray());
|
// newFragments.OffsetTable.AddRange(originOffsetTable.ToArray());
|
||||||
|
|
||||||
}
|
//}
|
||||||
else
|
//else
|
||||||
{
|
{
|
||||||
newFragments.OffsetTable.AddRange(bot.ToArray());
|
newFragments.OffsetTable.AddRange(bot.ToArray());
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue