ImageGear .NET uses its general metadata engine for all file formats, including DICOM. When ImageGear loads a DICOM image, it builds a metadata tree structure and attached it to the new ImGearPage Class object. Use ImageGear .NET Metadata support classes to access data items in this tree.
A DICOM file includes one header with metadata, and zero, one, or multiple images. Metadata applies to all images in the file. ImageGear loads a copy of DICOM metadata into every loaded page. DICOM Document metadata is empty.
DICOM tags map to ImageGear metadata tags as follows:
"Sequence" (SQ) tags are represented by nested metadata trees. SQ contains one or more Sequence Items, and cannot contain normal DICOM tags. Sequence Item contains a set of DICOM tags.
The following tags are read from the file, but not added to the metadata tree:
- Group lengths 
 - Sequence delimitation items 
 - Item delimitation items 
 
The following table lists the mapping between DICOM Value Representations and .NET system types: 
| VR | 
Meaning | 
System Type to which It Converts on Reading | 
Allowed System Types on Writing | 
| AE | 
Application Entity | 
String | 
String | 
| AS | 
Age String | 
String | 
String | 
| AT | 
Attribute Tag | 
String | 
String | 
| CS | 
Code String | 
String | 
String | 
| DA | 
Date | 
String | 
String | 
| DS | 
Decimal String | 
double | 
all numeric types, String | 
| DT | 
Date Time | 
String | 
String | 
| FL | 
Floating Point Single | 
float | 
all numeric types, String | 
| FD | 
Floating Point Double | 
double | 
all numeric types, String | 
| IS | 
Integer String | 
long (64-bit) | 
all integer types, String | 
| LO | 
Long String | 
String | 
String | 
| LT | 
Long Text | 
String | 
String | 
| OB | 
Other Byte String | 
byte[] | 
byte[] | 
| OW | 
Other Word String | 
ushort[] | 
ushort[] | 
| PN | 
Person Name | 
String | 
String | 
| SH | 
Short String | 
String | 
String | 
| SL | 
Signed Long | 
int | 
all integer types, String | 
| SQ | 
Sequence | 
- | 
- | 
| SS | 
Signed Short | 
short | 
all integer types, String | 
| ST | 
Short Text | 
String | 
String | 
| TM | 
Time | 
String | 
String | 
| UI | 
Unique Identifier | 
String | 
String | 
| UL | 
Unsigned Long | 
uint | 
all integer types, String | 
| UN | 
Unknown | 
byte[] | 
byte[] | 
| US | 
Unsigned Short | 
ushort | 
all integer types, String | 
| UT | 
Unlimited Text | 
String | 
String | 
| OF | 
Other Float String | 
float[] | 
float[], double[] | 
For types other than OB, OW and OF, if the system type is an array, a multivalued data element is saved.
Example of conversion on metadata reading:
| VR | 
Tag Value | 
Metadata Leaf Data Type | 
Metadata Leaf Value | 
| US | 
0x0001 | 
ushort | 
1 | 
| OW | 
0x0001 0x0002 0x0003 | 
ushort[] | 
{1, 2, 3} | 
| DS | 
"0.12345\0.6789" | 
double[] | 
{0.12345, 0.6789} | 
| CS | 
"MR" | 
string | 
"MR" | 
| CS | 
"ORIGINAL\PRIMARY" | 
string[] | 
{"ORIGINAL", "PRIMARY"} |