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.
The following table describes the behavior of the DICOM_SET_IMAGE_FLAGS for LDicomDS::InsertImage, LDicomDS::InsertImageList, LDicomDS::SetWindow, LDicomDS::DeleteWindow, LDicomDS::SetModalityLUT, LDicomDS::DeleteModalityLUT.
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 LDicomDS::SetImage, LDicomDS::SetImageList
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
The IOD supports Multi-frame Functional Groups
Multi-frame Functional Groups elements already exist in the DICOM dataset
These tags to not already exist at the top level:
TAG_WINDOW_CENTER
TAG_WINDOW_WIDTH
TAG_RESCALE_SLOPE
TAG_RESCALE_INTERCEPT
TAG_RESCALE_TYPE