Multi-Frame Functional Groups

The following table lists the Information Object Definitions (IODs) that support multi-frames and the Multi-frame Functional Groups module

DICOM Specification Part 3 Annex A Table

IOD Class Constant

Description

A.8.3

CLASS_SC_MULTI_FRAME_GRAYSCALE_BYTE_IMAGE_STORAGE

Secondary Capture Multi-Frame Grayscale Byte Image Storage

A.8.4

CLASS_SC_MULTI_FRAME_GRAYSCALE_WORD_IMAGE_STORAGE

Secondary Capture Multi-Frame Grayscale Word Image Storage

A.8.5

CLASS_SC_MULTI_FRAME_TRUE_COLOR_IMAGE_STORAGE

Secondary Capture Multi-Frame True Color Image Storage

A.36.2

CLASS_ENHANCED_MR_IMAGE_STORAGE

Enhanced MR Image Storage

A.36.3

CLASS_MR_SPECTROSCOPY_STORAGE

MR Spectroscopy Storage

A.38.1

CLASS_ENHANCED_CT_IMAGE_STORAGE

Enhanced CT Image Storage

A.47

CLASS_ENHANCED_XA_IMAGE_STORAGE

Enhanced X-Ray Angiographic Image Storage

A.48

CLASS_ENHANCED_XRF_IMAGE_STORAGE

Enhanced X-Ray RF Image Storage

A.51

CLASS_SEGMENTATION_STORAGE

Segmentation Storage

A.52

CLASS_OPHTHALMIC_TOMOGRAPHY_IMAGE_STORAGE

Ophthalmic Tomography Image Storage

A.53

CLASS_X_RAY_3D_ANGIOGRAPHIC_IMAGE_STORAGE

X-Ray 3D Angiographic Image Storage

A.54

CLASS_X_RAY_3D_CRANIOFACIAL_IMAGE_STORAGE

X-Ray 3D Craniofacial Image Storage

Supplement 117

CLASS_ENHANCED_PET_IMAGE_STORAGE

Enhanced PET Image Storage

These IODs can store multiple frames or images. The Multi-frame Functional Groups module may have a Shared Functional Groups Sequence item, and/or a Per-frame Functional Groups Sequence item.

The Shared Functional Groups Sequence (5200,929) item has a single child item that stores global settings that apply to all the frames in the dataset.

The Per-frame Functional Groups Sequence (5200,9230) item has a child item for each frame that stores individual settings for that frame.  For example, if there are five frames in the dataset, the Per-frame Functional Groups Sequence will have five items, each with possibly different settings.

Either of these items (Shared Functional Groups Sequence or Per-frame Functional Groups Sequence) may have a Pixel Value Transformation Sequence (0028,9145) item, or a Frame VOI LUT Sequence (0028,9132) item. The five DICOM_SETIMAGE_MFG flags can be used to add or modify existing information in the Pixel Value Transformation Sequence or the Frame VOI LUT Sequence.

Some or all of the five DICOM_SETIMAGE_MFG flags can be used in the following methods. 

L_DicomInsertImage

L_DicomInsertImageList

L_DicomSetImage

L_DicomSetImageList

L_DicomSetWindow

L_DicomDeleteWindow

L_DicomSetModalityLUT

L_DicomDeleteModalityLUT

The following table describes the behavior of the DICOM_SET_IMAGE_FLAGS for L_DicomInsertImage, L_DicomInsertImageList, L_DicomSetWindow, L_DicomDeleteWindow, L_DicomSetModalityLUT, L_DicomDeleteModalityLUT.

DICOM_SETIMAGE_MFG_OVERWRITE_SHARED

[0x0008] Existing elements under the Shared Functional Groups Sequence will be overwritten. If this flag is not included, Shared Functional Groups Sequence elements are unchanged.

DICOM_SETIMAGE_MFG_VOI_LUT_PER_FRAME

[0x0010] If the Frame VOI LUT Sequence does not already exist, it is added under the Per-frame Functional Groups Sequence. If the Frame VOI LUT Sequence already exists under the Shared Functional Groups Sequence, this flag is ignored.

DICOM_SETIMAGE_MFG_VOI_LUT_SHARED

[0x0020] If the Frame VOI LUT Sequence does not already exist, it is added under the Shared Functional Groups Sequence.

If the Frame VOI LUT Sequence already exists under the Per-frame Functional Groups Sequence, this flag is ignored.

DICOM_SETIMAGE_MFG_MODALITY_LUT_PER_FRAME

[0x0040] If the Pixel Value Transformation Sequence does not already exist, it is added under the Per-frame Functional Groups Sequence.

If the Pixel Value Transformation Sequence already exists under the Shared Functional Groups Sequence, this flag is ignored.

DICOM_SETIMAGE_MFG_MODALITY_LUT_SHARED

[0x0080] If the Pixel Value Transformation Sequence does not already exist, it is added under the Shared Functional Groups Sequence. If the Pixel Value Transformation Sequence already exists under the Per-frame Functional Groups Sequence, this flag is ignored.

The following table describes the behavior of the DICOM_SET_IMAGE_FLAGS for L_DicomSetImage, L_DicomSetImageList

DICOM_SETIMAGE_MFG_OVERWRITE_SHARED

[0x0008] This flag is ignored.

DICOM_SETIMAGE_MFG_VOI_LUT_PER_FRAME

[0x0010] The Frame VOI LUT Sequence is added under the Per-frame Functional Groups Sequence.

DICOM_SETIMAGE_MFG_VOI_LUT_SHARED

[0x0020] The Frame VOI LUT Sequence is added under the Shared Functional Groups Sequence.

DICOM_SETIMAGE_MFG_MODALITY_LUT_PER_FRAME

[0x0040] The Pixel Value Transformation Sequence is added under the Per-frame Functional Groups Sequence.

DICOM_SETIMAGE_MFG_MODALITY_LUT_SHARED

[0x0080] The Pixel Value Transformation Sequence is added under the Shared Functional Groups Sequence.

The specific elements that are read or updated when using these flags are shown below:

(0028,9132) Frame VOI LUT Sequence Child Elements

Tag

Name

(0028,1050)

Window Center

(0028,1051)

Window Width

(0028,1055)

Window Center & Width Explanation

(0028,9145) Pixel Value Transformation Sequence child elements 

Tag

Name

(0028,1052)

Rescale Intercept

(0028,1053)

Rescale Slope

(0028,1053)

Rescale Type

 

Note:

DICOM_SETIMAGE_MFG_VOI_LUT_PER_FRAME cannot be combined with DICOM_SETIMAGE_MFG_VOI_LUT_SHARED.

DICOM_SETIMAGE_MFG_MODALITY_LUT_PER_FRAME cannot be combined with DICOM_SETIMAGE_MFG_MODALITY_LUT_SHARED.

When using any of the LDicomDS methods that support the DICOM_SETIMAGE_MFG flags, Multi-frame Functional Groups are added (or updated) to the DICOM dataset if