Working with Key Elements

DICOM Dir data sets may contain special data element called key elements. A Key element is a data element that also contains special information about other key elements in the data set and their relative location within the data set.

Key elements all have the TAG_ITEM tag and they must be one of the following types:

"PATIENT"

Patient key element

"STUDY"

Study key element

"SERIES"

Series key element

"IMAGE"

Image key element

"OVERLAY"

Overlay key element

"MODALITY LUT"

Modality-LUT key element

"VOI LUT"

VOI-LUT key element

"CURVE"

Curve key element

"TOPIC"

Topic key element

"VISIT"

Visit key element

"RESULTS"

Results key element

"INTERPRETATION"

Interpretation key element

"STUDY COMPONENT"

Study Component key element

"PRINT QUEUE"

Print Queue key element

"FILM SESSION"

Film session key element

"FILM BOX"

Film box key element

"IMAGE BOX"

Image box key element

"PRIVATE"

Private key element

LEADTOOLS maintains the DICOM Dir data set as a tree, however, all key elements are stored at the same level of the tree. The specialized information included in a key element maintains information on key element children, non-key element children, parent key elements, and the logical relationships between the elements.

LEADTOOLS provides special functions for searching the DICOM Dir data set, maneuvering through the data set, inserting and deleting key elements, and manipulating key elements. To work with key elements, you should create a Data Set as type CLASS_BASIC_DIRECTORY.

For maneuvering through the DICOM Dir data set, use the following:

L_DicomGetRootKey

L_DicomGetParentKey

L_DicomGetChildKey

L_DicomGetFirstKey

L_DicomGetLastKey

L_DicomGetPrevKey

L_DicomGetNextKey

LEADTOOLS provides the following functions for searching the Data Set.

L_DicomFindFirstKey

L_DicomFindLastKey

L_DicomFindPrevKey

L_DicomFindNextKey

To insert new key elements, use:

L_DicomInsertKey

To delete key elements, use:

L_DicomDeleteKey

To determine the type of a specific key element, use

L_DicomGetValueKey

These functions work the same way as the corresponding L_DicomXXXElement functions. Please note however, that it is most important that you use L_DicomDeleteKey when deleting a key element. Trying to delete a key element using L_DicomDeleteElement will remove the specified key element and any information about any related key elements, but it will not remove the child key elements.