Working with Basic Directory 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:

LDicomDS::GetRootKey

LDicomDS::GetParentKey

LDicomDS::GetChildKey

LDicomDS::GetFirstKey

LDicomDS::GetLastKey

LDicomDS::GetPrevKey

LDicomDS::GetNextKey

LEADTOOLS provides the following functions for searching the Data Set.

LDicomDS::FindFirstKey

LDicomDS::FindLastKey

LDicomDS::FindPrevKey

LDicomDS::FindNextKey

To insert new key elements, use:

LDicomDS::InsertKey

To delete key elements, use:

LDicomDS::DeleteKey

To determine the type of a specific key element, use

LDicomDS::GetValueKey

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