LAUREL BRIDGE

Program Class

DICOM Connectivity Framework V3.4
DICOM defines the notion of a basic offset table for encapsulated pixel data elements to aid in finding the start of each image frame in a multiframe image. The basic offset table is the first sequence fragment after the pixel data element header, and it is allowed to be empty, or to have a sequence of 32-bit unsigned offset values that indicate the starting offset of each frame in the compressed datastream. Each frame offset is relative to the end of the basic offset table, so the first offset is always zero.

While the basic offset table is useful for readers, it is not required, since readers are required to be able to handle empty basic offset tables. For writers, the creation of the basic offset table can be inefficient since the size of the compressed image fragments that follow is not known in advance, so unless the output that the writer is writing to is seekable, the entire compressed image stream must be buffered in order to write the basic offset table first.

Inheritance Hierarchy

SystemObject
  LaurelBridge.DCFExamples.CreateBasicOffsetTableProgram

Namespace:  LaurelBridge.DCFExamples.CreateBasicOffsetTable
Assembly:  CreateBasicOffsetTable (in CreateBasicOffsetTable.exe) Version: DCF34 r13043 DCF_3_4_56_20220408 NetFramework
Syntax

C#
public class Program

The Program type exposes the following members.

Constructors

  NameDescription
Public methodProgram
Initializes a new instance of the Program class
Top
Methods

  NameDescription
Public methodStatic memberMain
Main entry point for CreateBasicOffsetTable.
Top
Remarks

By default, DCF does not write the frame offset table, but starting with DCF3.4.4, it is possible to create, or to replace the basic offset tables when datasets are written. There are a number of session related properties that assist in this capability.

DICOM specifies that an empty offset table is valid, and this is the default behavior. The BasicOffsetTableCreationMode defines how basic offset tables are created. The valid values are:

0 Create an empty offset table, which is simplest, and requires no buffering.
1 Create if empty or invalid, which will create a basic offset table if it does not exist, and may require buffering all image data for non-seekable streams.
2 Replace existing offset table, which is useful if the existing basic offset table is known to be invalid. This option may also require buffering all image data for non-seekable streams.

See Also

Reference

DicomSessionSettings.BasicOffsetTableCreationMode
DicomSessionSettings.BasicOffsetTableCheck
DicomSessionSettings.BasicOffsetTableIgnore
DicomSessionSettings.BasicOffsetTableMemoryThreshold