ImageGear for C and C++ on Linux v19.10 - Updated
DICOM Data Dictionary
User Guide > How to Work with... > Formats with Additional Functionality > DICOM > DICOM Metadata > DICOM Data Dictionary

The MD component encapsulates the DICOM Data Dictionary (Part 6) in a static and internal table, which the component uses to look up Tags as they are being decoded. It can be used also by your application to provide the DICOM given name or other information about a given Tag. To retrieve this information use the MED_DCM_util_tag_info_get() function. Tag IDs are listed in the enumIGMedTag enumeration. 

The Data Dictionary is also used to check the VR of Data Elements as they are being decoded. If a file is Explicit VR then as each Data Element is read, the VR found in the file is matched against the VR in the Data Dictionary. If it is determined that the VR is not appropriate for the Tag type, an error condition may occur.

You can add your own user-defined Tags to the Data Dictionary, or add new Tags that have been added to the DICOM specification so that you keep your application current. The Tags that you add, whether they are user-defined, or new to the DICOM specification, will be stored in a separate table in memory. The enumIGMedTag enumeration is reserved for public DICOM Tags. However, when your application is running, ImageGear Medical will treat the two tables as one, and will be able to process any valid Tag number that you reference. To add a Tag, use MED_DCM_util_tag_info_add().

Since the internal Data Dictionary tables are statically defined, any Tags you wish to add should be added to your initialization code since the table need to be updated each time the toolkit is started up.

The internal Data Dictionary holds several pieces of information for each Tag: it holds the VR, the VM, the version in which the Tag is last used, and the character string name of the Tag as it appears in the DICOM Standard.

The version information is stored because there are many Tags in the DICOM 3 Standard Data Dictionary that are now obsolete or "Retired" as DICOM calls them. If a Tag has been Retired in DICOM 3, then the version is stored as 2. If the Tag has not been retired then it is stored as 3 (for DICOM version 3). Retired Tags also include the string "(RET)" at the end of their name string.