Working with DICOM Tables (C++ Class Library) (original) (raw)
The internal DICOM tables have been moved from the ltdicu.dll to a dedicated LtDicTablesu.dll. This makes the main DICOM dll Ltdicu.dll significantly smaller in size, and offers the developer several new options for accessing and tailoring the DICOM tables to the specific requirements of their application.
There are five DICOM tables that are defined and stored internally in the DICOM toolkit:
- Value Representation Table
- Contains a list of all supported value representation defined in the DICOM specification.
- This list is well-defined, does not change, and is small.
- Stored internally in Ltdicu.dll.
- Unique Identifier Table (UID)
- Contains a list of all unique identifiers defined in the DICOM specification.
- New UID's are added ever year.
- Stored internally in LtDicTablesu.dll.
- Can be easily and quickly updated by calling LDicomUID::LoadXml
- Element Tag Table
- Contains a list of all DICOM elements defined in the DICOM specification.
- New elements are added every year.
- Stored internally in both LtDicTablesu.dll and in ltdicu.dll
- Can be easily and quickly updated by calling LDicomTag::LoadXml.
- Information Object Definition Table (IOD)
- Contains a list of all Information Object Definitions defined in the DICOM specification.
- New IOD's are defined every year.
- Stored internally in LtDicTablesu.dll
- This is a very large table
- Can be easily and quickly updated by calling LDicomIOD::LoadXml
- Context Group Table
- Contains a list of all Context Groups defined in the DICOM specification
- New Context Groups are added every year.
- Store internally in LtDicTablesu.dll
- Can be easily and quickly updated by calling LDicomContextGroup::LoadXml.
DICOM toolkit users have several options when using and tailoring the DICOM tables to meet the needs of their application.
- Developers can include ltdicu.dll and LtDicTablesu.dll in their distributable. LtDicTablesu.dll includes all UID's, Element tags, IOD's, and DICOM Context Groups from the 2008 DICOM specification. This is the easiest way of using the DICOM tables.
- Developers can choose not to include ltdictablesu.dll in their redistributable. In this case, developers should call the appropriate LoadXml function to load the DICOM tables that they want to load. As part of the toolkit, four human-readable DICOM table XML files are now installed in the LEADTOOLS Sample Images directory:
- dicTableUid.xml - used with LDicomUID::LoadXml()
- dicTableElement.xml - used with LDicomTag::LoadXml()
- dicTableIodModule.xml - used with LDicomIOD::LoadXml()
- dicTableContextGroup.xml: used with LDicomContextGroup::LoadXml()
These four tables can easily be tailored to your needs. For example, to add new UID's, elements, IOD's, or context groups, developers can edit any one of these files with any text editor. Also, the tables can be easily combined into a single table.
Developers can easily remove items from these tables that will not be used. For example, the DICOM IOD table contains more than 60 IOD definitions, more 300 modules definitions, which comes to more than 18000 lines in the dicTableIodModule.xml file. If a particular DICOM application does not use IOD's, then the application footprint can be significantly reduced by not including these IODs at all. Or if you are doing basic DICOM communication, you can include only the IODs that you need, and remove all others. For example, your application might use only the following IODs:
- Patient level for the patient root query/retrieve model
- Study level for the patient root query/retrieve model
- Series level for the patient root query/retrieve model
- Image level for the patient root query/retrieve model
- Study level for the study root query/retrieve model
- Series level for the study root query/retrieve model
- Image level for the study root query/retrieve model
- Patient level for the patient/study only query/retrieve model
- Study level for the patient/study only query/retrieve model
For more information on UIDs, Dicom Elements, IODs, and Context Groups, refer to
Working with Unique Identifiers (UIDs)