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 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
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