Introduction

LEADTOOLS VCL consists of several packages. Each package contains one or more custom controls developed by LEAD Technologies, Inc. These packages and their contents are as follows:

LEADTOOLS VCL Main Package: The LEADTOOLS VCL Main Package contains the LEAD Main Control Module and the LEAD Imaging Common Dialog Control Module. The LEAD Main Control Module (32-bit) provides the custom controls for incorporating image compression, file format support, and image processing into your applications. LEAD Imaging Common Dialog Control Module provides custom controls for incorporating dialog boxes that combine Windows Common Dialog functionality with LEADTOOLS Imaging functionality.

LEADTOOLS VCL Additional Package: The LEADTOOLS VCL Additional Package contains the LEAD ImageList Control Module, the LEAD ThumbnailBrowser Control Module and the LEAD Screen Capture Control. The LEAD ImageList Control Module provides the custom controls for displaying and manipulating image lists. The LEAD Thumbnail Browser Control Module provides custom controls for generating thumbnails of LEAD supported images from a directory. The LEAD Screen Capture Control Module provides custom controls for performing the following captures: entire screen, active window, selected menu, menu under cursor, selected window object (button, tool bar, icon, or client area), selected area (rectangle, ellipse, triangle, polygon or freehand), wallpaper, mouse pointer, and resource stored in EXE or DLL. Options include multi-capture, Hot Keys, and time interval. Please note that the Documentation for the LEAD Screen Capture Control Module can be found in the LEADTOOLS Screen Capture VCL help file, Ltscrvcln.hlp in the LEAD\Help directory. In addition, please note that the LEADTOOLS VCL Main Package must be installed on the system in order to install the LEADTOOLS VCL Additional Package.

LEADTOOLS VCL Scanning Package: The LEADTOOLS VCL Scanning Package contains the LEAD TWAIN Control Module and the LEAD ISIS Control Module. The LEAD TWAIN Control Module provides custom controls for incorporating TWAIN scanner control into your applications. LEAD ISIS Control Module provides custom controls for incorporating ISIS scanner control into your applications. In addition, please note that the LEADTOOLS VCL Main Package must be installed on the system in order to install the LEADTOOLS VCL Scanning Package.

LEADTOOLS VCL DICOM Package: The LEADTOOLS VCL DICOM Package contains the LEAD DICOM Control Module. The LEAD DICOM Control Module provides a custom control for incorporating DICOM image file format support into your applications. The LEAD DICOM Control Module is only available in the LEADTOOLS Medical toolkits. Please note that the LEADTOOLS VCL Main Package must be installed on the system in order to install the LEADTOOLS VCL DICOM Package.

This help file contains only the documentation for the properties, methods and events in the LEAD DICOM Control Module.

To use the same bitmap between controls, assign the bitmap property from one control to the other control.

The toolkit comes in 32-bit Document/Medical and non-Document/Medical editions. You can use the LEADTOOLS VCL in:

Delphi 4.0 (32-bit)

Delphi 5.0 (32-bit)

C++ Builder 4.0 (32-bit)

C++ Builder 5.0 (32-bit)

Please note that due to the large size of the PDF files that contain the LEADTOOLS manuals, these files are no longer included in the setup. Instead, these PDF files can be downloaded from our website at http://support.leadtools.com/SupportPortal/DesktopDefault.aspx?tabindex=3&tabid=27.


An Overview of the DICOM File Format

The following topics provide general information about the DICOM File Format. It is designed to help familiarize you with DICOM. For more detailed information on the DICOM File Format, you should refer to the DICOM Standard, published by the

National Electrical Manufacturers Association

1300 N. 17th Street

Rosslyn, Virginia 22209 USA

For more information on programming using this toolkit, refer to Programming With LEADTOOLS.

Basic DICOM File Structure

Data Element Fields

Value Representations

Value Multiplicity (VM) and Delimitation

Data Element Structure

Group Length

Big-Endian versus Little Endian Byte Ordering

Data Element Type

Nesting of Data Sets

Item Encoding Rules

Delimitation of the Sequence of Items

Repeating Groups

Retired Data Elements

Private Data Elements

Private Data Element Tags

Encoding of Pixel Data

Pixel Data Encoding of Related Data Elements

Native or Encapsulated Format Encoding

Compression

Unique Identifiers

Information Object Definitions


Overview: Attributes

The Attributes of an IOD describe the properties of a Real-World Object Instance. Related Attributes are grouped into Modules which represent a higher level of semantics documented in the Module Specifications found in Annex C of the DICOM Standard.

Attributes are encoded as Data Elements using the rules, the Value Representation and the Value Multiplicity concepts specified in PS 3.5 of the DICOM Standard. For specific Data Elements, the Value Representation and Value Multiplicity are specified in the Data Dictionary in PS 3.6 of the DICOM Standard.

When multiple modules containing the same Attributes(s) are included in an IOD, the Attribute shall be encoded only once into a Data Element. If one of the modules is a specialization of the other (e.g., General Image and CT Image) the Attribute definition contained in the more specialized module shall be used.


Overview: Basic DICOM File Structure

The DICOM File Format is described by the American College of Radiology (ACR) and National Electrical Manufacturers Association (NEMA) in PS3.10 specification "Media Storage and File Format for Media Interchange", of the DICOM Standard. An illustration of the basic file structure can be seen below.

File Header

The header consists of a 128 byte File Preamble, followed by a 4 byte DICOM prefix. The header may or may not be included in the file (although one should be included in order to comply with the DICOM Standard).

Preamble | Prefix
128 bytes = ??? ??? | 4 bytes = ‘D’, ‘I’, ‘C’, ‘M’

The DICOM Standard does not require any structure for the fixed size Preamble. It is not required to be structured as a DICOM Data Element with a Tag and a Length. It is intended to facilitate access to the images and other data in the DICOM file by providing compatibility with a number of commonly used computer image file formats.

a) If the File Preamble is not used by an Application Profile or a specific implementation, all 128 bytes shall be set to 00H. This is intended to facilitate the recognition that the Preamble is used when all 128 bytes are not set as specified above.

b) The File Preamble may for example contain information enabling a multi-media application to randomly access images stored in a DICOM Data Set. The same file can be accessed in two ways: by a multi-media application using the preamble and by a DICOM Application which ignores the preamble.

The four byte DICOM Prefix shall contain the character string "DICM" encoded as uppercase characters of the ISO 8859 G0 Character Repertoire. This four byte prefix is not structured as a DICOM Data Element with a Tag and a Length.

Data Set

Each File shall contain a single Data Set representing a single SOP Instance related to a single SOP Class (and corresponding IOD).

Note: A file may contain more than a single 2D image frame as specific IODs may be defined to include multiple frames.

The Transfer Syntax used to encode the Data Set shall be the one identified by the Transfer Syntax UID of the DICOM File Meta Information.

Note: A DICOM Data Set does not include its total length. The end of the file indication provided by the DICOM File Service (see Section 8.4 of the DICOM Standard) is the only indication of the end of the Data Set.

The last Data Element of a Data Set may be Data Element (FFFC,FFFC) if padding of a Data Set is desired when a file is written. The Value of this Data Set Trailing Padding Data Element (FFFC,FFFC) has no significance and shall be ignored by all DICOM implementations reading this Data Set. File-set Readers or Updaters shall be able to process this Data Set Trailing Padding (FFFC,FFFC) either in the Data Set following the Meta Information or in Data Sets nested in a Sequence (See PS 3.5 of the DICOM Standard of the DICOM Standard).

A Data Set represents an instance of a real world Information Object. A Data Set is constructed of Data Elements. Data Elements contain the encoded Values of Attributes of that object. The specific content and semantics of these Attributes are specified in Information Object Definitions (see PS 3.3 of the DICOM Standard). The construction, characteristics, and encoding of a Data Set and its Data Elements are discussed in PS 3.5 of the DICOM Standard. Pixel Data, Overlays, and Curves are Data Elements whose interpretation depends on other related elements.

Data Elements

A Data Element is uniquely identified by a Data Element Tag. The Data Elements in a Data Set shall be ordered by increasing Data Element Tag Number and shall occur at most once in a Data Set.

Note: A Data Element Tag may occur again within Nested Data Sets (see Section 7.5 – PS 3.5 of the DICOM Standard).

Two types of Data Elements are defined:

Standard Data Elements have an even Group Number that is not (0000,eeee), (0002,eeee), (0004,eeee), or (0006,eeee).

Note: Usage of these groups is reserved for DIMSE Commands (see PS 3.7 of the DICOM Standard) and DICOM File Formats.

Private Data Elements have an odd Group Number that is not (0001,eeee), (0003,eeee), (0005,eeee), (0007,eeee), or (FFFF,eeee). Private Data Elements are discussed further in Section 7.8 (PS 3.5 of the DICOM Standard).

Note: Although similar or related Data Elements often have the same Group Number; a Data Group does not convey any semantic meaning beginning with DICOM Version 3.0.

A Data Element shall have one of three structures. Two of these structures contain the VR of the Data Element (Explicit VR) but differ in the way their lengths are expressed, while the other structure does not contain the VR (Implicit VR). All three structures contain the Data Element Tag, Value Length and Value for the Data Element. For more information, refer to Data Element Structure.

Implicit and Explicit VR Data Elements shall not coexist in a Data Set and Data Sets nested within it (see Section 7.5 – PS 3.5 of the DICOM Standard). Whether a Data Set uses Explicit or Implicit VR, among other characteristics, is determined by the negotiated Transfer Syntax (see Section 10 and Annex A – PS 3.5).

Note: VRs are not contained in Data Elements when using DICOM Default Transfer Syntax (DICOM Implicit VR Little Endian Transfer Syntax).


Overview: Big Endian versus Little Endian Byte Ordering

Another component of the encoding of a Data Set that shall be agreed upon by communicating Application Entities is the Byte Ordering.

Little Endian byte ordering is defined as follows:

In a binary number consisting of multiple bytes (e.g. a 32-bit unsigned integer value, the Group Number, the Element Number, etc.), the least significant byte shall be encoded first; with the remaining bytes encoded in increasing order of significance.

In a character string consisting of multiple 8-bit single byte codes, the characters will be encoded in the order of occurrence in the string (left to right).

Big Endian byte ordering is defined as follows:

In a binary number consisting of multiple bytes, the most significant byte shall be encoded first; with the remaining bytes encoded in decreasing order of significance.

In a character string consisting of multiple 8-bit single byte codes, the characters will be encoded in the order of occurrence in the string (left to right).

Byte ordering is a component of an agreed upon Transfer Syntax (see Section 10 of the DICOM Standard). The default DICOM Transfer Syntax, which shall be supported by all AEs, uses Little Endian encoding and is specified in Annex A.1 (PS 3.5 of the DICOM Standard). Alternate Transfer Syntaxes, some of which use Big Endian encoding, are also specified in Annex A (PS 3.5 of the DICOM Standard).

Note: The Command Set structure as specified in PS 3.7 of the DICOM Standard is encoded using the Little Endian Implicit VR

Transfer Syntax.

In the default case of Little Endian encoding, Big Endian Machines interpreting Data Sets shall do 'byte swapping' before interpreting or operating on certain Data Elements. The Data Elements affected are all those having VRs that are multiple byte Values and that are not a character string of 8-bit single byte codes. VRs constructed of a string of characters of 8-bit single byte codes are really constructed of a string of individual bytes, and are therefore not affected by byte ordering. The VRs that are not a string of characters and consist of multiple bytes are:

2-byte US, SS, OW and each component of AT

4-byte UL, SL, and FL

8 byte FD

Note: For the above VRs, the multiple bytes are presented in increasing order of significance when in Little Endian format. For example, an 8-byte Data Element with VR of FD, might be written in hexadecimal as 68AF4B2CH, but encoded in Little Endian would be 2C4BAF68H.


Overview: Composite IOD

A Composite IOD is an Information Object Definition which represents parts of several entities included in the DICOM Model of the Real-World. This Model is introduced in Section 7. Such an IOD includes Attributes which are not inherent in the Real-World Object that the IOD represents but rather are inherent in related Real-World Objects.

These related Real-World Objects provide a complete context for the exchanged information. When an instance of a Composite IOD is communicated, this entire context is exchanged between Application Entities. Relationships between Composite IOD Instances shall be conveyed in this contextual information.


Overview: Compression

JPEG Compression

DICOM provides a mechanism for supporting the use of JPEG Image Compression through the Encapsulated Format (see PS 3.3 of the DICOM Standard). Annex A defines a number of Transfer Syntaxes which reference the JPEG Standard and provide a number of lossless (bit preserving) and lossy compression schemes.

Note: The context where the usage of lossy compression of medical images is clinically acceptable is beyond the scope of the DICOM Standard. The policies associated with the selection of appropriate compression parameters (e.g. compression ratio) for JPEG lossy compression is also beyond the scope of this standard.

In order to facilitate interoperability of implementations conforming to the DICOM Standard which elect to use one or more of the Transfer Syntaxes for JPEG Image Compression, the following policy is specified:

Any implementation which conforms to the DICOM Standard and has elected to support any one of the Transfer Syntaxes for lossless JPEG Image Compression, shall support the following lossless compression: The subset (first-order horizontal prediction [Selection Value 1) of JPEG Process 14 (DPCM, non-hierarchical with Huffman coding) (see Annex F of the DICOM Standard).

Any implementation which conforms to the DICOM Standard and has elected to support any one of the Transfer Syntaxes for 8-bit lossy JPEG Image Compression, shall support the JPEG Baseline Compression (coding Process 1).

Any implementation which conforms to the DICOM Standard and has elected to support any one of the Transfer Syntaxes for 12-bit lossy JPEG Image Compression, shall support the JPEG Compression Process 4.

Note: The DICOM conformance statement shall differentiate between implementations that can simply receive JPEG encoded images and those that can receive and process JPEG encoded images (see PS 3.2 of the DICOM Standard).

The use of the DICOM Encapsulated Format to support JPEG Compressed Pixel Data implies that the Data Elements which are related to the Native Format Pixel Data encoding (e.g. Bits Allocated, Bits Stored, High Bit, Pixel Representation, Rows, Columns, etc.) shall contain values which are consistent with the characteristics of the uncompressed pixel data from which the compressed Data Stream was derived. The Pixel Data characteristics included in the JPEG Interchange Format shall be used to decode the compressed data stream.

Run Length Encoding Compression

DICOM provides a mechanism for supporting the use of Run Length Encoding (RLE) Compression which is a byte oriented lossless compression scheme through the encapsulated Format (see PS 3.3 of this Standard). Annex G of the DICOM Standard defines RLE Compression and its Transfer Syntax.

Note: The RLE Compression algorithm described in Annex G of the DICOM Standard is the compression used in the TIFF 6.0 specification known as the "PackBits" scheme.

The use of the DICOM Encapsulated Format to support RLE Compressed Pixel Data implies that the Data Elements which are related to the Native Format Pixel Data encoding (e.g. Bits Allocated, Bits Stored, High Bit, Pixel Representation, Rows, Columns, etc.) shall contain values which are consistent with the characteristics of the uncompressed pixel data from which the compressed data was derived.


Overview: Data Element Fields

A Data Element is made up of fields. Three fields are common to all three Data Element structures; these are the Data Element Tag, Value Length, and Value Field. A fourth field, Value Representation, is only present in the two Explicit VR Data Element structures. The Data Element structures are defined in Sections 7.1.2. and 7.1.3. The definitions of the fields are:

Data Element Tag | An ordered pair of 16-bit unsigned integers representing the Group Number followed by Element Number.
Value Representation | A two-byte character string containing the VR of the Data Element. The VR for a given Data Element Tag shall be as defined by the Data Dictionary as specified in PS 3.6 of the DICOM Standard. The two character VR shall be encoded using characters from the DICOM default character set.
Value Length | Either:
 | a 16 or 32-bit (dependent on VR and whether VR is explicit or implicit) unsigned integer containing the Explicit Length of the Value Field as the number of bytes (even) that make up the Value. It does not include the length of the Data Element Tag, Value Representation, and Value Length Fields.
 | or
 | a 32-bit Length Field set to Undefined Length (FFFFFFFFH). Undefined Lengths may be used for Data Elements having the Value Representation (VR) Sequence of Items (SQ). For Data Elements with Value Representation OW or OB Undefined Length may be used depending on the negotiated Transfer Syntax (see Section 10 and Annex A of the DICOM Standard).
Value Field: | An even number of bytes containing the Value(s) of the Data Element.
 | The data type of Value(s) stored in this field is specified by the Data Element's VR. The VR for a given Data Element Tag can be determined using the Data Dictionary in PS 3.6 of the DICOM Standard, or using the VR Field if it is contained explicitly within the Data Element. The VR of Standard Data Elements shall agree with those specified in the Data Dictionary.
 | The Value Multiplicity specifies how many Values with this VR can be placed in the Value Field. If the VM is greater than one, multiple values shall be delimited within the Value Field as defined previously in Section 6.4 of the DICOM Standard. The VMs of Standard Data Elements are specified in the Data Dictionary in PS 3.6 of the DICOM Standard.
 | Value Fields with Undefined Length are delimited through the use of Sequence Delimitation Items and Item Delimitation Data Elements which are described further in Section 7.5 of the DICOM Standard.


Overview: Data Element Structure

Note: This section makes numerous references to VRs such as OB, OW, SQ, etc. For a listing of default information about these Values Representations, refer to the Default Value Representation Table.

Data Element Structure with Explicit VR

When using the Explicit VR structures, the Data Element shall be constructed of four consecutive fields: Data Element Tag, VR, Value Length, and Value. Depending on the VR of the Data Element, the Data Element will be structured as follows:

For VRs of OB, OW, SQ and UN, the 16 bits following the two character VR Field are reserved for use by later versions of the DICOM Standard. These reserved bytes shall be set to 0000H and shall not be used or decoded. The Value Length Field is a 32-bit unsigned integer. If the Value Field has an Explicit Length, then the Value Length Field shall contain a value equal to the length (in bytes) of the Value Field. Otherwise, the Value Field has an Undefined Length and a Sequence Delimitation Item marks the end of the Value Field.

For VRs of UT the 16 bits following the two character VR Field are reserved for use by later versions of the DICOM Standard. These reserved bytes shall be set to 0000H and shall not be used or decoded. The Value Length Field is a 32-bit unsigned integer. The Value Field is required to have an Explicit Length, that is the Value Length Field shall contain a value equal to the length (in bytes) of the Value Field.

Note: VRs of UT may not have an Undefined Length, ie. a Value Length of FFFFFFFFH.

For all other VRs the Value Length Field is the 16-bit unsigned integer following the two character VR Field. The value of the Value Length Field shall equal the length of the Value Field.

An example of a Data Element with an Explicit VR, such as would be the case for data type OB, OW, SQ, or UN is shown below:

An example of a Data Element with an Explicit VR, such as would be the case for data types other than OB, OW, SQ, or UN is shown below:

Data Element Structure with Implicit VR

When using the Implicit VR structure the Data Element shall be constructed of three consecutive fields: Data Element Tag, Value Length, and Value. If the Value Field has an Explicit Length then the Value Length Field shall contain a value equal to the length (in bytes) of the Value Field. Otherwise, the Value Field has an Undefined Length and a Sequence Delimitation Item marks the end of the Value Field.

An example of a Data Element with an Implicit VR is shown below:


Overview: Data Element Type

An attribute, encoded as a Data Element, may or may not be required in a Data Set, depending on that Attribute's Data Element Type.

The Data Element Type of an Attribute of an Information Object Definition or an Attribute of a SOP Class Definition is used to specify whether that Attribute is mandatory or optional. The Data Element Type also indicates if an Attribute is conditional (only mandatory under certain conditions). The Data Element Types of Attributes of Composite IODs are specified in PS 3.3 of the DICOM Standard. The Data Element Types of Attributes of Normalized IODs are specified as Attributes of SOP Classes in PS 3.4 of the DICOM Standard.

Type 1 Required Data Elements

IODs and SOP Classes define Type 1 Data Elements that shall be included and are mandatory elements.

The Value Field shall contain valid data as defined by the elements VR and VM as specified in PS 3.6 of the DICOM Standard.

The Length of the Value Field shall not be zero. Absence of a valid Value in a Type 1 Data Element is a protocol violation.

Type 1C Conditional Data Elements

IODs and SOP Classes define Data Elements that shall be included under certain specified conditions. Type 1C elements have the same requirements as Type 1 elements under these conditions. It is a protocol violation if the specified conditions are met and the Data Element is not included. When the specified conditions are not met, Type 1C elements shall not be included in the Data Set.

Type 2 Required Data Elements

IODs and SOP Classes define Type 2 Data Elements that shall be included and are mandatory Data Elements. However, it is permissible that if a Value for a Type 2 element is unknown it can be encoded with zero Value Length and no Value. If the Value is known the Value Field shall contain that value as defined by the elements VR and VM as specified in PS 3.6 of the DICOM Standard. These Data Elements shall be included in the Data Set and their absence is a protocol violation.

Type 2C Conditional Data Elements

IODs and SOP Classes define Type 2C elements that have the same requirements as Type 2 elements under certain specified conditions. It is a protocol violation if the specified conditions are met and the Data Element is not included.

When the specified conditions are not met, Type 2C elements shall not be included in the Data Set.

Note: An example of a Type 2C Data Element is Inversion Time (0018,0082). For several SOP Class Definitions, this Data Element is required only if the Scanning Sequence (0018,0020) has the Value "IR." It is not required otherwise. See PS 3.3 of the DICOM Standard.

Type 3 Optional Data Elements

IODs and SOP Classes define Type 3 Data Elements that are optional Data Elements. Absence of a Type 3 element from a Data Set does not convey any significance and is not a protocol violation. Type 3 elements may also be encoded with zero length and no Value. The meaning of a zero length Type 3 Data Element shall be precisely the same as that element being absent from the Data Set.


Overview: Definitions

The following definitions pertain to Information Object Definitions and are commonly used in the DICOM Standard.

Attribute tag: | A unique identifier for an Attribute of an Information Object composed of an ordered pair of numbers (a Group Number followed by an Element number).
Composite IOD: | an Information Object Definition which represents parts of several entities in the DICOM Application Model. Such an IOD includes Attributes which are not inherent in the Real-World Object that the IOD represents but rather are inherent in related Real-World Objects.
Derived image: | an image in which the pixel data was constructed from pixel data of one or more other images (source images).
DICOM information model: | an Entity-Relationship diagram which is used to model the relationships between the Information Object Definitions representing classes of Real-World Objects defined by the DICOM Application Model.
DICOM application model: | an Entity-Relationship diagram used to model the relationships between Real-World Objects which are within the area of interest of the DICOM Standard.
Information entity: | that portion of information defined by a Composite IOD which is related to one specific class of Real-World Object. There is a one-to-one correspondence between Information Entities and entities in the DICOM Application Model.
Information object definition (IOD): | a data abstraction of a class of similar Real-World Objects which defines the nature and Attributes relevant to the class of Real-World Objects represented.
Module: | A set of Attributes within an Information Entity or Normalized IOD which are logically related to each other.
Multi-frame image: | Image that contains multiple two-dimensional pixel planes.
Normalized IOD: | an Information Object Definition which represents a single entity in the DICOM Application Model. Such an IOD includes Attributes which are only inherent in the Real-World Object that the IOD represents.
Cine run: | A set of temporally related frames acquired at constant or variable frame rates. This term incorporates the general class of serialography.


Overview: Delimitation of the Sequence of Items

Delimitation of the last Item of a Sequence of Items, encapsulated in a Data Element of Value Representation SQ, shall be in one of the two following ways:

Explicit Length: The number of bytes (even) contained in the Data Element Value (following but not including the Data Element Length Field) is encoded as a 32-bit unsigned integer value (see Section 7.1 of the DICOM Standard). This length shall include the total length resulting from the sequence of zero or more items conveyed by this Data Element. This Data Element Length shall be equal to 00000000H if the sequence of Items contains zero Items.

Undefined Length: The Data Element Length Field shall contain a Value FFFFFFFFH to indicate an Undefined Sequence length. It shall be used in conjunction with a Sequence Delimitation Item. A Sequence Delimitation Item shall be included after the last Item in the sequence. Its Item Tag shall be (FFFE,E0DD) with an Item Length of 00000000H. No Value shall be present.

The encoder of a Sequence of Items may choose either one of the two ways of encoding. Both ways of encoding shall be supported by decoders of the Sequence of Items.

Note: The Sequence Delimitation Item Tag (FFFE,E0DD) is different from the Item Delimitation Tag (FFFE,E00D) introduced above in that it indicates the end of a Sequence of Items whose Length was left undefined. If an undefined length Item is the last Item of a Sequence of Items of undefined length, then an Item Delimitation Tag will be followed by a Sequence Delimitation Tag.

Note: An encapsulated Data Set does not include the Specific Character Set data element unless the Specific Character Set Attribute is defined as part of the IOD for that sequence.

If an encapsulated Data Set includes the Specific Character Set Attribute, it shall apply only to the encapsulated Data Set. If the Attribute Specific Character Set is not explicitly included in an encapsulated Data Set, then the Specific Character Set value of the encapsulating Data Set applies.

DE | Data Element
DE-SQ | Sequence of Items
DE-SQD | Sequence Delimitation Item
DE-I | Item
DE-ID | Item Delimitation Data Element

Please note the DE-SQD and DE-ID items are added internally. You do not have to explicitly add these items.


Overview: Encoding of Pixel Data

The Pixel Data Element (7FE0,0010) shall be used for the exchange of encoded graphical image data. This element along with additional Data Elements, specified as Attributes of the Image Information Entities defined in PS 3.3 of the DICOM Standard, shall be used to describe the way in which the Pixel Data is encoded and shall be interpreted. Finally, depending on the negotiated Transfer Syntax (see Section 10 and Annex A of the DICOM Standard), Pixel Data may be compressed.

The Pixel Data Element (7FE0,0010) has a VR of OW or OB, depending on the negotiated Transfer Syntax (see Annex A of the DICOM Standard). The only difference between OW and OB being that OB, a string of bytes, shall be unaffected by Byte Ordering (see Section 7.3 of the DICOM Standard).


Overview: Group Length

The Group Length (gggg,0000) Standard Data Element shall be an optional (Type 3 Data Element Type) Data Element in DICOM V3.0 (see Section 7.4 of the DICOM Standard for a description of Data Element Types). It provides an optional optimization scheme in partial parsing of Data Sets by allowing the skipping of entire groups of Data Elements. Implementations may or may not choose to encode explicit Group Length in a Data Set. All implementations shall be able to accept or ignore such elements.


Overview: Information Object Definitions

The Part PS 3.3 of the DICOM Standard specifies the set of Information Object Definitions (IODs) which provide an abstract definition of real-world objects applicable to communication of digital medical information. This standard was developed by American College of Radiology (ACR) and National Electrical Manufacturers Association (NEMA).

An Information Object Definition (IOD) is an object-oriented abstract data model used to specify information about Real-World Objects. An IOD provides communicating Application Entities with a common view of the information to be exchanged.

An IOD does not represent a specific instance of a Real-World Object, but rather a class of Real-World Objects which share the same properties. An IOD used to generally represent a single class of Real-World Objects is called a Normalized Information Object. An IOD which includes information about related Real-World Objects is called a Composite Information Object.

The illustration below shows the structure of an Information Object Definition. Each class consists of one or more modules, where each module consists of one or more elements. For details concerning Information Object Definitions, refer to the DICOM Standard.

For an example of a Class, refer to Class Example.

For examples of Modules, refer to Module Examples.

The following topics also pertain to Information Object Definitions:

Composite IOD

Normalized IOD

Attributes

Normalized and Composite SOP Classes

Modules

Definitions


Overview: Item Encoding Rules

Each Item of a Data Element of Value Representation SQ shall be encoded as a DICOM Standard Data Element with a specific Data Element Tag of Value (FFFE,E000). The Item Tag is followed by a 4 byte Item Length field encoded in one of the following two ways:

Explicit Length: The number of bytes (even) contained in the Sequence Item Value (following but not including the Item Length Field) is encoded as a 32-bit unsigned integer value (see Section 7.1 of the DICOM Standard). This length shall include the total length of all Data Elements conveyed by this Item. This Item Length shall be equal to 00000000H if the Item contains no Data Set.

Undefined Length: The Item Length Field shall contain the value FFFFFFFFH to indicate an undefined Item length. It shall be used in conjunction with an Item Delimitation Data Element. This Item Delimitation Data Element has a Data Element Tag of (FFFE,E00D) and shall follow the Data Elements encapsulated in the Item. No Value shall be present in the Item Delimitation Data Element and its Length shall be 00000000H.

The encoder of a Data Set may choose either one of the two ways of encoding. Both ways of encoding shall be supported by decoders of Data Sets. Data Element Tags (FFFF,eeee) are reserved by this standard and shall not be used.

Each Item Value shall contain a DICOM Data Set composed of Data Elements. Within the context of each Item, these Data Elements shall be ordered by increasing Data Element Tag value and appear only once (as Data Set is defined in Section 7.1 of the DICOM Standard). There is no relationship between the ordering of the Data Elements contained within an Item and the ordering of the Data Element Tag of SQ Value Representation that contains that Item. One or more Data Elements in an Item may be of Value Representation SQ, thus allowing for recursion.

Section 7.8 of the DICOM Standard specifies rules for incorporating Private Data Elements into Sequence Items.


Overview: Modules

Mandatory Modules

For each IOD, Mandatory Modules shall be supported per the definitions, semantics and requirements defined in Annex C.

Conditional Modules

Conditional Modules are Mandatory Modules if specific conditions are met. If the specified conditions are not met, this Module shall not be supported; that is, no information defined in that Module shall be sent.

User Option Modules

User Option Modules may or may not be supported. If an optional Module is supported, the Attribute Types specified in the Modules in Annex C shall be supported.


Overview: Native or Encapsulated Format Encoding

Pixel data conveyed in the Pixel Data Element (7FE0,0010) may be sent either in a Native (uncompressed) Format or in an Encapsulated Format (e.g. compressed) defined outside the DICOM standard.

If Pixel Data is sent in a Native Format, the Value Representation OW is most often required. The Value Representation OB may also be used for Pixel Data in cases where Bits Allocated has a value less than or equal to 8, but only with Transfer Syntaxes where the Value Representation is explicitly conveyed (see Annex A of the DICOM Standard).

Note: The DICOM default Transfer Syntax (Implicit VR Little Endian) does not explicitly convey Value Representation and therefore the VR of OB may not be used for Pixel Data when using the default Transfer Syntax.

Native format Pixel Cells are encoded as the direct concatenation of the bits of each Pixel Cell, where the most significant bit of a Pixel Cell is immediately followed by the least significant bit of the next Pixel Cell. The number of bits of each Pixel Cell is defined by the Bits Allocated (0028,0100) Data Element Value. When a Pixel Cell crosses a word boundary in the OW case, or a byte boundary in the OB case, it shall continue to be encoded, least significant bit to most significant bit, in the next word, or byte, respectively (see Annex D of the DICOM Standard). For Pixel Data encoded with the Value Representation OW, the byte ordering of the resulting 2-byte words is defined by the Little Endian or Big Endian Transfer Syntaxes negotiated at the Association Establishment (see Annex A of the DICOM Standard).

Note:

a) For Pixel Data encoded with the Value Representation OB, the Pixel Data encoding is unaffected by Little Endian or Big Endian byte ordering.

b) If encoding Pixel Data with a Value for Bits Allocated (0028,0100) not equal to 16 be sure to read and understand Annex D of the DICOM Standard.

If sent in an Encapsulated Format (i.e. other than the Native Format) the Value Representation OB is used. The Pixel Cells are encoded according to the encoding process defined by one of the negotiated Transfer Syntaxes (see Annex A of the DICOM Standard). The encapsulated pixel stream of encoded pixel data is segmented in one or more Fragments which convey their explicit length. The sequence of Fragments of the encapsulated pixel stream is terminated by a delimiter, thus allowing the support of encoding processes where the resulting length of the entire pixel stream is not known until it is entirely encoded. This Encapsulated Format supports both Single-Frame and Multi-Frame images (as defined in PS 3.3 of the DICOM Standard).


Overview: Nesting of Data Sets

The VR identified "SQ" shall be used for Data Elements with a Value consisting of a Sequence of zero or more Items, where each Item contains a set of Data Elements. SQ provides a flexible encoding scheme that may be used for simple structures of repeating sets of Data Elements, or the encoding of more complex Information Object Definitions often called folders. SQ Data Elements can also be used recursively to contain multi-level nested structures.

The definition of the Data Elements encapsulated in each Item is provided by the specification of the Data Element (or associated Attribute) of Value Representation SQ. Items in a sequence of Items may or may not contain the same set of Data Elements. Data Elements with a VR of SQ may contain multiple Items but shall always have a Value Multiplicity of one (ie. a single Sequence).

There are three special SQ related Data Elements that are not ruled by the VR encoding rules conveyed by the Transfer Syntax. They shall be encoded as Implicit VR. These special Data Elements are Item (FFFE,E000), Item Delimitation Item (FFFE,E00D), and Sequence Delimitation Item (FFFE,E0DD). However, the Data Set within the Value Field of the Data Element Item (FFFE,E000) shall be encoded according to the rules conveyed by the Transfer Syntax.

For more information about the SQ VR, refer to the Default Value Representation Table.


Overview: Normalized and Composite SOP Classes

DICOM defines two types of SOP Classes, Normalized and Composite. Normalized SOP Classes are defined as the union of a Normalized IOD and a set of DIMSE-N Services. Composite SOP Classes are defined as the union of a Composite IOD and a set of DIMSE-C Services.


Overview: Normalized IOD

A Normalized IOD is an Information Object Definition which generally represents a single entity in the DICOM Model of the Real-World.

In this Standard, strict definition of Normalized Object Definitions has not been applied. Application of strict definitions would often result in unnecessary complexity and reduced performance of implementations for several applications.


Overview: Pixel Data Encoding of Related Data Elements

Encoded Pixel Data of various bit depths shall be accommodated. The following three Data Elements shall define the Pixel structure:

Bits Allocated (0028,0100)

Bits Stored (0028,0101)

High Bit (0028,0102)

Each Pixel Cell shall contain a single Pixel Sample Value. The size of the Pixel Cell shall be specified by Bits Allocated (0028,0100). Bits Stored (0028,0101) defines the total number of these allocated bits that will be used to represent a Pixel Sample Value. Bits Stored (0028,0101) shall never be larger than Bits Allocated (0028,0100). High Bit (0028,0102) specifies where the high order bit of the Bits Stored (0028,0101) is to be placed with respect to the Bits Allocated (0028,0100) specification. Bits not used for Pixel Sample Values can be used for overlay planes described further in PS3.3 of the DICOM Standard.

Note: For example, in Pixel Data with 16 bits (2 bytes) allocated, 12 bits stored, and bit 15 specified as the high bit, one pixel sample is encoded in each 16-bit word, with the 4 least significant bits of each word not containing Pixel Data. See Annex D of the DICOM Standard for other examples of the basic encoding schemes.

Starting with DICOM Version 3.0, restrictions are placed on acceptable Values for Bits Allocated (0028,0100), Bits Stored (0028,0101), and High Bit (0028,0102) and are specified in the Information Object Definitions in PS3.3. Also, the Value Field containing Pixel Data, like all other Value Fields in DICOM, shall be an even number of bytes in length. This means that the Value Field may need to be padded with data that is not part of the image and shall not be considered significant. If needed, the padding bits shall be appended to the end of the Value Field.

The field of bits representing the value of a Pixel Sample shall be a binary 2's complement integer or an unsigned integer, as specified by the Data Element Pixel Representation (0028,0103). The sign bit shall be the High Bit in a Pixel Sample Value that is a 2's complement integer. The minimum actual Pixel Sample Value encountered in the Pixel Data is specified by Smallest Image Pixel Value (0028,0106) while the maximum value is specified by Largest Image Pixel Value (0028,0107).


Overview: Private Data Elements

Implementations may require communication of information that cannot be contained in Standard Data Elements. Private Data Elements are intended to be used to contain such information.

Private Data Elements have the same structure as Standard Data Elements specified earlier in Section 7.1 of the DICOM Standard (i.e., Data Element Tag field, optional VR field, length field, and value field). The Group Number used in the Element Tag of Private Data Elements shall be an odd number. Private Data Elements shall be contained in the Data Set in increasing numeric order of Data Element Tag. The Value Field of a Private data element shall have one of the VRs specified by this standard in Section 6.2 of the DICOM Standard.

For each Information Object Definition or SOP Class Definition, certain Data Elements are required (Data Element Type 1, 1C, 2, or 2C) as specified in PS 3.3 and PS 3.4 of the DICOM Standard. Private Data Elements shall not be used in place of required Standard Data Elements.


Overview: Private Data Element Tags

It is possible that multiple implementors may define Private Elements with the same (odd) group number. To avoid conflicts, Private Elements shall be assigned Private Data Element Tags according to the following rules.

Private Creator Data Elements numbered (gggg,0010-00FF) (gggg is odd) shall be used to reserve a block of Elements with Group Number gggg for use by an individual implementor. The implementor shall insert an identification code in the first unused (unassigned) Element in this series to reserve a block of Private Elements. The VR of the private identification code shall be LO (Long String) and the VM shall be equal to 1.

Private Creator Data Element (gggg,0010), is a Type 1 Data Element that identifies the implementor reserving element (gggg,1000-10FF), Private Creator Data Element (gggg,0011) identifies the implementor reserving elements (gggg,1100-11FF), and so on, until Private Creator Data Element (gggg,00FF) identifies the implementor reserving elements (gggg,FF00-FFFF).

Encoders of Private Data Elements shall be able to dynamically assign private data to any available (unreserved) block(s) within the Private group, and specify this assignment through the blocks corresponding Private Creator Data Element(s). Decoders of Private Data shall be able to accept reserved blocks with a given Private Creator identification code at any position within the Private group specified by the blocks corresponding Private Creator Data Element.

Note:

a) The versions of this standard prior to V3.0 described shadow groups. These were groups with a group number one greater than the standard groups. Elimination of conflicts in Private Data Element Tags have made this distinction obsolete and this terminology has been retired.

b) The versions of this standard prior to V3.0 specified private group element numbers (gggg,10FF-7FFF) reserved for manufacturers and private group element numbers (gggg, 8100-FFFF) reserved for users. Elimination of conflicts in Private Data Element Tags has made this distinction obsolete and this specification has been retired.

Since each Item within a sequence is a self contained Data Set (see Section 7.5 of the DICOM Standard on the nesting of Data Sets via Sequences of Items), any Item which contains Private Data Elements shall also have Private Creator Data Elements reserving blocks of Elements for those Private Data Elements. The scope of the reservation is just within the Item. Items do not inherit the Private Data Element reservations made by Private Creator Data Elements in the Data Set in which the Item is nested.


Overview: Repeating Groups

Multiple Overlay Planes and Curves are often associated with a single Image (see PS 3.3 of the DICOM Standard). Standard Data Elements with even Group Numbers (5000-501E,eeee) represent Curves, while elements with even Group Numbers (6000-601E,eeee) represent Overlay Planes. Both of these ranges of Group numbers are known as Repeating Groups. This use of group numbers is a remnant of versions of this standard prior to V3.0 that associated a semantic meaning with particular Groups.

In each of these ranges of Group Numbers, Standard Data Elements that have identical Element Numbers have the same meaning within each Group (and the same VR, VM, and Data Element Type). The notation (50xx,eeee) and (60xx,eeee) are used for the Group Number in Data Element Tags when referring to a common Data Element across these groups (see PS 3.6). Groups (50xx,eeee) and (60xx,eeee) are called Repeating Groups because of these characteristics. Repeating Groups shall only be allowed in the even Groups (6000-601E,eeee) and even Groups (5000-501E,eeee) cases. In the future, Data Elements with VRs of SQ shall be used to serve a similar purpose.

Note: Private Groups in the odd Groups (5001-501F,eeee) and (6001-601F,eeee) may still be used, but there is no implication of repeating semantics, nor any implied shadowing of the standard repeating groups.


Overview: Retired Data Elements

Certain Data Elements are no longer supported beginning with Version 3.0 of this standard. These Data Elements are retired and are denoted as such (RET) in the VR column in PS 3.6 of the DICOM Standard. Implementations may continue to support these Data Elements for the purpose of backward compatibility with versions of this standard prior to V3.0, but this is not a requirement of this standard. If a retired Data Element is used it must contain valid data as specified in versions of this standard prior to V3.0. Any other use of a retired Data Element, and its associated Data Element Tag, is reserved by this standard. Retired Data Element Tags shall not be redefined in later versions of this standard.


Overview: Unique Identifiers

Unique Identifiers (UIDs) provide the capability to uniquely identify a wide variety of items. They guarantee uniqueness across multiple countries, sites, vendors and equipment. This scheme is used in DICOM to uniquely identify items such as SOP Classes, image instances, network negotiation parameters, etc.

The UID identification scheme is based on the OSI Object Identification (numeric form) as defined by the ISO 8824 standard. All Unique Identifiers, used within the context of the DICOM Standard, are registered values as defined by ISO 9834-3 to ensure global uniqueness. The uses of such UIDs are defined in the various Parts of the DICOM Standard.

Each UID is composed of two parts, an <org root> and a <suffix>:

UID = <org root>.<suffix>

The <org root> portion of the UID uniquely identifies an organization, (i.e., manufacturer, research organization, NEMA, etc.), and is composed of a number of numeric components as defined by ISO 8824. The <suffix> portion of the UID is also composed of a number of numeric components, and shall be unique within the scope of the <org root>. This implies that the organization identified in the <org root> is responsible for guaranteeing <suffix> uniqueness by providing registration policies. These policies shall guarantee <suffix> uniqueness for all UID's created by that organization. Unlike the <org root>, which may be common for UID's in an organization, the <suffix> shall take different unique values between different UID's that identify different objects.

The <org root> "1.2.840.10008" is reserved for DICOM defined items (such as DICOM Transfer Syntaxes) and shall not be used for privately defined items (such as an Image Instance).

Although a specific implementation may choose some particular structure for its generated UIDs, it should never assume that a UID carries any semantics. Thus, a UID shall not be "parsed" to find a particular value or component. Component definition (for the suffix) is implementation specific and may change as long as uniqueness is maintained. Parsing UID's may jeopardize the ability to inter-operate as implementations evolve.

Note: For a listing of UIDs supported by DICOM, refer to the Default UID Table.


Overview: Value Multiplicity (VM) and Delimitation

The Value Multiplicity of a Data Element specifies the number of Values that can be encoded in the Value Field of that Data Element. The VM of each Data Element is specified explicitly in PS 3.6 of the DICOM Standard. If the number of Values that may be encoded in an element is variable, it shall be represented by two numbers separated by a dash; e.g., "1-10" means that there may be 1 to 10 Values in the element.

Note: Elements having a multiplicity of "S", which represented "single", in versions of this standard preceding V3.0, will have a multiplicity of "1" in this version of this standard.

When a Data Element has multiple Values, those Values shall be delimited as follows:

For character strings, the character 5CH (BACKSLASH "\" in the case of the repertoire ISO IR-6) shall be used as a delimiter between Values.

Note: BACKSLASH ("\") is used as a delimiter between character string Values that are of fixed length as well as variable length.

Multiple binary Values of fixed length shall be a series of concatenated Values without any delimiter.

Each string Value in a multiple valued character string may be of even or odd length, but the length of the entire Value Field (including "\" delimiters) shall be of even length. If padding is required to make the Value Field of even length, a single padding character shall be applied to the end of the Value Field (to the last Value).

Note: A padding character may need to be appended to a fixed length character string value in the above case.

Only the last UID Value in a multiple valued Data Element with a VR of UI shall be padded with a single trailing NULL (00H) character when necessary to ensure that the entire Value Field (including "\" delimiters) is of even length.

Data Elements with a VR of SQ, OW, OB or UN shall always have a Value Multiplicity of one. For a listing of default information about supported VRs, refer to the Default Value Representation Table.


Overview: Value Representations

The Value Representation of a Data Element describes the data type and format of that Data Element's Value(s). PS 3.6 of the DICOM Standard lists the VR of each Data Element by Data Element Tag.

Values with VRs constructed of character strings, except in the case of the VR UI, shall be padded with SPACE characters (20H, in the Default Character Repertoire) when necessary to achieve even length. Values with a VR of UI shall be padded with a single trailing NULL (00H) character when necessary to achieve even length. Values with a VR of OB shall be padded with a single trailing NULL byte value (00H) when necessary to achieve even length.

All new VRs defined in future versions of DICOM shall be of the same Data Element Structure as defined in Section 7.1.2 of the DICOM Standard (i.e. following the format for VRs such as OB, OW, SQ and UN).

Note: Since all new VRs will be defined as specified in section 7.1.2, an implementation may choose to ignore VRs not recognized by applying the rules stated in Section 7.1.2 of the DICOM Standard.

An individual Value, including padding, shall not exceed the Length of Value. For multi-valued fields see Section 6.4 – PS 3.5 of the DICOM Standard.

Note: The length of Value Representations for which the Character Repertoire can be extended or replaced are expressly specified in characters rather than bytes in Table 6.2-1 of the DICOM Standard. This is because the mapping from a character to the number of bytes used for that character’s encoding may be dependent on the character set used.

Escape Sequences used for Code Extension shall not be included in the count of characters.

Note: For a listing of default information about Values Representations, refer to the Default Value Representation Table.


Class Example

The following is an example of the contents of the Computed Radiography Image Class IOD:

Example Class: Computed Radiography Image (CR Image)

Module: Patient

Element: Patient's Name

Element: Patient ID

Element: Patient's Birth Date

Element: Patient's Sex

Element: Referenced Patient Sequence

Element: Referenced SOP Class UID

Element: Referenced SOP Instance UID

Element: Patient's Birth Time

Element: Other Patient ID

Element: Other Patient Names

Element: Ethnic Group

Element: Patient Comments

Module: General Study

Element: Study Instance UID

Element: Study Date

Element: Study Time

Element: Referring Physician's Name

Element: Study ID

Element: Accession Number

Element: Study Description

Element: Physician(s) of Record

Element: Name of Physician(s) Reading Study

Element: Referenced Study Sequence

Element: Referenced SOP Class UID

Element: Referenced SOP Instance UID

Module: Patient Study

Element: Admitting Diagnoses Description

Element: Patient's Age

Element: Patient's Size

Element: Patient's Weight

Element: Occupation

Element: Additional Patient's History

Module: General Series

Element: Modality

Element: Series Instance UID

Element: Series Number

Element: Laterality

Element: Series Date

Element: Series Time

Element: Performing Physicians' Name

Element: Protocol Name

Element: Series Description

Element: Operators' Name

Element: Referenced Study Component Sequence

Element: Referenced SOP Class UID

Element: Referenced SOP Instance UID

Element: Body Part Examined

Element: Patient Position

Element: Smallest Pixel Value in Series

Element: Largest Pixel Value in Series

Element: Request Attributes Sequence

Element: Requested Procedure ID
Element: Scheduled Procedure Step ID
Element: Scheduled Procedure Step Description
Element: Scheduled Action Item Code Sequence
 | Element: Code Value
 | Element: Coding Scheme Designator
 | Element: Code Meaning

Element: Performed Procedure Step ID

Element: Performed Procedure Step Start Date

Element: Performed Procedure Step Start Time

Element: Performed Procedure Step Description

Module: CR Series

Element: Body Part Examined

Element: View Position

Element: Filter Type

Element: Collimator/grid name

Element: Focal Spot

Element: Plate Type

Element: Phosphor Type

Module: General Equipment

Element: Manufacturer

Element: Institution Name

Element: Institution Address

Element: Station Name

Element: Institutional Department Name

Element: Manufacturer's Model Name

Element: Device Serial Number

Element: Software Versions

Element: Spatial Resolution

Element: Date of Last Calibration

Element: Time of Last Calibration

Element: Pixel Padding Value

Module: General Image

Element: Image Number

Element: Patient Orientation

Element: Image Date

Element: Image Time

Element: Image Type

Element: Acquisition Number

Element: Acquisition Date

Element: Acquisition Time

Element: Referenced Image Sequence

Element: Referenced SOP Class UID

Element: Referenced SOP Instance UID

Element: Derivation Description

Element: Source Image Sequence

Element: Referenced SOP Class UID

Element: Referenced SOP Instance UID

Element: Images in Acquisition

Element: Image Comments

Element: Lossy Image Compression

Module: Image Pixel

Element: Samples per Pixel

Element: Photometric Interpretation

Element: Rows

Element: Columns

Element: Bits Allocated

Element: Bits Stored

Element: High Bit

Element: Pixel Representation

Element: Pixel Data

Element: Planar Configuration

Element: Pixel Aspect Ratio

Element: Smallest Image Pixel Value

Element: Largest Image Pixel Value

Element: Red Palette Color Lookup Table Descriptor

Element: Green Palette Color Lookup Table Descriptor

Element: Blue Palette Color Lookup Table Descriptor

Element: Red Palette Color Lookup Table Data

Element: Green Palette Color Lookup Table Data

Element: Blue Palette Color Lookup Table Data

Module: Contrast/bolus

Element: Contrast/Bolus Agent

Element: Contrast/Bolus Agent Sequence

Element: Code Value

Element: Coding Scheme Designator

Element: Code Meaning

Element: Contrast/Bolus Route

Element: Contrast/Bolus Administration Route Sequence

Element: Code Value
Element: Coding Scheme Designator
Element: Code Meaning
Element: Additional Drug Sequence
 | Element: Code Value
 | Element: Coding Scheme Designator
 | Element: Code Meaning

Element: Contrast/Bolus Volume

Element: Contrast/Bolus Start Time

Element: Contrast/Bolus Stop Time

Element: Contrast/Bolus Total Dose

Element: Contrast Flow Rate(s)

Element: Contrast Flow Duration(s)

Element: Contrast/Bolus Ingredient

Element: Contrast/Bolus Ingredient Concentration

Module: CR Image

Element: KVP

Element: Plate ID

Element: Distance Source to Detector

Element: Distance Source to Patient

Element: Exposure Time

Element: X-ray Tube Current

Element: Exposure

Element: Exposure in mAs

Element: Imager Pixel Spacing

Element: Generator Power

Element: Acquisition Device Processing Description

Element: Acquisition Device Processing Code

Element: Cassette Orientation

Element: Cassette Size

Element: Exposures on Plate

Element: Relative X-ray Exposure

Element: Sensitivity

Module: Overlay Plane

Element: Overlay Rows

Element: Overlay Columns

Element: Overlay Type

Element: Overlay Origin

Element: Overlay Bits Allocated

Element: Overlay Bit Position

Element: Overlay Data

Element: Overlay Description

Element: Overlay Subtype

Element: Overlay Label

Element: ROI Area

Element: ROI Mean

Element: ROI Standard Deviation

Module: Curve

Element: Curve Dimensions

Element: Number of Points

Element: Type of Data

Element: Data Value Representation

Element: Curve Data

Element: Curve Description

Element: Axis Units

Element: Axis Labels

Element: Minimum Coordinate Value

Element: Maximum Coordinate Value

Element: Curve Range

Element: Curve Data Descriptor

Element: Coordinate Start Value

Element: Coordinate Step Value

Element: Curve Label

Element: Referenced Overlay Sequence

Element: Referenced SOP Class UID

Element: Referenced SOP Instance UID

Element: Referenced Overlay Group

Module: Modality LUT

Element: Modality LUT Sequence

Element: LUT Descriptor

Element: LUT Explanation

Element: Modality LUT Type

Element: LUT Data

Element: Rescale Intercept

Element: Rescale Slope

Element: Rescale Type

Module: VOI LUT

Element: VOI LUT Sequence

Element: LUT Descriptor

Element: LUT Explanation

Element: LUT Data

Element: Window Center

Element: Window Width

Element: Window Center & Width Explanation

Module: SOP Common

Element: SOP Class UID

Element: SOP Instance UID

Element: Specific Character Set

Element: Instance Creation Date

Element: Instance Creation Time

Element: Instance Creator UID


Module Example

Below are graphical representations of a General Study Module and a Patient Module. For an example of a Class, refer to Class Example.


Example Programs

Note:

You can run some of the example programs on your system by clicking the appropriate buttons in online help. An error message will appear if you try to run an example program that is not on your system, or if you try to run a Delphi example without Delphi on your system.

The executable files for these examples were compiled with Medical toolkit capabilities of the toolkit. To get Medical toolkit capabilities, you must buy a LEADTOOLS Medical toolkit. Otherwise, if you recompile the examples, the resulting executable files will not have the Medical toolkit capabilities.

C++Builder

EXAMPLES\VCL\BUILDER\DICOM contains sample project code for C++Builder. You can open the project in C++Builder; then compile and run it.

Delphi

EXAMPLES\VCL\BUILDER\DICOM contains sample project code for Delphi. You can open the project in Delphi; then compile and run it.


Version History

Current version: | 14.5
Last update: | October 20, 2005

Changes from Version 14 to Version 14.5

Changes from Version 13 to Version 14

Changes from Version 12.1 to Version 13

Changes from Version 12 to Version 12.1

Changes from Version 11.5 to Version 12

Version 11 (11.5)


Changes from Version 14 to Version 14.5

Version 14.5 of the LEADTOOLS DICOM VCL has not changed from version 14.


Changes from Version 13 to Version 14

Version 14 of the LEADTOOLS DICOM VCL has not changed from version 13.


Changes from Version 12.1 to Version 13

Version 13 of the LEADTOOLS DICOM VCL has changed from version 12.1 as follows:

LEADTOOLS DICOM VCL now supports searching the DICOM Dir data set, maneuvering through the data set, inserting and deleting key elements, and manipulating key elements.

DeleteKey method

FindFirstKey method

FindLastKey method

FindNextKey method

FindPrevKey method

GetInfoCS method

GetKeyValue method

hDicDS property

InfoCommand property

InfoRequest property

InitCS method

InsertDS method

InsertKey method

MoveChildKey method

MoveFirstKey method

MoveLastKey method

MoveNextKey method

MoveParentKey method

MovePrevKey method

MoveRootKey method


Changes from Version 12 to Version 12.1

Version 12.1 of the LEADTOOLS DICOM VCL has changed from version 12 as follows:

LEADTOOLS DICOM VCL now supports several new classes, including:

Grayscale Softcopy Presentation State

Basic Voice Audio

12-Lead ECG

General ECG

Ambulatory ECG

Hemodynamic

Basic Cardiac EP

LEADTOOLS DICOM VCL now supports several new UIDs, including:

JPEG-LS Lossless Image Compression Transfer Syntax

JPEG-LS Lossy (Near-Lossless) Image Compression Transfer Syntax

Ambulatory ECG Waveform Storage

Hemodynamic Waveform Storage

Cardiac Electrophysiology Waveform Storage

Basic Voice Audio Waveform Storage

Grayscale Softcopy Presentation State Storage

LEADTOOLS DICOM VCL now supports several new Modules, including:

Presentation series

Presentation state

Bitmap display shutter

Overlay curve activation

Displayed area

Graphic annotation

Spatial transformation

Graphic layer

Softcopy VOI LUT

Softcopy presentation LUT

Synchronization

Waveform identification

Waveform

Waveform annotation


Changes from Version 11.5 to Version 12

Version 12 of the LEADTOOLS DICOM VCL has changed from version 11.5 as follows:

LEADTOOLS DICOM VCL now supports several new classes, including:

Radiotherapy Beams Treatment Record Class

Radiotherapy Brachy Treatment Record Class

Visible Light Endoscopic Image Class

Visible Light Microscopic Image Class

Visible Light Photographic Image Class

DICOM Server Demo is now available.

Support for the December 1999 DICOM 3.0 Specification is provided.

Optimized memory management, increasing the speed of all DICOM functions.

Optimized DICOM image processing while loading DICOM images. (Faster LUT, faster palette, faster color space conversion)

Added a caching mechanism between disk and memory for optimal speed.

Redesigned the communication process between the DICOM module and the compression filters (JPEG, RLE).


Version 11.5

Version 11.5 is the first version of the LEADTOOLS DICOM VCL.

Extensive DICOM file format support is now provided. (Medical Express toolkits only)

The rest of this section contains the new properties, methods, and events for version 11.5

DICOM Control

AgeValueCount property

AgeValues property

BinaryValueCount property

BinaryValues property

Bitmap property

BitmapList property

BitmapListCount property

CharValueCount property

CharValues property

ConformanceTestDS method

CurrentElement property

CurrentIOD property

CurrentModule property

CurrentTag property

CurrentUID property

CurrentVR property

DateTimeValueCount property

DateTimeValues property

DateValueCount property

DateValues property

DefaultIOD method

DefaultTag method

DefaultUID method

DefaultVR method

DeleteBitmapValue method

DeleteElement method

DeleteIOD method

DeleteModule method

DeleteTag method

DeleteUID method

DeleteVR method

DoubleValueCount property

DoubleValues property

DSTempPath property

EnableConformanceStatus property

EnableMethodErrors property

EnableProgressEvent property

FindClassIOD method

FindFirstElement method

FindIndexModule method

FindIndexTag method

FindIndexUID method

FindIndexVR method

FindIOD method

FindLastElement method

FindModule method

FindModuleIOD method

FindNextElement method

FindPrevElement method

FindTag method

FindUID method

FindVR method

FloatValueCount property

FloatValues property

GetAgeValue method

GetBinaryValue method

GetBitmapCount method

GetBitmapListValue method

GetBitmapValue method

GetCharValue method

GetConvertValue method

GetDateTimeValue method

GetDateValue method

GetDoubleValue method

GetDSPreamble method

GetElementLevel method

GetFloatValue method

GetImageInformation method

GetInfoDS method

GetLongValue method

GetModuleCount method

GetShortValue method

GetStringValue method

GetTagCount method

GetTimeValue method

GetUIDCount method

GetValueCount method

GetVRCount method

ImageInfo property

IncludeVolatile property

InfoClass property

InfoFlags property

InitDS method

InsertBitmapListValue method

InsertBitmapValue method

InsertElement method

InsertIOD method

InsertModule method

InsertTag method

InsertUID method

InsertVR method

IsSupportLocked method

LoadDS method

LongValueCount property

LongValues property

MoveChildElement method

MoveChildIOD method

MoveFirstElement method

MoveFirstIOD method

MoveFirstTag method

MoveFirstUID method

MoveFirstVR method

MoveLastElement method

MoveLastIOD method

MoveLastTag method

MoveLastUID method

MoveLastVR method

MoveNextElement method

MoveNextIOD method

MoveNextTag method

MoveNextUID method

MoveNextVR method

MoveParentElement method

MoveParentIOD method

MovePrevElement method

MovePrevIOD method

MovePrevTag method

MovePrevUID method

MovePrevVR method

MoveRootElement method

MoveRootIOD method

OnConformanceStatus event

OnProgressStatus event

Preamble property

ResetDS method

ResetIOD method

ResetTag method

ResetUID method

ResetVR method

SaveDS method

SetAgeValue method

SetBinaryValue method

SetBitmapListValue method

SetBitmapValue method

SetCharValue method

SetConvertValue method

SetCurrentElement method

SetCurrentIOD method

SetDateTimeValue method

SetDateValue method

SetDoubleValue method

SetDSPreamble method

SetFloatValue method

SetIODDescription method

SetIODName method

SetLongValue method

SetShortValue method

SetStringValue method

SetTagName method

SetTimeValue method

SetUIDName method

SetVRName method

ShortValueCount property

ShortValues property

StringValueCount property

StringValues property

TimeValueCount property

TimeValues property

UnlockSupport method


Copyright notice

Copyright Notices

©Copyright LEAD Technologies, Inc. 1991-2005. ALL RIGHTS RESERVED

Portions of the PCDLIB32.DLL, PCDLIB.DLL, LFFPX7.DLL, LFKODAK.DLL, EKFPIXJPEG140.DLL, PDC_SDK.DLL, PROFIRE.DLL, DC120V154_32.DLL, LFDCR14N.DLL, DCSPROBACK.DLL, DCSPRO3SLR.DLL, LFDCS14N.DLL, and LFKDC14N.DLL files contain material that is ©Copyright Eastman Kodak Company, 1996-2001. This software is based in part on the work of the Independent JPEG Group.

Portions of the LFCRW14N.DLL, LTCMP14.DLL, CDSDK.reg, CDSDK.dll, CDRAPCLS.dll, czs_ui.dll, deimg.dll, deImg010.dll, deImg110.dll, deImg153.dll, deimg301.dll, deimg401.dll, deImg404.dll, deimg602.dll, Deimg603.dll, DeImgd60.dll, pscAdimg.dll, pscCllct.dll, pscCStUI.dll, pscDcd.dll, pscDevUI.dll, pscDvlp.dll, Pscl2STI.dll, pscll.dll, pscParse.dll, pscSetup.dll, psdkdll.dll, psdkReg.dll, psParse.dll. file contain material that is © Canon, Inc. 2002

Portions of the LFFPX7.DLL and LFKODAK.DLL files contain material that is ©Copyright Hewlett Packard, 1996.

Portions of the OCR/ICR/OMR Features and the help file for the OCR/ICR/OMR Features are ©Copyright Scansoft, Inc. 1995-2003. ALL RIGHTS RESERVED

Portions of the Barcode Modules contain material that is ©Copyright Axtel Inc., 1999.

Portions of the LEADTOOLS PDF Plug in and the LEADTOOLS Vector Imaging Pro are ©Copyright 1996, 2000 Artifex Software Inc. All rights reserved.

File filters for decoding MrSID ® and DjVu ® formats are provided under a license from Lizardtech, Inc.

The "FlashPix" format uses Microsoft's OLE structured storage.

Portions of the DICOM help files in Medical Imaging product line are reprinted with permission from the National Electrical Manufacturers Association ©Copyright 1998 by the National Electrical Manufacturers Association. All rights including translation into other languages, reserved under the Universal Copyright Convention, the Berne Convention or the Protection of Literacy and Artistic Works, and the International and Pan American Copyright Conventions.

Portions of LEADTOOLS Data Security Add On contain software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/), including cryptographic software written by Eric Young (eay@cryptsoft.com) and by Tim Hudson (tjh@cryptsoft.com). Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) All rights reserved. Copyright Tim Hudson 1995-1998 (tjh@cryptsoft.com) All rights reserved.

Portions of LEADTOOLS Data Security Add On contain software based on the MD5 Message Digest Algorithm developed by RSA Data Security, Inc.. Copyright (c) 1991-92 RSA Data Security, Inc. All Rights Reserved.

Portions hereof licensed under US patent 5,327,254 and foreign counterparts.

Portions of the LEADTOOLS ICC Profiles material is © Copyright 2004, International Color Consortium.

Trademarks

LEAD® and LEADTOOLS® are registered trademarks of LEAD Technologies, Inc.
Microsoft, Windows, Windows NT, Visual Basic, Visual FoxPro, and Microsoft Access are either trademarks or registered trademarks of the Microsoft Corporation.
OS/2® is a registered trademark of International Business Machines Corporation.

TextBridge®OCR is a registered trademark of Scansoft, Inc.

ISIS® is a registered trademark of Pixel Translations, Inc.

ScanAhead™ is a trademark of Pixel Translations, Inc.

FlashPix™ is a trademark of Eastman Kodak Company.

All other brand or product names used in this online help are trademarks of their respective holders.

Address and Contact Information

LEAD Technologies, Inc.
Suite 400
1201 Greenwood Cliff
Charlotte, NC 28204

(704) 332-5532
FAX: (704) 372-8161
E-mail: support@leadtools.com
Technical support: (704) 372-9681 or support@leadtools.com
Home page: http://www.leadtools.com


Programming with the LEADTOOLS VCL

Programming with the LEADTOOLS DICOM VCL

The following topics provide a systematic approach to understanding and using the LEAD DICOM control's properties, methods, and events:

Working with DICOM

Working with Data Sets

Working with Information Object Definitions

Working with Tags

Working with Unique Identifiers

Working with Value Representations

Working with Command Sets

Working with Key Elements


Unlocking DICOM Support

Extensive DICOM support is unlocked when you unlock the Medical Support using UnlockSupport. UnlockSupport must be called with the key found on the Medical Imaging Certificate, which will be e-mailed to you. UnlockSupport (L_SUPPORT_MEDICAL, "Medical Express Certificate key") tells the package to unlock Medical Imaging support (including DICOM support) and passes the key for verification. To determine whether support is locked or not, use the IsSupportLocked method. For more information about required files, refer to Files To Be Included With Your Application.


Working with Data Sets

A Data Set is a collection of Data Elements stored in a DICOM file. Each DICOM file may or may not include a header consisting of a Preamble and a Prefix. For more information about the DICOM File Format, refer to the An Overview of the DICOM File Format or the DICOM Standard, published by the

National Electrical Manufacturers Association

1300 N. 17th Street

Rosslyn, Virginia 22209 USA

hereafter referred to as the DICOM Standard.

Each DICOM file represents a separate class of information. For example, one DICOM file may represent the Computed Tomography Image class, and another DICOM file may represent the Radiotherapy Structure Set class. However, both classes would not be contained in the same DICOM file. For a list of the standard classes supported by DICOM, refer to the IOD Class Constants. In addition to the standard classes supported by DICOM, user-defined classes may also be added.

For each class supported by DICOM there are certain modules contained in each class. Each module consists of a number of Data Elements, each Data Element having its own tag. These Data Elements can be mandatory or optional, depending on the module and the class. For a list of the default modules supported by DICOM, refer to IOD Module Constants. For a list of default Data Elements (tag values) supported by DICOM, refer to Data Element Tag Constants. For more details concerning the DICOM File Format, refer to An Overview of the DICOM File Format and the DICOM Standard. In addition to the standard modules and data elements supported by DICOM, user-defined modules and data elements may also be added.

LEADTOOLS maintains the Data Set internally as a tree structure. In this documentation the tree will be referred to as the Data Set, and individual members of the Data Set will be referred to as Data Elements or items. Some of the methods provided by LEADTOOLS allow you to evaluate the Data Set as a tree or as a list.

LEADTOOLS provides the hDicDS property (available only during runtime) as the handle to the DICOM Data Set. Assigning a valid Data Set to this property copies the source Data Set. Assigning 0 to this property frees the existing Data Set.

LEADTOOLS provides a number of properties, methods, and events for maneuvering through the Data Set, getting and setting Data Set information, getting and setting Data Element values, searching the Data Set, and creating, loading and saving Data Sets.

For creating, initializing, loading and saving Data Sets, LEADTOOLS provides the following:

DSTempPath property

InitDS method

LoadDS method

SaveDS method

For maneuvering through the Data Set use the following:

CurrentElement property

MoveRootElement method

MoveParentElement

MoveChildElement

MoveFirstElement

MoveLastElement

MovePrevElement

MoveNextElement

LEADTOOLS provides several functions for searching the Data Set. To find specific modules, use the FindModule method and the FindIndexModule method. You can find specific Data Elements using the FindFirstElement, FindLastElement,FindPrevElement, and FindNextElement.

To insert new items in the Data Set, call the InsertElement method or the InsertModule method. When inserting or setting an image, use the IncludeVolatile property to indicate whether the CurrentElement property is volatile. To insert the images in the given BitmapList property into the Pixel Data Element, use the InsertBitmapListValue method.

You can delete individual items from the Data Set using the DeleteElement method. You can delete entire modules from the Data Set, using the DeleteModule method. To delete all items in the Data Set, call the ResetDS method. To delete one or more images in the Pixel Data Element, starting at the specified index and continuing for the specified count, use the DeleteBitmapValue method. If you wish to replace only one image within the Pixel Data Element, you must use DeleteBitmapValue method and InsertBitmapValue method.

To retrieve values stored in the Value Field of the Data Element, LEADTOOLS provides the following methods:

GetAgeValue method: This method updates the AgeValues property with the age value(s) associated with the item specified in the CurrentElement property. This method also updates the AgeValueCount property to uCount, where uCount is the number of age values to get.

GetBinaryValue method: This method updates the BinaryValues property with the binary values associated with the item specified by the CurrentElement property. This method also updates the BinaryValueCount property with uLength, where uLength is the number of bytes of binary data to get.

GetBitmapListValue method: This method updates the BitmapList property with the image list associated with the Pixel Data Element specified by the CurrentElement property. If the CurrentElement property is Nil (NULL), this method updates the BitmapList property with all the images present in the Data Set. This method also updates the BitmapListCount property.

GetBitmapValue method: This method updates the Bitmap property with the image associated with the Pixel Data Element specified by the CurrentElement property.

GetCharValue method: This method updates the CharValues property with the character value(s) associated with the item specified in the CurrentElement property. This method also updates the CharValueCount property to uCount, where uCount is the number of characters to get.

GetDateTimeValue method: This method updates the DateTimeValues property with the date-time value(s) associated with the item specified in the CurrentElement property. This method also updates the DateTimeValueCount property to uCount, where uCount is the number of date-time values to get.

GetDateValue method: This method updates the DateValues property with the date value(s) associated with the item specified in the CurrentElement property. This method also updates the DateValueCount property to uCount, where uCount is the number of date values to get.

GetDoubleValue method: This method updates the DoubleValues property with the double value(s) associated with the item specified in the CurrentElement property. This method also updates the DoubleValueCount property to uCount, where uCount is the number of double values to get.

GetFloatValue method: This method updates the FloatValues property with the float value(s) associated with the item specified in the CurrentElement property. This method also updates the FloatValueCount property to uCount, where uCount is the number of float values to get.

GetLongValue method: This method updates the LongValues property with the long value(s) associated with the item specified in the CurrentElement property. This method also updates the LongValueCount property to uCount, where uCount is the number of long values to get.

GetShortValue method: This method updates the ShortValues property with the short value(s) associated with the item specified in the CurrentElement property. This method also updates the ShortValueCount property to uCount, where uCount is the number of short values to get.

GetStringValue method: This method updates the StringValues property with the string value(s) associated with the item specified in the CurrentElement property. This method also updates the StringValueCount property to uCount, where uCount is the number of strings to get.

GetTimeValue method: This method updates the TimeValues property with the time value(s) associated with the item specified in the CurrentElement property. This method also updates the TimeValueCount property to uCount, where uCount is the number of time values to get.

GetValueCount method: This method returns the number of values stored in the Value Field of the element specified in the CurrentElement property.

To set values stored in the Value Field of the Data Element use the following:

SetAgeValue method

SetBinaryValue method

SetBitmapListValue method

SetBitmapValue method

SetCharValue method

SetDateTimeValue method

SetDateValue method

SetDoubleValue method

SetFloatValue method

SetLongValue method

SetShortValue method

SetStringValue method

SetTimeValue method

To convert values to or from strings, use the GetConvertValue and SetConvertValue methods.

LEADTOOLS provides several methods for retrieving information about the Data Set or the DICOM file. The ConformanceTestDS method and OnConformanceStatus event determine whether the Data Set conforms to the standard. Use the EnableConformanceStatus property (a published property available at design time) to specify whether LEADTOOLS should generate the OnConformanceStatus Event for each element that does not conform, setting it to False to terminate the Conformance Test. To determine the number of images in a specified Data Element or in the entire Data Set use the GetBitmapCount method. To determine the number of modules present in the entire Data Set use the GetModuleCount method. You can determine which level a specific element is on by calling the GetElementLevel method. To get information about the current Data Set, use the GetInfoDS method, which updates the InfoClass and InfoFlags properties for the current Data Set.

LEADTOOLS also provides a method for retrieving information about the image. The GetImageInformation method gets information about the image at the specified index within the Pixel Data Element specified by the CurrentElement property, updating the ImageInfo property.

Finally, for getting and setting the contents of the preamble buffer with the value of the Preamble property, LEADTOOLS provides the GetDSPreamble method and the SetDSPreamble method.

Whenever you access an item within the Data Set, the CurrentElement property is updated with the selected item. You can also explicitly set the CurrentElement property using the SetCurrentElement method. If you access a module within the Data Set, the CurrentModule property is updated with the selected module.

For detecting and controlling events, LEADTOOLS provides the following: EnableMethodErrors property, EnableProgressEvent property, and the OnProgressStatus event.

For more information on the DICOM File Fomat, refer to An Overview of the DICOM File Format and the DICOM Standard.


Working with Information Object Definitions

An Information Object Definition (IOD) is an abstract data model that specifies information about Real-World objects. It provides a means of standardizing information exchanged between applications. There are a tremendous number of IODs that are standard for the DICOM file format. In addition to the standard IODs, user-defined IODs may also be added.

LEADTOOLS maintains a tree internally of all available Information Object Definitions (IODs), standard and user defined. In this documentation the tree of available IODs will be referred to as the IOD Structure, since some functions allow you to evaluate the internal IOD Structure as a tree or as a list. Unfortunately, the collection of default IODs is too large to include a table of default values in this documentation. For more information on IOD defaults, refer to the DICOM Standard.

LEADTOOLS provides a number of methods for maneuvering through and modifying the IOD Structure. All methods pertaining to the IOD Structure have the form xxxIOD method or xxxIODxxx method.

For maneuvering through the IOD Structure, LEADTOOLS provides the following methods:

MoveRootIOD method

MoveParentIOD method

MoveChildIOD method

MoveFirstIOD method

MoveLastIOD method

MovePrevIOD method

MoveNextIOD method

LEADTOOLS provides several methods for searching the IOD Structure. To find the IOD for a specific class or module, use the FindClassIOD method and the FindModuleIOD method. You can find the IOD for elements, modules or classes using the FindIOD method.

To insert new items in the IOD Structure, call the InsertIOD method.

You can delete individual items from the IOD Structure using the DeleteIOD method, or you can delete all items from the IOD Structure, using the ResetIOD method.

To change the name or the description of an IOD already in the IOD Structure, call the SetIODName method and the SetIODDescription method.

Finally, to reset the IOD Structure to the default values, use the DefaultIOD method.

Whenever you access an item within the IOD Structure, the CurrentIOD property is updated with the selected item. You can also explicitly set the CurrentIOD property to a particular item using the SetCurrentIOD method.

For more information on IODs, refer to An Overview of the DICOM File Format or the DICOM Standard.


Working with Tags

The tag of a data element consists of an ordered pair of 16-bit values that represent a Group number and an Element number. The tag indicates the type of information stored in the value field of the data element. There are a number of tags that are standard for the DICOM file format. In addition to the standard tags, user-defined tags may also be added.

LEADTOOLS maintains a table (or list) internally of all available tags, standard and user defined. In this documentation the table of available Data Element Tags will be referred to as the Data Element Tag Table. Also provided in this documentation is a table of the default values for the standard tags. To see these default values, refer to the Default Data Element Tag Table.

LEADTOOLS provides a number of methods for maneuvering through and modifying the Data Element Tag Table. All methods pertaining to the Data Element Tag Table have the form xxxTag method or xxxTagxxx method..

For maneuvering through the Data Element Tag Table, LEADTOOLS provides the following methods:

MoveFirstTag method

MoveLastTag method

MovePrevTag method

MoveNextTag method

GetTagCount method

To find specific items, based on either the tag or an index into the table, use the FindTag method and the FindIndexTag method.

To insert new items in the Data Element Tag Table, use the InsertTag method.

You can delete individual items from the table using the DeleteTag method, or you can delete all items from the table, using the ResetTag method.

To change the name of an item already in the table, use the SetTagName method.

Finally, to reset the Data Element Tag Table to the default values, use the DefaultTag method.

Whenever you access an item within the Data Element Tag Table, the CurrentTag property is updated with the selected item.

For more information on tags, refer to An Overview of the DICOM File Format or the DICOM Standard.


Working with Unique Identifiers (UIDs)

A unique identifier identifies items such as Service-Object Pair Classes and images. There are a number of unique identifiers that are standard for the DICOM file format. In addition to the standard unique identifiers, user-defined unique identifiers may also be added. Please note that while user-defined unique identifiers will work within LEADTOOLS, in order for new unique identifiers to work across countries, sites, equipment, etc., you must contact the National Electrical Manufacturers Association.

LEADTOOLS maintains a table (or list) internally of all available unique identifiers, standard and user defined. In this documentation the table of available unique identifiers will be referred to as the UID Table. Also provided in this documentation is a table of the default values for the standard UIDs. To see these default values, refer to the Default UID Table.

LEADTOOLS provides a number of methods for maneuvering through and modifying the UID Table. All methods pertaining to the UID Table have the form xxxUID method or xxxUIDxxx method.

For maneuvering through the UID Table, LEADTOOLS provides the following methods:

MoveFirstUID method

MoveLastUID method

MovePrevUID method

MoveNextUID method

GetUIDCount method

To find specific items, based on either the unique identifier or an index into the table, use the FindUID method and the FindIndexUID method.

To insert new items in the UID Table, use the InsertUID method.

You can delete individual items from the table using the DeleteUID method, or you can delete all items from the table, using the ResetUID method.

To change the name of an item already in the table, use the SetUIDName method.

Finally, to reset the UID Table to the default values, use the DefaultUID method.

Whenever you access an item within the UID Table, the CurrentUID property is updated with the selected item.

For more information on UIDs, refer to An Overview of the DICOM File Format or the DICOM Standard.


Working with Value Representations

The value representation of a data element indicates the type of data that can be stored in the value field of the data element. There are a number of value representations that are standard for the DICOM file format. In addition to the standard value representations, user-defined value representations may also be added.

LEADTOOLS maintains a table (or list) internally of all available value representations, standard and user defined. In this documentation the table of available value representations will be referred to as the Value Representation Table. Also provided in this documentation is a table of the default values for the standard value representations. To see these default values, refer to the Default Value Representation Table.

LEADTOOLS provides a number of methods for maneuvering through and modifying the Value Representation Table. All methods pertaining to the Value Representation Table have the form xxxVR method or xxxVRxxx method.

For maneuvering through the Value Representation Table, LEADTOOLS provides the following methods:

MoveFirstVR method

MoveLastVR method

MovePrevVR method

MoveNextVR method

GetVRCount method

To find specific items, based on either the value representation or an index into the table, use the FindVR method and the FindIndexVR method.

To insert new items in the Value Representation Table, use the InsertVR method.

You can delete individual items from the table using the DeleteVR method, or you can delete all items from the table, using the ResetVR method.

To change the name of an item already in the table, use the SetVRName method.

Finally, to reset the Value Representation Table to the default values, use the DefaultVR method.

Whenever you access an item within the Value Representation Table, the CurrentVR property is updated with the selected item.

For more information on value representations, refer to An Overview of the DICOM File Format or the DICOM Standard.


Working with Command Sets

DICOM messages that are transferred across a DICOM Associate connection include a command set and may or may not include a data set. The command set is a specialized data set that contains information about the action to be taken, such as Request, Response, Find, Get, Move, Action, etc. Since the command set is a data set, it consists of one or more data elements. An accompanying data set contains either the data set on which to perform the command, or the data set resulting from a command.

Each command set has its own specific set of data elements. For more information on command sets in general, refer to the DICOM Standard.

Since a command set is a specialized data set, it is created by calling InitCS method to create the data set and initialize it to a command set.

To obtain information about an existing command set, use the GetInfoCS method, which updates the InfoCommand property and the InfoRequest property. To determine whether the command set is a request or a response, check the InfoRequest property after calling the GetInfoCS method.

You can also determine the type of a command set by "and-ing" the value of the TAG_COMMAND_FIELD value with COMMAND_REQUEST or COMMAND_RESPONSE. In addition, you can determine whether a command set has a required data set by "and-ing" the value of the TAG_DATA_SET_TYPE element with COMMAND_DATASET_PRESENT, COMMAND_DATASET_IDENTIFIER, or COMMAND_DATASET_ABSENT.

To insert one data set into another data set, use InsertDS method.


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:

MoveRootKey method

MoveParentKey method

MoveChildKey method

MoveFirstKey method

MoveLastKey method

MovePrevKey method

MoveNextKey method

LEADTOOLS provides the following functions for searching the Data Set.

FindFirstKey method

FindLastKey method

FindPrevKey method

FindNextKey method

To insert new key elements, use:

InsertKey method

To delete key elements, use:

DeleteKey method

To determine the type of a specific key element, use

GetKeyValue method

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


Files To Be Included With Your Application

Note: You may not copy or redistribute any of the following files without obtaining the proper license. In some cases, the license is included with your initial purchase of LEADTOOLS. In other cases, you must obtain a license from a third party or enter into a royalty agreement with LEAD to obtain the proper license. For these special licensing situations, see the notes below accompanying the specific file.

The following table summarizes the files you must include on your distribution diskettes to support the LEADTOOLS functions on a WIN32 system. (\REDIST subdirectory contains copies of these files.)

Please note that LTKRN, LTDIS, LTEFX, LTIMG, and LTFIL are required for ALL VCL applications. For more information on LTKRN, LTFIL, LTDIS, LTEFX, LTIMG, and other files for the Main Control, refer to Files To Be Included With Your Application .

Redistributables | Explanation: | If you are using a standard release, the files to use are: | If you are using an evaluation release, the files to use are:
LT14B4MN LT14B4DI | Borland C++ Builder 4.0 runtime files. Required for VCL applications that are built with Borland C++ Builder 4.0. LT14B4MN.BPL is the BPL file for the LEADTOOLS VCL Main Package; LT14B4DI.BPL is the BPL file for the LEADTOOLS VCL DICOM Package. For more information about the controls included in each package, refer to the Introduction. For information about creating and distributing applications, refer to the Borland Builder documentation. | BPL: LT14B4MN.BPL LT14B4DI.BPL | BPL: LT14B4MNe.BPL LT14B4DIe.BPL
LT14B5MN LT14B5DI | Borland C++ Builder 5.0 runtime files. Required for VCL applications that are built with Borland C++ Builder 5.0. LT14B5MN.BPL is the BPL file for the LEADTOOLS VCL Main Package; LT14B5DI.BPL is the BPL file for the LEADTOOLS VCL DICOM Package. For more information about the controls included in each package, refer to the Introduction. For information about creating and distributing applications, refer to the Borland Builder documentation. | BPL: LT14B5MN.BPL LT14B5DI.BPL | BPL: LT14B5MNe.BPL LT14B5DIe.BPL
LT14D4MN LT14D4DI | Borland Delphi 4.0 runtime files. Required for VCL applications that are built with Borland Delphi 4.0 and with RTP checked. LT14D4MN.BPL is the BPL file for the LEADTOOLS VCL Main Package; LT14D4DI.BPL is the BPL file for the LEADTOOLS VCL DICOM Package. For more information about the controls included in each package, refer to the Introduction. For information about creating and distributing applications, refer to the Borland Delphi documentation. | BPL: LT14D4MN.BPL LT14D4DI.BPL | BPL: LT14D4MNe.BPL LT14D4DIe.BPL
LT14D5MN LT14D5DI | Borland Delphi 5.0 runtime files. Required for VCL applications that are built with Borland Delphi 5.0 and with RTP checked. LT14D5MN.BPL is the BPL file for the LEADTOOLS VCL Main Package; LT14D5DI.BPL is the BPL file for the LEADTOOLS VCL DICOM Package. For more information about the controls included in each package, refer to the Introduction. For information about creating and distributing applications, refer to the Borland Delphi documentation. | BPL: LT14D5MN.BPL LT14D5DI.BPL | BPL: LT14D5MNe.BPL LT14D5DIe.BPL
LTDIC | (Medical Imaging editions only) LEADTOOLS DICOM support DLL.. | DLL: LTDIC14N.DLL Library: LTDIC_N.LIB | DLL: LTDIC14E.DLL Library: LTDIC_E.LIB


Installation Directory

The installation procedure creates a directory tree for the LEADTOOLS files, and adds the demonstration programs and online help to your desktop. You specify the root directory during installation.

Please note that due to the large size of the PDF files that contain the LEADTOOLS manuals, these files are no longer included in the setup. Instead, these PDF files can be downloaded from our website at http://support.leadtools.com/SupportPortal/DesktopDefault.aspx?tabindex=3&tabid=27.

The following is a list of the subdirectories in the root directory:

BIN | Executable files for the demonstration programs.
HELP | Online help files.
IMAGES | Sample images and databases containing images.
EXAMPLES\VCL | One subdirectory for each example Delphi VCL program and another subdirectory for the same C++Builder example program.
INCLUDE | Header files, BAS files, and the ActiveX's MFC interface files for versions of Visual C++ earlier than 4.0.
LIB | Library files.
LIB\VCL\DELPHI4 | The LEADTOOLS VCL Delphi 4.0 package and unit files.
LIB\VCL\DELPHI5 | The LEADTOOLS VCL Delphi 5.0 package and unit files.
LIB\VCL\BUILDER4 | The LEADTOOLS VCL Builder 4.0 package, LIB and header files.
LIB\VCL\BUILDER5 | The LEADTOOLS VCL Builder 5.0 package, LIB and header files.
REDIST | Redistributable files. These are copies of the LEADTOOLS files and other files that you may need to distribute with your application. For exact information about required files, refer to Files To Be Included With Your Application.


System Files Updated

The LEADTOOLS installation procedure adds the DLL files and all of the required driver files to your WINDOWS\SYSTEM directory. For a list of these files, refer to Files To Be Included With Your Application.

In addition, the installation procedure, as noted in the remainder of this topic, updates Windows system files that are required by the LEADTOOLS example programs.

The LEADTOOLS WIN32 installation procedure adds the following Windows files to your WINDOWS\SYSTEM directory. If your system has an earlier version of any of these files, the installation procedure overwrites it with the newer version.

COMDLG32.OCX
CTL3D32.DLL
MFC40.DLL
MFC42.DLL
MSVCRT20.DLL
MSVCRT40.DLL
MSVCRT.DLL
OC30.DLL
OLE32.DLL
OLEAUT32.DLL
OLEPRO32.DLL
STDOLE2.TLB
VB40032.DLL
VEN2232.OLB

The LEADTOOLS WIN32 installation procedure adds the following Borland runtime files to your WINDOWS\SYSTEM directory. If your system has an earlier version of any of these files, the installation procedure overwrites it with the newer version.

BORLNDMM.DLL
CP3240MT.DLL
CC3250MT.DLL
VCL50.BPL
VCLDB50.BPL
VCLBDE50.BPL
VCL40.BPL
VCLDB40.BPL


Summary of All Supported Image File Formats

Color and Grayscale

DICOM Format (DIC)


File Formats: DICOM Format (DIC)

DICOM Format (DIC)

Note:

This format is supported only in Document/Medical.

DICOM (DIC) files are commonly used in medical images. LEADTOOLS reads a broad range of DICOM formats, converting them to LEAD-supported bits-per-pixel as necessary. LEADTOOLS writes DICOM files in the LEAD-supported bits-per-pixel. DICOM files can contain many comment fields of various types. You can use the ReadComment method to read comments in an existing file. Before writing a file, you can use the Comment property to create an array of comments to be saved in the file.

You can read DICOM files as follows:

Grayscale files in the 1- to 16-bit range are loaded as they are in the original file.

Palettized color files in the 1- to 16-bit range are converted to 8-bit palettized or 24-bit unpalettized. By default, they are converted to 24-bit only if the palette contains more than 256 colors.

Unpalettized color files (RGB, ARGB, or CMYK) with 1 to 16 bits per plane are converted to 24-bit RGB.

Read multipage DICOM files by setting the page number when calling the Load method .

You can write DICOM files as 8, 12, or 16-bit grayscale, 8-bit palettized color, or 24-bit RGB color (8 bits per plane).

The file constants associated with this file format are:

Constant | Read Support | Write Support | Description
FILE_DICOM_GRAY | 1 to 16 BPP (Grayscale) | 1 to 16 BPP (Grayscale) | [89] Grayscale DICOM uncompressed.
FILE_DICOM_COLOR | 8, 24 BPP | 8, 24 BPP | [90] Color DICOM uncompressed.
FILE_DICOM_RLE_GRAY | xxxx | xxxx | [125] Grayscale DICOM RLE compressed.
FILE_DICOM_RLE_COLOR | xxxx | xxxx | [126] Color DICOM RLE compressed.
FILE_DICOM_JPEG_GRAY | 8, 16 BPP (Grayscale) | 8, 16 BPP (Grayscale) | [127] Grayscale DICOM JPEG compressed.
FILE_DICOM_JPEG_COLOR | 24 BPP | 24 BPP | [128] Color DICOM JPEG compressed.
FILE_DICOM_J2K_GRAY | 8, 16 BPP (Grayscale) | 8, 16 BPP (Grayscale) | [293] Grayscale DICOM JPEG 2000 compressed.
FILE_DICOM_J2K_COLOR | 24 BPP | 24 BPP | [294] Color DICOM JPEG 2000 compressed.

Required DLL: LTDIC. For a listing of the exact DLLs needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Related Formats: EXIF - Exif Formats , JPG - JPEG Compressed , JP2 - JPEG 2000 Compressed , TIFF - Tagged Image File Format.


Formats of Input Files

This topic has been replaced. Refer to Summary of All Supported Image File Formats.


Formats of Output Files

This topic has been replaced. Refer to Summary of All Supported Image File Formats.


Tutorial for Visual C++ 4.0 Programmers

Tutorial for C++Builder Programmers

The following topics provide brief and simple examples to help you learn how to use the LEADTOOLS DICOM VCL.

Loading a Data Set

Miscellaneous Examples


Loading a Data Set (Visual C++ 4.0)

Loading a Data Set (C++Builder)

Take the following steps to start a project and to add some code that loads a DICOM Data Set and prints information about the data set:

1. | Start C++Builder.
2. | From the File menu, choose New Application
3. | On the C++Builder toolbar, click the LEADTOOLS tab. Select the LEAD DICOM control and add the control to your main form.
4. | Add a command button to your form and name it as follows:
 | Name | Caption
 | LoadLead | Load Image
5. | Add the following initialization code to the main form's Create procedure. In online help, you can use the copy the block of code and paste it in your form.

void __fastcall TForm1::FormCreate(TObject *Sender)
{
/*Unlock DICOM support.*/
/*Note that this is a sample key, which will not work in your toolkit.*/
LEADDicom1->UnlockSupport(L_SUPPORT_MEDICAL, "TestKey");
}

6.

Code the LoadLead button's click procedure as follows:

void __fastcall TForm1::LeadLoadClick(TObject *Sender)
{
Integer nRet;
Cardinal uCount;
bool bResult;

LEADDicom1->EnableMethodErrors = false;
nRet = LEADDicom1->LoadDS("c:\\LEAD\\Images\\test2.dic", 0);
if( nRet != SUCCESS)
{
ShowMessage("Error " + IntToStr(nRet) + " loading file!");
return;
}
uCount = LEADDicom1->GetModuleCount();
LEADDicom1->FindIndexModule(0);
bResult = LEADDicom1->SetCurrentElement(LEADDicom1->CurrentModule->Element[0]->hElement);
if(bResult)
ShowMessage("There are " + IntToStr(uCount) + " modules in this data set.\n"+
"The first module has " + IntToStr(LEADDicom1->CurrentModule->ElementCount) +
" elements.\nThe first element has: \nTag number:" +
IntToHex(LEADDicom1->CurrentElement->Tag, 0) + "\nVR: " +
IntToHex(LEADDicom1->CurrentElement->VR, 0));
LEADDicom1->EnableMethodErrors = true;
}

7. | Run your program to test it.
8. | Save the project to use as a starting point for other tasks in this tutorial.


Miscellaneous Examples (Visual C++ 4.0)

Miscellaneous Examples (C++Builder)

You can test any of the following examples by adding a command button and pasting the sample code in the Click procedure.

OnConformanceStatus Example for C++Builder

DefaultIOD Example for C++Builder

DefaultTag Example for C++Builder

DefaultUID Example for C++Builder

DefaultVR Example for C++Builder

DeleteBitmapValue Example for C++Builder

DeleteElement Example for C++Builder

DeleteIOD Example for C++Builder

DeleteKey Example for C++ Builder

DeleteModule Example for C++Builder

DeleteTag Example for C++Builder

DeleteUID Example for C++Builder

DeleteVR Example for C++Builder

DSTempPath Example for C++Builder

FindFirstElement Example for C++Builder

FindIndexModule Example for C++Builder

FindLastElement Example for C++Builder

FindModule Example for C++Builder

FindModuleIOD Example for C++Builder

GetAgeValue Example for C++Builder

GetBinaryValue Example for C++Builder

GetBitmapCount Example for C++Builder

GetCharValue Example for C++Builder

GetConvertValue Example for C++Builder

GetDateTimeValue Example for C++Builder

GetDateValue Example for C++Builder

GetDoubleValue Example for C++Builder

GetElementLevel Example for C++Builder

GetFloatValue Example for C++Builder

GetImageInformation Example for C++Builder

GetInfoDS Example for C++Builder

GetLongValue Example for C++Builder

GetModuleCount Example for C++Builder

GetShortValue Example for C++Builder

GetStringValue Example for C++Builder

GetTagCount Example for C++Builder

GetTimeValue Example for C++Builder

GetUIDCount Example for C++Builder

GetVRCount Example for C++Builder

hDicDS Example for C++ Builder

IncludeVolatile Example for C++ Builder

InitCS Example for C++ Builder

InitDS Example for C++Builder

InsertBitmapListValue Example for C++Builder

InsertBitmapValue Example for C++Builder

InsertElement Example for C++Builder

InsertIOD Example for C++Builder

InsertModule Example for C++Builder

InsertTag Example for C++Builder

InsertUID Example for C++Builder

InsertVR Example for C++Builder

IsSupportLocked Example for C++Builder

LoadDS Example for C++Builder

MoveFirstIOD Example for C++Builder

MoveFirstTag Example for C++Builder

MoveFirstUID Example for C++Builder

MoveFirstVR Example for C++Builder

MoveRootElement Example for C++Builder

MoveRootIOD Example for C++Builder

Preamble Example for C++Builder

OnProgressStatus Example for C++Builder

ResetDS Example for C++Builder

ResetIOD Example for C++Builder

ResetTag Example for C++Builder

ResetUID Example for C++Builder

ResetVR Example for C++Builder

SaveDS Example for C++Builder

SetBitmapListValue Example for C++Builder

SetBitmapValue Example for C++Builder

SetCurrentElement Example for C++Builder

SetTagName Example for C++Builder

SetUIDName Example for C++Builder

SetVRName Example for C++Builder

UnlockSupport Example for C++Builder


DefaultIOD Example for Visual C++ 4.0

DefaultIOD Example for C++Builder

/* Restore Default IOD table */

Screen->Cursor = crHourGlass;
LEADDicom1->DefaultIOD();
Screen->Cursor = crDefault;


DefaultTag Example for Visual C++ 4.0

DefaultTag Example for C++Builder

/* Restore default Tag values */
Screen->Cursor = crHourGlass;
LEADDicom1->DefaultTag();
Screen->Cursor = crDefault;


DefaultUID Example for Visual C++ 4.0

DefaultUID Example for C++Builder

Screen->Cursor = crHourGlass;
/* Restore to default values */
LEADDicom1->DefaultUID();
Screen->Cursor = crDefault;


DefaultVR Example for Visual C++ 4.0

DefaultVR Example for C++Builder

Screen->Cursor = crHourGlass;
LEADDicom1->DefaultVR();
Screen->Cursor = crDefault;


DeleteBitmapValue Example for C++Builder

   LEADDicom1->EnableMethodErrors = false;

/* move to the first image element */
LEADDicom1->FindFirstElement(TAG_PIXEL_DATA, false);

/* get the first image */
LEADDicom1->GetBitmapValue(0, 0, ORDER_BGR);
LEADImage1->Bitmap
  = LEADDicom1->Bitmap;

/* flip the image */
LEADImage1->Flip
 ();
/* delete the first image from the dataset */
LEADDicom1->DeleteBitmapValue(0, 1);

/* now update the list with the flipped image */
LEADDicom1->InsertBitmapValue(LEADImage1->Bitmap, 0, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);


DeleteElement Example for C++Builder

int nRet;

LEADDicom1->EnableMethodErrors = false;
nRet = LEADDicom1->FindFirstElement(TAG_STUDY_DATE, false);
if(nRet != SUCCESS)
{
ShowMessage("Error Finding Element!");
return;
}
nRet = LEADDicom1->DeleteElement();
LEADDicom1->EnableMethodErrors = true;
if(nRet != SUCCESS)
ShowMessage("Error Deleting Element!");


DeleteIOD Example for Visual C++ 4.0

DeleteIOD Example for C++Builder

LEADDicom1->EnableMethodErrors = true;
try
{
LEADDicom1->MoveFirstIOD(false);
LEADDicom1->DeleteIOD();
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


DeleteKey Example for C++ Builder

int x;

LEADDicom1->ResetDS ();
LEADDicom1->InitDS (DICOM_CLASS_UNKNOWN, 0);

//insert some keys
LEADDicom1->InsertKey ("PATIENT", True); //insert PATIENT level key
LEADDicom1->InsertKey ("STUDY", True); //insert STUDY level key

//insert 5 SERIES level keys and some data
for (x= 1; x <= 5; x ++)
{
LEADDicom1->StringValueCount = 1;
LEADDicom1->InsertKey ("SERIES", True);
LEADDicom1->MoveChildElement ();
LEADDicom1->FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1->StringValues [0]= IntToStr(x);
LEADDicom1->SetStringValue (1);
LEADDicom1->MoveParentElement ();
LEADDicom1->MoveParentKey (); //move back up one level
}

//move to root key
LEADDicom1-> MoveRootKey ();//PATIENT level
ShowMessage (LEADDicom1->GetKeyValue ()) ;

//move to SERIES level
LEADDicom1->MoveChildKey ();//STUDY
LEADDicom1->MoveChildKey ();//SERIES

//find first SERIES
LEADDicom1->FindFirstKey ("SERIES", True);
LEADDicom1->MoveChildElement ( ) ;
LEADDicom1->FindFirstElement ( TAG_REFERENCED_FILE_ID, True ) ;
LEADDicom1->GetStringValue ( 0, 1 ) ;
ShowMessage ( LEADDicom1->StringValues[0] ) ;

//find next series
LEADDicom1->FindNextKey (True ) ;
LEADDicom1->MoveChildElement ( ) ;
LEADDicom1->FindFirstElement ( TAG_REFERENCED_FILE_ID, True ) ;
LEADDicom1->GetStringValue (0, 1);
ShowMessage (LEADDicom1->StringValues [0]);

//find last SERIES
LEADDicom1->FindLastKey ("SERIES", True);
LEADDicom1->MoveChildElement();
LEADDicom1->FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1->GetStringValue (0, 1);
ShowMessage (LEADDicom1->StringValues[0]);

//find previous SERIES
LEADDicom1->FindPrevKey (True);
LEADDicom1->MoveChildElement ();
LEADDicom1->FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1->GetStringValue (0, 1);
ShowMessage (LEADDicom1->StringValues[0]);

//find last SERIES and delete it
LEADDicom1->FindLastKey ("SERIES", True);
LEADDicom1->DeleteKey ();

//move to root key
LEADDicom1->MoveFirstKey (False);
ShowMessage (String(LEADDicom1->GetKeyValue ()));

//move to SERIES level
LEADDicom1->MoveChildKey (); //STUDY
LEADDicom1->MoveChildKey(); //SERIES

//move to first SERIES
LEADDicom1->MoveFirstKey (True);
LEADDicom1->MoveChildElement();
LEADDicom1->FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1->GetStringValue (0, 1);
ShowMessage (LEADDicom1->StringValues [0]);

//move to next series
LEADDicom1->MoveNextKey (True);
LEADDicom1->MoveChildElement ();
LEADDicom1->FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1->GetStringValue (0, 1);
ShowMessage (LEADDicom1->StringValues[0]);

//move to last SERIES
LEADDicom1->MoveLastKey (True);
LEADDicom1->MoveChildElement ();
LEADDicom1->FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1->GetStringValue (0, 1);
ShowMessage (LEADDicom1->StringValues[0]);

//move to previous SERIES
LEADDicom1->MovePrevKey (True);
LEADDicom1->MoveChildElement ();
LEADDicom1->FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1->GetStringValue (0, 1);
ShowMessage (LEADDicom1->StringValues [0]);


DeleteModule Example for C++Builder

int nRet;

LEADDicom1->EnableMethodErrors = false;
/* move to the first module in the DataSet and delete it */
LEADDicom1->FindIndexModule(0);
nRet = LEADDicom1->DeleteModule(LEADDicom1->CurrentModule->Module);
if(nRet != SUCCESS)
ShowMessage("Error Deleting Module!");
LEADDicom1->EnableMethodErrors = true;


DeleteTag Example for Visual C++ 4.0

DeleteTag Example for C++Builder

try
{
/* move to the selected Tag */
LEADDicom1->FindTag(TAG_FILE_META_INFORMATION_VERSION);
/* delete it */
LEADDicom1->DeleteTag();
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


DeleteUID Example for Visual C++ 4.0

DeleteUID Example for C++Builder

AnsiString sCode;

LEADDicom1->EnableMethodErrors = true;
try
{
sCode = "1.2.840.10008.1.2";
/* move to the selected UID */
LEADDicom1->FindUID(sCode);
/* delete it */
LEADDicom1->DeleteUID();
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


DeleteVR Example for Visual C++ 4.0

DeleteVR Example for C++Builder

try
{
LEADDicom1->EnableMethodErrors = true;
/* move to the selected VR */
LEADDicom1->FindVR(VR_IS);
/* delete it */
LEADDicom1->DeleteVR();
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


DSTempPath Example for C++Builder

LEADDicom1->DSTempPath = "c:\\temp";


FindFirstElement Example for C++Builder

/* Find the first image element and display it */
LEADDicom1->EnableMethodErrors = true;
try
{
/* move to first element in Data Set */
LEADDicom1->MoveFirstElement(false);

LEADDicom1->FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1->GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1->Bitmap
  = LEADDicom1->Bitmap;
LEADDicom1->Bitmap = 0;
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);

/* find each image */
while(true)
{
LEADDicom1->FindNextElement(false);
LEADDicom1->GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1->Bitmap
  = LEADDicom1->Bitmap;
LEADDicom1->Bitmap = 0;
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);
}
}
catch(ELEADDicomError *e)
{
ShowMessage("No More Images");
}


FindIndexModule Example for C++Builder

Cardinal uCount, n;
AnsiString sOut;

LEADDicom1->EnableMethodErrors = false;
uCount = LEADDicom1->GetModuleCount();
LEADDicom1->GetInfoDS();
sOut = "Found " + IntToStr(uCount) + " Modules\n";
for(n = 0; n<uCount; n++)
{
LEADDicom1->FindIndexModule(n);
LEADDicom1->FindModuleIOD(LEADDicom1->InfoClass, LEADDicom1->CurrentModule->Module);
sOut = sOut + "Module " + LEADDicom1->CurrentIOD->Name + "\n";
}
ShowMessage(sOut);
LEADDicom1->EnableMethodErrors = true;


FindLastElement Example for C++Builder

/* Find the last image element and display it */
LEADDicom1->EnableMethodErrors = true;
try
{
/* move to last element in Data Set */
LEADDicom1->MoveLastElement(false);

LEADDicom1->FindLastElement(TAG_PIXEL_DATA, false);
LEADDicom1->GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1->Bitmap
  = LEADDicom1->Bitmap;
LEADDicom1->Bitmap = 0;
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);

/* find each image */
while(true)
{
LEADDicom1->FindPrevElement(false);
LEADDicom1->GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1->Bitmap
  = LEADDicom1->Bitmap;
LEADDicom1->Bitmap = 0;
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);
}
}
catch(ELEADDicomError *e)
{
ShowMessage("No More Images");
}


FindModule Example for C++Builder

int nRet;

LEADDicom1->EnableMethodErrors = false;
nRet = LEADDicom1->FindModule(DICOM_MODULE_NM_TOMO_ACQUISITION);
if(nRet != SUCCESS)
ShowMessage("Not Found");
else
{
LEADDicom1->GetInfoDS();
LEADDicom1->FindModuleIOD(LEADDicom1->InfoClass, DICOM_MODULE_NM_TOMO_ACQUISITION);
ShowMessage("Found Module " + LEADDicom1->CurrentIOD->Name);
}
LEADDicom1->EnableMethodErrors = true;


FindModuleIOD Example for Visual C++ 4.0

FindModuleIOD Example for C++Builder

AnsiString sPrompt;

LEADDicom1->EnableMethodErrors = true;
try
{
/* Find a Module */
LEADDicom1->FindModuleIOD(DICOM_CLASS_CR_IMAGE_STORAGE, DICOM_MODULE_OVERLAY_PLANE);
ShowMessage(LEADDicom1->CurrentIOD->Name);
LEADDicom1->SetIODName("New IOD Name #1");
LEADDicom1->SetIODDescription("New IOD Description #1");
sPrompt = "Name: " + LEADDicom1->CurrentIOD->Name + "\n";
sPrompt = sPrompt + "Desc: " + LEADDicom1->CurrentIOD->Description;
ShowMessage(sPrompt);
/* Find a Class */
LEADDicom1->FindClassIOD(DICOM_CLASS_PRINT_QUEUE);
ShowMessage(LEADDicom1->CurrentIOD->Name);
LEADDicom1->SetIODName("New IOD Name #2");
LEADDicom1->SetIODDescription("New IOD Description #2");
sPrompt = "Name: " + LEADDicom1->CurrentIOD->Name + "\n";
sPrompt = sPrompt + "Desc: " + LEADDicom1->CurrentIOD->Description;
ShowMessage(sPrompt);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


GetAgeValue Example for C++Builder

Cardinal uCount;
int nRet;

Label1->Caption = "";
LEADDicom1->EnableMethodErrors = false;
/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the Age Value */
LEADDicom1->InsertElement(false, TAG_PATIENT_AGE, VR_AS, false, 0);

/* insert an Age value into the element */
LEADDicom1->AgeValueCount = 1;
LEADDicom1->AgeValues[0]->Number = 21;
LEADDicom1->AgeValues[0]->Reference = VALUE_AGE_YEARS;

/* set the age */
nRet = LEADDicom1->SetAgeValue(1);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}

LEADDicom1->AgeValueCount = 0; /* free the value */

/* get the value count */
uCount = LEADDicom1->GetValueCount();
ShowMessage("There are " + IntToStr(uCount) + " values!");

/* get the value */
LEADDicom1->GetAgeValue(0, uCount);
/* display the value */
Label1->Caption = "Number: " + IntToStr(LEADDicom1->AgeValues[0]->Number) + " Ref: " + LEADDicom1->AgeValues[0]->Reference;
LEADDicom1->EnableMethodErrors = true;
ShowMessage("wait");


GetBinaryValue Example for C++Builder

Cardinal uCount, n, nLen;
int nRet;
char byteVal, cByte;
char szTmp[512];
AnsiString sBytes;

LEADDicom1->EnableMethodErrors = false;
/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

Label1->Caption = "";

/* insert some bytes into the element */
sBytes = "This is a Test 1234!";
nLen = sBytes.Length();
LEADDicom1->BinaryValueCount = nLen;
for(n = 0; n<nLen; n++)
{
cByte = sBytes[n+1];
byteVal = cByte;
LEADDicom1->BinaryValues[n] = byteVal;
}
/* set the bytes */
nRet = LEADDicom1->SetBinaryValue(nLen);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
LEADDicom1->BinaryValueCount = 0; /* free the values */

/* get the byte count */
uCount = LEADDicom1->CurrentElement->Length;
ShowMessage("There are " + IntToStr(uCount) + " bytes!");

/* get the bytes */
nRet = LEADDicom1->GetBinaryValue(uCount);
if(nRet == SUCCESS)
for(n = 0; n<LEADDicom1->BinaryValueCount; n++)
{
/* display each byte: a char separated by a space */
szTmp[0] = LEADDicom1->BinaryValues[n];
szTmp[1] = '\0';
Label1->Caption = Label1->Caption + " " + szTmp;
}
LEADDicom1->EnableMethodErrors = true;
ShowMessage("wait");


GetBitmapCount Example for C++Builder

   Cardinal uCount;

/* move to the first image element */
LEADDicom1->FindFirstElement(TAG_PIXEL_DATA, false);
uCount = LEADDicom1->GetBitmapCount();
if(uCount == 1)
{
/* get the bitmap */
LEADDicom1->GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1->Bitmap
  = LEADDicom1->Bitmap;
LEADDicom1->Bitmap = 0; /* free the image */
}
else if(uCount > 1)
{
/* get the bitmap list */
LEADDicom1->GetBitmapListValue(0, uCount, 0, ORDER_RGB);
LEADImage1->BitmapList
  = LEADDicom1->BitmapList;
ShowMessage("There are " + IntToStr(LEADDicom1->BitmapListCount) + " Images");
LEADDicom1->BitmapList = 0; /* free the image */
/* play the animation */
LEADImage1->AnimationLoop
  = true;
LEADImage1->AnimationEnable
  = true;
}
else
ShowMessage("No Image!");
ShowMessage("wait");
LEADImage1->AnimationEnable
  = false;


GetCharValue Example for C++Builder

Cardinal x, uCount, nLen;
int nRet;
AnsiString sChars;
char cChar;

LEADDicom1->EnableMethodErrors = false;
/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the Char Values */
LEADDicom1->InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);

Label1->Caption = "";

/* insert some char values into the element */
sChars = "This is a Test 1234!";
nLen = sChars.Length();
LEADDicom1->CharValueCount = nLen;
for(x = 0; x < nLen; x++)
{
cChar = sChars[x+1]; // AnsiStrings start at index 1
LEADDicom1->CharValues[x] = cChar;
}
/* set the chars */
nRet = LEADDicom1->SetCharValue(nLen);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
LEADDicom1->CharValueCount = 0; /* free the values */

/* get the value count */
uCount = LEADDicom1->GetValueCount();
ShowMessage("There are " + IntToStr(uCount) + " values!");

/* get the values */
nRet = LEADDicom1->GetCharValue(0, uCount);
if(nRet == SUCCESS)
for(x = 0; x < LEADDicom1->CharValueCount; x++)
{
/* display each value separated by a "."*/
Label1->Caption = Label1->Caption + "." + LEADDicom1->CharValues[x];
}
LEADDicom1->EnableMethodErrors = true;
ShowMessage("wait");


GetConvertValue Example for C++Builder

int nRet;
Cardinal uCount, x;

/* add some values to the element */
/* note, this will only work for elements that have a VR that supports multiple values */
LEADDicom1->EnableMethodErrors = false;
LEADDicom1->StringValueCount = 3;
LEADDicom1->StringValues[0] = "3.45";
LEADDicom1->StringValues[1] = "9.99";
LEADDicom1->StringValues[2] = "1.11";

nRet = LEADDicom1->SetConvertValue();
if(nRet != SUCCESS)
{
ShowMessage("SetConvertValue failed. Error No. " + IntToStr(nRet));
return;
}
/* free the current values */
LEADDicom1->StringValueCount = 0;
/* now get the values and display them */
nRet = LEADDicom1->GetConvertValue();
if(nRet == SUCCESS)
{
uCount = LEADDicom1->StringValueCount;
Memo1->Lines->Clear();
for(x=0 ;x<uCount; x++)
/* display each value on a separate line */
Memo1->Lines->Add(LEADDicom1->StringValues[x]);
}
LEADDicom1->EnableMethodErrors = true;


GetDateTimeValue Example for C++Builder

Currently no DICOM Tags support the VR that this value requires.


GetDateValue Example for C++Builder

Cardinal uCount;
int nRet;

LEADDicom1->EnableMethodErrors = false;

/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the Date Value */
LEADDicom1->InsertElement(false, TAG_PATIENT_BIRTH_DATE, VR_DA, false, 0);

/* insert an Date value into the element */
LEADDicom1->DateValueCount = 1;
LEADDicom1->DateValues[0]->Year = 1971;
LEADDicom1->DateValues[0]->Month = 12;
LEADDicom1->DateValues[0]->Day = 12;

/* set the date */
nRet = LEADDicom1->SetDateValue(1);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}

LEADDicom1->DateValueCount = 0; /* free the value */

Label1->Caption = "";

/* get the value count */
uCount = LEADDicom1->GetValueCount();
ShowMessage("There are " + IntToStr(uCount) + " values!");

/* get the value */
LEADDicom1->GetDateValue(0, uCount);
/* display the value */
Label1->Caption = "Year: " + IntToStr(LEADDicom1->DateValues[0]->Year) + " Month: " + IntToStr(LEADDicom1->DateValues[0]->Month) + " Day: " + IntToStr(LEADDicom1->DateValues[0]->Day);
LEADDicom1->EnableMethodErrors = true;
ShowMessage("wait");


GetDoubleValue Example for C++Builder

Cardinal uCount, x;
int nRet;

LEADDicom1->EnableMethodErrors = false;
/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the Double Values */
LEADDicom1->InsertElement(false, TAG_REFERENCE_PIXEL_PHYSICAL_VALUE_X, VR_FD, false, 0);

/* insert some Double values into the element */
LEADDicom1->DoubleValueCount = 5;
for(x=0; x<5; x++)
LEADDicom1->DoubleValues[x] = 10 * x * 199.77;
/* set the numbers */
nRet = LEADDicom1->SetDoubleValue(5);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
LEADDicom1->DoubleValueCount = 0; /* free the values */

Label1->Caption = "";
/* get the value count */
uCount = LEADDicom1->GetValueCount();
ShowMessage("There are " + IntToStr(uCount) + " values!");

/* get the values */
nRet = LEADDicom1->GetDoubleValue(0, uCount);
if(nRet == SUCCESS)
for(x=0; x<LEADDicom1->DoubleValueCount; x++)
/* display each value separated by " X " */
Label1->Caption = Label1->Caption + " X " + FloatToStr(LEADDicom1->DoubleValues[x]);
LEADDicom1->EnableMethodErrors = true;


GetElementLevel Example for C++Builder

Cardinal x, uLevel;

/* Navigate the Data Set: a List, not: a Tree */
/* Move to the 20th element, and then find that element"s level in the Tree */
LEADDicom1->EnableMethodErrors = true;
try
{
/* move to first element in Data Set */
LEADDicom1->MoveFirstElement(false);

/* move to the 20th element */
for(x=2; x<=20; x++)
LEADDicom1->MoveNextElement(false);
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
uLevel = LEADDicom1->GetElementLevel();
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name + " at level " + IntToStr(uLevel));
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


GetFloatValue Example for C++Builder

Cardinal uCount, x;
int nRet;

LEADDicom1->EnableMethodErrors = false;
/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the Float Values */
LEADDicom1->InsertElement(false, TAG_TABLE_OF_PARAMETER_VALUES, VR_FL, false, 0);

/* insert some float values into the element */
LEADDicom1->FloatValueCount = 5;
for(x=0; x<5; x++)
LEADDicom1->FloatValues[x] = x * 1.99;

/* set the floats */
nRet = LEADDicom1->SetFloatValue(5);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
LEADDicom1->FloatValueCount = 0; /* free the values */
Memo1->Lines->Clear();
/* get the value count */
uCount = LEADDicom1->GetValueCount();
ShowMessage("There are " + IntToStr(uCount) + " values!");

/* get the values */
nRet = LEADDicom1->GetFloatValue(0, uCount);
if(nRet == SUCCESS)
for(x=0; x<LEADDicom1->FloatValueCount; x++)
/* display each value in a new line */
Memo1->Lines->Add(FloatToStr(LEADDicom1->FloatValues[x]));
LEADDicom1->EnableMethodErrors = true;
ShowMessage("wait");


GetImageInformation Example for C++Builder

AnsiString msg;

/* move to the first image element */
LEADDicom1->FindFirstElement(TAG_PIXEL_DATA, false);

LEADDicom1->GetImageInformation(0);
msg = "Compression: " + IntToStr(LEADDicom1->ImageInfo.Compression) + "\n";
msg = msg + "Photometric: " + IntToStr(LEADDicom1->ImageInfo.Photometric) + " - " + LEADDicom1->ImageInfo.PhotometricString + "\n";
msg = msg + "Rows x Columns: " + IntToStr(LEADDicom1->ImageInfo.Rows) + " x " + IntToStr(LEADDicom1->ImageInfo.Columns) + "\n";

msg = msg + "Bits Allocated: " + IntToStr(LEADDicom1->ImageInfo.BitsAllocated) + "\n";
msg = msg + "Bits Stored: " + IntToStr(LEADDicom1->ImageInfo.BitsStored) + "\n";
msg = msg + "High Bit: " + IntToStr(LEADDicom1->ImageInfo.HighBit) + "\n";
msg = msg + "Pixel Representation: " + IntToStr(LEADDicom1->ImageInfo.PixelRepresentation) + "\n";
msg = msg + "Planar Configuration: " + IntToStr(LEADDicom1->ImageInfo.PlanarConfiguration) + "\n";
msg = msg + "ResolutionX: " + IntToStr(LEADDicom1->ImageInfo.ResolutionX) + "\n";
msg = msg + "ResolutionY: " + IntToStr(LEADDicom1->ImageInfo.ResolutionY) + "\n";
msg = msg + "SmallestImagePixelValue: " + IntToStr(LEADDicom1->ImageInfo.SmallestImagePixelValue) + "\n";
msg = msg + "SmallestImagePixelValueFlag: " + IntToStr(LEADDicom1->ImageInfo.SmallestImagePixelValueFlag) + "\n";
msg = msg + "LargestImagePixelValue: " + IntToStr(LEADDicom1->ImageInfo.LargestImagePixelValue) + "\n";
msg = msg + "LargestImagePixelValueFlag: " + IntToStr(LEADDicom1->ImageInfo.LargestImagePixelValueFlag) + "\n";
msg = msg + "RedEntries: " + IntToStr(LEADDicom1->ImageInfo.RedEntries) + "\n";
msg = msg + "RedFirst: " + IntToStr(LEADDicom1->ImageInfo.RedFirst) + "\n";
msg = msg + "RedBits: " + IntToStr(LEADDicom1->ImageInfo.RedBits) + "\n";
msg = msg + "GreenEntries: " + IntToStr(LEADDicom1->ImageInfo.GreenEntries) + "\n";
msg = msg + "GreenFirst: " + IntToStr(LEADDicom1->ImageInfo.GreenFirst) + "\n";
msg = msg + "GreenBits: " + IntToStr(LEADDicom1->ImageInfo.GreenBits) + "\n";
msg = msg + "BlueEntries: " + IntToStr(LEADDicom1->ImageInfo.BlueEntries) + "\n";
msg = msg + "BlueFirst: " + IntToStr(LEADDicom1->ImageInfo.BlueFirst) + "\n";
msg = msg + "BlueBits: " + IntToStr(LEADDicom1->ImageInfo.BlueBits) + "\n";
msg = msg + "PaletteEntries: " + IntToStr(LEADDicom1->ImageInfo.PaletteEntries) + "\n";
msg = msg + "PaletteFirst: " + IntToStr(LEADDicom1->ImageInfo.PaletteFirst) + "\n";
msg = msg + "BitsPerPixel: " + IntToStr(LEADDicom1->ImageInfo.BitsPerPixel) + "\n";
msg = msg + "Gray: " + IntToStr(LEADDicom1->ImageInfo.Gray) + "\n";
msg = msg + "Frames: " + IntToStr(LEADDicom1->ImageInfo.Frames) + "\n";

ShowMessage(msg);


GetInfoDS Example for C++Builder

AnsiString sClass, sFlags;

LEADDicom1->EnableMethodErrors = true;
try
{
LEADDicom1->GetInfoDS();
LEADDicom1->FindClassIOD(LEADDicom1->InfoClass);
sClass = LEADDicom1->CurrentIOD->Name;
sFlags = IntToHex(LEADDicom1->InfoFlags, 0);
ShowMessage("Class: " + sClass + "\nFlags: " + sFlags);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


GetLongValue Example for C++Builder

Cardinal uCount, x;
int nRet;

LEADDicom1->EnableMethodErrors = false;
/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the Long Values */
LEADDicom1->InsertElement(false, TAG_OFFSET_CHILD_DIRECTORY, VR_UL, false, 0);

Label1->Caption = "";

/* insert some long values into the element */
LEADDicom1->LongValueCount = 5;
for(x=0; x<5; x++)
LEADDicom1->LongValues[x] = x * 100000;

/* set the longs */
nRet = LEADDicom1->SetLongValue(5);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
LEADDicom1->LongValueCount = 0; /* free the values */

/* get the value count */
uCount = LEADDicom1->GetValueCount();
ShowMessage("There are " + IntToStr(uCount) + " values!");

/* get the values */
nRet = LEADDicom1->GetLongValue(0, uCount);
if(nRet == SUCCESS)
for(x=0; x<LEADDicom1->LongValueCount; x++)
/* display each value separated by " X " */
Label1->Caption = Label1->Caption + " X " + IntToStr(LEADDicom1->LongValues[x]);
LEADDicom1->EnableMethodErrors = true;
ShowMessage("wait");


GetModuleCount Example for C++Builder

Cardinal uCount;

uCount = LEADDicom1->GetModuleCount();
ShowMessage("Module Count: " + IntToStr(uCount));


GetShortValue Example for C++Builder

Cardinal uCount, x;
int nRet;

LEADDicom1->EnableMethodErrors = false;
/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the Short Values */
LEADDicom1->InsertElement(false, TAG_RECORD_IN_USE_FLAG, VR_US, false, 0);

Label1->Caption = "";

/* insert some short values into the element */
LEADDicom1->ShortValueCount = 5;
for(x=0; x<5; x++)
LEADDicom1->ShortValues[x] = short(x * 100);
/* set the shorts */
nRet = LEADDicom1->SetShortValue(5);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
LEADDicom1->ShortValueCount = 0; /* free the values */

/* get the value count */
uCount = LEADDicom1->GetValueCount();
ShowMessage("There are " + IntToStr(uCount) + " values!");

/* get the values */
nRet = LEADDicom1->GetShortValue(0, uCount);
if(nRet == SUCCESS)
for(x=0; x<LEADDicom1->ShortValueCount; x++)
/* display each value separated by a " X " */
Label1->Caption = Label1->Caption + " X " + IntToStr(LEADDicom1->ShortValues[x]);
ShowMessage("wait");
LEADDicom1->EnableMethodErrors = true;


GetStringValue Example for C++Builder

Cardinal uCount, x;
int nRet;

LEADDicom1->EnableMethodErrors = false;

/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the String Values */
LEADDicom1->InsertElement(false, TAG_IMAGE_TYPE, VR_CS, false, 0);

/* insert some string values into the element */
LEADDicom1->StringValueCount = 5;
for(x=0; x<5; x++)
LEADDicom1->StringValues[x] = "String #" + IntToStr(x + 1);
/* set the strings */
nRet = LEADDicom1->SetStringValue(5);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}

LEADDicom1->StringValueCount = 0; /* free the values */

Memo1->Lines->Clear();

/* get the value count */
uCount = LEADDicom1->GetValueCount();
ShowMessage("There are " + IntToStr(uCount) + " values!");

/* get the values */
nRet = LEADDicom1->GetStringValue(0, uCount);
if(nRet == SUCCESS)
for(x=0; x<LEADDicom1->StringValueCount; x++)
/* display each value separated on a separate line */
Memo1->Lines->Add(LEADDicom1->StringValues[x]);
LEADDicom1->EnableMethodErrors = true;
ShowMessage("wait");


GetTagCount Example for Visual C++ 4.0

GetTagCount Example for C++Builder

Cardinal uCount;

uCount = LEADDicom1->GetTagCount();
ShowMessage("There are " + IntToStr(uCount) + " Tag Items.");


GetTimeValue Example for C++Builder

Cardinal uCount;
int nRet;

LEADDicom1->EnableMethodErrors = false;

/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the Time Value */
LEADDicom1->InsertElement(false, TAG_PATIENT_BIRTH_TIME, VR_TM, false, 0);

/* insert an Time value into the element */
LEADDicom1->TimeValueCount = 1;
LEADDicom1->TimeValues[0]->Hours = 12;
LEADDicom1->TimeValues[0]->Minutes = 25;
LEADDicom1->TimeValues[0]->Seconds = 33;
LEADDicom1->TimeValues[0]->Fractions = 50;

/* set the time */
nRet = LEADDicom1->SetTimeValue(1);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}

LEADDicom1->TimeValueCount = 0; /* free the value */

Label1->Caption = "";

/* get the value count */
uCount = LEADDicom1->GetValueCount();
ShowMessage("There are " + IntToStr(uCount) + " values!");

/* get the value */
LEADDicom1->GetTimeValue(0, uCount);
/* display the value */
Label1->Caption = "Hours: " + IntToStr(LEADDicom1->TimeValues[0]->Hours)
+ " Minutes: " + IntToStr(LEADDicom1->TimeValues[0]->Minutes)
+ " Seconds: " + IntToStr(LEADDicom1->TimeValues[0]->Seconds)
+ " Fractions: " + IntToStr(LEADDicom1->TimeValues[0]->Fractions);
LEADDicom1->EnableMethodErrors = true;
ShowMessage("wait");


GetUIDCount Example for Visual C++ 4.0

GetUIDCount Example for C++Builder

Cardinal uCount;

uCount = LEADDicom1->GetUIDCount();
ShowMessage("There are " + IntToStr(uCount) + " UID Items.");


GetVRCount Example for Visual C++ 4.0

GetVRCount Example for C++Builder

Cardinal uCount;

uCount = LEADDicom1->GetVRCount();
ShowMessage("There are " + IntToStr(uCount) + " VR Items.");


hDicDS Example for C++ Builder

/*find the first PATIENT KEY, copy it to a new
DS, and then save it to a file*/
LEADDicom1->FindFirstKey ("PATIENT", False);
LEADDicom2->ResetDS ();
LEADDicom2->InsertDS (LEADDicom1->hDicDS, LEADDicom1->CurrentElement ->hElement);
LEADDicom2->SaveDS ("d:\\temp\\save.dic", 0);


IncludeVolatile Example for C++ Builder

int nRet;

LEADDicom1->EnableMethodErrors = False;

/* list all elements */
LEADDicom1->IncludeVolatile = True;
nRet = LEADDicom1->MoveFirstElement(False);
Memo1->Lines->Clear();
while(nRet == SUCCESS)
{
Memo1->Lines->Add(IntToStr(LEADDicom1->CurrentElement->Tag));
nRet = LEADDicom1->MoveNextElement(False);
}
ShowMessage("Element Count = " + IntToStr(Memo1->Lines->Count));

/* list only non-volatile elements */
LEADDicom1->IncludeVolatile = False;
nRet = LEADDicom1->MoveFirstElement(False);
Memo1->Lines->Clear();
while(nRet == SUCCESS)
{
Memo1->Lines->Add(IntToStr(LEADDicom1->CurrentElement->Tag));
nRet = LEADDicom1->MoveNextElement(False);
}
ShowMessage("Non Volatile Element Count = " + IntToStr(Memo1->Lines->Count));


InitCS Example for C++ Builder

AnsiString szout;

//create a data set as a command set
LEADDicom1->InitCS (COMMAND_C_STORE, True);

//gets information about the command set
LEADDicom1->GetInfoCS ();
szout= "Command: " + IntToStr (LEADDicom1->InfoCommand) + "\n";
if ( LEADDicom1->InfoRequest )
szout= szout + "Request: True";
else
szout= szout + "Request: False";
ShowMessage (szout.c_str ());


InitDS Example for C++Builder

/* init a DS with default options */
LEADDicom1->InitDS(DICOM_CLASS_CR_IMAGE_STORAGE, DS_EXPLICIT_VR | DS_METAHEADER_ABSENT | DS_BIG_ENDIAN);


InsertBitmapListValue Example for C++Builder

   int nRet;

LEADDicom1->EnableMethodErrors = false;

/* move to the first image element and delete what"s there */
LEADDicom1->FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1->DeleteElement();
LEADDicom1->InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);

/* load an image */
LEADImage1->Load
  ("c:\\lead\\images\\image1.cmp", 0, 1, 1);
ShowMessage("Image loaded from File - Wait");

/* create a bitmap list */
LEADImage2->InsertBitmapListItem
  (0, LEADImage1->Bitmap);
LEADImage1->Flip
  ();
LEADImage2->InsertBitmapListItem(1, LEADImage1->Bitmap );
LEADImage1->Reverse
 ();
LEADImage2->InsertBitmapListItem(2, LEADImage1->Bitmap);

/* insert the image list into the element */
nRet = LEADDicom1->InsertBitmapListValue(LEADImage2->BitmapList, 0, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
ShowMessage("ImageList inserted into Data Set - Wait");


InsertBitmapValue Example for C++Builder

   Cardinal uCount;
int nRet;

LEADDicom1->EnableMethodErrors = false;

/* move to the first image element and delete what's there */
LEADDicom1->FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1->DeleteElement();
LEADDicom1->InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);

/* load an image */
LEADImage1->Load
  ("c:\\lead\\images\\image1.cmp", 0, 1, 1);
ShowMessage("Image loaded from File - Wait");

uCount = LEADDicom1->GetBitmapCount();

/* insert some images */
nRet = LEADDicom1->InsertBitmapValue(LEADImage1->Bitmap, uCount, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
LEADImage1->Flip
  ();
nRet = LEADDicom1->InsertBitmapValue(LEADImage1->Bitmap, uCount + 1, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);
if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
LEADImage1->Reverse
  ();
nRet = LEADDicom1->InsertBitmapValue(LEADImage1->Bitmap, uCount + 2, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);
if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
ShowMessage("Images inserted - Wait");


InsertElement Example for C++Builder

int nRet;

LEADDicom1->EnableMethodErrors = false;
/* insert the new element */
LEADDicom1->FindTag(TAG_DISCHARGE_DATE);
nRet = LEADDicom1->InsertElement(false, TAG_DISCHARGE_DATE, LEADDicom1->CurrentTag->VR, false, ELEMENT_INDEX_MAX);
if(nRet != SUCCESS)
ShowMessage("Error Inserting Element");
else
ShowMessage("Inserted Element: " + LEADDicom1->CurrentTag->Name);
LEADDicom1->EnableMethodErrors = true;


InsertIOD Example for Visual C++ 4.0

InsertIOD Example for C++Builder

bool bInsert = false;
THandle hModuleIOD;
int nRet;
Byte nType = DICOM_IOD_TYPE_ELEMENT;
Cardinal uCode = 0x100011;

LEADDicom1->EnableMethodErrors = false;
/* Find a Module */
LEADDicom1->FindModuleIOD(DICOM_CLASS_CR_IMAGE_STORAGE, DICOM_MODULE_OVERLAY_PLANE);

hModuleIOD = LEADDicom1->CurrentIOD->hIOD;

/* if the selected item has a child, move to that level */
nRet = LEADDicom1->MoveChildIOD();
if(nRet != SUCCESS)
bInsert = true;
else /* check this level to see if IOD already exists */
{
LEADDicom1->MoveFirstIOD(true);
nRet = LEADDicom1->FindIOD(uCode, nType, true);
if(nRet != SUCCESS)
bInsert = true;
else
hModuleIOD = LEADDicom1->CurrentIOD->hIOD;
}
LEADDicom1->SetCurrentIOD(hModuleIOD);
LEADDicom1->EnableMethodErrors = true;
try
{
if(bInsert) /* hModuleIOD contains parent of item to insert */
{
LEADDicom1->InsertIOD(true, nType, uCode, "My Test IOD", 5, "Test Description");
ShowMessage("Element inserted:\n" + LEADDicom1->CurrentIOD->Name);
}
else
ShowMessage("Element already exists:\n" + LEADDicom1->CurrentIOD->Name);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}
LEADDicom1->EnableMethodErrors = true;


InsertModule Example for C++Builder

int nRet;

LEADDicom1->EnableMethodErrors = false;
LEADDicom1->GetInfoDS();
nRet = LEADDicom1->InsertModule(DICOM_MODULE_MULTI_FRAME_OVERLAY, true);
if(nRet != SUCCESS)
ShowMessage("Error Inserting Module!");
else
{
LEADDicom1->FindModuleIOD(LEADDicom1->InfoClass, LEADDicom1->CurrentModule->Module);
ShowMessage("Inserted Module:\n" + LEADDicom1->CurrentIOD->Name);
}


InsertTag Example for Visual C++ 4.0

InsertTag Example for C++Builder

int nRet;

AnsiString sOutput, sItem, sItemL, sItemR;

LEADDicom1->EnableMethodErrors = false;
nRet = LEADDicom1->FindTag(0x20007);
if(nRet == SUCCESS)
{
ShowMessage("Already Exists!");
return;
}

nRet = LEADDicom1->InsertTag(0x20007, Cardinal(-1), "My Test Tag", VR_OB, 1, 1, 1);
if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}

LEADDicom1->EnableMethodErrors = true;
try
{
/* Display added item */
sOutput = "Inserted tag:\n";
sItem = IntToHex(LEADDicom1->CurrentTag->Code, 8);
sItemR = sItem.SubString(1, 4);
sItemL = sItem.SubString(5, 4);
sOutput = sOutput + "Code = \t" + sItemL + ":" + sItemR + "\n";

sItem = IntToHex(LEADDicom1->CurrentTag->Mask, 8);
sItemR = sItem.SubString(1, 4);
sItemL = sItem.SubString(5, 4);
sOutput = sOutput + "Mask = \t" + sItemL + ":" + sItemR + "\n";
sOutput = sOutput + "Name = \t" + LEADDicom1->CurrentTag->Name + "\n";
sOutput = sOutput + "VR = \t" + IntToStr(LEADDicom1->CurrentTag->VR) + "\n";
sOutput = sOutput + "MinVM = \t" + IntToStr(LEADDicom1->CurrentTag->MinVM) + "\n";
sOutput = sOutput + "MaxVM = \t" + IntToStr(LEADDicom1->CurrentTag->MaxVM) + "\n";
sOutput = sOutput + "DivideVM = \t" + IntToStr(LEADDicom1->CurrentTag->DivideVM) + "\n";
ShowMessage(sOutput);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


InsertUID Example for Visual C++ 4.0

InsertUID Example for C++Builder

int nRet;
AnsiString sOutput;

LEADDicom1->EnableMethodErrors = false;
nRet = LEADDicom1->FindUID("1.2.840.10008.1.3");
if(nRet == SUCCESS)
{
ShowMessage("Already Exists!");
return;
}

nRet = LEADDicom1->InsertUID("1.2.840.10008.1.3", "My Test UID");
if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
LEADDicom1->EnableMethodErrors = true;
try
{
/* add item to the ListView control */
sOutput = "UID Inserted:\n";
sOutput = sOutput + "Code: " + LEADDicom1->CurrentUID->Code + "\n";
sOutput = sOutput + "Name: " + LEADDicom1->CurrentUID->Name;
ShowMessage(sOutput);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


InsertVR Example for Visual C++ 4.0

InsertVR Example for C++Builder

int nRet;
Word nCode, nRestrict;
AnsiString sOutput;

LEADDicom1->EnableMethodErrors = false;
nCode = 20322;
nRet = LEADDicom1->FindVR(nCode);
if(nRet == SUCCESS)
{
ShowMessage("Already Exists!");
return;
}
LEADDicom1->EnableMethodErrors = true;
try
{
nRestrict = VR_FIXED | VR_TEXT;
LEADDicom1->InsertVR(nCode, "My Test VR", 64, nRestrict, 1);
/* add item to the ListView control */
sOutput = "VR Inserted:\n"
"Code: " + IntToStr(LEADDicom1->CurrentVR->Code) +
"\nName: " + LEADDicom1->CurrentVR->Name +
"\nLength: " + IntToStr(LEADDicom1->CurrentVR->Length) +
"\nRestrict: " + IntToStr(LEADDicom1->CurrentVR->Restrict) +
"\nUnitSize: " + IntToStr(LEADDicom1->CurrentVR->UnitSize);
ShowMessage(sOutput);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


IsSupportLocked Example for C++Builder

bool bLocked;

bLocked = LEADDicom1->IsSupportLocked(L_SUPPORT_MEDICAL);
if(bLocked)
ShowMessage("Medical Support is Locked!");
else
ShowMessage("Medical Support is available");


LoadDS Example for C++Builder

int nRet;

/* load a Data Set */
LEADDicom1->EnableMethodErrors = false;
LEADDialog1->UIFlags = DLG_FO_SHOWPREVIEW | DLG_FO_SHOWSTAMP;
LEADDialog1->Filter = "DICOM Files|*.dic";
nRet = LEADDialog1->FileOpen(this);
if(nRet == SUCCESS)
nRet = LEADDicom1->LoadDS(LEADDialog1->FileName, 0);
if((nRet != SUCCESS) && (nRet != ERROR_DLG_CANCELED))
ShowMessage("Error " + IntToStr(nRet) + " loading file!");
LEADDicom1->EnableMethodErrors = true;


MoveFirstIOD Example for Visual C++ 4.0

MoveFirstIOD Example for C++Builder

THandle hIOD;

LEADDicom1->EnableMethodErrors = true;
try
{
/* Move to the First IOD in the list */
LEADDicom1->MoveFirstIOD(false);
hIOD = LEADDicom1->CurrentIOD->hIOD; /* store it */
ShowMessage(LEADDicom1->CurrentIOD->Name);

/* Move to the Last IOD at this same level */
LEADDicom1->MoveLastIOD(true);
ShowMessage(LEADDicom1->CurrentIOD->Name);

/* Move to the Previous IOD at this same level */
LEADDicom1->MovePrevIOD(true);
ShowMessage(LEADDicom1->CurrentIOD->Name);

/* Move back to First IOD */
LEADDicom1->SetCurrentIOD(hIOD);

/* Move to the Next IOD at this same level */
LEADDicom1->MoveNextIOD(true);
ShowMessage(LEADDicom1->CurrentIOD->Name);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


MoveFirstTag Example for Visual C++ 4.0

MoveFirstTag Example for C++Builder

void DisplayItem(TLEADDicom * LEADDicom1)
{
AnsiString sItem, sOut;

LEADDicom1->EnableMethodErrors = true;
try
{
sItem = IntToHex(LEADDicom1->CurrentTag->Code, 8);
sOut = "Current Tag Info:\n"
"Code: " + sItem.SubString(1, 4) + ":" + sItem.SubString(5, 4)+"\n";

sItem = IntToHex(LEADDicom1->CurrentTag->Mask, 8);
sOut = sOut + "Mask: " + sItem.SubString(1, 4) + ":" + sItem.SubString(5, 4)+"\n";

sOut = sOut + "Name: " + LEADDicom1->CurrentTag->Name+"\n";

switch(LEADDicom1->CurrentTag->VR)
{
case VR_AE:
sItem = "AE";
break;
case VR_AS:
sItem = "AS";
break;
case VR_AT:
sItem = "AT";
break;
case VR_CS:
sItem = "CS";
break;
case VR_DA:
sItem = "DA";
break;
case VR_DS:
sItem = "DS";
break;
case VR_DT:
sItem = "DT";
break;
case VR_FD:
sItem = "FD";
break;
case VR_FL:
sItem = "FL";
break;
case VR_IS:
sItem = "IS";
break;
case VR_LO:
sItem = "LO";
break;
case VR_LT:
sItem = "LT";
break;
case VR_OB:
sItem = "OB";
break;
case VR_OW:
sItem = "OW";
break;
case VR_PN:
sItem = "PN";
break;
case VR_SH:
sItem = "SH";
break;
case VR_SL:
sItem = "SL";
break;
case VR_SQ:
sItem = "SQ";
break;
case VR_SS:
sItem = "SS";
break;
case VR_ST:
sItem = "ST";
break;
case VR_TM:
sItem = "TM";
break;
case VR_UI:
sItem = "UI";
break;
case VR_UL:
sItem = "UL";
break;
case VR_UN:
sItem = "UN";
break;
case VR_US:
sItem = "US";
break;
case VR_UT:
sItem = "UT";
break;
default:
sItem = IntToStr(LEADDicom1->CurrentTag->VR);
}
sOut = sOut + "VR: " + sItem +"\n";
sOut = sOut + "MinVM: " + IntToStr(LEADDicom1->CurrentTag->MinVM)+"\n";
sOut = sOut + "MaxVM: " + IntToStr(LEADDicom1->CurrentTag->MaxVM)+"\n";
sOut = sOut + "DivideVM: " + IntToStr(LEADDicom1->CurrentTag->DivideVM);
ShowMessage(sOut);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}
} /* end of DisplayItem */

void __fastcall TForm1::MoveTag1Click(TObject *Sender)
{
LEADDicom1->MoveFirstTag();
DisplayItem(LEADDicom1);

LEADDicom1->MoveNextTag();
DisplayItem(LEADDicom1);

LEADDicom1->MoveLastTag();
DisplayItem(LEADDicom1);

LEADDicom1->MovePrevTag();
DisplayItem(LEADDicom1);
}


MoveFirstUID Example for Visual C++ 4.0

MoveFirstUID Example for C++Builder

LEADDicom1->EnableMethodErrors = true;
LEADDicom1->MoveFirstUID();
/* display the items information */
Memo1->Lines->Add(LEADDicom1->CurrentUID->Code + "\t" + LEADDicom1->CurrentUID->Name + LEADDicom1->CurrentUID->nType);

LEADDicom1->MoveNextUID();
/* display the items information */
Memo1->Lines->Add(LEADDicom1->CurrentUID->Code + "\t" + LEADDicom1->CurrentUID->Name + LEADDicom1->CurrentUID->nType);

LEADDicom1->MoveLastUID();
/* display the items information */
Memo1->Lines->Add(LEADDicom1->CurrentUID->Code + "\t" + LEADDicom1->CurrentUID->Name + LEADDicom1->CurrentUID->nType);

LEADDicom1->MovePrevUID();
/* display the items information */
Memo1->Lines->Add(LEADDicom1->CurrentUID->Code + "\t" + LEADDicom1->CurrentUID->Name + LEADDicom1->CurrentUID->nType);


MoveFirstVR Example for Visual C++ 4.0

MoveFirstVR Example for C++Builder

void DisplayItem(AnsiString sPrompt)
{
int nRestrict;
AnsiString sOut, sTmp;

sOut = sPrompt + "\n";
Form1->LEADDicom1->EnableMethodErrors = true;
try
{
/* display the items information */
switch(Form1->LEADDicom1->CurrentVR->Code)
{
case VR_AE:
sTmp = "AE";
break;
case VR_AS:
sTmp = "AS";
break;
case VR_AT:
sTmp = "AT";
break;
case VR_CS:
sTmp = "CS";
break;
case VR_DA:
sTmp = "DA";
break;
case VR_DS:
sTmp = "DS";
break;
case VR_DT:
sTmp = "DT";
break;
case VR_FD:
sTmp = "FD";
break;
case VR_FL:
sTmp = "FL";
break;
case VR_IS:
sTmp = "IS";
break;
case VR_LO:
sTmp = "LO";
break;
case VR_LT:
sTmp = "LT";
break;
case VR_OB:
sTmp = "OB";
break;
case VR_OW:
sTmp = "OW";
break;
case VR_PN:
sTmp = "PN";
break;
case VR_SH:
sTmp = "SH";
break;
case VR_SL:
sTmp = "SL";
break;
case VR_SQ:
sTmp = "SQ";
break;
case VR_SS:
sTmp = "SS";
break;
case VR_ST:
sTmp = "ST";
break;
case VR_TM:
sTmp = "TM";
break;
case VR_UI:
sTmp = "UI";
break;
case VR_UL:
sTmp = "UL";
break;
case VR_UN:
sTmp = "UN";
break;
case VR_US:
sTmp = "US";
break;
case VR_UT:
sTmp = "UT";
break;
default:
sTmp = IntToStr(Form1->LEADDicom1->CurrentVR->Code);
break;
}
sOut = sOut + "Code: " + sTmp + "\n";
sOut = sOut + "Name: " + Form1->LEADDicom1->CurrentVR->Name + "\n";
sOut = sOut + "Length: " + IntToStr(Form1->LEADDicom1->CurrentVR->Length) + "\n";
nRestrict = Form1->LEADDicom1->CurrentVR->Restrict;
nRestrict = nRestrict & ~VR_BINARY;
nRestrict = nRestrict & ~VR_STRING;
nRestrict = nRestrict & ~VR_TEXT;
switch(nRestrict)
{
case VR_FIXED:
sTmp = "Fixed";
break;
case VR_MAXIMUM:
sTmp = "Maximum";
break;
case VR_MAXIMUM_GROUP:
sTmp = "Maximum Group";
break;
case VR_ANY:
sTmp = "Any Length";
break;
case VR_NOT_APPLICABLE:
sTmp = "Not Applicable";
break;
case VR_MAX:
sTmp = "Max";
break;
default:
sTmp = IntToStr(Form1->LEADDicom1->CurrentVR->Restrict);
break;
}
sOut = sOut + "Restrict: " + sTmp + "\n";
sOut = sOut + "UnitSize: " + IntToStr(Form1->LEADDicom1->CurrentVR->UnitSize) + "\n";
ShowMessage(sOut);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(Form1->LEADDicom1->Error));
}
} /* end of DisplayItem */

void __fastcall TForm1::MoveVR1Click(TObject *Sender)
{
LEADDicom1->MoveFirstVR();
DisplayItem("FirstVR");

LEADDicom1->MoveNextVR();
DisplayItem("NextVR");

LEADDicom1->MoveLastVR();
DisplayItem("LastVR");

LEADDicom1->MovePrevVR();
DisplayItem("PrevVR");
}


MoveRootElement Example for C++Builder

int nRet1, nRet2;

LEADDicom1->EnableMethodErrors = true;
try
{
/* move to first element in Data Set */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);

/* move to next element in the same level of the Data Set */
LEADDicom1->MoveNextElement(true);
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);

/* move to last element in the same level of the Data Set */
LEADDicom1->MoveLastElement(true);
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);

/* move to previous element in the same level of the Data Set */
LEADDicom1->MovePrevElement(true);
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);

/* find the first element that has a child */
LEADDicom1->EnableMethodErrors = false;
nRet1 = LEADDicom1->MoveFirstElement(false);
while(nRet1 == SUCCESS)
{
nRet2 = LEADDicom1->MoveChildElement();
if(nRet2 == SUCCESS)
{
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);
nRet1 = SUCCESS+1; /* end loop */
}
if(nRet1 != SUCCESS+1)
/* check next element in this same level */
nRet1 = LEADDicom1->MoveNextElement(true);
}
LEADDicom1->EnableMethodErrors = true;
/* move back to the element/* s parent */
if(nRet1 == 1)
{
LEADDicom1->MoveParentElement();
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
ShowMessage("Element: " + LEADDicom1->CurrentTag->Name);
}
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


MoveRootIOD Example for Visual C++ 4.0

MoveRootIOD Example for C++Builder

LEADDicom1->EnableMethodErrors = true;
try
{
/* Move to the last IOD in the list */
LEADDicom1->MoveLastIOD(false);
ShowMessage(LEADDicom1->CurrentIOD->Name);

/* Move to the Root IOD at the same level*/
LEADDicom1->MoveRootIOD();
ShowMessage(LEADDicom1->CurrentIOD->Name);

/* Move to the first Child IOD */
LEADDicom1->MoveChildIOD();
ShowMessage(LEADDicom1->CurrentIOD->Name);

/* Move back to the Parent IOD */
LEADDicom1->MoveParentIOD();
ShowMessage(LEADDicom1->CurrentIOD->Name);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


OnConformanceStatus Example for C++Builder

void __fastcall TForm1::Conformance1Click(TObject *Sender)
{
LEADDicom1->EnableConformanceStatus = true;
LEADDicom1->ConformanceTestDS();
}

void __fastcall TForm1::LEADDicom1ConformanceStatus(TObject *Sender, int nFlags)
{
AnsiString sTag, sTagL, sTagR, msg;
int nRet;

/* display info about non-standard element */
switch(nFlags)
{
case CALLBACK_ERROR_UNKNOWN_CLASS:
msg = "Unknown Class";
break;
case CALLBACK_ERROR_UNKNOWN_TAG:
msg = "Unknown Tag";
break;
case CALLBACK_ERROR_UNKNOWN_VR:
msg = "Unknown VR";
break;
case CALLBACK_ERROR_WRONG_VR:
msg = "Error in VR";
break;
case CALLBACK_ERROR_MIN_VM:
msg = "Error in MinVM";
break;
case CALLBACK_ERROR_MAX_VM:
msg = "Error in MaxVM";
break;
case CALLBACK_ERROR_DIVIDE_VM:
msg = "Error in DivideVM";
break;
case CALLBACK_ERROR_IMAGE:
msg = "Error in Image";
break;
default:
return;
}
sTag = AnsiString::IntToHex(LEADDicom1->CurrentElement->Tag, 8);
sTagR = sTag.SubString(5, 4);
sTagL = sTag.SubString(1, 4);
msg = msg +"\nTag: " + sTagL + ":" + sTagR;
nRet = Application->MessageBox(msg.c_str(), "Non-Standard Element", MB_OKCANCEL);
if(nRet == IDCANCEL)
LEADDicom1->EnableConformanceStatus = false;
}


OnProgressStatus Example for C++Builder

void __fastcall TForm1::LEADDicom1OnProgressStatus(TObject *Sender, int iPercent)
{
Form1->Caption = "Loading..." + IntToStr(iPercent) + "%";
Application->ProcessMessages();
}

/* Click on the LEAD Main control to enable/disable generating progress events */
/* This works even during getting | setting the DICOM bitmap */
void __fastcall TForm1::LEADImage1Click(TObject *Sender)
{
LEADDicom1->EnableProgressEvent = ! LEADDicom1->EnableProgressEvent;
}


Preamble Example for C++Builder

AnsiString sDSP;

LEADDicom1->GetDSPreamble();
sDSP = LEADDicom1->Preamble;
ShowMessage("DS Preamble = \n" + sDSP);

LEADDicom1->Preamble = "NEW_VALUE";
LEADDicom1->SetDSPreamble();
LEADDicom1->GetDSPreamble();
sDSP = LEADDicom1->Preamble;
ShowMessage("New DS Preamble = \n" + sDSP);


ResetDS Example for C++Builder

/* close the current Data Set */
LEADDicom1->ResetDS();


ResetIOD Example for Visual C++ 4.0

ResetIOD Example for C++Builder

//clear all IOD items
LEADDicom1->ResetIOD();


ResetTag Example for Visual C++ 4.0

ResetTag Example for C++Builder

//Clear all items from the Data Element Tag Table
LEADDicom1->ResetTag();


ResetUID Example for Visual C++ 4.0

ResetUID Example for C++Builder

//Clear all items from the UID Table
LEADDicom1->ResetUID();


ResetVR Example for Visual C++ 4.0

ResetVR Example for C++Builder

//Clear all items from the VR Table
LEADDicom1->ResetVR();


SaveDS Example for C++Builder

int nRet;

/* save a Data Set */
LEADDicom1->EnableMethodErrors = false;
SaveDialog1->Filter = "DICOM Data Set|*.dic";
if(SaveDialog1->Execute() && (SaveDialog1->FileName != ""))
{
nRet = LEADDicom1->SaveDS(SaveDialog1->FileName, 0);
if(nRet != SUCCESS)
ShowMessage("Error " + IntToStr(nRet) + " Saving file " + SaveDialog1->FileName);
}
LEADDicom1->EnableMethodErrors = true;


SetBitmapListValue Example for C++Builder

   Cardinal uCount;
int nRet;

LEADDicom1->EnableMethodErrors = false;

/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the BitmapList Value */
LEADDicom1->FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1->DeleteElement();
LEADDicom1->InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);
/* load an image */
LEADImage1->Load
 ("c:\\lead\\images\\image1.cmp", 0, 1, 1);
ShowMessage("Image loaded from File - Wait");

/* create a bitmap list */
LEADImage2->InsertBitmapListItem
 (0, LEADImage1->Bitmap);
LEADImage1->Flip
  ();
LEADImage2->InsertBitmapListItem(1, LEADImage1->Bitmap);
LEADImage1->Reverse
 ();
LEADImage2->InsertBitmapListItem(2, LEADImage1->Bitmap);

/* insert the image list into the element */
LEADDicom1->BitmapList = LEADImage2->BitmapList ;

/* set the bitmap list */
nRet = LEADDicom1->SetBitmapListValue(DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
ShowMessage("Image set to Data Set - Wait");

LEADDicom1->BitmapList = 0; /* free the value */
ShowMessage("ImageList cleared from memory - Wait");

uCount = LEADDicom1->GetBitmapCount();

/* get the bitmap list back */
if(nRet == SUCCESS)
{
LEADDicom1->GetBitmapListValue(0, uCount, 0, ORDER_RGB);
LEADImage1->BitmapList
  = LEADDicom1->BitmapList;
LEADImage1->ForceRepaint
 ();
}
LEADDicom1->EnableMethodErrors = true;
ShowMessage("ImageList loaded from Data Set - Wait");


SetBitmapValue Example for C++Builder

   int nRet;

LEADDicom1->EnableMethodErrors = false;

/* move to the root element */
LEADDicom1->MoveFirstElement(false);
LEADDicom1->MoveRootElement();

/* insert a new element for the Bitmap Value */
LEADDicom1->FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1->DeleteElement();
LEADDicom1->InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);

/* load an image */
LEADImage1->Load
  ("c:\\lead\\images\\image1.cmp", 0, 1, 1);
ShowMessage("Image loaded from File - Wait");

/* insert the image into the element */
LEADDicom1->Bitmap = LEADImage1->Bitmap ;
/* set the bitmap */
nRet = LEADDicom1->SetBitmapValue(DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);

if(nRet != SUCCESS)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
return;
}
ShowMessage("Image set to Data Set - Wait");

LEADDicom1->Bitmap = 0; /* free the value */
ShowMessage("Image cleared from memory - Wait");

/* get the bitmap back */
if(nRet == SUCCESS)
{
LEADDicom1->GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1->Bitmap
  = LEADDicom1->Bitmap;
LEADImage1->ForceRepaint
  ();
}
LEADDicom1->EnableMethodErrors = true;
ShowMessage("Image loaded from Data Set - Wait");


SetCurrentElement Example for C++Builder

Cardinal uCount = 0;
bool bFound = false,
bFinished = false;
THandle hPrevElement = 0,
hFirstElement;
AnsiString sOut;

LEADDicom1->MoveFirstElement(false);
hFirstElement = LEADDicom1->CurrentElement->hElement;
while(!bFound && !bFinished)
if(LEADDicom1->CurrentElement->Tag == TAG_PIXEL_DATA)
bFound = true;
else if(LEADDicom1->CurrentElement->hElement == hPrevElement)
bFinished = true;
else
{
hPrevElement = LEADDicom1->CurrentElement->hElement;
LEADDicom1->MoveNextElement(false);
uCount++;
}
if(bFound)
{
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
sOut = "Found Pixel Data Element: " + LEADDicom1->CurrentTag->Name +"\n";
LEADDicom1->SetCurrentElement(hFirstElement);
LEADDicom1->FindTag(LEADDicom1->CurrentElement->Tag);
sOut = sOut + "First Data Element in list was: " + LEADDicom1->CurrentTag->Name +"\n";
sOut = sOut + "There are " + IntToStr(uCount) + " Elements between the two";
ShowMessage(sOut);
}


SetTagName Example for Visual C++ 4.0

SetTagName Example for C++Builder

LEADDicom1->EnableMethodErrors = true;
try
{
/* move to the selected Tag */
LEADDicom1->FindIndexTag(12);
ShowMessage("Original Tag name: " + LEADDicom1->CurrentTag->Name);
/* change the name */
LEADDicom1->SetTagName("New Tag Name");
ShowMessage("Modified Tag name: " + LEADDicom1->CurrentTag->Name);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


SetUIDName Example for Visual C++ 4.0

SetUIDName Example for C++Builder

LEADDicom1->EnableMethodErrors = true;
try
{
/* move to the selected UID */
LEADDicom1->FindIndexUID(12);
ShowMessage("Original UID name: " + LEADDicom1->CurrentUID->Name);
/* change the name */
LEADDicom1->SetUIDName("New UID Name");
ShowMessage("Modified UID name: " + LEADDicom1->CurrentUID->Name);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


SetVRName Example for Visual C++ 4.0

SetVRName Example for C++Builder

LEADDicom1->EnableMethodErrors = true;
try
{
/* move to the selected VR */
LEADDicom1->FindIndexVR(12);
ShowMessage("Original VR name: " + LEADDicom1->CurrentVR->Name);
/* change the name */
LEADDicom1->SetVRName("New VR Name");
ShowMessage("Modified VR name: " + LEADDicom1->CurrentVR->Name);
}
catch(ELEADDicomError *e)
{
ShowMessage("Error Number: " + IntToStr(LEADDicom1->Error));
}


UnlockSupport Example for C++Builder

LEADDicom1->UnlockSupport(L_SUPPORT_MEDICAL, "TestKey");


Tutorial for Delphi Programmers

The following topics provide brief and simple examples to help you learn how to use the LEADTOOLS DICOM VCL.

Loading a Data Set

Miscellaneous Examples


Loading a Data Set (Delphi)

Take the following steps to start a project and to add some code that loads a DICOM Data Set and prints information about the data set:

1. | Start Delphi.
2. | From the File menu, choose New Application
3. | On the Delphi toolbar, click the LEADTOOLS tab. Select the LEAD DICOM control and add the control to your main form.
4. | Add a command button to your form and name it as follows:
 | Name | Caption
 | LoadLead | Load Image
5. | Add the following initialization code to the main form's Create procedure. In online help, you can use the copy the block of code and paste it in your form.

procedure TForm1.FormCreate(Sender: TObject);
begin
{Unlock DICOM support.}
{Note that this is a sample key, which will not work in your toolkit.}
LEADDicom1.UnlockSupport(L_SUPPORT_MEDICAL, 'TestKey');
end;

6. | At the beginning of the Unit1 file, add LTVCLUNT to the uses section. In order to use the constants in Delphi, you must add the LTVCLDEF unit to the uses section. For example:
 | uses
 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, LEADVCL, StdCtrls, TwainVcl, LTVCLDEF
7. | Code the LoadLead button's click procedure as follows:

procedure TForm1.LeadLoadClick(Sender: TObject);
var
nRet: Integer;
uCount: Cardinal;
bResult: Boolean;
begin
LEADDicom1.EnableMethodErrors := false;
nRet := LEADDicom1.LoadDS('c:\LEAD\Images\test2.dic', 0);
If nRet <> SUCCESS Then
begin
ShowMessage('Error ' + IntToStr(nRet) + ' loading file!');
Exit;
end;
uCount := LEADDicom1.GetModuleCount();
LEADDicom1.FindIndexModule(0);
bResult := LEADDicom1.SetCurrentElement(LEADDicom1.CurrentModule.Element[0].hElement);
If bResult Then
ShowMessage('There are ' + IntToStr(uCount) + ' modules in this data set.' + #13+
'The first module has ' + IntToStr(LEADDicom1.CurrentModule.ElementCount) +
' elements.' + #13 + 'The first element has: ' + #13 + 'Tag number:' +
IntToHex(LEADDicom1.CurrentElement.Tag, 0) + #13 + 'VR: ' +
IntToHex(LEADDicom1.CurrentElement.VR, 0));
LEADDicom1.EnableMethodErrors := true;
end;

8. | Run your program to test it.
9. | Save the project to use as a starting point for other tasks in this tutorial.


Miscellaneous Examples (Delphi)

You can test any of the following examples by adding a command button and pasting the sample code in the Click procedure.

DefaultIOD Example for Delphi

DefaultTag Example for Delphi

DefaultUID Example for Delphi

DefaultVR Example for Delphi

DeleteBitmapValue Example for Delphi

DeleteElement Example for Delphi

DeleteIOD Example for Delphi

DeleteKey Example for Delphi

DeleteModule Example for Delphi

DeleteTag Example for Delphi

DeleteUID Example for Delphi

DeleteVR Example for Delphi

DSTempPath Example for Delphi

FindFirstElement Example for Delphi

FindIndexModule Example for Delphi

FindLastElement Example for Delphi

FindModule Example for Delphi

FindModuleIOD Example for Delphi

GetAgeValue Example for Delphi

GetBinaryValue Example for Delphi

GetBitmapCount Example for Delphi

GetCharValue Example for Delphi

GetConvertValue Example for Delphi

GetDateTimeValue Example for Delphi

GetDateValue Example for Delphi

GetDoubleValue Example for Delphi

GetElementLevel Example for Delphi

GetFloatValue Example for Delphi

GetImageInformation Example for Delphi

GetInfoDS Example for Delphi

GetLongValue Example for Delphi

GetModuleCount Example for Delphi

GetShortValue Example for Delphi

GetStringValue Example for Delphi

GetTagCount Example for Delphi

GetTimeValue Example for Delphi

GetUIDCount Example for Delphi

GetVRCount Example for Delphi

hDicDS Example for Delphi

IncludeVolatile Example for Delphi

InitCS Example for Delphi

InitDS Example for Delphi

InsertBitmapListValue Example for Delphi

InsertBitmapValue Example for Delphi

InsertElement Example for Delphi

InsertIOD Example for Delphi

InsertModule Example for Delphi

InsertTag Example for Delphi

InsertUID Example for Delphi

InsertVR Example for Delphi

IsSupportLocked Example for Delphi

LoadDS Example for Delphi

MoveFirstIOD Example for Delphi

MoveFirstTag Example for Delphi

MoveFirstUID Example for Delphi

MoveFirstVR Example for Delphi

MoveRootElement Example for Delphi

MoveRootIOD Example for Delphi

OnConformanceStatus Example for Delphi

Preamble Example for Delphi

OnProgressStatus Example for Delphi

ResetDS Example for Delphi

ResetIOD Example for Delphi

ResetTag Example for Delphi

ResetUID Example for Delphi

ResetVR Example for Delphi

SaveDS Example for Delphi

SetBitmapListValue Example for Delphi

SetBitmapValue Example for Delphi

SetCurrentElement Example for Delphi

SetTagName Example for Delphi

SetUIDName Example for Delphi

SetVRName Example for Delphi

UnlockSupport Example for Delphi


DefaultIOD Example for Delphi

{ Restore Default IOD table }

Screen.Cursor := crHourGlass;
LEADDicom1.DefaultIOD();
Screen.Cursor := crDefault;


DefaultTag Example for Delphi

{ Restore default Tag values }
Screen.Cursor := crHourGlass;
LEADDicom1.DefaultTag();
Screen.Cursor := crDefault;


DefaultUID Example for Delphi

Screen.Cursor := crHourGlass;
{ Restore to default values }
LEADDicom1.DefaultUID();
Screen.Cursor := crDefault;


DefaultVR Example for Delphi

Screen.Cursor := crHourGlass;
LEADDicom1.DefaultVR();
Screen.Cursor := crDefault;


DeleteBitmapValue Example for Delphi

begin
LEADDicom1.EnableMethodErrors := false;

{ move to the first image element }
LEADDicom1.FindFirstElement(TAG_PIXEL_DATA, false);

{ get the first image }
LEADDicom1.GetBitmapValue(0, 0, ORDER_BGR);
LEADImage1.Bitmap
  := LEADDicom1.Bitmap;

{ flip the image }
LEADImage1.Flip
  ();
{ delete the first image from the dataset }
LEADDicom1.DeleteBitmapValue(0, 1);

{ now update the list with the flipped image }
LEADDicom1.InsertBitmapValue(LEADImage1.Bitmap, 0, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);
end;


DeleteElement Example for Delphi

var
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;
LEADDicom1.FindFirstElement(TAG_STUDY_DATE, false);
nRet := LEADDicom1.DeleteElement();
LEADDicom1.EnableMethodErrors := true;
If nRet <> SUCCESS Then
ShowMessage('Error Deleting Element!');
end;


DeleteIOD Example for Delphi

LEADDicom1.EnableMethodErrors := true;
try
begin
LEADDicom1.MoveFirstIOD(false);
LEADDicom1.DeleteIOD();
end;
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;


DeleteKey Example for Delphi

var
x: Integer;
begin

LEADDicom1.ResetDS ();
LEADDicom1.InitDS (DICOM_CLASS_UNKNOWN, 0);

//insert some keys
LEADDicom1.InsertKey ('PATIENT', True); //insert PATIENT level key
LEADDicom1.InsertKey ('STUDY', True); //insert STUDY level key

//insert 5 SERIES level keys and some data
for x:= 1 To 5 do
begin
LEADDicom1.StringValueCount:= 1;
LEADDicom1.InsertKey ('SERIES', True);
LEADDicom1.MoveChildElement ();
LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1.StringValues [0]:= IntToStr(x);
LEADDicom1.SetStringValue (1);
LEADDicom1.MoveParentElement ();
LEADDicom1.MoveParentKey (); //move back up one level
end;

//move to root key
LEADDicom1.MoveRootKey ();//PATIENT level
ShowMessage (String (LEADDicom1.GetKeyValue));

//move to SERIES level
LEADDicom1.MoveChildKey ();//STUDY
LEADDicom1.MoveChildKey ();//SERIES

//find first SERIES
LEADDicom1.FindFirstKey ('SERIES', True);
LEADDicom1.MoveChildElement ();
LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True ) ;
LEADDicom1.GetStringValue (0, 1);
ShowMessage (LEADDicom1.StringValues [0]);

//find next series
LEADDicom1.FindNextKey (True);
LEADDicom1.MoveChildElement ();
LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1.GetStringValue (0, 1);
ShowMessage (LEADDicom1.StringValues [0]);

//find last SERIES
LEADDicom1.FindLastKey ('SERIES', True);
LEADDicom1.MoveChildElement ();
LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1.GetStringValue (0, 1);
ShowMessage (LEADDicom1.StringValues [0]);

//find previous SERIES
LEADDicom1.FindPrevKey (True);
LEADDicom1.MoveChildElement ();
LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1.GetStringValue (0, 1);
ShowMessage (LEADDicom1.StringValues [0]);

//find last SERIES and delete it
LEADDicom1.FindLastKey ('SERIES', True);
LEADDicom1.DeleteKey ();

//move to root key
LEADDicom1.MoveFirstKey (False);
ShowMessage (String (LEADDicom1.GetKeyValue ()));

//move to SERIES level
LEADDicom1.MoveChildKey (); //STUDY
LEADDicom1.MoveChildKey (); //SERIES

//move to first SERIES
LEADDicom1.MoveFirstKey (True);
LEADDicom1.MoveChildElement ();
LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1.GetStringValue (0, 1);
ShowMessage (LEADDicom1.StringValues [0]);

//move to next series
LEADDicom1.MoveNextKey (True);
LEADDicom1.MoveChildElement ();
LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1.GetStringValue (0, 1);
ShowMessage (LEADDicom1.StringValues [0]);

//move to last SERIES
LEADDicom1.MoveLastKey (True);
LEADDicom1.MoveChildElement ();
LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1.GetStringValue (0, 1);
ShowMessage (LEADDicom1.StringValues [0]);

//move to previous SERIES
LEADDicom1.MovePrevKey (True);
LEADDicom1.MoveChildElement ();
LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
LEADDicom1.GetStringValue (0, 1);
ShowMessage (LEADDicom1.StringValues [0]);
end;


DeleteModule Example for Delphi

var
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;
{ move to the first module in the DataSet and delete it }
LEADDicom1.FindIndexModule(0);
nRet := LEADDicom1.DeleteModule(LEADDicom1.CurrentModule.Module);
If nRet <> SUCCESS Then
ShowMessage('Error Deleting Module!');
LEADDicom1.EnableMethodErrors := true;
end;


DeleteTag Example for Delphi

try
begin
{ move to the selected Tag }
LEADDicom1.FindTag(TAG_FILE_META_INFORMATION_VERSION);
{ delete it }
LEADDicom1.DeleteTag();
end;
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;


DeleteUID Example for Delphi

var
sCode: String;
begin
LEADDicom1.EnableMethodErrors := true;
try
begin
sCode := '1.2.840.10008.1.2';
{ move to the selected UID }
LEADDicom1.FindUID(sCode);
{ delete it }
LEADDicom1.DeleteUID();
end;
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
end;


DeleteVR Example for Delphi

try
begin
LEADDicom1.EnableMethodErrors := true;
{ move to the selected VR }
LEADDicom1.FindVR(VR_IS);
{ delete it }
LEADDicom1.DeleteVR();
end;
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;


DSTempPath Example for Delphi

LEADDicom1.DSTempPath := 'c:\temp';


FindFirstElement Example for Delphi

{ Find the first image element and display it }
LEADDicom1.EnableMethodErrors := true;
try
begin
{ move to first element in Data Set }
LEADDicom1.MoveFirstElement(false);

LEADDicom1.FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1.GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1.Bitmap
  := LEADDicom1.Bitmap;
LEADDicom1.Bitmap := 0;
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);

{ find each image }
While true do
begin
LEADDicom1.FindNextElement(false);
LEADDicom1.GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1.Bitmap
  := LEADDicom1.Bitmap;
LEADDicom1.Bitmap := 0;
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);
end;
end;
except
ShowMessage('No More Images');
end;


FindIndexModule Example for Delphi

var
uCount, n: Cardinal;
sOut: String;
begin
LEADDicom1.EnableMethodErrors := false;
uCount := LEADDicom1.GetModuleCount();
LEADDicom1.GetInfoDS();
sOut := 'Found ' + IntToStr(uCount) + ' Modules' + #10 + #13;
For n := 0 To uCount - 1 do
begin
LEADDicom1.FindIndexModule(n);
LEADDicom1.FindModuleIOD(LEADDicom1.InfoClass, LEADDicom1.CurrentModule.Module);
sOut := sOut + 'Module ' + LEADDicom1.CurrentIOD.Name + #10 + #13;
end;
ShowMessage(sOut);
LEADDicom1.EnableMethodErrors := true;
end;


FindLastElement Example for Delphi

{ Find the last image element and display it }
LEADDicom1.EnableMethodErrors := true;
try
{ move to last element in Data Set }
LEADDicom1.MoveLastElement(false);

LEADDicom1.FindLastElement(TAG_PIXEL_DATA, false);
LEADDicom1.GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1.Bitmap
  := LEADDicom1.Bitmap;
LEADDicom1.Bitmap := 0;
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);

{ find each image }
While true do
begin
LEADDicom1.FindPrevElement(false);
LEADDicom1.GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1.Bitmap
  := LEADDicom1.Bitmap;
LEADDicom1.Bitmap := 0;
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);
end;
except
ShowMessage('No More Images');
end;


FindModule Example for Delphi

var
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;
nRet := LEADDicom1.FindModule(DICOM_MODULE_NM_TOMO_ACQUISITION);
If nRet <> SUCCESS Then
ShowMessage('Not Found')
else
begin
LEADDicom1.GetInfoDS();
LEADDicom1.FindModuleIOD(LEADDicom1.InfoClass, DICOM_MODULE_NM_TOMO_ACQUISITION);
ShowMessage('Found Module ' + LEADDicom1.CurrentIOD.Name);
end;
LEADDicom1.EnableMethodErrors := true
end;


FindModuleIOD Example for Delphi

var
sPrompt: String;
begin
LEADDicom1.EnableMethodErrors := true;
try
{ Find a Module }
LEADDicom1.FindModuleIOD(DICOM_CLASS_CR_IMAGE_STORAGE, DICOM_MODULE_OVERLAY_PLANE);
ShowMessage(LEADDicom1.CurrentIOD.Name);
LEADDicom1.SetIODName('New IOD Name #1');
LEADDicom1.SetIODDescription('New IOD Description #1');
sPrompt := 'Name: ' + LEADDicom1.CurrentIOD.Name + #13;
sPrompt := sPrompt + 'Desc: ' + LEADDicom1.CurrentIOD.Description;
ShowMessage(sPrompt);
{ Find a Class }
LEADDicom1.FindClassIOD(DICOM_CLASS_PRINT_QUEUE);
ShowMessage(LEADDicom1.CurrentIOD.Name);
LEADDicom1.SetIODName('New IOD Name #2');
LEADDicom1.SetIODDescription('New IOD Description #2');
sPrompt := 'Name: ' + LEADDicom1.CurrentIOD.Name + #13;
sPrompt := sPrompt + 'Desc: ' + LEADDicom1.CurrentIOD.Description;
ShowMessage(sPrompt);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
end;


GetAgeValue Example for Delphi

var
uCount: Cardinal;
nRet: Integer;
begin
Label1.Caption := '';
LEADDicom1.EnableMethodErrors := false;
{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the Age Value }
LEADDicom1.InsertElement(false, TAG_PATIENT_AGE, VR_AS, false, 0);

{ insert an Age value into the element }
LEADDicom1.AgeValueCount := 1;
LEADDicom1.AgeValues[0].Number := 21;
LEADDicom1.AgeValues[0].Reference := VALUE_AGE_YEARS;

{ set the age }
nRet := LEADDicom1.SetAgeValue(1);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
end;

LEADDicom1.AgeValueCount := 0; { free the value }

{ get the value count }
uCount := LEADDicom1.GetValueCount();
ShowMessage('There are ' + IntToStr(uCount) + ' values!');

{ get the value }
LEADDicom1.GetAgeValue(0, uCount);
{ display the value }
Label1.Caption := 'Number: ' + IntToStr(LEADDicom1.AgeValues[0].Number) + ' Ref: ' + LEADDicom1.AgeValues[0].Reference;
LEADDicom1.EnableMethodErrors := true;
ShowMessage('wait');
end;


GetBinaryValue Example for Delphi

var
uCount: Cardinal;
n: Cardinal;
nRet: Integer;
nLen: Integer;
byteVal: Byte;
cByte: AnsiChar;
sBytes: String;
begin
LEADDicom1.EnableMethodErrors := false;
{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

Label1.Caption := '';

{ insert some bytes into the element }
sBytes := 'This is a Test 1234!';
nLen := Length(sBytes);
LEADDicom1.BinaryValueCount := nLen;
For n := 0 To nLen – 1 do
begin
cByte := sBytes[n+1];
byteVal := Ord(cByte);
LEADDicom1.BinaryValues[n] := byteVal;
end;
{ set the bytes }
nRet := LEADDicom1.SetBinaryValue(nLen);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
end;
LEADDicom1.BinaryValueCount := 0; { free the values }

{ get the byte count }
uCount := LEADDicom1.CurrentElement.Length;
ShowMessage('There are ' + IntToStr(uCount) + ' bytes!');

{ get the bytes }
nRet := LEADDicom1.GetBinaryValue(uCount);
If nRet = SUCCESS Then
For n := 0 To LEADDicom1.BinaryValueCount - 1 do
{ display each byte: a char separated by a space }
Label1.Caption := Label1.Caption + ' ' + Chr(LEADDicom1.BinaryValues[n]);
LEADDicom1.EnableMethodErrors := true;
ShowMessage('wait');
End;


GetBitmapCount Example for Delphi

var
uCount: Cardinal;
begin
{ move to the first image element }
LEADDicom1.FindFirstElement(TAG_PIXEL_DATA, false);
uCount := LEADDicom1.GetBitmapCount();
If uCount = 1 Then
begin
{ get the bitmap }
LEADDicom1.GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1.Bitmap
  := LEADDicom1.Bitmap;
LEADDicom1.Bitmap := 0; { free the image }
end
else If uCount > 1 Then
begin
{ get the bitmap list }
LEADDicom1.GetBitmapListValue(0, uCount, 0, ORDER_RGB);
LEADImage1.BitmapList
  := LEADDicom1.BitmapList;
ShowMessage('There are ' + IntToStr(LEADDicom1.BitmapListCount) + ' Images');
LEADDicom1.BitmapList := 0; { free the image }
{ play the animation }
LEADImage1.AnimationLoop
  := true;
LEADImage1.AnimationEnable
  := true;
end
else
ShowMessage('No Image!');
ShowMessage('wait');
LEADImage1.AnimationEnable
  := false;
end;


GetCharValue Example for Delphi

var
uCount: Cardinal;
x: Cardinal;
nRet: Integer;
nLen: Integer;
sChars: String;
cChar: AnsiChar;
begin
LEADDicom1.EnableMethodErrors := false;
{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the Char Values }
LEADDicom1.InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);

Label1.Caption := '';

{ insert some char values into the element }
sChars := 'This is a Test 1234!';
nLen := Length(sChars);
LEADDicom1.CharValueCount := nLen;
For x := 0 To nLen - 1 do
begin
cChar := sChars[x+1];
LEADDicom1.CharValues[x] := cChar;
end;
{ set the chars }
nRet := LEADDicom1.SetCharValue(nLen);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
end;
LEADDicom1.CharValueCount := 0; { free the values }

{ get the value count }
uCount := LEADDicom1.GetValueCount();
ShowMessage('There are ' + IntToStr(uCount) + ' values!');

{ get the values }
nRet := LEADDicom1.GetCharValue(0, uCount);
If nRet = SUCCESS Then
For x := 0 To LEADDicom1.CharValueCount - 1 do
begin
{ display each value separated by a '.'}
Label1.Caption := Label1.Caption + '.' + LEADDicom1.CharValues[x];
end;
LEADDicom1.EnableMethodErrors := true;
ShowMessage('wait');
End;


GetConvertValue Example for Delphi

var
nRet: Integer;
uCount: Cardinal;
x: Cardinal;
begin
{ add some values to the element }
{ note, this will only work for elements that have a VR that supports multiple values }
LEADDicom1.EnableMethodErrors := false;
LEADDicom1.StringValueCount := 3;
LEADDicom1.StringValues[0] := '3.45';
LEADDicom1.StringValues[1] := '9.99';
LEADDicom1.StringValues[2] := '1.11';

nRet := LEADDicom1.SetConvertValue();
if nRet <> SUCCESS then
begin
ShowMessage('SetConvertValue failed. Error No. ' + IntToStr(nRet));
exit;
end;
{ free the current values }
LEADDicom1.StringValueCount := 0;
{ now get the values and display them }
nRet := LEADDicom1.GetConvertValue();
If nRet = SUCCESS Then
begin
uCount := LEADDicom1.StringValueCount;
Memo1.Lines.Clear();
For x := 0 To uCount - 1 do
{ display each value on a separate line }
Memo1.Lines.Add(LEADDicom1.StringValues[x]);
end;
LEADDicom1.EnableMethodErrors := true;
end;


GetDateTimeValue Example for Delphi

Currently no DICOM Tags support the VR that this value requires.


GetDateValue Example for Delphi

var
uCount: Cardinal;
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;

{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the Date Value }
LEADDicom1.InsertElement(false, TAG_PATIENT_BIRTH_DATE, VR_DA, false, 0);

{ insert an Date value into the element }
LEADDicom1.DateValueCount := 1;
LEADDicom1.DateValues[0].Year := 1971;
LEADDicom1.DateValues[0].Month := 12;
LEADDicom1.DateValues[0].Day := 12;

{ set the date }
nRet := LEADDicom1.SetDateValue(1);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
End;

LEADDicom1.DateValueCount := 0; { free the value }

Label1.Caption := '';

{ get the value count }
uCount := LEADDicom1.GetValueCount();
ShowMessage('There are ' + IntToStr(uCount) + ' values!');

{ get the value }
LEADDicom1.GetDateValue(0, uCount);
{ display the value }
Label1.Caption := 'Year: ' + IntToStr(LEADDicom1.DateValues[0].Year) + ' Month: ' + IntToStr(LEADDicom1.DateValues[0].Month) + ' Day: ' + IntToStr(LEADDicom1.DateValues[0].Day);
LEADDicom1.EnableMethodErrors := true;
ShowMessage('wait');
End;


GetDoubleValue Example for Delphi

var
uCount: Cardinal;
x: Cardinal;
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;
{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the Double Values }
LEADDicom1.InsertElement(false, TAG_REFERENCE_PIXEL_PHYSICAL_VALUE_X, VR_FD, false, 0);

{ insert some Double values into the element }
LEADDicom1.DoubleValueCount := 5;
For x := 0 To 5 - 1 do
LEADDicom1.DoubleValues[x] := 10 * x * 199.77;
{ set the numbers }
nRet := LEADDicom1.SetDoubleValue(5);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
End;
LEADDicom1.DoubleValueCount := 0; { free the values }

Label1.Caption := '';
{ get the value count }
uCount := LEADDicom1.GetValueCount();
ShowMessage('There are ' + IntToStr(uCount) + ' values!');

{ get the values }
nRet := LEADDicom1.GetDoubleValue(0, uCount);
If nRet = SUCCESS Then
For x := 0 To LEADDicom1.DoubleValueCount - 1 do
{ display each value separated by ' X ' }
Label1.Caption := Label1.Caption + ' X ' + FloatToStr(LEADDicom1.DoubleValues[x]);
LEADDicom1.EnableMethodErrors := true;
End;


GetElementLevel Example for Delphi

var
x, uLevel: Cardinal;
begin
{ Navigate the Data Set: a List, not: a Tree }
{ Move to the 20th element, and then find that element's level in the Tree }
LEADDicom1.EnableMethodErrors := true;
try
begin
{ move to first element in Data Set }
LEADDicom1.MoveFirstElement(false);

{ move to the 20th element }
For x := 2 To 20 do
LEADDicom1.MoveNextElement(false);
LEADDicom1.FindTag( LEADDicom1.CurrentElement.Tag);
uLevel := LEADDicom1.GetElementLevel();
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name + ' at level ' + IntToStr(uLevel));
end;
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
end;


GetFloatValue Example for Delphi

var
uCount, x: Cardinal;
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;
{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the Float Values }
LEADDicom1.InsertElement(false, TAG_TABLE_OF_PARAMETER_VALUES, VR_FL, false, 0);

{ insert some float values into the element }
LEADDicom1.FloatValueCount := 5;
For x := 0 To 5 - 1 do
LEADDicom1.FloatValues[x] := x * 1.99;

{ set the floats }
nRet := LEADDicom1.SetFloatValue(5);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
end;
LEADDicom1.FloatValueCount := 0; { free the values }
Memo1.Lines.Clear();
{ get the value count }
uCount := LEADDicom1.GetValueCount();
ShowMessage('There are ' + IntToStr(uCount) + ' values!');

{ get the values }
nRet := LEADDicom1.GetFloatValue(0, uCount);
If nRet = SUCCESS Then
For x := 0 To LEADDicom1.FloatValueCount - 1 do
{ display each value in a new line }
Memo1.Lines.Add(FloatToStr(LEADDicom1.FloatValues[x]));
LEADDicom1.EnableMethodErrors := true;
ShowMessage('wait');
End;


GetImageInformation Example for Delphi

var
msg: String;
begin
{ move to the first image element }
LEADDicom1.FindFirstElement(TAG_PIXEL_DATA, false);

LEADDicom1.GetImageInformation(0);
msg := 'Compression: ' + IntToStr(LEADDicom1.ImageInfo.Compression) + #13 + #10;
msg := msg + 'Photometric: ' + IntToStr(LEADDicom1.ImageInfo.Photometric) + ' - ' + LEADDicom1.ImageInfo.PhotometricString + #13 + #10;
msg := msg + 'Rows x Columns: ' + IntToStr(LEADDicom1.ImageInfo.Rows) + ' x ' + IntToStr(LEADDicom1.ImageInfo.Columns) + #13 + #10;

msg := msg + 'Bits Allocated: ' + IntToStr(LEADDicom1.ImageInfo.BitsAllocated) + #13 + #10;
msg := msg + 'Bits Stored: ' + IntToStr(LEADDicom1.ImageInfo.BitsStored) + #13 + #10;
msg := msg + 'High Bit: ' + IntToStr(LEADDicom1.ImageInfo.HighBit) + #13 + #10;
msg := msg + 'Pixel Representation: ' + IntToStr(LEADDicom1.ImageInfo.PixelRepresentation) + #13#10;
msg := msg + 'Planar Configuration: ' + IntToStr(LEADDicom1.ImageInfo.PlanarConfiguration) + #13#10;
msg := msg + 'ResolutionX: ' + IntToStr(LEADDicom1.ImageInfo.ResolutionX) + #13#10;
msg := msg + 'ResolutionY: ' + IntToStr(LEADDicom1.ImageInfo.ResolutionY) + #13#10;
msg := msg + 'SmallestImagePixelValue: ' + IntToStr(LEADDicom1.ImageInfo.SmallestImagePixelValue) + #13#10;
msg := msg + 'SmallestImagePixelValueFlag: ' + IntToStr(LEADDicom1.ImageInfo.SmallestImagePixelValueFlag) + #13#10;
msg := msg + 'LargestImagePixelValue: ' + IntToStr(LEADDicom1.ImageInfo.LargestImagePixelValue) + #13#10;
msg := msg + 'LargestImagePixelValueFlag: ' + IntToStr(LEADDicom1.ImageInfo.LargestImagePixelValueFlag) + #13#10;
msg := msg + 'RedEntries: ' + IntToStr(LEADDicom1.ImageInfo.RedEntries) +#13#10;
msg := msg + 'RedFirst: ' + IntToStr(LEADDicom1.ImageInfo.RedFirst) +#13#10;
msg := msg + 'RedBits: ' + IntToStr(LEADDicom1.ImageInfo.RedBits) +#13#10;
msg := msg + 'GreenEntries: ' + IntToStr(LEADDicom1.ImageInfo.GreenEntries) + #13#10;
msg := msg + 'GreenFirst: ' + IntToStr(LEADDicom1.ImageInfo.GreenFirst) + #13#10;
msg := msg + 'GreenBits: ' + IntToStr(LEADDicom1.ImageInfo.GreenBits) + #13#10;
msg := msg + 'BlueEntries: ' + IntToStr(LEADDicom1.ImageInfo.BlueEntries) + #13#10;
msg := msg + 'BlueFirst: ' + IntToStr(LEADDicom1.ImageInfo.BlueFirst) + #13#10;
msg := msg + 'BlueBits: ' + IntToStr(LEADDicom1.ImageInfo.BlueBits) + #13#10;
msg := msg + 'PaletteEntries: ' + IntToStr(LEADDicom1.ImageInfo.PaletteEntries) + #13#10;
msg := msg + 'PaletteFirst: ' + IntToStr(LEADDicom1.ImageInfo.PaletteFirst) + #13#10;
msg := msg + 'BitsPerPixel: ' + IntToStr(LEADDicom1.ImageInfo.BitsPerPixel) + #13#10;
msg := msg + 'Gray: ' + IntToStr(LEADDicom1.ImageInfo.Gray) + #13#10;
msg := msg + 'Frames: ' + IntToStr(LEADDicom1.ImageInfo.Frames) +#13#10;

ShowMessage(msg);
end;


GetInfoDS Example for Delphi

var
sClass, sFlags: String;
begin
LEADDicom1.EnableMethodErrors := true;
try
begin
LEADDicom1.GetInfoDS();
LEADDicom1.FindClassIOD(LEADDicom1.InfoClass);
sClass := LEADDicom1.CurrentIOD.Name;
sFlags := IntToHex(LEADDicom1.InfoFlags, 0);
ShowMessage('Class: ' + sClass + #10 + #13 + 'Flags: ' + sFlags);
end;
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
end;


GetLongValue Example for Delphi

var
uCount, x: Cardinal;
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;
{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the Long Values }
LEADDicom1.InsertElement(false, TAG_OFFSET_CHILD_DIRECTORY, VR_UL, false, 0);

Label1.Caption := '';

{ insert some long values into the element }
LEADDicom1.LongValueCount := 5;
For x := 0 To 5 - 1 do
LEADDicom1.LongValues[x] := x * 100000;

{ set the longs }
nRet := LEADDicom1.SetLongValue(5);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
End;
LEADDicom1.LongValueCount := 0; { free the values }

{ get the value count }
uCount := LEADDicom1.GetValueCount();
ShowMessage('There are ' + IntToStr(uCount) + ' values!');

{ get the values }
nRet := LEADDicom1.GetLongValue(0, uCount);
If nRet = SUCCESS Then
For x := 0 To LEADDicom1.LongValueCount - 1 do
{ display each value separated by ' X ' }
Label1.Caption := Label1.Caption + ' X ' + IntToStr(LEADDicom1.LongValues[x]);
LEADDicom1.EnableMethodErrors := true;
ShowMessage('wait');
End;


GetModuleCount Example for Delphi

var
uCount: Cardinal;
begin
uCount := LEADDicom1.GetModuleCount();
ShowMessage('Module Count: ' + IntToStr(uCount));
end;


GetShortValue Example for Delphi

var
uCount, x: Cardinal;
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;
{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the Short Values }
LEADDicom1.InsertElement(false, TAG_RECORD_IN_USE_FLAG, VR_US, false, 0);

Label1.Caption := '';

{ insert some short values into the element }
LEADDicom1.ShortValueCount := 5;
For x := 0 To 5 - 1 do
LEADDicom1.ShortValues[x] := x * 100;
{ set the shorts }
nRet := LEADDicom1.SetShortValue(5);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
End;
LEADDicom1.ShortValueCount := 0; { free the values }

{ get the value count }
uCount := LEADDicom1.GetValueCount();
ShowMessage('There are ' + IntToStr(uCount) + ' values!');

{ get the values }
nRet := LEADDicom1.GetShortValue(0, uCount);
If nRet = SUCCESS Then
For x := 0 To LEADDicom1.ShortValueCount - 1 do
{ display each value separated by a ' X ' }
Label1.Caption := Label1.Caption + ' X ' + IntToStr(LEADDicom1.ShortValues[x]);
ShowMessage('wait');
LEADDicom1.EnableMethodErrors := true;
End;


GetStringValue Example for Delphi

var
uCount, x: Cardinal;
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;

{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the String Values }
LEADDicom1.InsertElement(false, TAG_IMAGE_TYPE, VR_CS, false, 0);

{ insert some string values into the element }
LEADDicom1.StringValueCount := 5;
For x := 0 To 5 - 1 do
LEADDicom1.StringValues[x] := 'String #' + IntToStr(x + 1);
{ set the strings }
nRet := LEADDicom1.SetStringValue(5);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
End;

LEADDicom1.StringValueCount := 0; { free the values }

Memo1.Lines.Clear();

{ get the value count }
uCount := LEADDicom1.GetValueCount();
ShowMessage('There are ' + IntToStr(uCount) + ' values!');

{ get the values }
nRet := LEADDicom1.GetStringValue(0, uCount);
If nRet = SUCCESS Then
For x := 0 To LEADDicom1.StringValueCount - 1 do
{ display each value separated on a separate line }
Memo1.Lines.Add(LEADDicom1.StringValues[x]);
LEADDicom1.EnableMethodErrors := true;
ShowMessage('wait');
End;


GetTagCount Example for Delphi

var
uCount: Cardinal;
begin
uCount := LEADDicom1.GetTagCount();
ShowMessage('There are ' + IntToStr(uCount) + ' Tag Items.');
end;


GetTimeValue Example for Delphi

var
uCount: Cardinal;
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;

{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the Time Value }
LEADDicom1.InsertElement(false, TAG_PATIENT_BIRTH_TIME, VR_TM, false, 0);

{ insert an Time value into the element }
LEADDicom1.TimeValueCount := 1;
LEADDicom1.TimeValues[0].Hours := 12;
LEADDicom1.TimeValues[0].Minutes := 25;
LEADDicom1.TimeValues[0].Seconds := 33;
LEADDicom1.TimeValues[0].Fractions := 50;

{ set the time }
nRet := LEADDicom1.SetTimeValue(1);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
End;

LEADDicom1.TimeValueCount := 0; { free the value }

Label1.Caption := '';

{ get the value count }
uCount := LEADDicom1.GetValueCount();
ShowMessage('There are ' + IntToStr(uCount) + ' values!');

{ get the value }
LEADDicom1.GetTimeValue(0, uCount);
{ display the value }
Label1.Caption := 'Hours: ' + IntToStr(LEADDicom1.TimeValues[0].Hours)
+ ' Minutes: ' + IntToStr(LEADDicom1.TimeValues[0].Minutes)
+ ' Seconds: ' + IntToStr(LEADDicom1.TimeValues[0].Seconds)
+ ' Fractions: ' + IntToStr(LEADDicom1.TimeValues[0].Fractions);
LEADDicom1.EnableMethodErrors := true;
ShowMessage('wait');
End;


GetUIDCount Example for Delphi

var
uCount: Cardinal;
begin
uCount := LEADDicom1.GetUIDCount();
ShowMessage('There are ' + IntToStr(uCount) + ' UID Items.');
end;


GetVRCount Example for Delphi

var
uCount: Cardinal;
begin
uCount := LEADDicom1.GetVRCount();
ShowMessage('There are ' + IntToStr(uCount) + ' VR Items.');
end;


hDicDS Example for Delphi

{find the first PATIENT KEY, copy it to a new
DS, and then save it to a file}
LEADDicom1.FindFirstKey ('PATIENT', False);
LEADDicom2.ResetDS ();
LEADDicom2.InsertDS (LEADDicom1.hDicDS, LEADDicom1.CurrentElement.hElement);
LEADDicom2.SaveDS ('d:\temp\save.dic', 0);


IncludeVolatile Example for Delphi

var
nRet: Integer;

begin
LEADDicom1.EnableMethodErrors := False;

{ list all elements }
LEADDicom1.IncludeVolatile := True;
nRet := LEADDicom1.MoveFirstElement(False);
Memo1.Lines.Clear();
While nRet = SUCCESS do
begin
Memo1.Lines.Add(IntToStr(LEADDicom1.CurrentElement.Tag));
nRet := LEADDicom1.MoveNextElement(False);
end;
ShowMessage('Element Count = ' + IntToStr(Memo1.Lines.Count));

{ list only non-volatile elements }
LEADDicom1.IncludeVolatile := False;
nRet := LEADDicom1.MoveFirstElement(False);
Memo1.Lines.Clear();
While nRet = SUCCESS do
begin
Memo1.Lines.Add(IntToStr(LEADDicom1.CurrentElement.Tag));
nRet := LEADDicom1.MoveNextElement(False);
end;
ShowMessage('Non Volatile Element Count = ' + IntToStr(Memo1.Lines.Count));
end;


InitCS Example for Delphi

var
szout: String;
begin
//create a data set as a command set
LEADDicom1.InitCS (COMMAND_C_STORE, True);

//gets information about the command set
LEADDicom1.GetInfoCS ();
szout:= 'Command: ' + IntToStr (LEADDicom1.InfoCommand);
szout:= szout + Chr (13);
if ( LEADDicom1.InfoRequest ) then
szout:= szout + 'Request: True'
else
szout:= szout + 'Request: False';
ShowMessage (szout);
end;


InitDS Example for Delphi

{ init a DS with default options }
LEADDicom1.InitDS(DICOM_CLASS_CR_IMAGE_STORAGE, DS_EXPLICIT_VR or DS_METAHEADER_ABSENT or DS_BIG_ENDIAN);


InsertBitmapListValue Example for Delphi

var
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;

{ move to the first image element and delete what's there }
LEADDicom1.FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1.DeleteElement();
LEADDicom1.InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);

{ load an image }
LEADImage1.Load
  ('c:\lead\images\image1.cmp', 0, 1, 1);
ShowMessage('Image loaded from File - Wait');

{ create a bitmap list }
LEADImage2.InsertBitmapListItem
  (0, LEADImage1.Bitmap);
LEADImage1Flip
  ();
LEADImage2.InsertBitmapListItem(1, LEADImage1.Bitmap );
LEADImage1.Reverse
  ();
LEADImage2.InsertBitmapListItem(2, LEADImage1.Bitmap);

{ insert the image list into the element }
nRet := LEADDicom1.InsertBitmapListValue(LEADImage2.BitmapList, 0, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
exit;
end;
ShowMessage('ImageList inserted into Data Set - Wait');
End;


InsertBitmapValue Example for Delphi

var
uCount: Cardinal;
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;

{ move to the first image element and delete what's there }
LEADDicom1.FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1.DeleteElement();
LEADDicom1.InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);

{ load an image }
LEADImage1.Load
  ('c:\lead\images\image1.cmp', 0, 1, 1);
ShowMessage('Image loaded from File - Wait');

uCount := LEADDicom1.GetBitmapCount();

{ insert some images }
nRet := LEADDicom1.InsertBitmapValue(LEADImage1.Bitmap, uCount, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
exit;
end;
LEADImage1.Flip
  ();
nRet := LEADDicom1.InsertBitmapValue(LEADImage1.Bitmap, uCount + 1, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);
If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
exit;
end;
LEADImage1.Reverse
  ();
nRet := LEADDicom1.InsertBitmapValue(LEADImage1.Bitmap, uCount + 2, DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);
If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
exit;
end;

ShowMessage('Images inserted - Wait');
End;


InsertElement Example for Delphi

var
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;
{ insert the new element }
LEADDicom1.FindTag(TAG_DISCHARGE_DATE);
nRet := LEADDicom1.InsertElement(false, TAG_DISCHARGE_DATE, LEADDicom1.CurrentTag.VR, false, ELEMENT_INDEX_MAX);
If nRet <> SUCCESS Then
ShowMessage('Error Inserting Element')
Else
ShowMessage('Inserted Element: ' + LEADDicom1.CurrentTag.Name);
LEADDicom1.EnableMethodErrors := true;
End;


InsertIOD Example for Delphi

var
bInsert: Boolean;
hModuleIOD: THandle;
nRet, nType: Integer;
uCode: Cardinal;
begin
bInsert := false;
uCode := $100011;
nType := DICOM_IOD_TYPE_ELEMENT;

LEADDicom1.EnableMethodErrors := false;
{ Find a Module }
LEADDicom1.FindModuleIOD(DICOM_CLASS_CR_IMAGE_STORAGE, DICOM_MODULE_OVERLAY_PLANE);

hModuleIOD := LEADDicom1.CurrentIOD.hIOD;

{ if the selected item has a child, move to that level }
nRet := LEADDicom1.MoveChildIOD();
If nRet <> SUCCESS Then
bInsert := true
Else { check this level to see if IOD already exists }
begin
LEADDicom1.MoveFirstIOD(true);
nRet := LEADDicom1.FindIOD(uCode, nType, true);
If nRet <> SUCCESS Then
bInsert := true
else
hModuleIOD := LEADDicom1.CurrentIOD.hIOD;
end;
LEADDicom1.SetCurrentIOD(hModuleIOD);
LEADDicom1.EnableMethodErrors := true;
try
begin
If bInsert Then { hModuleIOD contains parent of item to insert }
begin
LEADDicom1.InsertIOD(true, nType, uCode, 'My Test IOD', 5, 'Test Description');
ShowMessage('Element inserted:'#10#13 + LEADDicom1.CurrentIOD.Name);
end
Else
ShowMessage('Element already exists:'#10#13 + LEADDicom1.CurrentIOD.Name);
end;
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
LEADDicom1.EnableMethodErrors := true;
End;


InsertModule Example for Delphi

var
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;
LEADDicom1.GetInfoDS();
nRet := LEADDicom1.InsertModule(DICOM_MODULE_MULTI_FRAME_OVERLAY, true);
If nRet <> SUCCESS Then
ShowMessage('Error Inserting Module!')
Else
begin
LEADDicom1.FindModuleIOD(LEADDicom1.InfoClass, LEADDicom1.CurrentModule.Module);
ShowMessage('Inserted Module:'#10#13 + LEADDicom1.CurrentIOD.Name);
end;
End;


InsertTag Example for Delphi

const
TAB_CHAR = #9;
NEW_LINE = #10#13;
var
nRet: Integer;
sOutput, sItem: String;
sItemL: String;
sItemR: String;
begin
LEADDicom1.EnableMethodErrors := false;
nRet := LEADDicom1.FindTag($20007);
If nRet = SUCCESS Then
begin
ShowMessage('Already Exists!');
Exit;
End;

nRet := LEADDicom1.InsertTag($20007, Cardinal(-1), 'My Test Tag', VR_OB, 1, 1, 1);
If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
exit;
End;

LEADDicom1.EnableMethodErrors := true;
try
{ Display added item }
sOutput := 'Inserted tag:' + NEW_LINE;
sItem := IntToHex(LEADDicom1.CurrentTag.Code, 8);
sItemR := copy(sItem, 1, 4);
sItemL := copy(sItem, 5, 4);
sOutput := sOutput + 'Code = ' + TAB_CHAR + sItemL + ':' + sItemR + NEW_LINE;

sItem := IntToHex(LEADDicom1.CurrentTag.Mask, 8);
sItemR := Copy(sItem, 1, 4);
sItemL := Copy(sItem, 5, 4);
sOutput := sOutput + 'Mask = ' + TAB_CHAR + sItemL + ':' + sItemR + NEW_LINE;
sOutput := sOutput + 'Name = ' + TAB_CHAR + LEADDicom1.CurrentTag.Name + NEW_LINE;
sOutput := sOutput + 'VR = ' + TAB_CHAR + IntToStr(LEADDicom1.CurrentTag.VR) + NEW_LINE;
sOutput := sOutput + 'MinVM = ' + TAB_CHAR + IntToStr(LEADDicom1.CurrentTag.MinVM) + NEW_LINE;
sOutput := sOutput + 'MaxVM = ' + TAB_CHAR + IntToStr(LEADDicom1.CurrentTag.MaxVM) + NEW_LINE;
sOutput := sOutput + 'DivideVM = ' + TAB_CHAR + IntToStr(LEADDicom1.CurrentTag.DivideVM) + NEW_LINE;
ShowMessage(sOutput);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
End;


InsertUID Example for Delphi

var
nRet: Integer;
sOutput: String;
begin
LEADDicom1.EnableMethodErrors := false;
nRet := LEADDicom1.FindUID('1.2.840.10008.1.3');
If nRet = SUCCESS Then
begin
ShowMessage('Already Exists!');
Exit;
End;

nRet := LEADDicom1.InsertUID('1.2.840.10008.1.3', 'My Test UID');
If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
Exit;
End;
LEADDicom1.EnableMethodErrors := true;
try
{ add item to the ListView control }
sOutput := 'UID Inserted:'#13;
sOutput := sOutput + 'Code: ' + LEADDicom1.CurrentUID.Code + #13;
sOutput := sOutput + 'Name: ' + LEADDicom1.CurrentUID.Name;
ShowMessage(sOutput);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
End;


InsertVR Example for Delphi

var
nRet, nCode, nRestrict: Integer;
sOutput: String;
begin
LEADDicom1.EnableMethodErrors := false;
nCode := 20322;
nRet := LEADDicom1.FindVR(nCode);
If nRet = SUCCESS Then
begin
ShowMessage('Already Exists!');
Exit;
End;
LEADDicom1.EnableMethodErrors := true;
try
nRestrict := VR_FIXED or VR_TEXT;
LEADDicom1.InsertVR(nCode, 'My Test VR', 64, nRestrict, 1);
{ add item to the ListView control }
sOutput := 'VR Inserted:' + #13 +
'Code: ' + IntToStr(LEADDicom1.CurrentVR.Code) + #13 +
'Name: ' + LEADDicom1.CurrentVR.Name + #13 +
'Length: ' + IntToStr(LEADDicom1.CurrentVR.Length) + #13 +
'Restrict: ' + IntToStr(LEADDicom1.CurrentVR.Restrict) + #13 +
'UnitSize: ' + IntToStr(LEADDicom1.CurrentVR.UnitSize);
ShowMessage(sOutput);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
End;


IsSupportLocked Example for Delphi

var
bLocked: Boolean;
begin
bLocked := LEADDicom1.IsSupportLocked(L_SUPPORT_MEDICAL);
If bLocked Then
ShowMessage('Medical Support is Locked!')
else
ShowMessage('Medical Support is available');
End;


LoadDS Example for Delphi

var
nRet: Integer;
begin
{ load a Data Set }
LEADDicom1.EnableMethodErrors := false;
LEADDialog1.UIFlags := DLG_FO_SHOWPREVIEW or DLG_FO_SHOWSTAMP;
LEADDialog1.Filter := 'DICOM Files|*.dic';
nRet := LEADDialog1.FileOpen(self);
If nRet = SUCCESS Then
nRet := LEADDicom1.LoadDS(LEADDialog1.filename, 0);
If (nRet <> SUCCESS) and (nRet <> ERROR_DLG_CANCELED) Then
ShowMessage('Error ' + IntToStr(nRet) + ' loading file!');
LEADDicom1.EnableMethodErrors := true;
end;


MoveFirstIOD Example for Delphi

var
hIOD: THandle;
begin
LEADDicom1.EnableMethodErrors := true;
try
{ Move to the First IOD in the list }
LEADDicom1.MoveFirstIOD(false);
hIOD := LEADDicom1.CurrentIOD.hIOD; { store it }
ShowMessage(LEADDicom1.CurrentIOD.Name);

{ Move to the Last IOD at this same level }
LEADDicom1.MoveLastIOD(true);
ShowMessage(LEADDicom1.CurrentIOD.Name);

{ Move to the Previous IOD at this same level }
LEADDicom1.MovePrevIOD(true);
ShowMessage(LEADDicom1.CurrentIOD.Name);

{ Move back to First IOD }
LEADDicom1.SetCurrentIOD(hIOD);

{ Move to the Next IOD at this same level }
LEADDicom1.MoveNextIOD(true);
ShowMessage(LEADDicom1.CurrentIOD.Name);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
End;


MoveFirstTag Example for Delphi

procedure TForm1.MoveTag1Click(Sender: TObject);
{ DisplayItem is a local procedure within MoveTag1Click }
procedure DisplayItem;
var
sItem, sOut: String;
begin
LEADDicom1.EnableMethodErrors := true;
try
sItem := IntToHex(LEADDicom1.CurrentTag.Code, 8);
sOut := 'Current Tag Info:'#13 +
'Code: ' + Copy(sItem, 1, 4) + ':' + Copy(sItem, 5, 4)+#13;

sItem := IntToHex(LEADDicom1.CurrentTag.Mask, 8);
sOut := sOut + 'Mask: ' + Copy(sItem, 1, 4) + ':' + Copy(sItem, 5, 4)+#13;

sOut := sOut + 'Name: ' + LEADDicom1.CurrentTag.Name+#13;

Case LEADDicom1.CurrentTag.VR of
VR_AE: sItem := 'AE';
VR_AS: sItem := 'AS';
VR_AT: sItem := 'AT';
VR_CS: sItem := 'CS';
VR_DA: sItem := 'DA';
VR_DS: sItem := 'DS';
VR_DT: sItem := 'DT';
VR_FD: sItem := 'FD';
VR_FL: sItem := 'FL';
VR_IS: sItem := 'IS';
VR_LO: sItem := 'LO';
VR_LT: sItem := 'LT';
VR_OB: sItem := 'OB';
VR_OW: sItem := 'OW';
VR_PN: sItem := 'PN';
VR_SH: sItem := 'SH';
VR_SL: sItem := 'SL';
VR_SQ: sItem := 'SQ';
VR_SS: sItem := 'SS';
VR_ST: sItem := 'ST';
VR_TM: sItem := 'TM';
VR_UI: sItem := 'UI';
VR_UL: sItem := 'UL';
VR_UN: sItem := 'UN';
VR_US: sItem := 'US';
VR_UT: sItem := 'UT';
else sItem := IntToStr(LEADDicom1.CurrentTag.VR);
End;
sOut := sOut + 'VR: ' + sItem +#13;
sOut := sOut + 'MinVM: ' + IntToStr(LEADDicom1.CurrentTag.MinVM)+#13;
sOut := sOut + 'MaxVM: ' + IntToStr(LEADDicom1.CurrentTag.MaxVM)+#13;
sOut := sOut + 'DivideVM: ' + IntToStr(LEADDicom1.CurrentTag.DivideVM);
ShowMessage(sOut);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
end; { DisplayItem }
begin { MoveTag1Click }
LEADDicom1.MoveFirstTag();
DisplayItem();

LEADDicom1.MoveNextTag();
DisplayItem();

LEADDicom1.MoveLastTag();
DisplayItem();

LEADDicom1.MovePrevTag();
DisplayItem();
end;


MoveFirstUID Example for Delphi

LEADDicom1.EnableMethodErrors := true;
LEADDicom1.MoveFirstUID();
{ display the items information }
Memo1.Lines.Add(LEADDicom1.CurrentUID.Code + #9 + LEADDicom1.CurrentUID.Name + #9 + IntToStr ( LEADDicom1.CurrentUID.nType));

LEADDicom1.MoveNextUID();
{ display the items information }
Memo1.Lines.Add(LEADDicom1.CurrentUID.Code + #9 + LEADDicom1.CurrentUID.Name + #9 + IntToStr ( LEADDicom1.CurrentUID.nType));

LEADDicom1.MoveLastUID();
{ display the items information }
Memo1.Lines.Add(LEADDicom1.CurrentUID.Code + #9 + LEADDicom1.CurrentUID.Name + #9 + IntToStr ( LEADDicom1.CurrentUID.nType));

LEADDicom1.MovePrevUID();
{ display the items information }
Memo1.Lines.Add(LEADDicom1.CurrentUID.Code + #9 + LEADDicom1.CurrentUID.Name + #9 + IntToStr ( LEADDicom1.CurrentUID.nType));


MoveFirstVR Example for Delphi

procedure TForm1.MoveVR1Click(Sender: TObject);
{ DisplayItem is a local procedure within MoveVR1Click }
procedure DisplayItem(sPrompt: String);
var
nRestrict: Integer;
sOut, sTmp: String;
begin
sOut := sPrompt + #13;
LEADDicom1.EnableMethodErrors := true;
try
{ display the items information }
Case LEADDicom1.CurrentVR.Code of
VR_AE: sTmp := 'AE';
VR_AS: sTmp := 'AS';
VR_AT: sTmp := 'AT';
VR_CS: sTmp := 'CS';
VR_DA: sTmp := 'DA';
VR_DS: sTmp := 'DS';
VR_DT: sTmp := 'DT';
VR_FD: sTmp := 'FD';
VR_FL: sTmp := 'FL';
VR_IS: sTmp := 'IS';
VR_LO: sTmp := 'LO';
VR_LT: sTmp := 'LT';
VR_OB: sTmp := 'OB';
VR_OW: sTmp := 'OW';
VR_PN: sTmp := 'PN';
VR_SH: sTmp := 'SH';
VR_SL: sTmp := 'SL';
VR_SQ: sTmp := 'SQ';
VR_SS: sTmp := 'SS';
VR_ST: sTmp := 'ST';
VR_TM: sTmp := 'TM';
VR_UI: sTmp := 'UI';
VR_UL: sTmp := 'UL';
VR_UN: sTmp := 'UN';
VR_US: sTmp := 'US';
VR_UT: sTmp := 'UT';
Else sTmp := IntToStr(LEADDicom1.CurrentVR.Code);
End;
sOut := sOut + 'Code: ' + sTmp + #13;
sOut := sOut + 'Name: ' + LEADDicom1.CurrentVR.Name + #13;
sOut := sOut + 'Length: ' + IntToStr(LEADDicom1.CurrentVR.Length) + #13;

nRestrict := LEADDicom1.CurrentVR.Restrict;
nRestrict := nRestrict And Not VR_BINARY;
nRestrict := nRestrict And Not VR_STRING;
nRestrict := nRestrict And Not VR_TEXT;

Case nRestrict of
VR_FIXED: sTmp := 'Fixed';
VR_MAXIMUM: sTmp := 'Maximum';
VR_MAXIMUM_GROUP: sTmp := 'Maximum Group';
VR_ANY: sTmp := 'Any Length';
VR_NOT_APPLICABLE: sTmp := 'Not Applicable';
VR_MAX: sTmp := 'Max';
Else sTmp := IntToStr(LEADDicom1.CurrentVR.Restrict);
End;
sOut := sOut + 'Restrict: ' + sTmp + #13;
sOut := sOut + 'UnitSize: ' + IntToStr(LEADDicom1.CurrentVR.UnitSize) + #13;
ShowMessage(sOut);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
end; { DisplayItem }
begin { MoveVR1Click }
LEADDicom1.MoveFirstVR();
DisplayItem('FirstVR');

LEADDicom1.MoveNextVR();
DisplayItem('NextVR');

LEADDicom1.MoveLastVR();
DisplayItem('LastVR');

LEADDicom1.MovePrevVR();
DisplayItem('PrevVR');
End;


MoveRootElement Example for Delphi

var
nRet1: Integer;
nRet2: Integer;
begin
LEADDicom1.EnableMethodErrors := true;
try
{ move to first element in Data Set }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);

{ move to next element in the same level of the Data Set }
LEADDicom1.MoveNextElement(true);
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);

{ move to last element in the same level of the Data Set }
LEADDicom1.MoveLastElement(true);
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);

{ move to previous element in the same level of the Data Set }
LEADDicom1.MovePrevElement(true);
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);

{ find the first element that has a child }
LEADDicom1.EnableMethodErrors := false;
nRet1 := LEADDicom1.MoveFirstElement(false);
While nRet1 = SUCCESS do
begin
nRet2 := LEADDicom1.MoveChildElement();
If nRet2 = SUCCESS Then
begin
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);
nRet1 := SUCCESS+1; { end loop }
end;
If nRet1 <> SUCCESS+1 Then
{ check next element in this same level }
nRet1 := LEADDicom1.MoveNextElement(true);
end;
LEADDicom1.EnableMethodErrors := true;
{ move back to the element{ s parent }
If nRet1 = 1 Then
begin
LEADDicom1.MoveParentElement();
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
ShowMessage('Element: ' + LEADDicom1.CurrentTag.Name);
End;
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;
End;


MoveRootIOD Example for Delphi

LEADDicom1.EnableMethodErrors := true;
try
{ Move to the last IOD in the list }
LEADDicom1.MoveLastIOD(false);
ShowMessage(LEADDicom1.CurrentIOD.Name);

{ Move to the Root IOD at the same level}
LEADDicom1.MoveRootIOD();
ShowMessage(LEADDicom1.CurrentIOD.Name);

{ Move to the first Child IOD }
LEADDicom1.MoveChildIOD();
ShowMessage(LEADDicom1.CurrentIOD.Name);

{ Move back to the Parent IOD }
LEADDicom1.MoveParentIOD();
ShowMessage(LEADDicom1.CurrentIOD.Name);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;


OnConformanceStatus Example for Delphi

procedure TForm1.Conformance1Click(Sender: TObject);
begin
LEADDicom1.EnableConformanceStatus := true;
LEADDicom1.ConformanceTestDS();
end;

procedure TForm1.LEADDicom1ConformanceStatus(Sender: TObject; nFlags: Integer);
var
sTag, sTagL, sTagR, msg: String;
nRet: Integer;
begin
{ display info about non-standard element }
case nFlags of
CALLBACK_ERROR_UNKNOWN_CLASS: msg := 'Unknown Class';
CALLBACK_ERROR_UNKNOWN_TAG: msg := 'Unknown Tag';
CALLBACK_ERROR_UNKNOWN_VR: msg := 'Unknown VR';
CALLBACK_ERROR_WRONG_VR: msg := 'Error in VR';
CALLBACK_ERROR_MIN_VM: msg := 'Error in MinVM';
CALLBACK_ERROR_MAX_VM: msg := 'Error in MaxVM';
CALLBACK_ERROR_DIVIDE_VM: msg := 'Error in DivideVM';
CALLBACK_ERROR_IMAGE: msg := 'Error in Image';
else Exit;
end;
sTag := IntToHex(LEADDicom1.CurrentElement.Tag, 8);
sTagR := Copy(sTag, 5, 4);
sTagL := Copy(sTag, 1, 4);
msg := msg +#13+ 'Tag: ' + sTagL + ':' + sTagR;
nRet := Application.MessageBox(PChar(msg), 'Non-Standard Element', MB_OKCANCEL);
If nRet = IDCANCEL Then
LEADDicom1.EnableConformanceStatus := false;
end;


OnProgressStatus Example for Delphi

procedure TForm1.LEADDicom1OnProgressStatus(Sender: TObject; iPercent: Integer);
begin
Form1.Caption := 'Loading...' + IntToStr(iPercent) + '%';
Application.ProcessMessages();
end;

{ Click on the LEAD Main control to enable/disable generating progress events }
{ This works even during getting or setting the DICOM bitmap }
procedure TForm1.LEADImage1Click(Sender: TObject);
begin
LEADDicom1.EnableProgressEvent := not LEADDicom1.EnableProgressEvent;
end;


Preamble Example for Delphi

var
sDSP: String;
begin
LEADDicom1.GetDSPreamble();
sDSP := LEADDicom1.Preamble;
ShowMessage('DS Preamble = '#13 + sDSP);

LEADDicom1.Preamble := 'NEW_VALUE';
LEADDicom1.SetDSPreamble();
LEADDicom1.GetDSPreamble();
sDSP := LEADDicom1.Preamble;
ShowMessage('New DS Preamble = '#13 + sDSP);
end;


ResetDS Example for Delphi

{ close the current Data Set }
LEADDicom1.ResetDS


ResetIOD Example for Delphi

{ clear all IOD items }
LEADDicom1.ResetIOD


ResetTag Example for Delphi

{ Clear all Tags }
LEADDicom1.ResetTag


ResetUID Example for Delphi

{ Clear all UID Items }
LEADDicom1.ResetUID


ResetVR Example for Delphi

{ Clear all items from the VR Table }
LEADDicom1.ResetVR


SaveDS Example for Delphi

var
nRet: Integer;
begin
{ save a Data Set }
LEADDicom1.EnableMethodErrors := false;
SaveDialog1.Filter := 'DICOM Data Set|*.dic';
If SaveDialog1.Execute and (SaveDialog1.FileName <> '') Then
begin
nRet := LEADDicom1.SaveDS(SaveDialog1.FileName, 0);
If nRet <> SUCCESS Then
ShowMessage('Error ' + IntToStr(nRet) + ' Saving file ' + SaveDialog1.FileName);
End;
LEADDicom1.EnableMethodErrors := true
end;


SetBitmapListValue Example for Delphi

var
uCount: Cardinal;
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;

{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the BitmapList Value }
LEADDicom1.FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1.DeleteElement();
LEADDicom1.InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);
{ load an image }
LEADImage1.Load
  ('c:\lead\images\image1.cmp', 0, 1, 1);
ShowMessage('Image loaded from File - Wait');

{ create a bitmap list }
LEADImage2.InsertBitmapListItem
  (0, LEADImage1.Bitmap);
LEADImage1.Flip
  ();
LEADImage2.InsertBitmapListItem(1, LEADImage1.Bitmap);
LEADImage1.Reverse
 ();
LEADImage2.InsertBitmapListItem(2, LEADImage1.Bitmap);

{ insert the image list into the element }
LEADDicom1.BitmapList := LEADImage2.BitmapList ;

{ set the bitmap list }
nRet := LEADDicom1.SetBitmapListValue(DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
exit;
end;
ShowMessage('Image set to Data Set - Wait');

LEADDicom1.BitmapList := 0; { free the value }
ShowMessage('ImageList cleared from memory - Wait');

uCount := LEADDicom1.GetBitmapCount();

{ get the bitmap list back }
If nRet = SUCCESS Then
begin
LEADDicom1.GetBitmapListValue(0, uCount, 0, ORDER_RGB);
LEADImage1.BitmapList
  := LEADDicom1.BitmapList;
LEADImage1.ForceRepaint
  ();
End;
LEADDicom1.EnableMethodErrors := true;
ShowMessage('ImageList loaded from Data Set - Wait');
End;


SetBitmapValue Example for Delphi

var
nRet: Integer;
begin
LEADDicom1.EnableMethodErrors := false;

{ move to the root element }
LEADDicom1.MoveFirstElement(false);
LEADDicom1.MoveRootElement();

{ insert a new element for the Bitmap Value }
LEADDicom1.FindFirstElement(TAG_PIXEL_DATA, false);
LEADDicom1.DeleteElement();
LEADDicom1.InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);

{ load an image }
LEADImage1.Load
  ('c:\lead\images\image1.cmp', 0, 1, 1);
ShowMessage('Image loaded from File - Wait');

{ insert the image into the element }
LEADDicom1.Bitmap := LEADImage1.Bitmap ;
{ set the bitmap }
nRet := LEADDicom1.SetBitmapValue(DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);

If nRet <> SUCCESS Then
begin
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
exit;
end;
ShowMessage('Image set to Data Set - Wait');

LEADDicom1.Bitmap := 0; { free the value }
ShowMessage('Image cleared from memory - Wait');

{ get the bitmap back }
If nRet = SUCCESS Then
begin
LEADDicom1.GetBitmapValue(0, 0, ORDER_RGB);
LEADImage1.Bitmap
  := LEADDicom1.Bitmap;
LEADImage1.ForceRepaint
 ;
End;
LEADDicom1.EnableMethodErrors := true;
ShowMessage('Image loaded from Data Set - Wait');
End;


SetCurrentElement Example for Delphi

var
uCount: Cardinal;
bFound, bFinished: Boolean;
hPrevElement, hFirstElement: THandle;
sOut: String;
begin
bFound := false;
bFinished := false;
uCount := 0;
hPrevElement := 0;
LEADDicom1.MoveFirstElement(false);
hFirstElement := LEADDicom1.CurrentElement.hElement;
While not (bFound or bFinished) do
if LEADDicom1.CurrentElement.Tag = TAG_PIXEL_DATA then
bFound := true
else if LEADDicom1.CurrentElement.hElement = hPrevElement then
bFinished := true
else
begin
hPrevElement := LEADDicom1.CurrentElement.hElement;
LEADDicom1.MoveNextElement(false);
Inc(uCount);
end;
if bFound Then
begin
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
sOut := 'Found Pixel Data Element: ' + LEADDicom1.CurrentTag.Name +#13;
LEADDicom1.SetCurrentElement(hFirstElement);
LEADDicom1.FindTag(LEADDicom1.CurrentElement.Tag);
sOut := sOut + 'First Data Element in list was: ' + LEADDicom1.CurrentTag.Name +#13;
sOut := sOut + 'There are ' + IntToStr(uCount) + ' Elements between the two';
ShowMessage(sOut);
end;
end;


SetTagName Example for Delphi

LEADDicom1.EnableMethodErrors := true;
try
{ move to the selected Tag }
LEADDicom1.FindIndexTag(12);
ShowMessage('Original Tag name: ' + LEADDicom1.CurrentTag.Name);
{ change the name }
LEADDicom1.SetTagName('New Tag Name');
ShowMessage('Modified Tag name: ' + LEADDicom1.CurrentTag.Name);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;


SetUIDName Example for Delphi

LEADDicom1.EnableMethodErrors := true;
try
{ move to the selected UID }
LEADDicom1.FindIndexUID(12);
ShowMessage('Original UID name: ' + LEADDicom1.CurrentUID.Name);
{ change the name }
LEADDicom1.SetUIDName('New UID Name');
ShowMessage('Modified UID name: ' + LEADDicom1.CurrentUID.Name);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;


SetVRName Example for Delphi

LEADDicom1.EnableMethodErrors := true;
try
{ move to the selected VR }
LEADDicom1.FindIndexVR(12);
ShowMessage('Original VR name: ' + LEADDicom1.CurrentVR.Name);
{ change the name }
LEADDicom1.SetVRName('New VR Name');
ShowMessage('Modified VR name: ' + LEADDicom1.CurrentVR.Name);
except
ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
end;


UnlockSupport Example for Delphi

LEADDicom1.UnlockSupport(L_SUPPORT_MEDICAL, 'TestKey');


Technical Support

As a registered user, free technical support is available. You must register your software to receive any technical support. Technical support is available 9 a.m. through 6 p.m. Eastern Standard Time. If you are calling by phone, please be at your computer. You can also contact us through the following methods:

Phone: | (704) 372-9681
E-mail: | support@leadtools.com
FAX: | (704) 372-8161
Online Support / FAQs | http://www.leadtools.com (click on Customers Only)
Home page: | http://www.leadtools.com
FTP: | ftp.leadtools.com

You can also contact LEAD by mail at:

LEAD Technologies, Inc.
Attn: Technical Support
Suite 400
1201 Greenwood Cliff
Charlotte, NC 28204

Before calling technical support, please look in the online documentation and the example programs for an answer to your question.


Properties, Methods, and Events

Data Sets

Information Object Definitions

Data Element Tags

Unique Identifiers

Value Representations

Key Elements


Data Element Tags

Maneuvering Through the Data Element Tag Table

Searching the Data Element Tag Table

Inserting and Deleting Tags

Modifying an Existing Tag

Setting the Default Data Element Tag Table


Data Element Tags: Maneuvering Through the Data Element Tag Table

Data Element Tags:
Maneuvering Through the Data Element Tag Table

MoveFirstTag method

MoveLastTag method

MovePrevTag method

MoveNextTag method

GetTagCount method

CurrentTag property


Data Element Tags: Searching the Data Element Tag Table

Data Element Tags:
Searching the Data Element Tag Table

FindTag method

FindIndexTag method

CurrentTag property


Data Element Tags: Inserting and Deleting Data Element Tags

Data Element Tags:
Inserting and Deleting Data Element Tags

Inserting Data Element Tags:

InsertTag method

CurrentTag property

Deleting Data Element Tags:

DeleteTag method

ResetTag method

CurrentTag property


Data Element Tags: Modifying an Existing Data Element Tag

Data Element Tags:
Modifying an Existing Data Element Tag

SetTagName method

CurrentTag property


Data Element Tags: Setting the Default Data Element Tag Table

Data Element Tags:
Setting the Default Data Element Tag Table

DefaultTag method


Data Sets

Creating, Initializing, Loading, and Saving Data Sets

Maneuvering Through a Data Set

Searching a Data Set

Inserting and Deleting Data Set Members

Getting and Setting Data Element Values

Getting and Setting Data Set Information

Converting Values

Working with the Data Sets


Data Sets: Creating, Initializing, Loading, and Saving Data Sets

Data Sets:
Creating, Initializing, Loading, and Saving Data Sets

DSTempPath property

InitDS method

LoadDS method

SaveDS method


Data Sets: Maneuvering Through a Data Set

Data Sets:
Maneuvering Through a Data Set

CurrentElement property

MoveRootElement method

MoveParentElement

MoveChildElement

MoveFirstElement

MoveLastElement

MovePrevElement

MoveNextElement

CurrentElement property


Data Sets: Searching a Data Set

Data Sets:
Searching a Data Set

CurrentElement property

CurrentModule property

FindModule method

FindIndexModule method

FindFirstElement

FindLastElement

FindPrevElement

FindNextElement

CurrentElement property


Data Sets: Inserting and Deleting Data Set Members

Data Sets:
Inserting and Deleting Data Set Members

Inserting Data Set Members:

InsertElement method

InsertModule method

CurrentElement property

Deleting Data Set Members:

DeleteElement method

DeleteModule method

ResetDS method.

CurrentElement property


Data Sets: Getting Data Element Values

Data Sets:
Getting and Setting Data Element Values

Getting Data Element Values

GetAgeValue method

GetBinaryValue method

GetBitmapListValue method

GetBitmapValue method

GetCharValue method

GetDateTimeValue method

GetDateValue method

GetDoubleValue method

GetFloatValue method

GetLongValue method

GetShortValue method

GetStringValue method

GetTimeValue method

GetValueCount method

Setting Data Element Values

SetAgeValue method

SetBinaryValue method

SetBitmapListValue method

SetBitmapValue method

SetCharValue method

SetDateTimeValue method

SetDateValue method

SetDoubleValue method

SetFloatValue method

SetLongValue method

SetShortValue method

SetStringValue method

SetTimeValue method

Associated properties

AgeValueCount property

AgeValues property

BinaryValueCount property

BinaryValues property

Bitmap property

BitmapList property

BitmapListCount property

CharValueCount property

CharValues property

CurrentElement property

DateTimeValueCount property

DateTimeValues property

DateValueCount property

DateValues property

DoubleValueCount property

DoubleValues property

FloatValueCount property

FloatValues property

LongValueCount property

LongValues property

ShortValueCount property

ShortValues property

StringValueCount property

StringValues property

TimeValueCount property

TimeValues property


Data Sets: Getting and Setting Data Set Information

Data Sets:
Getting and Setting Data Set Information

Getting information:

ConformanceTestDS method

GetBitmapCount method

GetModuleCount method

GetElementLevel method

GetDSPreamble method

GetImageInformation method

InfoClass property

InfoFlags property

OnConformanceStatus event

Preamble property

Setting information:

SetDSPreamble method

Preamble property


Data Sets: Converting Values

Data Sets:
Converting Values

GetConvertValue method

SetConvertValue method


Data Sets: Working with the Data Sets

Data Sets:
Working with the Data Sets

GetInfoCS method

hDicDS property

InfoCommand property

InfoRequest property

InitCS method


Information Object Definitions

Maneuvering Through the IOD Table

Searching the IOD Table

Inserting and Deleting IODs

Modifying an Existing IOD

Setting the Default IOD Table


Information Object Definitions: Maneuvering Through the IOD Table

Information Object Definitions:
Maneuvering Through the IOD Table

MoveRootIOD method

MoveParentIOD method

MoveChildIOD method

MoveFirstIOD method

MoveLastIOD method

MovePrevIOD method

MoveNextIOD method

CurrentIOD property


Information Object Definitions: Searching the IOD Table

Information Object Definitions:
Searching the IOD Table

FindClassIOD method

FindModuleIOD method

FindIOD method

CurrentIOD property


Information Object Definitions: Inserting and Deleting IODs

Information Object Definitions:
Inserting and Deleting IODs

Inserting IODs:

InsertIOD method

CurrentIOD property

Deleting IODs:

DeleteIOD method

ResetIOD method

CurrentIOD property


Information Object Definitions: Modifying an Existing IOD

Information Object Definitions:
Modifying an Existing IOD

SetIODName method

SetIODDescription method

CurrentIOD property


Information Object Definitions: Setting the Default IOD Table

Information Object Definitions:
Setting the Default IOD Table

DefaultIOD method


Unique Identifiers

Maneuvering Through the UID Table

Searching the UID Table

Inserting and Deleting UIDs

Modifying an Existing UID

Setting the DefaultUID Table


Unique Identifiers: Maneuvering Through the UID Table

Unique Identifiers:
Maneuvering Through the UID Table

MoveFirstUID method

MoveLastUID method

MovePrevUID method

MoveNextUID method

GetUIDCount method

CurrentUID property


Unique Identifiers: Searching the UID Table

Unique Identifiers:
Searching the UID Table

FindUID method

FindIndexUID method

CurrentUID property


Unique Identifiers: Inserting and Deleting UIDs

Unique Identifiers:
Inserting and Deleting UIDs

Inserting UIDs:

InsertUID method

CurrentUID property

Deleting UIDs:

DeleteUID method

ResetUID method

CurrentUID property


Unique Identifiers: Modifying an Existing UID

Unique Identifiers:
Modifying an Existing UID

SetUIDName method

CurrentUID property


Unique Identifiers: Setting the Default UID Table

Unique Identifiers:
Setting the Default UID Table

DefaultUID method


Value Representations

Maneuvering Through the VR Table

Searching the VR Table

Inserting and Deleting VRs

Modifying an Existing VR

Setting the Default VR Table


Value Representations: Maneuvering Through the Value Representation Table

Value Representations:
Maneuvering Through the Value Representation Table

MoveFirstVR method

MoveLastVR method

MovePrevVR method

MoveNextVR method

GetVRCount method

CurrentVR property


Value Representations: Searching the Value Representation Table

Value Representations:
Searching the Value Representation Table

FindVR method

FindIndexVR method

CurrentVR property


Value Representations: Inserting and Deleting Value Representations

Value Representations:
Inserting a Value Representation

Inserting Value Representations:

InsertVR method

CurrentVR property

Deleting Value Representations:

DeleteVR method

ResetVR method

CurrentVR property


Value Representations: Modifying an Existing Value Representation

Value Representations:
Modifying an Existing Value Representation

SetVRName method

CurrentVR property


Value Representations: Setting the Default Value Representation Table

Value Representations:
Setting the Default Value Representation Table

DefaultVR method


Key Elements

Inserting and Deleting Key Elements

Searching the DICOM Dir Data Set

Getting the Type of an Existing Key Element

Maneuvering Through the DICOM Dir Data Set


Key Elements: Inserting and Deleting Key Elements

Key Elements:
Inserting and Deleting Key Elements

Inserting Key Elements:

InsertKey method

Deleting Key Elements:

DeleteKey method


Key Elements: Searching the DICOM Dir Data Set

Key Elements:
Searching the DICOM Dir Data Set

FindFirstKey method

FindLastKey method

FindPrevKey method

FindNextKey method


Key Elements: Getting the Type of an Existing Key Element

Key Elements:
Getting the Type of an Existing Key Element

GetKeyValue method


Key Elements: Maneuvering Through the DICOM Dir Data Set

Key Elements:
Maneuvering Through the DICOM Dir Data Set

MoveRootKey method

MoveParentKey method

MoveChildKey method

MoveFirstKey method

MoveLastKey method

MovePrevKey method

MoveNextKey method


Error Codes

The following are the errors that you can test for with a try statement or by examining the return value of most functions

0 | ERROR_FAILURE - Unknown error.
-1 | ERROR_NO_MEMORY - Not enough memory available.
-2 | ERROR_NO_BITMAP - Invalid bitmap handle.
-3 | ERROR_MEMORY_TOO_LOW - Not enough memory available.
-4 | ERROR_FILE_LSEEK - Error seeking to position.
-5 | ERROR_FILE_WRITE - Error writing file.
-6 | ERROR_FILE_GONE - File not present - abort.
-7 | ERROR_FILE_READ - Error reading file.
-8 | ERROR_INV_FILENAME - Invalid filename specified.
-9 | ERROR_FILE_FORMAT - Invalid file format.
-10 | ERROR_FILE_NOT_FOUND - File not found.
-11 | ERROR_INV_RANGE - Invalid width/height.
-12 | ERROR_IMAGE_TYPE - Image format recognized, but sub-type not supported.
-13 | ERROR_INV_PARAMETER - Invalid parameter passed.
-14 | ERROR_FILE_OPEN - Not able to open file.
-15 | ERROR_UNKNOWN_COMP - Unknown compression format.
-16 | ERROR_NOT_SUPPORTED - Not available for file format requested.
-17 | ERROR_NOT_256_COLOR - VGA card only supports 256 colors (8 bit).
-18 | ERROR_PRINTER - Printer error.
-19 | ERROR_CRC_CHECK - Data CRC check error.
-21 | ERROR_QFACTOR - Invalid QFactor specified.
-22 | ERROR_TARGAINSTALL - TARGA not installed.
-23 | ERROR_OutputType - Invalid compression format.
-24 | ERROR_XORIGIN - X origin specified invalid.
-25 | ERROR_YORIGIN - Y origin specified invalid.
-26 | ERROR_VIDEOTYPE - Invalid video mode.
-27 | ERROR_BITPERPIXEL - Invalid bits/pixel.
-28 | ERROR_WINDOWSIZE - Invalid window size.
-29 | ERROR_NORMAL_ABORT - Escape key pressed.
-30 | ERROR_NOT_INITIALIZED - Internal error - call LEAD.
-31 | ERROR_CU_BUSY - Internal error - call LEAD.
-32 | ERROR_INVALID_TABLE_TYPE - Internal error - call LEAD.
-33 | ERROR_UNEQUAL_TABLES - Internal error - call LEAD.
-34 | ERROR_INVALID_BUFFER - Internal error - call LEAD.
-35 | ERROR_MISSING_TILE_DATA - Internal error - call LEAD.
-36 | ERROR_INVALID_QVALUE - Internal error - call LEAD.
-37 | ERROR_INVALID_DATA - Internal error - call LEAD.
-38 | ERROR_INVALID_COMPRESSED_TYPE - Internal error - call LEAD.
-39 | ERROR_INVALID_COMPONENT_NUM - Internal error - call LEAD.
-40 | ERROR_INVALID_PIXEL_TYPE - Internal error - call LEAD.
-41 | ERROR_INVALID_PIXEL_SAMPLING - Internal error - call LEAD.
-42 | ERROR_INVALID_SOURCE_FILE - Internal error - call LEAD.
-43 | ERROR_INVALID_TARGET_FILE - Internal error - call LEAD.
-44 | ERROR_INVALID_IMAGE_DIMS - Internal error - call LEAD.
-45 | ERROR_INVALID_TILE_DIMS - Internal error - call LEAD.
-46 | ERROR_INVALID_PIX_BUFF_DIMS - Internal error - call LEAD.
-47 | ERROR_SEGMENT_OVERFLOW - Internal error - call LEAD.
-48 | ERROR_INVALID_SUBSAMPLING - Internal error - call LEAD.
-49 | ERROR_INVALID_Q_VIS_TABLE - Internal error - call LEAD.
-50 | ERROR_INVALID_DC_CODE_TABLE - Internal error - call LEAD.
-51 | ERROR_INVALID_AC_CODE_TABLE - Internal error - call LEAD.
-52 | ERROR_INSUFFICIENT_DATA - Internal error - call LEAD.
-53 | ERROR_MISSING_FUNC_POINTER - Internal error - call LEAD.
-54 | ERROR_TOO_MANY_DC_CODE_TABLES - Internal error - call LEAD.
-55 | ERROR_TOO_MANY_AC_CODE_TABLES - Internal error - call LEAD.
-56 | ERROR_INVALID_SUBIMAGE - Internal error - call LEAD.
-57 | ERROR_INVALID_ABORTION - Internal error - call LEAD.
-58 | ERROR_CU_NO_SUPPORT - Internal error - call LEAD.
-59 | ERROR_CU_FAILURE - Internal error - call LEAD.
-60 | ERROR_BAD_POINTER - Internal error - call LEAD.
-61 | ERROR_HEADER_DATA_FAILURE - Internal error - call LEAD.
-62 | ERROR_COMPRESSED_DATA_FAILURE - Internal error - call LEAD.
-63 | ERROR_FIXEDPAL_DATA - Fixed palette data not found.
-64 | ERROR_LOADFONT_DATA - Fixed palette data not found.
-65 | ERROR_NO_STAMP - Stamp not found.
-70 | ERROR_G3CODE_INVALID - Invalid group 3 code.
-71 | ERROR_G3CODE_EOF - Group3 code end of file.
-72 | ERROR_G3CODE_EOL - Group3 code end of code.
-73 | ERROR_PREMATURE_EOF - Premature EOF at scanline.
-74 | ERROR_PREMATURE_EOL - Premature end-of-line code.
-75 | ERROR_UNCOMP_EOF - Premature end-of-line code.
-76 | ERROR_ACT_INCOMP - Premature end-of-line code.
-77 | ERROR_BAD_DECODE_STATE - Premature end-of-line code.
-78 | ERROR_VERSION_NUMBER - Bad version number.
-79 | ERROR_TWAIN_NODSM - Source manager not found.
-80 | ERROR_TWAIN_BUMMER - Failure due to unknown causes.
-81 | ERROR_TWAIN_LOWMEMORY - Not enough memory to perform operation.
-82 | ERROR_TWAIN_NODS - No Data Source.
-83 | ERROR_TWAIN_MAXCONNECTIONS - DS is connected to max possible apps.
-84 | ERROR_TWAIN_OPERATIONERROR - DS or DSM reported error, app shouldn't.
-85 | ERROR_TWAIN_BADCAP - Unknown capability.
-86 | ERROR_TWAIN_BADPROTOCOL - Unrecognized MSG DG DAT combination.
-87 | ERROR_TWAIN_BADVALUE - Data parameter out of range.
-88 | ERROR_TWAIN_SEQERROR - DG DAT MSG out of expected sequence.
-89 | ERROR_TWAIN_BADDEST - Unknown destination App/Src in DSM_Entry.
-90 | ERROR_TWAIN_CANCEL - Operation was cancelled.
-91 | ERROR_PANWINDOW_NOT_CREATED - PanWindow was not created.
-100 | ERROR_USER_ABORT - The user cancelled the operation.
-101 | ERROR_FPX_INVALID_FORMAT - FPX error.
-102 | ERROR_FPX_FILE_WRITE - FPX error.
-103 | ERROR_FPX_FILE_READ - FPX error.
-104 | ERROR_FPX_FILE_NOT_FOUND - FPX error.
-105 | ERROR_FPX_COLOR_CONVERSION - FPX error.
-106 | ERROR_FPX_SEVER_INIT - FPX error.
-107 | ERROR_FPX_LOW_MEMORY - FPX error.
-108 | ERROR_FPX_IMAGE_TOO_BIG - FPX error.
-109 | ERROR_FPX_INVALID_COMPRESSION - FPX error.
-110 | ERROR_FPX_INVALID_RESOLUTION - FPX error.
-111 | ERROR_FPX_INVALID_FPX_HANDLE - FPX error.
-112 | ERROR_FPX_TOO_MANY_LINES - FPX error.
-113 | ERROR_FPX_BAD_COORDINATES - FPX error.
-114 | ERROR_FPX_FILE_SYSTEM_FULL - FPX error.
-115 | ERROR_FPX_MISSING_TABLE - FPX error.
-116 | ERROR_FPX_RETURN_PARAMETER_TOO_LARGE - FPX error.
-117 | ERROR_FPX_NOT_A_VIEW - FPX error.
-118 | ERROR_FPX_VIEW_IS_TRANFORMLESS - FPX error.
-119 | ERROR_FPX_ERROR - FPX error.
-120 | ERROR_FPX_UNIMPLEMENTED_FUNCTION - FPX error.
-121 | ERROR_FPX_INVALID_IMAGE_DESC - FPX error.
-122 | ERROR_FPX_INVALID_JPEG_TABLE - FPX error.
-123 | ERROR_FPX_ILLEGAL_JPEG_ID - FPX error.
-124 | ERROR_FPX_MEMORY_ALLOCATION_FAILED - FPX error.
-125 | ERROR_FPX_NO_MEMORY_MANAGEMENT - FPX error.
-126 | ERROR_FPX_OBJECT_CREATION_FAILED - FPX error.
-127 | ERROR_FPX_EXTENSION_FAILED - FPX error.
-128 | ERROR_FPX_FREE_NULL_PTR - FPX error.
-129 | ERROR_FPX_INVALID_TILE - FPX error.
-130 | ERROR_FPX_FILE_IN_USE - FPX error.
-131 | ERROR_FPX_FILE_CREATE_ERROR - FPX Error
-132 | ERROR_FPX_FILE_NOT_OPEN_ERROR - FPX Error
-133 | ERROR_FPX_USER_ABORT - FPX Error
-134 | ERROR_FPX_OLE_FILE_ERROR - FPX Error
-140 | ERROR_BAD_TAG - Bad TIFF tag.
-141 | ERROR_INVALID_STAMP_SIZE - FPX error.
-142 | ERROR_BAD_STAMP - Stamp is specified incorrectly (for example: too big or invalid bits per pixel)
-143 | ERROR_DOCUMENT_NOT_ENABLED – Document/Medical capability is required to use this function.
-144 | ERROR_IMAGE_EMPTY - Image is empty.
-145 | ERROR_NO_CHANGE - Image has not changed.
-147 | ERROR_FPXEXTENSIONS_LOCKED - FPX Extension capability is locked
-148 | ERROR_ANN_LOCKED - Annotation object is locked
-150 | ERROR_DLG_CANCELED - common dialog was canceled by user
-151 | ERROR_DLG_FAILED - an error occurred during creation of the common dialog
-160 | ERROR_ISIS_NOCURSCANNER - No ISIS Scanner selected
-161 | ERROR_ISIS_SCANDRIVER_NOT_LOADED - ISIS Scanner driver failed to load
-162 | ERROR_ISIS_CANCEL - ISIS operation canceled
-163 | ERROR_ISIS_BAD_TAG_OR_VALUE - Bad ISIS Tag or Bad Tag Value
-164 | ERROR_ISIS_NOT_READY - ISIS Scanner not ready
-165 | ERROR_ISIS_NO_PAGE - No page in the ISIS Scanner
-166 | ERROR_ISIS_JAM - ISIS Scanner Jam error
-167 | ERROR_ISIS_SCANNER_ERROR - ISIS Scanner driver error
-168 | ERROR_ISIS_BUSY - ISIS Scanner is busy
-169 | ERROR_ISIS_FILE_ERROR - ISIS File driver error
-170 | ERROR_ISIS_NETWORK_ERROR - ISIS Network error
-171 | ERROR_ISIS_NOT_INSTALLED - ISIS is not installed
-310 | ERROR_PAGE_NOT_FOUND - Page not found
-311 | ERROR_DELETE_LAST_PAGE - You cannot delete a page from a file that has only one page.
-312 | ERROR_NO_HOTKEY - There is no hotkey.
-313 | ERROR_CANNOT_CREATE_HOTKEY_WINDOW - Error creating the hotkey window.
-314 | ERROR_MEDICAL_NOT_ENABLED - Medical capability is required to use this function.
-315 | ERROR_JBIG_NOT_ENABLED - JBIG capability is required.
-901 | DICOM_ERR_LOCKED - Dicom support is locked. You must unlock the Medical Support.
-902 | DICOM_ERR_MEMORY - Insufficient memory.
-903 | DICOM_ERR_OPEN - Error opening the file.
-904 | DICOM_ERR_READ - Error reading the file.
-905 | DICOM_ERR_WRITE - Error writing to a file.
-906 | DICOM_ERR_SEEK - Error during search.
-907 | DICOM_ERR_END - Error - end of file.
-908 | DICOM_ERR_FORMAT - Error - improper file format.
-909 | DICOM_ERR_PARAMETER - Error - incorrect parameter.
-910 | DICOM_ERR_IMAGE - Error - improper image.
-911 | DICOM_ERR_COMPRESSION - Error - improper compression.
-912 | DICOM_ERR_PHOTOMETRIC - Error - improper photometric type.
-913 | DICOM_ERR_CONVERSION - Error converting the file.
-914 | DICOM_ERR_RANGE - Error - out of range.
-915 | DICOM_ERR_BITSPERPIXEL - Error - improper bits per pixel.
-916 | DICOM_ERR_QFACTOR - Error - improper Q factor.


AgeValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal AgeValueCount
Delphi Syntax | AgeValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of age values in the AgeValues property.

If you are retrieving age values associated with the element specified in the CurrentElement property, calling the GetAgeValue method updates this property with the number of age values associated with the specified element.

If you are setting age values associated with the element specified in the CurrentElement property, you can set the AgeValueCount property to allocate storage for the AgeValues array property, prior to setting the age values using SetAgeValue.

Set this property to 0 at any time to free the memory used for the AgeValues property.

See Also

Elements:

AgeValues property, GetAgeValue method, SetAgeValue method


AgeValues property

Delphi example

C++Builder example

Builder Syntax | TValueAge* AgeValues[Cardinal uIndex]
Delphi Syntax | AgeValues[uIndex: Cardinal]: TValueAge
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of age values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the AgeValueCount property.

The TValueAge class has the following properties:

Property | Type | Description
Number | Word | Numerical value that indicates the age.
Reference | AnsiChar | A character that indicates whether the value in Number refers to days, weeks, months, or years. Possible values are:
 |  | VALUE_AGE_DAYS | ‘D’ The age is given in days.
 |  | VALUE_AGE_WEEKS | ‘W’ The age is given in weeks.
 |  | VALUE_AGE_MONTHS | ‘M’ The age is given in months.
 |  | VALUE_AGE_YEARS | ‘Y’ The age is given in years.

If you are retrieving age values associated with the element specified in the CurrentElement property, calling the GetAgeValue method updates this property with the age values associated with the specified element.

If you are setting age values associated with the element specified in the CurrentElement property, you can set the AgeValueCount property to allocate storage for the AgeValues property, prior to setting the age values using SetAgeValue.

Set the AgeValueCount property to 0 at any time to free the memory used for the AgeValues property.

See Also

Elements:

AgeValueCount property, GetAgeValue method, SetAgeValue method


BinaryValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal BinaryValueCount
Delphi Syntax | BinaryValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of binary values (in bytes) in the BinaryValues property.

If you are retrieving binary values associated with the element specified in the CurrentElement property, calling the GetBinaryValue method updates this property with the number of binary values (in bytes) associated with the specified element.

If you are setting binary values associated with the element specified in the CurrentElement property, you can set the BinaryValueCount property to allocate storage for the BinaryValues array property, prior to setting the binary values using SetBinaryValue.

Set this property to 0 at any time to free the memory used for the BinaryValues property.

See Also

Elements:

BinaryValues property, GetBinaryValue method, SetBinaryValue method


BinaryValues property

Delphi example

C++Builder example

Builder Syntax | Byte BinaryValues[Cardinal uIndex]
Delphi Syntax | BinaryValues[uIndex: Cardinal]: Byte
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of binary values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the BinaryValueCount property.

If you are retrieving binary values associated with the element specified in the CurrentElement property, calling the GetBinaryValue method updates this property with the binary values associated with the specified element.

If you are setting binary values associated with the element specified in the CurrentElement property, you can set the BinaryValueCount property to allocate storage for the BinaryValues property, prior to setting the binary values using SetBinaryValue.

Set the BinaryValueCount property to 0 at any time to free the memory used for the BinaryValues property.

See Also

Elements:

BinaryValueCount property, GetBinaryValue method, SetBinaryValue method


Bitmap property

Delphi example

C++Builder example

Builder Syntax | Ltvcltyp::TBitmapHandle Bitmap
Delphi Syntax | Bitmap: TBitmapHandle
Overview | Refer to Working with Data Sets.

Remarks

This is the handle to a LEAD bitmap.

Calling GetBitmapValue will update this property with the image from the item specified by the CurrentElement property.

If you assign from this property to a Main Control Bitmap , a copy of the image will be made in the target Main Control, unless the Main Control's RefBitmap property is set to True. Assigning to this property from any other valid Bitmap property will always result in a copy being made.

Set the Bitmap property to 0 at any time to free the memory used for the bitmap.

See Also

Elements:

GetBitmapCount method, GetBitmapValue, SetBitmapValue


BitmapList property

Delphi example

C++Builder example

Builder Syntax | Ltvcltyp::HBITMAPLIST BitmapList
Delphi Syntax | BitmapList: HBITMAPLIST
Overview | Refer to Working with Data Sets.

Remarks

This is the handle to the bitmap list.

Calling GetBitmapListValue will update this property with the image list from the item specified by the CurrentElement property.

You can assign the value of this property to the Main BitmapList , or assign the value of the Main BitmapList property to this property, to copy the whole list. Set the BitmapList property to 0 at any time to free the memory used for the bitmap list.

See Also

Elements:

BitmapListCount property, GetBitmapCount method, GetBitmapListValue method, SetBitmapListValue method


BitmapListCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal BitmapListCount
Delphi Syntax | BitmapListCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of bitmaps in the BitmapList property.

This property is updated by the GetBitmapListValue method. It is also updated when you assign a bitmap list to the BitmapList property before calling the SetBitmapListValue method to update a data element.

See Also

Elements:

BitmapList property, GetBitmapListValue method, SetBitmapListValue method


CharValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal CharValueCount
Delphi Syntax | CharValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of character values in the CharValues property.

If you are retrieving character values associated with the element specified in the CurrentElement property, calling the GetCharValue method updates this property with the number of character values associated with the specified element.

If you are setting character values associated with the element specified in the CurrentElement property, you can set the CharValueCount property to allocate storage for the CharValues array property, prior to setting the character values using SetCharValue.

Set this property to 0 at any time to free the memory used for the CharValues property.

See Also

Elements:

CharValues property, GetCharValue method, SetCharValue method


CharValues property

Delphi example

C++Builder example

Builder Syntax | char CharValues[Cardinal uIndex]
Delphi Syntax | CharValues[uIndex: Cardinal]: AnsiChar
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of character values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the CharValueCount property.

If you are retrieving character values associated with the element specified in the CurrentElement property, calling the GetCharValue method updates this property with the character values associated with the specified element.

If you are setting character values associated with the element specified in the CurrentElement property, you can set the CharValueCount property to allocate storage for the CharValues property, prior to setting the character values using SetCharValue.

Set the CharValueCount property to 0 at any time to free the memory used for the CharValues property.

See Also

Elements:

CharValueCount property, GetCharValue method, SetCharValue method


ConformanceTestDS method

Delphi example

C++Builder example

Builder Syntax | bool __fastcall ConformanceTestDS(void);
Delphi Syntax | function ConformanceTestDS: Boolean;
Overview | Refer to Working with Data Sets.

Remarks

Verifies the conformance of the Data Set with the DICOM Standard.

For each Data Element in the Data Set that is invalid, OnConformanceStatus event is fired.

Information from the Value Representation Table, the Data Element Tag Table and the IOD Table is used when analyzing the Data Element for conformance.


CurrentElement property

Delphi example

C++Builder example

Builder Syntax | TDICOMDSElement* CurrentElement
Delphi Syntax | CurrentElement: TDICOMDSElement
Overview | Refer to Working with Data Sets.

Remarks

Holds the currently selected Data Set Element.

The TDICOMDSElement class has the following Read-Only properties:

Property | Type | Description
hElement | Cardinal | Memory handle that can be used to uniquely identify a Data Element.
Length | Integer | Length of the value stored in the data element. If the stored value is a sequence, this value will be ELEMENT_LENGTH_MAX ($FFFFFFFF).
Tag | Cardinal | Data element tag. For a list of default values, refer to Data Element Tag Constants .
VR | Word | Value representation. For a list of default values supported by DICOM, refer to Value Representation Constants .

When a data set is loaded from a DICOM file, only the tag, the value representation and the length of the stored value data are actually loaded. This information is stored in the CurrentElement property. You can access and modify this data set information, add to the data set, or delete items from the data set.

Note: The CurrentElement property is read only, except that you can explicitly set it to Nil in Pascal or NULL in C++.

See Also

Elements:

InsertElement method, InsertModule method, DeleteElement method, DeleteModule method, MoveRootElement method, MoveParentElement method, MoveChildElement method, MoveFirstElement method, MoveLastElement method, MoveNextElement method, MovePrevElement method, FindFirstElement method, FindLastElement method, FindPrevElement method, FindNextElement method, SetCurrentElement method, GetValueCount method, GetBinaryValue method, GetCharValue method, GetShortValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetStringValue method, GetAgeValue method, GetTimeValue method, GetDateTimeValue method, SetBinaryValue method, SetCharValue method, SetShortValue method, SetLongValue method, SetFloatValue method, SetDoubleValue method, SetStringValue method, SetAgeValue method, SetTimeValue method, SetDateTimeValue method


CurrentIOD property

Delphi example

C++Builder example

Builder Syntax | TDICOMIODItem* CurrentIOD
Delphi Syntax | CurrentIOD: TDICOMIODItem
Overview | Refer to Working with Information Object Definitions.

Remarks

Holds the currently selected IOD Structure item.

The TDICOMIODItem class has the following Read-Only properties:

Property | Type | Description
Code | Cardinal | Code value that specifies the Information Object Definition. The information object may be a Class, a Module or a Tag. For lists of default values, refer to Data Element Tag Constants, IOD Class Constants, and IOD Module Constants.
Description | String | Character string that contains a description of the Information Object Definition.
hIOD | Cardinal | Memory handle that can be used to uniquely identify an IOD.
Name | String | Character string that contains the name of the Information Object Definition.
nType | Byte | The type of Information Object Definition you are working with. Possible values are:
 |  | DICOM_IOD_TYPE_CLASS | [$00] Class type Information Object Definition.
 |  | DICOM_IOD_TYPE_MODULE | [$01] Module type Information Object Definition.
 |  | DICOM_IOD_TYPE_ELEMENT | [$02] Element type Information Object Definition.
Usage | Word | Value that indicates whether the Information Object is mandatory, conditional or optional, and the type of usage. For a list of possible values, refer to IOD Usage Constants. For more information about mandatory, conditional, and optional IODs, refer to An Overview of Dicom or the DICOM Spec.

Internally LEADTOOLS maintains a tree structure, referred to as the IOD Structure, of available Information Object Definitions (IODs). These IODs can include default IODs available in DICOM, as well as user defined IODs. You can access any of this information, add to the IOD Structure, or delete items from the IOD Structure using the xxxIOD and xxxIODxx methods.

Note: The CurrentIOD property is read only, except that you can explicitly set it to Nil in Pascal or NULL in C++.

See Also

Elements:

SetCurrentIOD method, DefaultIOD method, InsertIOD method, DeleteIOD method, ResetIOD method, MoveRootIOD method, MoveParentIOD, MoveChildIOD method, MoveFirstIOD method, MoveLastIOD method, MovePrevIOD method, MoveNextIOD method, FindIOD method, FindClassIOD method, FindModuleIOD method, , SetIODName method, SetIODDescription method


CurrentModule property

Delphi example

C++Builder example

Builder Syntax | TDICOMDSModule* CurrentModule
Delphi Syntax | CurrentModule: TDICOMDSModule
Overview | Refer to Working with Data Sets.

Remarks

Holds the currently selected Data Set Module.

The TDICOMDSModule class has the following Read-Only properties:

Property and Type | Description
Element[uIndex: Cardinal]: DICOMDSElement | An array of Data Elements. For a description of the DICOMDSElement class, refer to the CurrentElement property
ElementCount: Cardinal | Number of elements in the Element array property.
hModule: Cardinal | Memory handle that can be used to uniquely identify a Data Element.
Module: Cardinal | Module code number. For a list of default values, refer to IOD Module Constants .

Note: The CurrentModule property is read only, except that you can explicitly set it to Nil in Pascal or NULL in C++.

See Also

Elements:

InsertModule method, DeleteModule method, GetModuleCount method, FindModule method, FindIndexModule method


CurrentTag property

Delphi example

C++Builder example

Builder Syntax | TLEADDICOMTag* CurrentTag
Delphi Syntax | CurrentTag: TLEADDICOMTag
Overview | Refer to Working with Tags.

Remarks

Holds the currently selected Data Element Tag Table item.

The TLEADDICOMTag class has the following Read-Only properties:

Property | Type | Description
Code | Cardinal | Code that indicates the tag. For a list of default values, refer to Data Element Tag Constants .
DivideVM | Cardinal | Value used to divide the value multiplicity. When multiple values are stored in the value field of a data element, the number of values present must be evenly divisible by nDivideVM. For most items nDivideVM will be 1. However, if the values stored in the value field are RGB triplets, for example, you would have to store three values for each triplet. You could store 12 values, since 12 values would be 4 triplets, however, you could not store 13 values. In this case nDivideVM would be 3.
Mask | Cardinal | Masking value. Masking allows you to insert multiple elements in the same entry in the table.
MaxVM | LongInt | Value that indicates the maximum number of values that may be stored in the Value Field of the Data Element.
MinVM | Cardinal | Value that indicates the minimum number of values that may be stored in the Value Field of the Data Element.
Name | String | Character string that contains the name of the tag. To see the default values for the Tag Names, refer to the Default Data Element Tag Table .
VR | Word | Value representation code that indicates the type of value stored in the data element. For a list of default values supported by DICOM, refer to Value Representation Constants .

Internally LEADTOOLS maintains a table or list of available tag values. These values can include default values for standard tags available in DICOM, as well as user defined tags. You can access any of this information, add to the table, or delete items from the table using the XXXTag methods. To see the default values, refer to the Default Data Element Tag Table.

Note: The CurrentTag property is read only, except that you can explicitly set it to Nil in Pascal or NULL in C++.

See Also

Elements:

DefaultTag method, InsertTag method, DeleteTag method, ResetTag method, MoveFirstTag method, MoveLastTag method, MovePrevTag method, MoveNextTag method, GetTagCount method, FindTag method, FindIndexTag method, SetTagName method


CurrentUID property

Delphi example

C++Builder example

Builder Syntax | TDICOMUIDItem* CurrentUID
Delphi Syntax | CurrentUID: TDICOMUIDItem
Overview | Refer to Working with Unique Identifiers.

Remarks

Holds the currently selected UID Table item.

The TDICOMUIDItem class has the following Read-Only properties:

Property | Type | Description
Code | String | Unique identifier code. For a list of default values, refer to the Default UID Table .
Name | String | The name of the unique identifier. For a list of default values, refer to the Default UID Table .

Internally LEADTOOLS maintains a table or list of available unique identifiers. These values can include default values for standard unique identifiers available in DICOM, as well as user defined unique identifiers. You can access any of this information, add to the table, or delete items from the table using the XXXUID methods. To see the default values, refer to the Default UID Table.

Note: The CurrentUID property is read only, except that you can explicitly set it to Nil in Pascal or NULL in C++.

See Also

Elements:

DefaultUID method, InsertUID method, DeleteUID method, ResetUID method, MoveFirstUID method, MoveLastUID method, MovePrevUID method, MoveNextUID method, GetUIDCount method, FindUID method, FindIndexUID method, SetUIDName method


CurrentVR property

Delphi example

C++Builder example

Builder Syntax | TDICOMVRItem* CurrentVR
Delphi Syntax | CurrentVR: TDICOMVRItem
Overview | Refer to Working with Value Representations.

Remarks

Holds the currently selected Value Representation Table item.

The TDICOMVRItem class has the following Read-Only properties:

Property | Type | Description
Code | Word | Code that indicates the type of value stored in the data element. For a list of default values supported by DICOM, refer to Value Representation Constants .
Length | Cardinal | The length of the value to be stored in the data element.
Name | String | Character string that contains the name of the Value Representation. To see the default values for the Value Representation Names, refer to the Default Value Representation Table .
Restrict | Word | Restrictions on the length. Possible values are given below. For a list of available options, see below.
UnitSize | Word | The size of the smallest item that can be stored in the data element.

Internally LEADTOOLS maintains a table or list of available value representations. These value representations can include default value representations available in DICOM, as well as user defined value representations. You can access any of this information, add to the table, or delete items from the table using the XXXVR methods. To see the default values, refer to the Value Representation Table.

Possible values for the Restrict property are given below.

Value | Meaning
VR_FIXED | [$00] Length is a fixed number of bytes.
VR_MAXIMUM | [$01] Length is the maximum number of bytes allowed.
VR_MAXIMUM_GROUP | [$02] Length is the maximum number of bytes allowed per component group
VR_ANY | [$03] Any length is valid.
VR_NOT_APPLICABLE | [$04] Length is not applicable

One of the values above may be combined with one of the values below using the bitwise OR operator.

VR_BINARY | [$0100] Binary value.
VR_STRING | [$0200] String value (The character '\' is used as the delimiter between values for multiple data elements).
VR_TEXT | [$0400] Text value. (Data elements with this VR cannot be multi-valued).

Note: The CurrentVR property is read only, except that you can explicitly set it to Nil in Pascal or NULL in C++.

See Also

Elements:

DefaultVR method, InsertVR method, DeleteVR method, ResetVR method, MoveFirstVR method, MoveLastVR method, MovePrevVR method, MoveNextVR method, GetVRCount method, FindVR method, FindIndexVR method, SetVRName method


DateTimeValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal DateTimeValueCount
Delphi Syntax | DateTimeValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of date-time values in the DateTimeValues property.

If you are retrieving date-time values associated with the element specified in the CurrentElement property, calling the GetDateTimeValue method updates this property with the number of date-time values associated with the specified element.

If you are setting date-time values associated with the element specified in the CurrentElement property, you can set the DateTimeValueCount property to allocate storage for the DateTimeValues array property, prior to setting the date-time values using SetDateTimeValue.

Set this property to 0 at any time to free the memory used for the DateTimeValues property.

See Also

Elements:

DateTimeValues property, GetDateTimeValue method, SetDateTimeValue method


DateTimeValues property

Delphi example

C++Builder example

Builder Syntax | TValueDateTime* DateTimeValues[Cardinal uIndex]
Delphi Syntax | DateTimeValues[uIndex: Cardinal]: TValueDateTime
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of date-time values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the DateTimeValueCount property.

The TValueDateTime class has the following properties:

Property | Type | Description
Century | Word | The century.
Day | Word | The day.
Fractions | Cardinal | The fraction of a second.
Hours | Word | The hours.
Minutes | Word | The minutes.
Month | Word | The month.
Offset | Cardinal | The optional suffix for plus/minus from Coordinated Universal Time.
Seconds | Word | The seconds.
Year | Word | The year.

If you are retrieving date-time values associated with the element specified in the CurrentElement property, calling the GetDateTimeValue method updates this property with the date-time values associated with the specified element.

If you are setting date-time values associated with the element specified in the CurrentElement property, you can set the DateTimeValueCount property to allocate storage for the DateTimeValues property, prior to setting the date-time values using SetDateTimeValue.

Set the DateTimeValueCount property to 0 at any time to free the memory used for the DateTimeValues property.

See Also

Elements:

DateTimeValueCount property, GetDateTimeValue method, SetDateTimeValue method


DateValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal DateValueCount
Delphi Syntax | DateValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of date values in the DateValues property.

If you are retrieving date values associated with the element specified in the CurrentElement property, calling the GetDateValue method updates this property with the number of date values associated with the specified element.

If you are setting date values associated with the element specified in the CurrentElement property, you can set the DateValueCount property to allocate storage for the DateValues array property, prior to setting the date values using SetDateValue.

Set this property to 0 at any time to free the memory used for the DateValues property.

See Also

Elements:

DateValues property, GetDateValue method, SetDateValue method


DateValues property

Delphi example

C++Builder example

Builder Syntax | Ltvcltyp::VALUEDATE DateValues[Cardinal uIndex]
Delphi Syntax | DateValues[uIndex: Cardinal]: TValueDate
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of date values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the DateValueCount property.

The VALUEDATE record has the following fields:

Field | Type | Description
Day | Word | The day.
Month | Word | The month.
Year | Word | The year.

If you are retrieving date values associated with the element specified in the CurrentElement property, calling the GetDateValue method updates this property with the date values associated with the specified element.

If you are setting date values associated with the element specified in the CurrentElement property, you can set the DateValueCount property to allocate storage for the DateValues property, prior to setting the date values using SetDateValue.

Set the DateValueCount property to 0 at any time to free the memory used for the DateValues property.

See Also

Elements:

DateValueCount property, GetDateValue method, SetDateValue method


DefaultIOD method

Delphi example

C++Builder example

Builder Syntax | void __fastcall DefaultIOD(void);
Delphi Syntax | procedure DefaultIOD;
Overview | Refer to Working with Information Object Definitions.

Remarks

Resets the IOD Structure to the default values. This will delete any user-defined items that have been added.

If you remove the contents of the IOD Structure using the ResetIOD method, you can reset the IOD Structure to the default values by calling this function.

See Also

Elements:

InsertIOD method, DeleteIOD method, ResetIOD method


DefaultTag method

Delphi example

C++Builder example

Builder Syntax | void __fastcall DefaultTag(void);
Delphi Syntax | procedure DefaultTag;
Overview | Refer to Working with Tags.

Remarks

Resets the Data Element Tag Table to the default values. This will delete any user-defined items that have been added.

To see the default values for the Data Element Tag Table, refer to the Default Data Element Tag Table.

If you remove the contents of the table using ResetTag, you can reset the table to the default values by calling this method.

See Also

Elements:

InsertTag method, DeleteTag method, ResetTag method


DefaultUID method

Delphi example

C++Builder example

Builder Syntax | void __fastcall DefaultUID(void);
Delphi Syntax | procedure DefaultUID;
Overview | Refer to Working with Unique Identifiers.

Remarks

Resets the UID Table to the default values. This will delete any user-defined items that have been added.

To see the default values for the UID Table, refer to the Default UID Table.

If you remove the contents of the table using ResetUID, you can reset the table to the default values by calling this method.

See Also

Elements:

InsertUID method, DeleteUID method, ResetUID method


DefaultVR method

Delphi example

C++Builder example

Builder Syntax | void __fastcall DefaultVR(void);
Delphi Syntax | procedure DefaultVR;
Overview | Refer to Working with Value Representations.

Remarks

Resets the Value Representation Table to the default values. This will delete any user-defined items that have been added.

To see the default values for the Value Representation Table, refer to the Default Value Representation Table.

If you remove the contents of the table using the ResetVR method, you can reset the table to the default values by calling this method.

See Also

Elements:

InsertVR method, DeleteVR method, ResetVR method


DeleteBitmapValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall DeleteBitmapValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function DeleteBitmapValue(uIndex: Cardinal; uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

This method deletes the image(s) in the Pixel Data Element starting at the specified index and continuing for the specified count.

As an example, if you wish to delete 50 images starting with the 50th frame in the Pixel Data, call this method with uIndex set to 49 (the 50th frame in a zero-based index) and uCount set to 50.

Most DICOM files will only have one Data Element of type TAG_PIXEL_DATA. Therefore, in most instances the CurrentElement property can be Nil (NULL), since the method will automatically delete the images of the only Pixel Data Element in the file. If the CurrentElement property is not Nil, it must contain the Pixel Data Element itself.

If the DICOM file is CLASS_BASIC_DIRECTORY, the file may contain more than one Pixel Data Element. In this case you must specify in the CurrentElement property the Pixel Data Element from which to delete the images.

If you wish to replace only one image within the Pixel Data Element, you must use DeleteBitmapValue method and InsertBitmapValue method.

See Also

Elements:

GetBitmapValue method, GetBitmapListValue method, InsertBitmapValue method, InsertBitmapListValue method, SetBitmapListValue method, SetBitmapListValue method, DeleteBitmapValue method


DeleteElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall DeleteElement(void);
Delphi Syntax | function DeleteElement: Integer;
Overview | Refer to Working with Data Sets.

Remarks

Deletes the item specified by the CurrentElement property from the Data Set.

You can remove all items from the table using ResetDS method.

Since the Data Set is stored internally as a tree, the deletion must be carried out as a tree.

When deleting an item from the tree, if the item being deleted has a sibling (same level, same parent), following it, this method updates the CurrentElement property with this sibling. If the item being deleted does not have a sibling following it, but has a sibling preceding it, this method updates the CurrentElement property with the preceding sibling. If the item being deleted is an only child, this method updates the CurrentElement property with the parent. If there is no parent this method updates the CurrentElement property with 0.

Below are illustrations of these situations:

For the sake of these illustrations, the order of siblings is top to bottom. A preceding sibling is drawn above the sibling it precedes, a following sibling is drawn below the sibling it follows.

Please note that the numbering of the items of interest is arbitrary, and does not imply order.

In this illustration item 2 will be deleted. Since it has a following sibling, the CurrentElement property will be updated with item 3.

In this illustration item 3 will be deleted. Since it does not have a following sibling, but does have a preceding sibling, the CurrentElement property will be updated with item 2.

In this illustration item 2 will be deleted. Since it is an only child, the CurrentElement property will be updated with the parent, item 1.

In this illustration item 1 will be deleted. Since it has no siblings and no parent, the CurrentElement property will be updated with Nil (NULL).

See Also

Elements:

ResetDS method, MoveFirstElement method, MoveLastElement method, MovePrevElement method, MoveNextElement method, FindFirstElement method, FindNextElement method, FindLastElement method, FindPrevElement method, InsertElement method


DeleteIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall DeleteIOD(void);
Delphi Syntax | function DeleteIOD: Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Deletes the item specified by the CurrentIOD property from the IOD Structure. Sets the CurrentIOD property to the previous item in the IOD Structure.

You can remove all items from the table using ResetIOD method.

Since the IOD Structure is stored internally as a tree, the deletion must be carried out as a tree.

When deleting an item from the tree, if the item being deleted has a sibling (same level, same parent), following it, this method updates the CurrentIOD property with this sibling. If the item being deleted does not have a sibling following it, but has a sibling preceding it, this method updates the CurrentIOD property with the preceding sibling. If the item being deleted is an only child, this method updates the CurrentIOD property with the parent. If there is no parent this method updates the CurrentIOD property with 0.

Below are illustrations of these situations:

For the sake of these illustrations, the order of siblings is top to bottom. A preceding sibling is drawn above the sibling it precedes; a following sibling is drawn below the sibling it follows.

Please note that the numbering of the items of interest is arbitrary, and does not imply order.

In this illustration item 2 will be deleted. Since it has a following sibling, the CurrentIOD property will be updated with item 3.

In this illustration item 3 will be deleted. Since it does not have a following sibling, but does have a preceding sibling, the CurrentIOD property will be updated with item 2.

In this illustration item 2 will be deleted. Since it is an only child, the CurrentIOD property will be updated with the parent, item 1.

In this illustration item 1 will be deleted. Since it has no siblings and no parent, the CurrentIOD property will be updated with Nil (NULL).

See Also

Elements:

ResetIOD method, MoveFirstIOD method, MoveLastIOD method, MovePrevIOD method, MoveNextIOD method, FindIOD method, InsertIOD method


DeleteKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall DeleteKey (void);
Delphi Syntax | Function DeleteKey (): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Deletes the key element specified by the CurrentElement property from the DICOM Dir Data Set.

When a key element is deleted using this function, all offspring of the key element (both key element children and non-key element children) and all their respective children are also deleted.

Below are illustrations of this:

For the sake of these illustrations, the order of siblings is top to bottom.

Please note that the numbering of the items of interest is arbitrary, and does not imply order.

In this illustration item 2 will be deleted. If any of the children of item 2 had children, these would be deleted also.

In this illustration item 3 will be deleted. Again, if any of the children of item 2 had children, these would be deleted also.

Please note that key elements should not be deleted using the DeleteElement method. Deleting a key element using DeleteElement method will not delete any child key elements, but will delete information that references the child key elements.

For more information about key elements, refer to Working with Key Elements.

See Also

Elements:

InsertKey method


DeleteModule method

Delphi example

C++Builder example

Builder Syntax | int __fastcall DeleteModule(Cardinal uModule);
Delphi Syntax | function DeleteModule(uModule: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Deletes a module from the Data Set.

You can remove all items from the Data Set using the ResetDS method.

Following deletion, the CurrentModule property is set to Nil (NULL).


DeleteTag method

Delphi example

C++Builder example

Builder Syntax | int __fastcall DeleteTag(void);
Delphi Syntax | function DeleteTag: Integer;
Overview | Refer to Working with Tags.

Remarks

Deletes the item specified by the CurrentTag property from the Data Element Tag Table. Sets the CurrentTag property to the previous item in the table.

You can remove all items from the table using the ResetTag method.

See Also

Elements:

ResetTag method, MoveFirstTag method, MoveLastTag method, MovePrevTag method, MoveNextTag method, FindTag method, FindIndexTag method, InsertTag method


DeleteUID method

Delphi example

C++Builder example

Builder Syntax | int __fastcall DeleteUID(void);
Delphi Syntax | function DeleteUID: Integer;
Overview | Refer to Working with Unique Identifiers.

Remarks

Deletes the item specified by the CurrentUID property from the UID Table. Sets the CurrentUID property to the previous item in the table.

You can remove all items from the table using the ResetUID method.

See Also

Elements:

ResetUID method, MoveFirstUID method, MoveLastUID method, MovePrevUID method, MoveNextUID method, FindUID method, FindIndexUID method, InsertUID method


DeleteVR method

Delphi example

C++Builder example

Builder Syntax | int __fastcall DeleteVR(void);
Delphi Syntax | function DeleteVR: Integer;
Overview | Refer to Working with Value Representations.

Remarks

Deletes the item specified by the CurrentVR property from the Value Representation Table. Sets the CurrentVR property to the previous item in the table.

You can remove all items from the table using the ResetVR method.

See Also

Elements:

ResetVR method, MoveFirstVR method, MoveLastVR method, MovePrevVR method, MoveNextVR method, FindVR method, FindIndexVR method, InsertVR method


DoubleValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal DoubleValueCount
Delphi Syntax | DoubleValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of double values in the DoubleValues property.

If you are retrieving double values associated with the element specified in the CurrentElement property, calling the GetDoubleValue method updates this property with the number of double values associated with the specified element.

If you are setting double values associated with the element specified in the CurrentElement property, you can set the DoubleValueCount property to allocate storage for the DoubleValues array property, prior to setting the double values using SetDoubleValue.

Set this property to 0 at any time to free the memory used for the DoubleValues property.

See Also

Elements:

DoubleValues property, GetDoubleValue method, SetDoubleValue method


DoubleValues property

Delphi example

C++Builder example

Builder Syntax | double DoubleValues[Cardinal uIndex]
Delphi Syntax | DoubleValues[uIndex: Cardinal]: Double
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of double values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the DoubleValueCount property.

If you are retrieving double values associated with the element specified in the CurrentElement property, calling the GetDoubleValue method updates this property with the double values associated with the specified element.

If you are setting double values associated with the element specified in the CurrentElement property, you can set the DoubleValueCount property to allocate storage for the DoubleValues property, prior to setting the double values using SetDoubleValue.

Set the DoubleValueCount property to 0 at any time to free the memory used for the DoubleValues property.

See Also

Elements:

DoubleValueCount property, GetDoubleValue method, SetDoubleValue method


DSTempPath property

Delphi example

C++Builder example

Builder Syntax | System::AnsiString DSTempPath
Delphi Syntax | DSTempPath: String
Overview | Refer to Working with Data Sets.

Remarks

(Published property, available at design time) Character string containing the location of the temporary files. DICOM uses temporary files during the course of creating a file. If this property is an empty string, the DICOM temporary files are kept in the directory Windows places its own temporary files. If this property is not empty, the temporary files are placed in the specified directory.

Note: Assigning to this property at run-time causes re-initializing of the Data Set.

See Also

Elements:

InitDS method, LoadDS method


EnableConformanceStatus property

Delphi example

C++Builder example

Builder Syntax | bool EnableConformanceStatus
Delphi Syntax | EnableConformanceStatus: Boolean
Overview | Refer to Working with Data Sets.

Remarks

(Published property, available at design time) Specifies whether LEADTOOLS generates the OnConformanceStatus Event for each element that does not conform.

Set this property to False in the OnConformanceStatus Event to terminate the Conformance Test.

The Conformance Test is started by calling the ConformanceTestDS method.

See Also

Elements:

OnConformanceStatus event, ConformanceTestDS method


EnableMethodErrors property

Delphi example

C++Builder example

Builder Syntax | bool EnableMethodErrors
Delphi Syntax | EnableMethodErrors: Boolean
Overview | Refer to Working with Data Sets.

Remarks

(Published property, available at design time) Specifies whether LEADTOOLS generates system error events (in addition to error return codes).

Setting | Description
True | Generate system error events.
False | Do not generate system error events.

See Also

Elements:

EnableProgressEvent property


EnableProgressEvent property

Delphi example

C++Builder example

Builder Syntax | bool EnableProgressEvent
Delphi Syntax | EnableProgressEvent: Boolean
Overview | Refer to Working with Data Sets.

Remarks

(Published property, available at design time) Specifies whether LEADTOOLS generates a OnProgressStatus event, to indicate the completion percentage of the current LEADTOOLS function.

If this property is set to True, you can use the OnProgressStatus event to update a status bar or to detect a user interrupt.

This property can also be used to cancel a load process by setting it to False during a load process.

Setting | Description
True | Generate progress status events.
False | If this property is set to False outside the load process, OnProgressStatus events will not be generated. If this property is set to False during a load process, the load process is canceled.

See Also

Elements:

EnableMethodErrors property


FindClassIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindClassIOD(Cardinal uClass);
Delphi Syntax | function FindClassIOD(uClass: Cardinal): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property with the item in the IOD Structure that contains the IOD for the specified class.

To find the IOD of modules within a class, use the FindModuleIOD method.

The FindIOD method lets you find IODs for classes, modules or elements in the IOD Structure.

See Also

Elements:

FindIOD method, FindModuleIOD method


FindFirstElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindFirstElement(Cardinal uTag, bool bTree);
Delphi Syntax | function FindFirstElement(uTag: Cardinal; bTree: Boolean): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property with the first element in the Data Set that has the specified tag. The search begins with the element specified in the CurrentElement property. The results depend on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the first item on the same level and with the same parent as the element specified in the CurrentElement property, that has tag uTag.

For the sake of these illustrations, the order of siblings is top to bottom. Therefore first is evaluated top to bottom.

Please note that the numbering of the items of interest in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | The first sibling (same level, same parent) of Item 1 that has tag uTag, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).
Item 2 | The first sibling (same level, same parent) of Item 2 that has tag uTag, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).
Item 3 | The first sibling (same level, same parent) of Item 3 that has tag uTag, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).

If the Data Set is evaluated as a list, this method updates the CurrentElement with the first item in the entire list that has tag uTag. The search begins at the element specified in the CurrentElement property.

For the sake of these illustrations, the order of siblings is top to bottom. Therefore first is evaluated top to bottom.

Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property is updated with:
Item 1 | The first item in the list that has tag uTag, if such an item exists. If an item with tag uTag is not found, the CurrentElement property is updated with Nil (NULL).
Item 14 | The first item in the list that has tag uTag, if such an item exists If an item with tag uTag is not found, the CurrentElement property is updated with Nil (NULL).
Item 22 | The first item in the list that has tag uTag, if such an item exists. If an item with tag uTag is not found, the CurrentElement property is updated with Nil (NULL).

The following methods will also help you find elements in the Data Set with a specific tag:

FindLastElement method

FindPrevElement method

FindNextElement method

The following methods will help you find specific modules in the Data Set:

FindModule method

FindIndexModule method

See Also

Elements:

FindFirstElement method, FindPrevElement method, FindNextElement method, FindModule method, FindIndexModule method


FindFirstKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall FindFirstKey (AnsiString szKey, bool bTree);
Delphi Syntax | Function FindFirstKey (szKey: String; bTree: Boolean): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Updates the CurrentElement property with the first key element in the Data Set that has the specified key element type. The search begins with the element specified in the CurrentElement property. The results depend on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the first item on the same level and with the same parent as the key element specified in the CurrentElement property, that has key element type szKey. For the sake of these illustrations, the order of siblings is top to bottom. Therefore first is evaluated top to bottom.

Please note that the numbering of the items of interest in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | The first sibling (same level, same parent) of Item 1 that has key element type szKey, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.
Item 2 | The first sibling (same level, same parent) of Item 2 that has key element type szKey, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.
Item 3 | The first sibling (same level, same parent) of Item 3 that has key element type szKey, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.

If the Data Set is evaluated as a list, this method updates the CurrentElement with the first item in the entire list that has key element type szKey. The search begins at the element specified in the CurrentElement property.

For the sake of these illustrations, the order of siblings is top to bottom. Therefore first is evaluated top to bottom.

Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property is updated with:
Item 1 | The first item in the list that has key element type szKey, if such an item exists. If an item with key element type szKey is not found, the CurrentElement property is updated with NULL.
Item 14 | The first item in the list that has key element type szKey, if such an item exists If an item with key element type szKey is not found; the CurrentElement property is updated with NULL.
Item 22 | The first item in the list that has key element type szKey, if such an item exists. If an item with key element type szKey is not found, the CurrentElement property is updated with NULL.

The following methods will also help you find elements in the Data Set with a specific key element type:

FindLastKey method

FindPrevKey method

FindNextKey method

See Also

Elements:

FindLastKey method, FindPrevKey method, FindNextKey method


FindIndexModule method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindIndexModule(Cardinal uIndex);
Delphi Syntax | function FindIndexModule(uIndex: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentModule property with the module at the specified index on Level 0 of the Data Set.

This method only finds modules at a specific index on Level 0 of the Data Set.

To find a module with a specific module value within the Data Set use the FindModule method.

To find specific elements within the Data Set use the following:

FindFirstElement method

FindLastElement method

FindPrevElement method

FindNextElement method


FindIndexTag method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindIndexTag(Cardinal uIndex);
Delphi Syntax | function FindIndexTag(uIndex: Cardinal): Integer;
Overview | Refer to Working with Tags.

Remarks

Updates the CurrentTag property to the item located at the specified index in the Data Element Tag Table.

See Also

Elements:

FindTag method


FindIndexUID method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindIndexUID(Cardinal uIndex);
Delphi Syntax | function FindIndexUID(uIndex: Cardinal): Integer;
Overview | Refer to Working with Unique Identifiers.

Remarks

Updates the CurrentUID property to the item located at the specified index in the UID Table.

See Also

Elements:

FindUID method


FindIndexVR method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindIndexVR(Cardinal uIndex);
Delphi Syntax | function FindIndexVR(uIndex: Cardinal): Integer;
Overview | Refer to Working with Value Representations.

Remarks

Updates the CurrentVR property to the item located at the specified index in the Value Representation Table.

See Also

Elements:

FindVR method


FindIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindIOD(Cardinal uCode, Byte nType, bool bTree);
Delphi Syntax | function FindIOD(uCode: Cardinal; nType: Byte; bTree: Boolean): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property to the item in the IOD Structure that contains the IOD with the specified code and type. The result depends on whether the IOD Structure is evaluated as a tree or a list.

Searching begins with the item specified in the CurrentIOD property at the time this method is called.

The uCode and nType parameters must correspond. For example, if you specify DICOM_IOD_TYPE_CLASS in nType, you must specify a value from the IOD Class Constants in uCode. If you specify some other value, the item will not be found in the IOD Structure.

See Also

Elements:

FindClassIOD method, FindModuleIOD method


FindLastElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindLastElement(Cardinal uTag, bool bTree);
Delphi Syntax | function FindLastElement(uTag: Cardinal; bTree: Boolean): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property with the last element in the Data Set that has the specified tag. The search begins with the element specified in the CurrentElement property. The results depend on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the last item on the same level and with the same parent as the element specified in the CurrentElement property, that has tag uTag.

For the sake of these illustrations, the order of siblings is top to bottom. Therefore last is the item closest to the bottom.

Please note that the numbering of the items of interest in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | The last sibling (same level, same parent) of Item 1 that has tag uTag, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).
Item 2 | The last sibling (same level, same parent) of Item 2 that has tag uTag, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).
Item 3 | The last sibling (same level, same parent) of Item 3 that has tag uTag, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).

If the Data Set is evaluated as a list, this method updates the CurrentElement with the last item in the entire list that has tag uTag. The search begins at the element specified in the CurrentElement property.

For the sake of these illustrations, the order of siblings is top to bottom. Therefore last is closest to the bottom.

Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property is updated with:
Item 1 | The last item in the list that has tag uTag, if such an item exists. If an item with tag uTag is not found, the CurrentElement property is updated with Nil (NULL).
Item 14 | The last item in the list that has tag uTag, if such an item exists If an item with tag uTag is not found, the CurrentElement property is updated with Nil (NULL).
Item 22 | The last item in the list that has tag uTag, if such an item exists. If an item with tag uTag is not found, the CurrentElement property is updated with Nil (NULL).

The following methods will also help you find elements in the Data Set with a specific tag:

FindFirstElement method

FindPrevElement method

FindNextElement method

The following methods will help you find specific modules in the Data Set:

FindModule method

FindIndexModule method

See Also

Elements:

FindFirstElement method, FindPrevElement method, FindNextElement method, FindModule method, FindIndexModule method


FindLastKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall FindLastKey (AnsiString szKey, bool bTree);
Delphi Syntax | Function FindLastKey (szKey: String; bTree: Boolean): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Updates the CurrentElement property with the last element in the Data Set that has the specified key element type. The search begins with the element specified in the CurrentElement property. The results depend on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the last item on the same level and with the same parent as the element specified in the CurrentElement property, that has key element type szKey.

For the sake of these illustrations, the order of siblings is top to bottom. Therefore last is the item closest to the bottom.

Please note that the numbering of the items of interest in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | The last sibling (same level, same parent) of Item 1 that has key element type szKey, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.
Item 2 | The last sibling (same level, same parent) of Item 2 that has key element type szKey, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.
Item 3 | The last sibling (same level, same parent) of Item 3 that has key element type szKey, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.

If the Data Set is evaluated as a list, this method updates the CurrentElement with the last item in the entire list that has key element type szKey. The search begins at the element specified in the CurrentElement property.

For the sake of these illustrations, the order of siblings is top to bottom. Therefore last is closest to the bottom.

Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property is updated with:
Item 1 | The last item in the list that has key element type szKey, if such an item exists. If an item with key element type szKey is not found, the CurrentElement property is updated with NULL.
Item 14 | The last item in the list that has key element type szKey, if such an item exists If an item with key element type szKey is not found; the CurrentElement property is updated with NULL.
Item 22 | The last item in the list that has key element type szKey, if such an item exists. If an item with key element type szKey is not found, the CurrentElement property is updated with NULL.

The following methods will also help you find elements in the Data Set with a specific key element type:

FindFirstKey method

FindPrevKey method

FindNextKey method

See Also

Elements:

FindFirstKey method, FindPrevKey method, FindNextKey method


FindModule method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindModule(Cardinal uModule);
Delphi Syntax | FindModule(uModule: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentModule property with the first module in the Data Set that has the specified module value.

To find the module at a specific index use the FindIndexModule method.


FindModuleIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindModuleIOD(Cardinal uClass, Cardinal uModule);
Delphi Syntax | function FindModuleIOD(uClass: Cardinal; uModule: Cardinal): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property with the item in the IOD Structure that contains the IOD for the specified module in the specified class.

To find the IOD for a specific class use FindClassIOD method.

FindIOD method lets you find IODs for classes, modules or elements in the IOD Structure.

See Also

Elements:

FindIOD method, FindClassIOD method


FindNextElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindNextElement(bool bTree);
Delphi Syntax | function FindNextElement(bTree: Boolean): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Note: This method does not specify a tag to use when searching. The search will look for an item with the same tag as the element specified in the CurrentElement property.

Updates the CurrentElement property with the next element in the Data Set that has the specified tag. The search begins with the element specified in the CurrentElement property. The results depend on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the next item on the same level and with the same parent as the element specified in the CurrentElement property, that has tag uTag.

For the sake of these illustrations, the order of siblings is top to bottom.

Please note that the numbering of the items of interest in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | The next sibling (same level, same parent) of Item 1 that has the same tag as item 1, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).
Item 2 | The next sibling (same level, same parent) of Item 2 that has the same tag as item 2, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).
Item 3 | The next sibling (same level, same parent) of Item 3 that has the same tag as item 3, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).

If the Data Set is evaluated as a list, this method updates the CurrentElement with the next item in the entire list that has tag uTag. The search begins at the element specified in the CurrentElement property.

For the sake of these illustrations, the order of siblings is top to bottom.

Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property is updated with:
Item 1 | The next item in the list that has the same tag as item 1, if such an item exists. If such an item does not exist, the CurrentElement property is updated with Nil (NULL).
Item 14 | The next item in the list that has the same tag as item 14, if such an item exists If such an item does not exist, the CurrentElement property is updated with Nil (NULL).
Item 22 | The next item in the list that has has the same tag as item 22, if such an item exists. If such an item does not exist, the CurrentElement property is updated with Nil (NULL).

The following methods will also help you find elements in the Data Set with a specific tag:

FindFirstElement method

FindLastElement method

FindPrevElement method

The following methods will help you find specific modules in the Data Set:

FindModule method

FindIndexModule method

See Also

Elements:

FindFirstElement method, FindLastElement method, FindPrevElement method, FindModule method, FindIndexModule method


FindNextKey method

Delphi example

C++ Builder example

Builder Syntax | int FindNextKey (bool bTree);
Delphi Syntax | FindNextKey (bTree: Boolean): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Note:

This method does not specify a key element type to use when searching. The search will look for an item with the same key element type as the element specified in the CurrentElement property.

Updates the CurrentElement property with the next element in the Data Set that has the specified key element type. The search begins with the element specified in the CurrentElement property. The results depend on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the next item on the same level and with the same parent as the element specified in the CurrentElement property, that has key element type szKey.

For the sake of these illustrations, the order of siblings is top to bottom.

Please note that the numbering of the items of interest in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | The next sibling (same level, same parent) of Item 1 that has the same key element type as item 1, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.
Item 2 | The next sibling (same level, same parent) of Item 2 that has the same key element type as item 2, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.
Item 3 | The next sibling (same level, same parent) of Item 3 that has the same key element type as item 3, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.

If the Data Set is evaluated as a list, this method updates the CurrentElement with the next item in the entire list that has key element type szKey. The search begins at the element specified in the CurrentElement property.

For the sake of these illustrations, the order of siblings is top to bottom.

Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property is updated with:
Item 1 | The next item in the list that has the same key element type as item 1, if such an item exists. If such an item does not exist, the CurrentElement property is updated with NULL.
Item 14 | The next item in the list that has the same key element type as item 14, if such an item exists If such an item does not exist, the CurrentElement property is updated with NULL.
Item 22 | The next item in the list that has the same key element type as item 22, if such an item exists. If such an item does not exist, the CurrentElement property is updated with NULL.

The following methods will also help you find elements in the Data Set with a specific key element type:

FindFirstKey method

FindLastKey method

FindPrevKey method

See Also

Elements:

FindFirstKey method, FindLastKey method, FindPrevKey method


FindPrevElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindPrevElement(bool bTree);
Delphi Syntax | function FindPrevElement(bTree: Boolean): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Note: This method does not specify a tag to use when searching. The search will look for an item with the same tag as the element specified in the CurrentElement property.

Updates the CurrentElement property with the previous element in the Data Set that has the specified tag. The search begins with the element specified in the CurrentElement property. The results depend on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the previous item on the same level and with the same parent as the element specified in the CurrentElement property, that has tag uTag.

For the sake of these illustrations, the order of siblings is top to bottom.

Please note that the numbering of the items of interest in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | The previous sibling (same level, same parent) of Item 1 that has the same tag as item 1, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).
Item 2 | The previous sibling (same level, same parent) of Item 2 that has the same tag as item 2, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).
Item 3 | The previous sibling (same level, same parent) of Item 3 that has the same tag as item 3, if such an item exists. If such an item does not exist, the CurrentElement is updated with Nil (NULL).

If the Data Set is evaluated as a list, this method updates the CurrentElement with the previous item in the entire list that has tag uTag. The search begins at the element specified in the CurrentElement property.

For the sake of these illustrations, the order of siblings is top to bottom.

Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property is updated with:
Item 1 | The previous item in the list that has the sam e tag as item 1, if such an item exists. If such an item does not exist, the CurrentElement property is updated with Nil (NULL).
Item 14 | The previous item in the list that has the same tag as item 14, if such an item exists If such an item does not exist, the CurrentElement property is updated with Nil (NULL).
Item 22 | The previous item in the list that has the same tag as item 22, if such an item exists. If such an item does not exist, the CurrentElement property is updated with Nil (NULL).

The following methods will also help you find elements in the Data Set with a specific tag:

FindFirstElement method

FindLastElement method

FindNextElement method

The following methods will help you find specific modules in the Data Set:

FindModule method

FindIndexModule method

See Also

Elements:

FindFirstElement method, FindLastElement method, FindNextElement method, FindModule method, FindIndexModule method


FindPrevKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall FindPrevKey(bool bTree);
Delphi Syntax | Delphi Syntax Function FindPrevKey(bTree: Boolean): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Note:

This method does not specify a key element type to use when searching. The search will look for an item with the same key element type as the element specified in the CurrentElement property.

Updates the CurrentElement property with the previous element in the Data Set that has the specified key element type. The search begins with the element specified in the CurrentElement property. The results depend on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the previous item on the same level and with the same parent as the element specified in the CurrentElement property, that has key element type szKey.

For the sake of these illustrations, the order of siblings is top to bottom.

Please note that the numbering of the items of interest in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | The previous sibling (same level, same parent) of Item 1 that has the same key element type as item 1, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.
Item 2 | The previous sibling (same level, same parent) of Item 2 that has the same key element type as item 2, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.
Item 3 | The previous sibling (same level, same parent) of Item 3 that has the same key element type as item 3, if such an item exists. If such an item does not exist, the CurrentElement is updated with NULL.

If the Data Set is evaluated as a list, this method updates the CurrentElement with the previous item in the entire list that has key element type szKey. The search begins at the element specified in the CurrentElement property.

For the sake of these illustrations, the order of siblings is top to bottom.

Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property is updated with:
Item 1 | The previous item in the list that has the same key element type as item 1, if such an item exists. If such an item does not exist, the CurrentElement property is updated with NULL.
Item 14 | The previous item in the list that has the same key element type as item 14, if such an item exists If such an item does not exist, the CurrentElement property is updated with NULL.
Item 22 | The previous item in the list that has the same key element type as item 22, if such an item exists. If such an item does not exist, the CurrentElement property is updated with NULL.

The following methods will also help you find elements in the Data Set with a specific key element type:

FindFirstKey method

FindLastKey method

FindNextKey method

See Also

Elements:

FindFirstKey method, FindLastKey method, FindNextKey method


FindTag method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindTag(Cardinal uCode);
Delphi Syntax | function FindTag(uCode: Cardinal): Integer;
Overview | Refer to Working with Tags.

Remarks

Updates the CurrentTag property to the item in the Data Element Tag Table with the specified tag (uCode).

As an example, if you call this function with uCode set to TAG_STUDY_DATE, and the Data Element Tag Table filled with the default values, the CurrentTag property will contain the following:

Property | Value
Code | TAG_STUDY_DATE, $00080020
DivideVM | 1
Mask | $FFFFFFFF
MaxVM | 1
MinVM | 1
Name | 'Study Date'
VR | VR_DA

To see the default values for the Data Element Tag Table, refer to the Default Data Element Tag Table.

See Also

Elements:

FindIndexTag method


FindUID method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindUID(System::AnsiString sCode);
Delphi Syntax | function FindUID(sCode: String): Integer;
Overview | Refer to Working with Unique Identifiers.

Remarks

Updates the CurrentUID property to the item in the UID Table with the specified unique identifier code.

As an example, if you call this function with sCode set to "1.2.840.10008.1.1", and the UID Table filled with the default values, the CurrentUID property will contain the following:

Property | Value
Code | '1.2.840.10008.1.1'
Name | 'Verification SOP Class'

To see the default values for the UID Table, refer to the Default UID Table.

See Also

Elements:

FindIndexUID method


FindVR method

Delphi example

C++Builder example

Builder Syntax | int __fastcall FindVR(Word nCode);
Delphi Syntax | function FindVR(nCode: Word): Integer;
Overview | Refer to Working with Value Representations.

Remarks

Updates the CurrentVR property to the item in the Value Representation Table with the specified value representation code.

As an example, if you call this method with nCode set to VR_AE, and the Value Representation Table filled with the default values, the properties in the CurrentVR property will contain the following:

Property | Value
Code | VR_AE
Length | 16
Name | 'Application Entity'
Restrict | VR_STRING OR VR_MAXIMUM
UnitSize | 1

To see the default values for the Value Representation Table, refer to the Default Value Representation Table.

See Also

Elements:

FindIndexVR method


FloatValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal FloatValueCount
Delphi Syntax | FloatValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of float values in the FloatValues property.

If you are retrieving float values associated with the element specified in the CurrentElement property, calling the GetFloatValue method updates this property with the number of float values associated with the specified element.

If you are setting float values associated with the element specified in the CurrentElement property, you can set the FloatValueCount property to allocate storage for the FloatValues array property, prior to setting the float values using SetFloatValue.

Set this property to 0 at any time to free the memory used for the FloatValues property.

See Also

Elements:

FloatValues property, GetFloatValue method, SetFloatValue method


FloatValues property

Delphi example

C++Builder example

Builder Syntax | float FloatValues[Cardinal uIndex ]
Delphi Syntax | FloatValues[uIndex: Cardinal]: Single
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of float values (single-precision floating point) retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the FloatValueCount property.

If you are retrieving float values associated with the element specified in the CurrentElement property, calling the GetFloatValue method updates this property with the float values associated with the specified element.

If you are setting float values associated with the element specified in the CurrentElement property, you can set the FloatValueCount property to allocate storage for the FloatValues property, prior to setting the float values using SetFloatValue.

Set the FloatValueCount property to 0 at any time to free the memory used for the FloatValues property.

See Also

Elements:

FloatValueCount property, GetFloatValue method, SetFloatValue method


GetAgeValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetAgeValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function GetAgeValue(uIndex: Cardinal; uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the AgeValues property with the age value(s) associated with the item specified in the CurrentElement property. This method also updates the AgeValueCount property to uCount, where uCount is the number of age values to get.

If you call this method with uCount greater than the number of age values in the Value Field of the specified item, this method will return an error. For example, if there are only three age values in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three age values, and you are only interested in retrieving the last two age values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the age values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_AS. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

GetBinaryValue method, GetCharValue method, GetShortValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetStringValue method, GetDateValue method, GetTimeValue method, GetDateTimeValue method


GetBinaryValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetBinaryValue(Cardinal uLength);
Delphi Syntax | function GetBinaryValue(uLength: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the BinaryValues property with the binary values associated with the item specified by the CurrentElement property. This method also updates the BinaryValueCount property with uLength, where uLength is the number of bytes of binary data to get.

The retrieved binary data does not undergo any type coercion. It is retrieved in the same form in which it is stored.

If you call this method with uLength greater than the number of bytes of data associated with the specified item, this method will return an error. For example, if there are only three bytes of binary data associated with the specified item and you call this method with uLength set to four, an error will be returned.

This method can be called for every Value Representation, and it will return the exact value in the Value Field (unconverted).

See Also

Elements:

GetAgeValue method, GetCharValue method, GetShortValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetStringValue method, GetDateValue method, GetTimeValue method, GetDateTimeValue method


GetBitmapCount method

Delphi example

C++Builder example

Builder Syntax | Cardinal __fastcall GetBitmapCount(void);
Delphi Syntax | function GetBitmapCount: Cardinal;
Overview | Refer to Working with Data Sets.

Remarks

Returns the number of images in the Pixel Data Element specified by the CurrentElement property. If the CurrentElement property is Nil (NULL), it returns the number of images in the entire Data Set.

See Also

Elements:

GetBitmapValue method, GetBitmapListValue method


GetBitmapListValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetBitmapListValue(Cardinal uIndex, Cardinal uCount , int nBitsPerPixel, int nOrder);
Delphi Syntax | function GetBitmapListValue(uIndex, uCount: Cardinal; nBitsPerPixel, nOrder: Integer): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the BitmapList property with the image list associated with the Pixel Data Element specified by the CurrentElement property. If the CurrentElement property is Nil (NULL), this method updates the BitmapList property with all the images present in the Data Set.

As an example, if you wish to load 50 images starting with the 50th frame in the Pixel Data, call this function with uIndex set to 49 (the 50th frame in a zero-based index) and nCount set to 50.

For a table of possible Compression, Photometric, BitsPerPixel, and Quality Factor combinations, refer to Compression Table.

See Also

Elements:

BitmapList property, SetBitmapListValue method


GetBitmapValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetBitmapValue(Cardinal uIndex, int nBitsPerPixel, int nOrder);
Delphi Syntax | function GetBitmapValue(uIndex: Cardinal; nBitsPerPixel, nOrder: Integer): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the Bitmap property with the image associated with the Pixel Data Element specified by the CurrentElement property.

If more than one image is present, uIndex specifies which image to get. uIndex is zero-based.

For a table of possible Compression, Photometric, BitsPerPixel, and Quality Factor combinations, refer to Compression Table.

This method generates an OnProgressStatus event.

See Also

Elements:

Bitmap property, SetBitmapValue method


GetCharValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetCharValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function GetCharValue(uIndex, uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CharValues property with the character value(s) associated with the item specified in the CurrentElement property. This method also updates the CharValueCount property to uCount, where uCount is the number of characters to get.

If you call this method with uCount greater than the number of characters in the Value Field of the specified item, this method will return an error. For example, if there are only three characters in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three character values, and you are only interested in retrieving the last two character values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the character values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_OB, VR_SQ, or VR_UN. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

GetAgeValue method, GetBinaryValue method, GetShortValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetStringValue method, GetDateValue method, GetTimeValue method, GetDateTimeValue method


GetConvertValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetConvertValue(void);
Delphi Syntax | function GetConvertValue: Integer;
Overview | Refer to Working with Data Sets.

Remarks

Converts the value(s) in the CurrentElement to strings.

Calling this method will update the StringValueCount and StringValues properties with the values from the current element converted to strings, which can be used for display purposes.

This method can be called for any Value Representation. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetConvertValue method


GetDateTimeValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetDateTimeValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function GetDateTimeValue(uIndex, uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the DateTimeValues property with the date-time value(s) associated with the item specified in the CurrentElement property. This method also updates the DateTimeValueCount property to uCount, where uCount is the number of date-time values to get.

If you call this method with uCount greater than the number of date-time values in the Value Field of the specified item, this method will return an error. For example, if there are only three date-time values in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three date-time values, and you are only interested in retrieving the last two date-time values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the date-time values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_DT. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

GetAgeValue method, GetBinaryValue method, GetCharValue method, GetShortValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetStringValue method, GetDateValue method, GetTimeValue method


GetDateValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetDateTimeValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function GetDateTimeValue(uIndex, uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the DateValues property with the date value(s) associated with the item specified in the CurrentElement property. This method also updates the DateValueCount property to uCount, where uCount is the number of date values to get.

If you call this method with uCount greater than the number of date values in the Value Field of the specified item, this method will return an error. For example, if there are only three date values in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three date values, and you are only interested in retrieving the last two date values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the date values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_DA. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

GetAgeValue method, GetBinaryValue method, GetCharValue method, GetShortValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetStringValue method, GetDateTimeValue method, GetTimeValue method


GetDoubleValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetDoubleValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function GetDoubleValue(uIndex, uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the DoubleValues property with the double value(s) associated with the item specified in the CurrentElement property. This method also updates the DoubleValueCount property to uCount, where uCount is the number of double values to get.

If you call this method with uCount greater than the number of double values in the Value Field of the specified item, this method will return an error. For example, if there are only three double values in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three double values, and you are only interested in retrieving the last two double values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the double values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_DS or VR_FD. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

GetAgeValue method, GetBinaryValue method, GetCharValue method, GetShortValue method, GetLongValue method, GetFloatValue method, GetDateValue method, GetStringValue method, GetDateTimeValue method, GetTimeValue method


GetDSPreamble method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetDSPreamble(void);
Delphi Syntax | function GetDSPreamble: Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the Preamble property with the buffer containing the preamble of the open DICOM file.


GetElementLevel method

Delphi example

C++Builder example

Builder Syntax | Cardinal GetElementLevel ();
Delphi Syntax | function GetElementLevel: Cardinal;
Overview | Refer to Working with Data Sets.

Remarks

Returns a value that indicates the level at which the element specified in the CurrentElement property is located, within the Data Set.

This method requires that the Data Set is evaluated as a tree.

The following illustration gives an example:

If the CurrentElement property contains: | The method returns
Item 1 | 0
Item 2 | 1
Item 3 | 2


GetFloatValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetFloatValue(Cardinal uIndex, Cardinal uCount: Cardinal);
Delphi Syntax | function GetFloatValue(uIndex, uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the FloatValues property with the float value(s) associated with the item specified in the CurrentElement property. This method also updates the FloatValueCount property to uCount, where uCount is the number of float values to get.

If you call this method with uCount greater than the number of float values in the Value Field of the specified item, this method will return an error. For example, if there are only three float values in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three float values, and you are only interested in retrieving the last two float values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the float values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_FL. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

GetAgeValue method, GetBinaryValue method, GetCharValue method, GetShortValue method, GetLongValue method, GetDoubleValue method, GetDateValue method, GetStringValue method, GetDateTimeValue method, GetTimeValue method


GetImageInformation method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetImageInformation(Cardinal uIndex);
Delphi Syntax | function GetImageInformation(uIndex: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Gets information about the image at the specified index within the Pixel Data Element specified by the CurrentElement property.

This method updates the ImageInfo property.

See Also

Elements:

ImageInfo property


GetInfoCS method

Delphi Example

C++ Builder Example

Builder Syntax | void __fastcall GetInfoCS (void);
Delphi Syntax | Procedure GetInfoCS ();
Overview | Refer to Working with Command Sets.

Remarks

Gets information about the Command Set. This method updates the InfoCommand and InfoRequest properties.

A Command Set is a special type of Data Set. The InitCS method creates a Data Set as a Command Set and inserts the elements for the specified command.

You can also determine the type of a command set by "and-ing" the value of the TAG_COMMAND_FIELD with COMMAND_REQUEST [$0000] or COMMAND_RESPONSE [$8000].

In addition, you can determine whether a command set has a required data set by "and-ing" the value of the TAG_DATA_SET_TYPE element with COMMAND_DATASET_PRESENT, COMMAND_DATASET_IDENTIFIER, or COMMAND_DATASET_ABSENT.

See Also

Elements:

InitCS method


GetInfoDS method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetInfoDS(void);
Delphi Syntax | function GetInfoDS: Integer;
Overview | Refer to Working with Data Sets.

Remarks

Gets information about the current Data Set.

This method updates the InfoClass and InfoFlags properties for the current Data Set.

See Also

Elements:

InfoClass property, InfoFlags property, GetDSPreamble method, GetValueCount method


GetKeyValue method

Delphi Example

C++ Builder Example

Builder Syntax | Ltvcltyp::L_PCHAR __fastcall GetKeyValue(void);
Delphi Syntax | Function GetKeyValue(): L_PCHAR;
Overview | Refer to Working with Key Elements.

Remarks

Returns the key element type of the specified key element.


GetLongValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetLongValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function GetLongValue(uIndex, uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the LongValues property with the long value(s) associated with the item specified in the CurrentElement property. This method also updates the LongValueCount property to uCount, where uCount is the number of long values to get.

If you call this method with uCount greater than the number of long values in the Value Field of the specified item, this method will return an error. For example, if there are only three long values in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three long values, and you are only interested in retrieving the last two long values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the long values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_AT, VR_IS, VR_SL, or VR_UL. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

GetAgeValue method, GetBinaryValue method, GetCharValue method, GetShortValue method, GetFloatValue method, GetDoubleValue method, GetDateValue method, GetStringValue method, GetDateTimeValue method, GetTimeValue method


GetModuleCount method

Delphi example

C++Builder example

Builder Syntax | Cardinal __fastcall GetModuleCount(void);
Delphi Syntax | function GetModuleCount: Cardinal;
Overview | Refer to Working with Data Sets.

Remarks

Returns the number of modules in the entire Data Set.

The following methods will also help you navigate the Data Set as either a tree or a list:

MoveFirstElement method

MovePrevElement method

MoveNextElement method

MoveLastElement method

If you evaluate the Data Set as a tree, you can also use the following methods to navigate the tree:

MoveRootElement method

MoveParentElement method

MoveChildElement method


GetShortValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetShortValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function GetShortValue(uIndex, uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the ShortValues property with the short value(s) associated with the item specified in the CurrentElement property. This method also updates the ShortValueCount property to uCount, where uCount is the number of short values to get.

If you call this method with uCount greater than the number of short values in the Value Field of the specified item, this method will return an error. For example, if there are only three short values in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three short values, and you are only interested in retrieving the last two short values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the short values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_OW, VR_SS, or VR_US. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

GetAgeValue method, GetBinaryValue method, GetCharValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetDateValue method, GetStringValue method, GetDateTimeValue method, GetTimeValue method


GetStringValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetStringValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function GetStringValue(uIndex, uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the StringValues property with the string value(s) associated with the item specified in the CurrentElement property. This method also updates the StringValueCount property to uCount, where uCount is the number of strings to get.

If you call this method with uCount greater than the number of strings in the Value Field of the specified item, this method will return an error. For example, if there are only three strings in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three string values, and you are only interested in retrieving the last two string values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the string values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_AE, VR_CS, VR_LO, VR_LT, VR_SH, VR_ST, VR_UI, VR_UT, VR_PN. For more information about Value Representations, refer to Default Value Representation Table.

When more than one string is retrieved, all strings, separated by the 0 delimiter, are in the character string returned by this function. For example, the illustration below shows the returned character string, containing three strings separated by the 0 delimiter.

See Also

Elements:

GetAgeValue method, GetBinaryValue method, GetCharValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetDateValue method, GetShortValue method, GetDateTimeValue method, GetTimeValue method


GetTagCount method

Delphi example

C++Builder example

Builder Syntax | Cardinal __fastcall GetTagCount(void);
Delphi Syntax | function GetTagCount: Cardinal;
Overview | Refer to Working with Tags.

Remarks

Returns the number of items in the Data Element Tag Table.

The following functions will help you navigate the Data Element Tag Table:

MoveFirstTag method

MoveLastTag method

MoveNextTag method

MovePrevTag method

See Also

Functions:

MoveFirstTag method, MoveLastTag method, MoveNextTag method, MovePrevTag method


GetTimeValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall GetTimeValue(Cardinal uIndex, Cardinal uCount);
Delphi Syntax | function GetTimeValue(uIndex, uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the TimeValues property with the time value(s) associated with the item specified in the CurrentElement property. This method also updates the TimeValueCount property to uCount, where uCount is the number of time values to get.

If you call this method with uCount greater than the number of time values in the Value Field of the specified item, this method will return an error. For example, if there are only three time values in the Value Field and you call this method with uCount set to four, an error will be returned.

If you have more than one value stored in the Value Field of the specified Data Element, you can retrieve one or more of those elements. For example, if the Value Field of the specified Data Element contains three time values, and you are only interested in retrieving the last two time values, set uIndex to 1 and uCount to 2. This tells the method to retrieve the time values starting at position 1 (the index is zero based) and retrieve two values. Therefore you would retrieve the values in positions 1 and 2 in the Value Field.

This method can be called only if the Value Representation of the Data Element is VR_TM. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

GetAgeValue method, GetBinaryValue method, GetCharValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetDateValue method, GetShortValue method, GetDateTimeValue method, GetStringValue method


GetUIDCount method

Delphi example

C++Builder example

Builder Syntax | Cardinal __fastcall GetUIDCount(void);
Delphi Syntax | function GetUIDCount: Cardinal;
Overview | Refer to Working with Unique Identifiers.

Remarks

Returns the number of items in the UID Table.

The following functions will help you navigate the UID Table:

MoveFirstUID method

MoveLastUID method

MoveNextUID method

MovePrevUID method

See Also

Functions:

MoveFirstUID method, MoveLastUID method, MoveNextUID method, MovePrevUID method


GetValueCount method

Delphi example

C++Builder example

Builder Syntax | Cardinal __fastcall GetValueCount(void);
Delphi Syntax | function GetValueCount: Cardinal;
Overview | Refer to Working with Data Sets.

Remarks

Returns the number of values stored in the Value Field of the element specified in the CurrentElement property.

Note: This method does not allocate memory or retrieve values.

See Also

Elements:

GetInfoDS method, GetDSPreamble method, GetBinaryValue method, GetCharValue method, GetShortValue method, GetLongValue method, GetFloatValue method, GetDoubleValue method, GetAgeValue method, GetDateValue method, GetDateTimeValue method, GetTimeValue method


GetVRCount method

Delphi example

C++Builder example

Builder Syntax | Cardinal __fastcall GetVRCount(void);
Delphi Syntax | function GetVRCount: Cardinal;
Overview | Refer to Working with Value Representations.

Remarks

Returns the number of items in the Value Representation Table.

The following functions will help you navigate the Value Representation Table:

MoveFirstVR method

MoveLastVR method

MoveNextVR method

MovePrevVR method

See Also

Functions:

MoveFirstVR method, MoveLastVR method, MoveNextVR method, MovePrevVR method


hDicDS property

Delphi Example

C++ Builder Example

Builder Syntax | L_HANDLE: hDicDS
Delphi Syntax | hDicDS: L_HANDLE
Overview | Refer to Working with Data Sets.

Remarks

(Runtime only) This is the handle to the DICOM Data Set.

Assigning a valid Data Set to this property will copy the source Data Set. Assigning 0 to this property will free the existing Data Set.


ImageInfo property

Delphi example

C++Builder example

Builder Syntax | DICOMImageInfo ImageInfo
Delphi Syntax | ImageInfo: DICOMImageInfo
Overview | Refer to Working with Data Sets.

Remarks

Read-only. Contains information about the image in a Pixel Data Element, specified by the CurrentElementproperty.

You must call the GetImageInformation method to update this property.

The DICOMImageInfo record has the following fields:

Field | Type | Description
Compression | Integer | Type of compression used on the image.
PhotometricString | String | Name of the photometric type.
Photometric | Integer | Photometric type code.
SamplesPerPixel | Cardinal | Number of samples (or planes) in the image.
Rows | Integer | Number of rows.
Columns | Integer | Number of columns.
BitsAllocated | Cardinal | Number of bits allocated for each pixel sample.
BitsStored | Cardinal | Number of bits stored for each pixel sample.
HighBit | Cardinal | The highest (most significant) bit set.
PixelRepresentation | Integer | Datal representation of the pixels. Unsigned integers (0) or 2’s complement (1).
PlanarConfiguration | Integer | Planar configuration. Color-by-plane or color-by-pixel.
ResolutionX | Integer | The x resolution.
ResolutionY | Integer | The y resolution.
SmallestImagePixelValue | Integer | The smallest pixel value in the image.
SmallestImagePixelValueFlag | Integer | Flag that indicates whether the smallest pixel value applies to the entire image or to one plane.
LargestImagePixelValue | Integer | The largest pixel value in the image.
LargestImagePixelValueFlag | Integer | Flag that indicates whether the largest pixel value applies to the entire image or to one plane.
RedEntries | Cardinal | The number of red entries in the Red Palette ColorLookup Table.
RedFirst | Cardinal | The first value in the Red Palette Color Lookup Table.
RedBits | Cardinal | The number of bits per entry in the Red Palette Color Lookup Table. Either 8 or 16.
GreenEntries | Cardinal | The number of green entries in the Green Palette ColorLookup Table.
GreenFirst | Cardinal | The first value in the Green Palette Color Lookup Table.
GreenBits | Cardinal | The number of bits per entry in the Green Palette Color Lookup Table. Either 8 or 16.
BlueEntries | Cardinal | The number of blue entries in the Blue Palette ColorLookup Table.
BlueFirst | Cardinal | The first value in the Blue Palette Color Lookup Table.
BlueBits | Cardinal | The number of bits per entry in the Blue Palette Color Lookup Table. Either 8 or 16.
PaletteEntries | Cardinal | The number of palette entries.
PaletteFirst | Cardinal | The smallest value of the first entries in the Red, Green and Blue Color Lookup Tables.
BitsPerPixel | Integer | The number of bits per pixel.
Gray | Integer | Flag that indicates whether it is grayscale.
Frames | Cardinal | The number of frames.

For more information about image information, refer to PS 3.3 of the DICOM Standard.

See Also

Elements:

GetImageInformation method


IncludeVolatile property

Delphi example

C++Builder example

Builder Syntax | bool IncludeVolatile
Delphi Syntax | IncludeVolatile: Boolean
Overview | Refer to Working with Data Sets

Remarks

Indicates whether the Current element is volatile. Possible values are:

Value | Meaning
TRUE | The element is volatile.
FALSE | The element is not volatile.

See Also

Elements:

CurrentElement property


InfoClass property

Delphi example

C++Builder example

Builder Syntax | Cardinal InfoClass
Delphi Syntax | InfoClass: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the class value for the current Data Set. For a list of default class values, refer to the IOD Class Constants.

You must call the GetInfoDS method to update this property.

See Also

Elements:

InfoFlags property, GetInfoDS method


InfoCommand property

Delphi Example

C++ Builder Example

Builder Syntax | int InfoCommand;
Delphi Syntax | InfoCommand: Integer;
Overview | Refer to Working with Command Sets.

Remarks

(Runtime only, Read only) Contains the type of a command set. This property is updated by calling the GetInfoCS method. Possible values are:

Value | Meaning
COMMAND_C_STORE | [$0001] Composite Store Command
COMMAND_C_FIND | [$0020] Composite Find Command
COMMAND_C_GET | [$0010] Composite Get Command
COMMAND_C_MOVE | [$0021] Composite Move Command
COMMAND_C_CANCEL | [$0FFF] Composite Cancel Command
COMMAND_C_ECHO | [$0030] Composite Echo Command
COMMAND_N_REPORT | [$0100] Normalized Report Command
COMMAND_N_GET | [$0110] Normalized Get Command
COMMAND_N_SET | [$0120] Normalized Set Command
COMMAND_N_ACTION | [$0130] Normalized Action Command
COMMAND_N_CREATE | [$0140] Normalized Create Command
COMMAND_N_DELETE | [$0150] Normalized Delete Command

To determine whether the command set is a request or a response, check the InfoRequest property after calling the GetInfoCS method.

See Also

Elements:

GetInfoCS method, InfoRequest property


InfoFlags property

Delphi example

C++Builder example

Builder Syntax | Word InfoFlags
Delphi Syntax | InfoFlags: Word
Overview | Refer to Working with Data Sets.

Remarks

Contains meta-header flags and transfer syntax flags that provide information about the current Data Set.

You must call the GetInfoDS method to update this property.

Possible values for the Meta-header flags are:

Value | Meaning
DS_METAHEADER_PRESENT | [$0001] The header is present.
DS_METAHEADER_ABSENT | [$0002] The header is absent.

Possible values and combinations for the Transfer Syntax flags are:

DS_LITTLE_ENDIAN | [$0004] Byte order is Little Endian.
DS_BIG_ENDIAN | [$0008] Byte order is Big Endian.
DS_IMPLICIT_VR | [$0010] The Value Representation is implicit.
DS_EXPLICIT_VR | [$0020] The Value Representation is explicit.

DS_LITTLE_ENDIAN OR DS_IMPLICIT_VR

DS_LITTLE_ENDIAN OR DS_EXPLICIT_VR

DS_BIG_ENDIAN OR DS_EXPLICIT_VR

Any of the available Meta-header flags given above may be combined with any of the available values or combinations of values for the Transfer Syntax flags given above. For example, you may combine DS_METAHEADER_ABSENT with DS_EXPLICIT_VR, or you may combine DS_METAHEADER_PRESENT with DS_BIG_ENDIAN OR DS_EXPLICIT_VR, etc.

See Also

Elements:

InfoClass property, GetInfoDS method


InfoRequest property

Delphi Example

C++ Builder Example

Builder Syntax | bool InfoRequest;
Delphi Syntax | InfoRequest: Boolean;
Overview | Refer to Working with Command Sets.

Remarks

(Runtime only, Read only) Indicates whether a command set is a request or a response. This property is updated by calling the GetInfoCS method. Possible values are:

Value | Meaning
TRUE | The command set is a request.
FALSE | The command set is a response.

See Also

Elements:

GetInfoCS method, InfoCommand property


InitCS method

Delphi Example

C++ Builder Example

Builder Syntax | void __fastcall InitCS (int nCommand, bool bRequest);
Delphi Syntax | Procedure InitCS (nCommand: integer; bRequest: Boolean);
Overview | Refer to Working with Command Sets.

Remarks

Creates a Data Set as a Command Set and inserts the elements for the specified command.

Command sets are special data sets that hold information about a command.

See Also

Elements:

GetInfoCS method


InitDS method

Delphi example

C++Builder example

Builder Syntax | void __fastcall InitDS(Cardinal uClass, Word nFlags);
Delphi Syntax | procedure InitDS(uClass: Cardinal; nFlags: Word);
Overview | Refer to Working with Data Sets.

Remarks

Creates the data set, inserting the appropriate elements for the specified class.

If a Data Set exists at the time this method is called, that Data Set will be destroyed.


InsertBitmapListValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall InsertBitmapListValue(Ltvcltyp::HBITMAPLIST BitmapList, Cardinal uIndex, int nCompression, int nPhotometric, int nBitsPerPixel, int nQFactor);
Delphi Syntax | function InsertBitmapListValue(BitmapList: HBITMAPLIST; uIndex: Cardinal; nCompression, nPhotometric, nBitsPerPixel, nQFactor: Integer): Integer;
Overview | Refer to Working with Data Sets.

Remarks

This method inserts the images in the given Bitmap List into the Pixel Data Element.

As an example, if you wish to insert 50 images starting with the 50th frame in the Pixel Data, call this function with uIndex set to 49 (the 50th frame in a zero-based index) and the 50 frames you wish to insert in BitmapList.

Most DICOM files will only have one Data Element of type TAG_PIXEL_DATA. Therefore, in most instances the CurrentElement property can be Nil (NULL), since the method will automatically replace the images of the only Pixel Data Element in the file. If the CurrentElement property is not Nil, it must contain the Pixel Data Element itself.

If the DICOM file is CLASS_BASIC_DIRECTORY, the file may contain more than one Pixel Data Element. In this case you must specify in the CurrentElement property the Pixel Data Element in which the images will be replaced.

If you wish to replace only one image within the Pixel Data Element, you must use DeleteBitmapValue method and InsertBitmapValue method.

See Also

Elements:

GetBitmapValue method, GetBitmapListValue method, SetBitmapValue method, InsertBitmapListValue method, SetBitmapValue method, DeleteBitmapValue method


InsertBitmapValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall InsertBitmapValue(Ltvcltyp::TBitmapHandle Bitmap, Cardinal uIndex, int nCompression, int nPhotometric, int nBitsPerPixel, int nQFactor);
Delphi Syntax | function InsertBitmapValue(Bitmap: TBitmapHandle; uIndex: Cardinal; nCompression, nPhotometric, nBitsPerPixel, nQFactor: Integer): Integer;
Overview | Refer to Working with Data Sets.

Remarks

This method inserts the image in the given bitmap into the Pixel Data Element at the specified index.

Most DICOM files will only have one Data Element of type TAG_PIXEL_DATA. Therefore, in most instances the CurrentElement property can be Nil (NULL), since the method will automatically replace the images of the only Pixel Data Element in the file. If the CurrentElement property is not Nil, it must contain the Pixel Data Element itself.

If the DICOM file is CLASS_BASIC_DIRECTORY, the file may contain more than one Pixel Data Element. In this case you must specify in the CurrentElement property the Pixel Data Element in which the images will be replaced.

If you wish to replace only one image within the Pixel Data Element, you must use DeleteBitmapValue method and InsertBitmapValue method.

This method generates an OnProgressStatus event.

See Also

Elements:

GetBitmapValue method, GetBitmapListValue method, InsertBitmapValue method, SetBitmapListValue method, SetBitmapListValue method, DeleteBitmapValue method


InsertDS method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall InsertDS (Ltvcltyp::L_HANDLE hDS, int hSrcElement);
Delphi Syntax | Function InsertDS (hDS: L_HANDLE; hSrcElement: Integer): Integer;
Overview | Refer to Working with Command Sets.

Remarks

Inserts the source Data Set at the current element in the current Data Set.

If both hSrcElement the CurrentElement property are NULL, the source data set will be inserted at the root level of the destination data set. Therefore the highest level elements of the source data set will be added as siblings to the highest level elements of the destination data set. This can be seen in the diagram below.

If hSrcElement is not NULL and the CurrentElement property is NULL, the children of hSrcElement will be added at the root level of the destination data set (i.e. as siblings to elements at the highest level). This can be seen in the diagram below. Note that the source elements to be added are in blue.

If hSrcElement is NULL and the CurrentElement property is not NULL, the entire source data set will be added as children to the element specified in the CurrentElement property. This can be seen in the diagram below. The CurrentElement property contains the destination element pointed to by the arrow.

If hSrcElement and the CurrentElement property are both not NULL, then the children of hSrcElement are added as the children of the element specified in the CurrentElement property. This can be seen in the diagram below. The original children of the element specified in the CurrentElement property are in red and the source elements to be added are in blue.

If an inserted element has the same tag value as a destination element at the same level and with the same parent, then the value from the source element is copied into the destination element and any child elements are added accordingly. For example, the diagram below shows the result of a call to the InsertDS method. If the two elements indicated by the arrows have the same tag value, the value from the source element is copied into the destination element and the structure on the right results. This is shown by the red outline of the destination element with the blue center of the source element.

To make an exact copy, refer to hDicDS.

See Also

Elements:

InitDS method, GetInfoDS method


InsertElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall InsertElement(bool bChild, Cardinal uTag, Word nVR, bool bSequence, Cardinal uIndex);
Delphi Syntax | function InsertElement(bChild: Boolean; uTag: Cardinal; nVR: Word; bSequence: Boolean; uIndex: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Inserts a new item in the Data Set, based on the value of bChild. If the element is successfully inserted, the CurrentElement property will be updated with the new item.

The illustrations below show how items are added to the Data Set (internally maintained as a tree), based on the value of bChild.

For the sake of these illustrations, the order of siblings is top to bottom. Therefore, since added items become the last sibling or the last child, these are drawn at the bottom of the appropriate group of items.

In this illustration, the CurrentElement property contains Item 1 and bChild is False. The new item is added as the last sibling of Item 1.

In this illustration, the CurrentElement property contains Item 1 and bChild is True. The new item is added as the last child of Item 1.

See Also

Elements:

DeleteElement method


InsertIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall InsertIOD(bool bChild, Byte nType, Cardinal uCode, System::AnsiString sName, Word nUsage, System::AnsiString sDescription);
Delphi Syntax | function InsertIOD(bChild: Boolean; nType: Byte; uCode: Cardinal; sName: String; nUsage: Word; sDescription: String): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Inserts a new item in the IOD Structure, based on the value of bChild.

The illustrations below show how items are added to the IOD Structure (internally maintained as a tree), based on the value of bChild.

For the sake of these illustrations, the order of siblings is top to bottom. Therefore, since added items become the last sibling or the last child, these are drawn at the bottom of the appropriate group of items.

In this illustration, the CurrentIOD property contains Item 1 and bChild is False. The new item is added as the last sibling of Item 1.

In this illustration, the CurrentIOD property contains Item 1 and bChild is True. The new item is added as the last child of Item 1.

See Also

Elements:

DeleteIOD method, ResetIOD method, DefaultIOD method


InsertKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall InsertKey (AnsiString szKey, bool bOptional);
Delphi Syntax | Function InsertKey (szKey: String; bOptional: Boolean): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Inserts a new key element in the Dicom Dir Data Set.

If the CurrentElement property is not 0, then the key element will be inserted as a child of the element specified in the CurrentElement property.

If the new key element is successfully inserted, the CurrentElement property will be updated with the new key element.

See Also

Elements:

GetKeyValue method, DeleteKey method, MoveRootKey method, MoveParentKey method, MoveChildKey method, MoveFirstKey method, MoveLastKey method, MovePrevKey method, MoveNextKey method, FindFirstKey method, FindLastKey method, FindPrevKey method, FindNextKey method


InsertModule method

Delphi example

C++Builder example

Builder Syntax | int __fastcall InsertModule(Cardinal uModule, bool bOptional);
Delphi Syntax | function InsertModule(uModule: Cardinal; bOptional: Boolean): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Inserts a new module in the Data Set. If the module is successfully inserted, the CurrentModule property is updated with the new module.

LEAD controls the placement of the module in the Data Set.

See Also

Elements:

CurrentModule property, InsertElement method


InsertTag method

Delphi example

C++Builder example

Builder Syntax | int __fastcall InsertTag(Cardinal uCode, Cardinal uMask, System::AnsiString sName, Word nVR, Cardinal uMinVM, Cardinal uMaxVM, Cardinal uDivideVM);
Delphi Syntax | function InsertTag(uCode, uMask: Cardinal; sName: String; nVR: Word; uMinVM, uMaxVM, uDivideVM: Cardinal): Integer;
Overview | Refer to Working with Tags.

Remarks

Inserts a new item in the Data Element Tag Table. If successful, it sets the CurrentTag property to the new item.

All items are inserted at the bottom of the table.

To see the default values for the Data Element Tag Table, refer to the Default Data Element Tag Table.

See Also

Functions:

DeleteTag method, ResetTag method, DefaultTag method


InsertUID method

Delphi example

C++Builder example

Builder Syntax | int __fastcall InsertUID(System::AnsiString sCode, System::AnsiString sName);
Delphi Syntax | function InsertUID(sCode, sName: String): Integer;
Overview | Refer to Working with Unique Identifiers.

Remarks

Inserts a new item in the UID Table. If successful, it sets the CurrentUID property to the new item.

Note: Inserted UID items will work within LEADTOOLS, however, in order for new UID values to work across countries, sites, equipment, etc. you must contact the National Electrical Manufacturers Association.

All items are inserted at the bottom of the table.

To see the default values for the UID Table, refer to the UID Table.

For more information on the DICOM file format, refer to An Overview of Dicom or the DICOM Spec.

See Also

Functions:

DeleteUID method, ResetUID method, DefaultUID method


InsertVR method

Delphi example

C++Builder example

Builder Syntax | int __fastcall InsertVR(Word nCode, System::AnsiString sName, Cardinal uLength, Word nRestrict, Word nUnitSize);
Delphi Syntax | function InsertVR(nCode: Word; sName: String; uLength: Cardinal; nRestrict, nUnitSize: Word): Integer;
Overview | Refer to Working with Value Representations.

Remarks

Inserts a new item in the Value Representation Table. If successful, it sets the CurrentVR property to the new item. The value specified by nCode must be unique.

All items are inserted at the bottom of the table.

To see the default values for the Value Representation Table, refer to the Default Value Representation Table.

When evaluating uLength, you must also consider the values in nRestrict. If nRestrict contains VR_FIXED, then uLength is a fixed value. Therefore, the data stored in the value Field of a data element would have that length and uLength and nUnitSize would be equal.

If nRestrict contains VR_MAXIMUM, uLength is the maximum length of data that can be stored in the Value Field of a Data Element. In this case, nUnitSize would contain the minimum length of data to be stored in the Value Field of a Data Element.

For example, in the Default Value Representation Table, value representation VR_AE has the following default values:

uLength | 16
nRestrict | VR_STRING OR VR_MAXIMUM
nUnitSize | 1

Therefore, the Value Field of a Data Element that has a Value Representation of VR_AE can store between 1 and 16 bytes of string data.

For more information on the structure of the DICOM file format, refer to An Overview of Dicom or the DICOM Spec.

See Also

Functions:

DeleteVR method, ResetVR method, DefaultVR method


IsSupportLocked method

Delphi example

C++Builder example

Builder Syntax | bool __fastcall IsSupportLocked(int iType);
Delphi Syntax | function IsSupportLocked(iType: Integer): Boolean;
Overview | Refer to Implementing DICOM Support.

Remarks

Indicates whether support is locked for an optional feature, such as LEADTOOLS Document/Medical capabilities.

For information about LEADTOOLS Document/Medical capabilities, contact LEAD.

To unlock a feature, use the UnlockSupport method.

See Also

Elements:

UnlockSupport method


LoadDS method

Delphi example

C++Builder example

Builder Syntax | int __fastcall LoadDS(System::AnsiString sFilename, int nFlags);
Delphi Syntax | function LoadDS(sFilename: String; nFlags: Integer): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Loads the Data Set from the specified file.

If you know certain characteristics of the file, you can set those in nFlags. Any characteristic that you don’t set will be automatically determined. For example, if you know that the metaheader is present, but you do not know the byte order, or whether the Value Representation is implicit or explicit, you can set only DS_METAHEADER_PRESENT in nFlags. During loading LEADTOOLS will determine the byte order and whether the byte order is implicit or explicit.

If you do not know any of the characteristics of the file, set nFlags to 0 and LEADTOOLS will automatically determine all the file characteristics and load the file accordingly.

Any of the available Meta-header flags listed under nFlags may be combined with any of the available values or combinations of values for the Transfer Syntax flags. For example, you may combine DS_METAHEADER_ABSENT with DS_EXPLICIT_VR, or you may combine DS_METAHEADER_PRESENT with DS_BIG_ENDIAN OR DS_EXPLICIT_VR, etc.

See Also

Elements:

InitDS method, SaveDS method


LongValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal LongValueCount
Delphi Syntax | LongValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of long values in the LongValues property.

If you are retrieving long values associated with the element specified in the CurrentElement property, calling the GetLongValue method updates this property with the number of long values associated with the specified element.

If you are setting long values associated with the element specified in the CurrentElement property, you can set the LongValueCount property to allocate storage for the LongValues array property, prior to setting the long values using SetLongValue.

Set this property to 0 at any time to free the memory used for the LongValues property.

See Also

Elements:

LongValues property, GetLongValue method, SetLongValue method


LongValues property

Delphi example

C++Builder example

Builder Syntax | int LongValues[Cardinal uIndex]
Delphi Syntax | LongValues[uIndex: Cardinal]: LongInt
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of long values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the LongValueCount property.

If you are retrieving long values associated with the element specified in the CurrentElement property, calling the GetLongValue method updates this property with the long values associated with the specified element.

If you are setting long values associated with the element specified in the CurrentElement property, you can set the LongValueCount property to allocate storage for the LongValues property, prior to setting the short values using SetLongValue.

Set the LongValueCount property to 0 at any time to free the memory used for the LongValues property.

See Also

Elements:

LongValueCount property, GetLongValue method, SetLongValue method


MoveChildElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveChildElement(void);
Delphi Syntax | function MoveChildElement: Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property to the first child of the item specified in the CurrentElement property.

This method requires that the Data Set is evaluated as a tree structure.

The child is the offspring one level lower than the specified item. If the specified item has no child items, the CurrentElement property will be set to Nil (NULL). For example:

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Nil (NULL)
Item 2 | Item 3
Item 4 | Item 5
Item 6 | Nil (NULL)

The following methods will also help you navigate the Data Set:

MoveFirstElement method

MoveLastElement method

MoveNextElement method

MoveRootElement method

MoveParentElement method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxElement method examples.

See Also

Elements:

MoveFirstElement method, MoveLastElement method, MoveNextElement method, MovePrevElement method, MoveRootElement method, MoveParentElement method


MoveChildIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveChildIOD(void);
Delphi Syntax | function MoveChildIOD: Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property to the first child of the item specified in the CurrentIOD property.

This method requires that the IOD Structure is evaluated as a tree structure.

The child is the offspring one level lower than the specified item. If the specified item has no child items, the CurrentIOD property will be set to Nil (NULL). For example:

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Item 1 | Nil (NULL)
Item 2 | Item 3
Item 4 | Item 5
Item 6 | Nil (NULL)

The following methods will also help you navigate the IOD Structure:

MoveFirstIOD method

MoveLastIOD method

MoveNextIOD method

MoveRootIOD method

MoveParentIOD method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxIOD methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxIOD method examples.

See Also

Elements:

MoveFirstIOD method, MoveLastIOD method, MoveNextIOD method, MovePrevIOD method, MoveRootIOD method, MoveParentIOD method


MoveChildKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall MoveChildKey (void);
Delphi Syntax | Function MoveChildKey (): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Updates the CurrentElement property to the first key element child of the key element specified in the CurrentElement property.

This method requires that the DICOM Dir Data Set is evaluated as a tree structure.

The child is the offspring one level lower than the specified key element. If the specified key element has no child key elements, the CurrentElement property will be set to NULL. For example:

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | NULL
Item 2 | Item 3
Item 4 | Item 5
Item 6 | NULL

The following methods will also help you navigate the DICOM Dir Data Set:

MoveFirstKey method

MoveLastKey method

MoveNextKey method

MoveRootKey method

MoveParentKey method

Note:

Visual Basic users can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully.

See Also

Elements:

MoveFirstKey method, MoveLastKey method, MoveNextKey method, MovePrevKey method, MoveRootKey method, MoveParentKey method


MoveFirstElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveFirstElement(bool bTree);
Delphi Syntax | function MoveFirstElement(bTree: Boolean): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property to the first item in the Data Set. The result depends on whether the Data Set is evaluated as a list or a tree.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the first item on the same level and with the same parent as the item contained in the CurrentElement property. Please note that the numbering of the items in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Item 5
Item 6 | Item 7
Nil (NULL) | Item 2

If the Data Set is evaluated as a list, the CurrentElement property is updated with the first item in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Nil (NULL) | Item 1
Item 12 | Item 1
Item 14 | Item 1
Item 22 | Item 1
Item 25 | Item 1

The following methods will also help you navigate the Data Set as either a tree or a list:

MoveGetLastElement method

MovePrevElement method

MoveNextElement method

If you evaluate the Data Set as a tree, you can also use the following methods to navigate the tree:

MoveRootElement method

MoveParentElement method

MoveChildElement method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxElement method examples.

See Also

Elements:

MoveLastElement method, MovePrevElement method, MoveNextElement method, MoveRootElement method, MoveParentElement method, MoveChildElement method


MoveFirstIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveFirstIOD(bool bTree);
Delphi Syntax | function MoveFirstIOD(bTree: Boolean): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property to the first item in the IOD Structure. The result depends on whether the IOD Structure is evaluated as a list or a tree.

If the IOD Structure is evaluated as a tree structure, this method updates the CurrentIOD property with the first item on the same level and with the same parent as the item contained in the CurrentIOD property. Please note that the numbering of the items in this first illustration is arbitrary and does not imply order.

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Item 5
Item 6 | Item 7
Nil (NULL) | Item 2

If the IOD Structure is evaluated as a list, the CurrentIOD property is updated with the first item in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the IOD Structure is evaluated as a list.

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Nil (NULL) | Item 1
Item 12 | Item 1
Item 14 | Item 1
Item 22 | Item 1
Item 25 | Item 1

The following methods will also help you navigate the IOD Structure as either a tree or a list:

MoveGetLastIOD method

MovePrevIOD method

MoveNextIOD method

If you evaluate the IOD Structure as a tree, you can also use the following methods to navigate the tree:

MoveRootIOD method

MoveParentIOD method

MoveChildIOD method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxIOD methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxIOD method examples.

See Also

Elements:

MoveLastIOD method, MovePrevIOD method, MoveNextIOD method, MoveRootIOD method, MoveParentIOD method, MoveChildIOD method


MoveFirstKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall MoveFirstKey (bool bTree);
Delphi Syntax | Function MoveFirstKey (bTree: Boolean): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Updates the CurrentElement property to the first key element in the DICOM Dir Data Set. The result depends on whether the DICOM Dir Data Set is evaluated as a list or a tree.

If the DICOM Dir Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the first key element on the same level and with the same parent as the key element contained in the CurrentElement property. Please note that the numbering of the items in this first illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Item 5
Item 6 | Item 7
NULL | Item 2

If the DICOM Dir Data Set is evaluated as a list, the CurrentElement property is updated with the first key element in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the DICOM Dir Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
NULL | Item 1
Item 12 | Item 1
Item 14 | Item 1
Item 22 | Item 1
Item 25 | Item 1

The following methods will also help you navigate the DICOM Dir Data Set as either a tree or a list:

MoveLastKey method

MovePrevKey method

MoveNextKey method

If you evaluate the DICOM Dir Data Set as a tree, you can also use the following methods to navigate the tree:

MoveRootKey method

MoveParentKey method

MoveChildKey method

Note:

Visual Basic users can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully.

See Also

Elements:

MoveLastKey method, MovePrevKey method, MoveNextKey method, MoveRootKey method, MoveParentKey method, MoveChildKey method


MoveFirstTag method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveFirstTag(void);
Delphi Syntax | function MoveFirstTag: Integer;
Overview | Refer to Working with Tags.

Remarks

Updates the CurrentTag property to the first item in the Data Element Tag Table.

The following methods will also help you navigate the Data Element Tag Table:

MoveLastTag method

MovePrevTag method

MoveNextTag method

To determine the number of entries in the Data Element Tag Table, use GetTagCount.

See Also

Elements:

MoveLastTag method, MovePrevTag method, MoveNextTag method, GetTagCount method


MoveFirstUID method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveFirstUID(void);
Delphi Syntax | function MoveFirstUID: Integer;
Overview | Refer to Working with Unique Identifiers.

Remarks

Updates the CurrentUID property to the first item in the UID Table.

The following methods will also help you navigate the UID Table:

MoveLastUID method

MovePrevUID method

MoveNextUID method

To determine the number of entries in the UID Table, use GetUIDCount.

See Also

Elements:

MoveLastUID method, MovePrevUID method, MoveNextUID method, GetUIDCount method


MoveFirstVR method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveFirstVR(void);
Delphi Syntax | function MoveFirstVR: Integer;
Overview | Refer to Working with Value Representations.

Remarks

Updates the CurrentVR property to the first item in the Value Representation Table.

The following methods will also help you navigate the Value Representation Table:

MoveLastVR method

MovePrevVR method

MoveNextVR method

To determine the number of entries in the Value Representation Table, use GetVRCount.

See Also

Elements:

MoveLastVR method, MovePrevVR method, MoveNextVR method, GetVRCount method


MoveLastElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveLastElement(bool bTree);
Delphi Syntax | function MoveLastElement(bTree: Boolean): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property with the last item in the Data Set. The result depends on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the last item on the same level and with the same parent as the item specified in the CurrentElement property. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Item 5
Item 6 | Item 7
Nil (NULL) | Item 2

If the IOD Structure is evaluated as a list, the CurrentElement property is updated with the last item in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Nil (NULL) | Item 30
Item 12 | Item 30
Item 14 | Item 30
Item 22 | Item 30
Item 25 | Item 30

The following methods will also help you navigate the Data Set as either a tree or a list:

MoveFirstElement method

MovePrevElement method

MoveNextElement method

If you evaluate the Data Set as a tree, you can also use the following methods to navigate the tree:

MoveRootElement method

MoveParentElement method

MoveChildElement method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxElement method examples.

See Also

Elements:

MoveFirstElement method, MovePrevElement method, MoveNextElement method, MoveRootElement method, MoveParentElement method, MoveChildElement method


MoveLastIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveLastIOD(bool bTree);
Delphi Syntax | function MoveLastIOD(bTree: Boolean): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property with the last item in the IOD Structure. The result depends on whether the IOD Structure is evaluated as a tree or a list.

If the IOD Structure is evaluated as a tree structure, this method updates the CurrentIOD property with the last item on the same level and with the same parent as the item specified in the CurrentIOD property. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Item 5
Item 6 | Item 7
Nil (NULL) | Item 2

If the IOD Structure is evaluated as a list, the CurrentIOD property is updated with the last item in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the IOD Structure is evaluated as a list.

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Nil (NULL) | Item 30
Item 12 | Item 30
Item 14 | Item 30
Item 22 | Item 30
Item 25 | Item 30

The following methods will also help you navigate the IOD Structure as either a tree or a list:

MoveFirstIOD method

MovePrevIOD method

MoveNextIOD method

If you evaluate the IOD Structure as a tree, you can also use the following methods to navigate the tree:

MoveRootIOD method

MoveParentIOD method

MoveChildIOD method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxIOD methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxIOD method examples.

See Also

Elements:

MoveFirstIOD method, MovePrevIOD method, MoveNextIOD method, MoveRootIOD method, MoveParentIOD method, MoveChildIOD method


MoveLastKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall MoveLastKey (bool bTree);
Delphi Syntax | Function MoveLastKey (bTree: Boolean): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Updates the CurrentElement property with the last key element in the DICOM Dir Data Set. The result depends on whether the Data Set is evaluated as a tree or a list.

If the DICOM Dir Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the last key element on the same level and with the same parent as the key element specified in the CurrentElement property. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Item 5
Item 6 | Item 7
NULL | Item 2

If the DICOM Dir Data Set is evaluated as a list, the CurrentElement property is updated with the last key element in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
NULL | Item 30
Item 12 | Item 30
Item 14 | Item 30
Item 22 | Item 30
Item 25 | Item 30

The following methods will also help you navigate the DICOM Dir Data Set as either a tree or a list:

MoveFirstKey method

MovePrevKey method

MoveNextKey method

If you evaluate the DICOM Dir Data Set as a tree, you can also use the following methods to navigate the tree:

MoveRootKey method

MoveParentKey method

MoveChildKey method

Note:

Visual Basic users can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully.

See Also

Elements:

MoveFirstKey method, MovePrevKey method, MoveNextKey method, MoveRootKey method, MoveParentKey method, MoveChildKey method


MoveLastTag method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveLastTag(void);
Delphi Syntax | function MoveLastTag: Integer;
Overview | Refer to Working with Tags.

Remarks

Updates the CurrentTag property to the last item in the Data Tag Element Table.

The following methods will also help you navigate the Data Element Tag Table:

MoveFirstTag method

MovePrevTag method

MoveNextTag method

To determine the number of entries in the Data Tag Element Table, use GetTagCount.

See Also

Elements:

MoveFirstTag method, MovePrevTag method, MoveNextTag method, GetTagCount method


MoveLastUID method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveLastUID(void);
Delphi Syntax | function MoveLastUID: Integer;
Overview | Refer to Working with Unique Identifiers.

Remarks

Updates the CurrentUID property to the last item in the UID Table.

The following methods will also help you navigate the UID Table:

MoveFirstUID method

MovePrevUID method

MoveNextUID method

To determine the number of entries in the UID Table, use GetUIDCount.

See Also

Elements:

MoveFirstUID method, MovePrevUID method, MoveNextUID method, GetUIDCount method


MoveLastVR method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveLastVR(void);
Delphi Syntax | function MoveLastVR: Integer;
Overview | Refer to Working with Value Representations.

Remarks

Updates the CurrentVR property to the last item in the Value Representation Table.

The following methods will also help you navigate the Value Representation Table:

MoveFirstVR method

MovePrevVR method

MoveNextVR method

To determine the number of entries in the Value Representation Table, use GetVRCount.

See Also

Elements:

MoveFirstVR method, MovePrevVR method, MoveNextVR method, GetVRCount method


MoveNextElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveNextElement(bool bTree);
Delphi Syntax | function MoveNextElement(bTree: Boolean): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property with the item in the Data Set that immediately follows the item specified in the CurrentElement property. The result depends on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the next item on the same level and with the same parent as the item in the CurrentElement property. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Nil (NULL)
Item 6 | Item 7

If the Data Set is evaluated as a list, the CurrentElement property is updated with the next item in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 14 | Item 15
Item 4 | Item 5
Item 8 | Item 9
Item 19 | Item 20
Item 27 | Item 28
Item 30 | Nil (NULL)

The following methods will also help you navigate the Data Set as either a tree or a list:

MoveFirstElement method

MovePrevElement method

MoveLastElement method

If you evaluate the IOD Structure as a tree, you can also use the following methods to navigate the tree:

MoveRootElement method

MoveParentElement method

MoveChildElement method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxElement method examples.

See Also

Elements:

MoveFirstElement method, MovePrevElement method, MoveLastElement method, MoveRootElement method, MoveParentElement method, MoveChildElement method


MoveNextIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveNextIOD(bool bTree);
Delphi Syntax | function MoveNextElement(bTree: Boolean): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property with the item in the IOD Structure that immediately follows the item specified in the CurrentIOD property. The result depends on whether the IOD Structure is evaluated as a tree or a list.

If the IOD Structure is evaluated as a tree structure, this method updates the CurrentIOD property with the next item on the same level and with the same parent as the item in the CurrentIOD property. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Nil (NULL)
Item 6 | Item 7

If the IOD Structure is evaluated as a list, the CurrentIOD property is updated with the next item in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the IOD Structure is evaluated as a list.

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Item 14 | Item 15
Item 4 | Item 5
Item 8 | Item 9
Item 19 | Item 20
Item 27 | Item 28
Item 30 | Nil (NULL)

The following methods will also help you navigate the IOD Structure as either a tree or a list:

MoveFirstIOD method

MovePrevIOD method

MoveLastIOD method

If you evaluate the IOD Structure as a tree, you can also use the following methods to navigate the tree:

MoveRootIOD method

MoveParentIOD method

MoveChildIOD method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxIOD methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxIOD method examples.

See Also

Elements:

MoveFirstIOD method, MovePrevIOD method, MoveLastIOD method, MoveRootIOD method, MoveParentIOD method, MoveChildIOD method


MoveNextKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall MoveNextKey (bool bTree);
Delphi Syntax | Function MoveNextKey (bTree: Boolean): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Updates the CurrentElement property with the key element in the Data Set that immediately follows the key element specified in the CurrentElement property. The result depends on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the next key element on the same level and with the same parent as the key element in the CurrentElement property. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | NULL
Item 6 | Item 7

If the Data Set is evaluated as a list, the CurrentElement property is updated with the next item in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 14 | Item 15
Item 4 | Item 5
Item 8 | Item 9
Item 19 | Item 20
Item 27 | Item 28
Item 30 | NULL

The following methods will also help you navigate the DICOM Dir Data Set as either a tree or a list:

MoveFirstKey method

MovePrevKey method

MoveLastKey method

If you evaluate the Data Set as a tree, you can also use the following methods to navigate the tree:

MoveRootKey method

MoveParentKey method

MoveChildKey method

Note:

Visual Basic users can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully.

See Also

Elements:

MoveFirstKey method, MovePrevKey method, MoveLastKey method, MoveRootKey method, MoveParentKey method, MoveChildKey method


MoveNextTag method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveNextTag(void);
Delphi Syntax | function MoveNextTag: Integer;
Overview | Refer to Working with Tags.

Remarks

Updates the CurrentTag property to the item in the Data Element Tag Table that immediately follows the item specified by the CurrentTag property.

The following methods will also help you navigate the Data Element Tag Table:

MoveFirstTag method

MoveLastTag method

MovePrevTag method

To determine the number of entries in the Data Element Tag Table, use GetTagCount.

See Also

Elements:

MoveLastTag method, MoveFirstTag method, MovePrevTag method, GetTagCount method


MoveNextUID method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveNextUID(void);
Delphi Syntax | function MoveNextUID: Integer;
Overview | Refer to Working with Unique Identifiers.

Remarks

Updates the CurrentUID property to the item in the UID Table that immediately follows the item specified by the CurrentUID property.

The following methods will also help you navigate the UID Table:

MoveFirstUID method

MoveLastUID method

MovePrevUID method

To determine the number of entries in the UID Table, use GetUIDCount.

See Also

Elements:

MoveLastUID method, MoveFirstUID method, MovePrevUID method, GetUIDCount method


MoveNextVR method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveNextVR(void);
Delphi Syntax | function MoveNextVR: Integer;
Overview | Refer to Working with Value Representations.

Remarks

Updates the CurrentVR property to the item in the Value Representation Table that immediately follows the item specified by the CurrentVR property.

The following methods will also help you navigate the Value Representation Table:

MoveFirstVR method

MoveLastVR method

MovePrevVR method

To determine the number of entries in the Value Representation Table, use GetVRCount method.

See Also

Elements:

MoveLastVR method, MoveFirstVR method, MovePrevVR method, GetVRCount method


MoveParentElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveParentElement(void);
Delphi Syntax | function MoveParentElement: Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property with the parent of the item specified in the CurrentElement property.

This method requires that the Data Set is evaluated as a tree structure.

The parent is the ancestor one level higher than the specified item. If the specified item is a Level 0 item, this method will set the CurrentElement property to 0. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Nil (NULL)
Item 2 | Item 3
Item 4 | Item3
Item 5 | Item 6

The following methods will also help you navigate the Data Set:

MoveFirstElement method

MoveLastElement method

MoveNextElement method

MoveRootElement method

MoveChildElement method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxElement method examples.

See Also

Functions:

MoveFirstElement method, MoveLastElement method, MoveNextElement method, MovePrevElement method, MoveRootElement method, MoveChildElement method


MoveParentIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveParentIOD(void);
Delphi Syntax | function MoveParentIOD: Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property with the parent of the item specified in the CurrentIOD property.

This method requires that the IOD Structure is evaluated as a tree structure.

The parent is the ancestor one level higher than the specified item. If the specified item is a Level 0 item, this method will set the CurrentIOD property to 0. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Item 1 | Nil (NULL)
Item 2 | Item 3
Item 4 | Item3
Item 5 | Item 6

The following methods will also help you navigate the IOD Structure:

MoveFirstIOD method

MoveLastIOD method

MoveNextIOD method

MoveRootIOD method

MoveChildIOD method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxIOD methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxIOD method examples.

See Also

Functions:

MoveFirstIOD method, MoveLastIOD method, MoveNextIOD method, MovePrevIOD method, MoveRootIOD method, MoveChildIOD method


MoveParentKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall MoveParentKey (void);
Delphi Syntax | Function MoveParentKey (): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Updates the CurrentElement property with the parent of the key element specified in the CurrentElement property.

This method requires that the DICOM Dir Data Set is evaluated as a tree structure.

The parent is the ancestor one level higher than the specified key element. If the specified item is a Level 0 key element, this method will set the CurrentElement property to 0. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | NULL
Item 2 | Item 3
Item 4 | Item3
Item 5 | Item 6

The following methods will also help you navigate the Data Set:

MoveFirstKey method

MoveLastKey method

MoveNextKey method

MoveRootKey method

MoveChildKey method

Note:

Visual Basic users can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully.

See Also

Elements:

MoveFirstKey method, MoveLastKey method, MoveNextKey method, MovePrevKey method, MoveRootKey method, MoveChildKey method


MovePrevElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MovePrevElement(bool bTree);
Delphi Syntax | function MovePrevElement(bTree: Boolean): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property with the item in the Data Set that immediately precedes the item specified in the CurrentElement property. The result depends on whether the Data Set is evaluated as a tree or a list.

If the Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the previous item on the same level and with the same parent as the item specified in the CurrentElement property. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Nil (NULL)
Item 6 | Item 7

If the Data Set is evaluated as a list, the CurrentElement property is updated with the previous item in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Nil (NULL)
Item 15 | Item 14
Item 5 | Item 4
Item 9 | Item 8
Item 22 | Item 21
Item 25 | Item 24

The following methods will also help you navigate the Data Set as either a tree or a list:

MoveFirstElement method

MoveLastElement method

MoveNextElement method

If you evaluate the IOD Structure as a tree, you can also use the following methods to navigate the tree:

MoveRootElement method

MoveParentElement method

MoveChildElement method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxElement method examples.

See Also

Elements:

MoveFirstElement method, MoveLastElement method, MoveNextElement method, MoveRootElement method, MoveParentElement method, MoveChildElement method


MovePrevIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MovePrevIOD(bool bTree);
Delphi Syntax | function MovePrevIOD(bTree: Boolean): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property with the item in the IOD Structure that immediately precedes the item specified in the CurrentIOD property. The result depends on whether the IOD Structure is evaluated as a tree or a list.

If the IOD Structure is evaluated as a tree structure, this method updates the CurrentIOD property with the previous item on the same level and with the same parent as the item specified in the CurrentIOD property. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | Nil (NULL)
Item 6 | Item 7

If the IOD Structure is evaluated as a list, the CurrentIOD property is updated with the previous item in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the IOD Structure is evaluated as a list.

If the CurrentIOD property contains: | The CurrentIOD property will be updated with:
Item 1 | Nil (NULL)
Item 15 | Item 14
Item 5 | Item 4
Item 9 | Item 8
Item 22 | Item 21
Item 25 | Item 24

The following methods will also help you navigate the IOD Structure as either a tree or a list:

MoveFirstIOD method

MoveLastIOD method

MoveNextIOD method

If you evaluate the IOD Structure as a tree, you can also use the following methods to navigate the tree:

MoveRootIOD method

MoveParentIOD method

MoveChildIOD method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxIOD methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxIOD method examples.

See Also

Elements:

MoveFirstIOD method, MoveLastIOD method, MoveNextIOD method, MoveRootIOD method, MoveParentIOD method, MoveChildIOD method


MovePrevKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall MovePrevKey (bool bTree);
Delphi Syntax | Function MovePrevKey (bTree: Boolean): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Updates the CurrentElement property with the key element in the DICOM Dir Data Set that immediately precedes the key element specified in the CurrentElement property. The result depends on whether the Data Set is evaluated as a tree or a list.

If the DICOM Dir Data Set is evaluated as a tree structure, this method updates the CurrentElement property with the previous key element on the same level and with the same parent as the key element specified in the CurrentElement property. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Item 2
Item 3 | Item 4
Item 5 | NULL
Item 6 | Item 7

If the Data Set is evaluated as a list, the CurrentElement property is updated with the previous key element in the list. Please note that the numbering of the items in this illustration does indicate the order of the items when the Data Set is evaluated as a list.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | NULL
Item 15 | Item 14
Item 5 | Item 4
Item 9 | Item 8
Item 22 | Item 21
Item 25 | Item 24

The following methods will also help you navigate the DICOM Dir Data Set as either a tree or a list:

MoveFirstKey method

MoveLastKey method

MoveNextKey method

If you evaluate the Data Set as a tree, you can also use the following methods to navigate the tree:

MoveRootKey method

MoveParentKey method

MoveChildKey method

Note:

Visual Basic users can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully.

See Also

Elements:

MoveFirstKey method, MoveLastKey method, MoveNextKey method, MoveRootKey method, MoveParentKey method, MoveChildKey method


MovePrevTag method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MovePrevTag(void);
Delphi Syntax | function MovePrevTag: Integer;
Overview | Refer to Working with Tags.

Remarks

Updates the CurrentTag property to the item in the Data Element Tag Table that immediately precedes the item specified by the CurrentTag property.

The following methods will also help you navigate the Data Element Tag Table:

MoveFirstTag method

MoveLastTag method

MoveNextTag method

To determine the number of entries in the Data Element Tag Table, use GetTagCount.

See Also

Elements:

MoveLastTag method, MoveFirstTag method, MoveNextTag method, GetTagCount method


MovePrevUID method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MovePrevUID(void);
Delphi Syntax | function MovePrevUID: Integer;
Overview | Refer to Working with Unique Identifiers.

Remarks

Updates the CurrentUID property to the item in the UID Table that immediately precedes the item specified by the CurrentUID property.

The following methods will also help you navigate the UID Table:

MoveFirstUID method

MoveLastUID method

MoveNextUID method

To determine the number of entries in the UID Table, use GetUIDCount.

See Also

Elements:

MoveLastUID method, MoveFirstUID method, MoveNextUID method, GetUIDCount method


MovePrevVR method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MovePrevVR(void);
Delphi Syntax | function MovePrevVR: Integer;
Overview | Refer to Working with Value Representations.

Remarks

Updates the CurrentVR property to the item in the Value Representation Table that immediately precedes the item specified by the CurrentVR property.

The following methods will also help you navigate the Value Representation Table:

MoveFirstVR method

MoveLastVR method

MoveNextVR method

To determine the number of entries in the Value Representation Table, use GetVRCount method.

See Also

Elements:

MoveLastVR method, MoveFirstVR method, MoveNextVR method, GetVRCount method


MoveRootElement method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveRootElement(void);
Delphi Syntax | function MoveRootElement: Integer;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property to the root of the item specified in the CurrentElement property.

The root is the Level 0 ancestor of the item specified in the CurrentElement property. If the CurrentElement property specifies an item on Level 0, the CurrentElement property will be updated with the same item . Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with:
Item 1 | Item 2
Item 3 | Item 2
Item 4 | Item4
Item 5 | Item 6

The following methods will also help you navigate the Data Set:

MoveFirstElement method

MoveLastElement method

MoveNextElement method

MoveParentElement method

MoveChildElement method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxElement method examples.

See Also

Elements:

MoveFirstElement method, MoveLastElement method, MoveNextElement method, MovePrevElement method, MoveParentElement method, MoveChildElement method


MoveRootIOD method

Delphi example

C++Builder example

Builder Syntax | int __fastcall MoveRootIOD(void);
Delphi Syntax | function MoveRootIOD: Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property to the root of the item specified in the CurrentIOD property.

The root is the Level 0 ancestor of the item specified in the CurrentIOD property. If the CurrentIOD property specifies an item on Level 0, the CurrentIOD property will be updated with the same item . Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentIOD property contains: | The CurrentIOD property willl be updated with:
Item 1 | Item 2
Item 3 | Item 2
Item 4 | Item4
Item 5 | Item 6

The following methods will also help you navigate the IOD Structure:

MoveFirstIOD method

MoveLastIOD method

MoveNextIOD method

MoveParentIOD method

MoveChildIOD method

Note: You can either check the return value of the method, or capture and process errors to determine whether the MovexxxIOD methods have completed successfully. For an example of capturing errors, refer to any of the MovexxxIOD method examples.

See Also

Elements:

MoveFirstIOD method, MoveLastIOD method, MoveNextIOD method, MovePrevIOD method, MoveParentIOD method, MoveChildIOD method


MoveRootKey method

Delphi Example

C++ Builder Example

Builder Syntax | int __fastcall MoveRootKey (void);
Delphi Syntax | Function MoveRootKey (): Integer;
Overview | Refer to Working with Key Elements.

Remarks

Updates the CurrentElement property to the root of the key element specified in the CurrentElement property.

The root is the Level 0 ancestor of the key element specified in the CurrentElement property. If the CurrentElement property specifies a key element on Level 0, the CurrentElement property will be updated with the same key element. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

If the CurrentElement property contains: | The CurrentElement property will be updated with :
Item 1 | Item 2
Item 3 | Item 2
Item 4 | Item4
Item 5 | Item 6

The following methods will also help you navigate the Data Set:

MoveFirstKey method

MoveLastKey method

MoveNextKey method

MoveParentKey method

MoveChildKey method

Note:

Visual Basic users can either check the return value of the method, or capture and process errors to determine whether the MovexxxElement methods have completed successfully.

See Also

Elements:

MoveFirstKey method, MoveLastKey method, MoveNextKey method, MovePrevKey method, MoveParentKey method, MoveChildKey method


OnConformanceStatus event

Delphi example

C++Builder example

Builder Syntax | void __fastcall ConformanceStatus(TObject *Sender, int nFlags)
Delphi Syntax | procedure ConformanceStatus(Sender: TObject; nFlags: Integer)
Overview | Refer to Working with Data Sets.

Remarks

This event is fired for each element in the Data Set that does not conform to the DICOM standard. When this event occurs, the CurrentElement property will be updated to the element that does not conform and nFlags will contain a flag indicating where the non-conformity exists. Set the EnableConformanceStatus property to False to terminate the Conformance test.

See Also

Elements:

EnableConformanceStatus property, ConformanceTestDS method


OnProgressStatus event

Delphi example

C++Builder example

Builder Syntax | void __fastcall OnProgressStatus(TObject *Sender, int iPercent);
Delphi Syntax | procedure OnProgressStatus(Sender: TObject; iPercent: Integer);
Overview | Refer to Working with Data Sets.

Remarks

Occurs repeatedly as LEADTOOLS processes data, so that you can update a status bar or detect a user interrupt.

This event is generated only if the EnableProgressEvent property is set to True.

To interrupt a process, set the EnableProgressEvent property to False.

The following methods generate OnProgressStatus events:

GetBitmapValue

InsertBitmapValue

SetBitmapValue

See Also

Elements:

EnableProgressEvent property


Preamble property

Delphi example

C++Builder example

Builder Syntax | System::AnsiString Preamble
Delphi Syntax | Preamble: String
Overview | Refer to Working with Data Sets.

Remarks

Character string that contains the optional preamble to the Data Set. When setting the preamble, the actual size that will be written to the file when you call SaveDS will be limited to the first 128 bytes.

Call GetDSPreamble to update this property from a loaded Data Set. Call SetDSPreamble to set this property with the preamble to be saved into the DICOM file.

See Also

Elements:

GetDSPreamble method, SetDSPreamble method


ResetDS method

Delphi example

C++Builder example

Builder Syntax | void __fastcall ResetDS(void);
Delphi Syntax | procedure ResetDS;
Overview | Refer to Working with Data Sets.

Remarks

Removes all items from the Data Set. Sets the CurrentElement property to Nil (NULL).

This does not affect the actual file on disk.

See Also

Elements:

DeleteElement method, DeleteModule method


ResetIOD method

Delphi example

C++Builder example

Builder Syntax | void __fastcall ResetIOD(void);
Delphi Syntax | procedure ResetIOD;
Overview | Refer to Working with Information Object Definitions.

Remarks

Removes all items from the IOD Structure. Sets the CurrentIOD property to Nil (NULL).

To reset the IOD Structure to the default values, use DefaultIOD.

See Also

Elements:

DefaultIOD method, DeleteIOD method


ResetTag method

Delphi example

C++Builder example

Builder Syntax | void __fastcall ResetTag(void);
Delphi Syntax | procedure ResetTag;
Overview | Refer to Working with Tags.

Remarks

Removes all items from the Data Element Tag Table. Sets the CurrentTag property to Nil (NULL).

To reset the Data Element Tag Table to the default values, use DefaultTag.

To see the default values for the Data Element Tag Table, refer to the Default Data Element Tag Table.

See Also

Elements:

DefaultTag method, DeleteTag method


ResetUID method

Delphi example

C++Builder example

Builder Syntax | void __fastcall ResetUID(void);
Delphi Syntax | procedure ResetUID;
Overview | Refer to Working with Unique Identifiers.

Remarks

Removes all items from the UID Table. Sets the CurrentUID property to Nil (NULL).

To reset the UID Table to the default values, use DefaultUID.

To see the default values for the UID Table, refer to the Default UID Table.

See Also

Elements:

DefaultUID method, DeleteUID method


ResetVR method

Delphi example

C++Builder example

Builder Syntax | void __fastcall ResetVR(void);
Delphi Syntax | procedure ResetVR;
Overview | Refer to Working with Value Representations.

Remarks

Removes all items from the Value Representation Table. Sets the CurrentVR property to Nil (NULL).

To reset the Value Representation Table to the default values, use DefaultVR.

To see the default values for the Value Representation Table, refer to the Default Value Representation Table.

See Also

Elements:

DefaultVR method, DeleteVR method


SaveDS method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SaveDS(System::AnsiString sFilename, Word nFlags);
Delphi Syntax | function SaveDS(sFilename: String; nFlags: Word): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Saves the Data Set to the specified file.

If the Data Set was loaded from a file, the file characteristics were included from the file. If you wish to use these same characteristics, save the Data Set with nFlags set to 0.

If you wish to specify the file characteristics for saving the file, set the characteristics using the possible values listed for nFlags.

See Also

Elements:

InitDS method, LoadDS method


SetAgeValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetAgeValue(Cardinal uCount);
Delphi Syntax | function SetAgeValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Tags.

Remarks

Sets the specified number of age values from the AgeValues property into the item specified by the CurrentElement property.

Before calling this method, set the AgeValueCount property to the number of values you wish to set, and then fill the AgeValues property with the desired values.

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

If uCount is greater than the AgeValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_AS. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetCharValue method, SetShortValue method, SetLongValue method, SetFloatValue method, SetDoubleValue method, SetStringValue method, SetBinaryValue method, SetDateValue method, SetTimeValue method, SetDateTimeValue method


SetBinaryValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetBinaryValue(Cardinal uLength);
Delphi Syntax | function SetBinaryValue(uLength: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of binary values from the BinaryValues property into the item specified by the CurrentElement property.

Before calling this method, set the BinaryValueCount property to the number of values you wish to set, and then fill the BinaryValues property with the desired values.

If uLength is greater than the BinaryValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

See Also

Elements:

SetCharValue method, SetShortValue method, SetLongValue method, SetFloatValue method, SetDoubleValue method, SetStringValue method, SetAgeValue method, SetDateValue method, SetTimeValue method, SetDateTimeValue method


SetBitmapListValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetBitmapListValue(int nCompression, int nPhotometric, int nBitsPerPixel, int nQFactor
Delphi Syntax | function SetBitmapListValue( nCompression, nPhotometric, nBitsPerPixel, nQFactor: Integer): Integer;
Overview | Refer to Working with Data Sets.

Remarks

This method replaces all the images in the Pixel Data Element with the images in the BitmapList property.

Most DICOM files will only have one Data Element of type TAG_PIXEL_DATA. Therefore, in most instances the CurrentElement property can be Nil (NULL), since the method will automatically replace the images of the only Pixel Data Element in the file. If the CurrentElement property is not Nil, it must contain the Pixel Data Element itself.

If the DICOM file is CLASS_BASIC_DIRECTORY, the file may contain more than one Pixel Data Element. In this case you must specify in the CurrentElement property the Pixel Data Element in which the images will be replaced.

If you wish to replace only one image within the Pixel Data Element, you must use DeleteBitmapValue method and InsertBitmapValue method.

For a table of possible Compression, Photometric, BitsPerPixel, and Quality Factor combinations, refer to Compression Table.

See Also

Elements:

GetBitmapValue method, GetBitmapListValue method, InsertBitmapValue method, InsertBitmapListValue method, SetBitmapValue method, DeleteBitmapValue method


SetBitmapValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetBitmapValue(int nCompression, int nPhotometric, int nBitsPerPixel, int nQFactor);
Delphi Syntax | function SetBitmapValue(nCompression, nPhotometric, nBitsPerPixel, nQFactor: Integer): Integer;
Overview | Refer to Working with Data Sets.

Remarks

This method replaces all the images in the Pixel Data Element with the image in the Bitmap property.

Most DICOM files will only have one Data Element of type TAG_PIXEL_DATA. Therefore, in most instances the CurrentElement property can be Nil (NULL), since the method will automatically replace the images of the only Pixel Data Element in the file. If the CurrentElement property is not Nil, it must contain the Pixel Data Element itself.

If the DICOM file is CLASS_BASIC_DIRECTORY, the file may contain more than one Pixel Data Element. In this case you must specify in the CurrentElement property the Pixel Data Element in which the images will be replaced.

If you wish to replace only one image within the Pixel Data Element, you must use DeleteBitmapValue method and InsertBitmapValue method.

For a table of possible Compression, Photometric, BitsPerPixel, and Quality Factor combinations, refer to Compression Table.

This method generates an OnProgressStatus event.

See Also

Elements:

GetBitmapValue method, GetBitmapListValue method, InsertBitmapValue method, InsertBitmapListValue method, SetBitmapListValue method, DeleteBitmapValue method


SetCharValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetCharValue(Cardinal uCount);
Delphi Syntax | function SetCharValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of character values from the CharValues property into the item specified by the CurrentElement property.

Before calling this method, set the CharValueCount property to the number of values you wish to set, and then fill the CharValues property with the desired value(s).

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

A character has a standard size of one byte. When multiple characters are in the CharValues property, the first byte of data is the first character, the second byte of data is the second character, etc. Therefore no delimiters are needed.

If uCount is greater than the CharValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_OB, VR_SQ, or VR_UN. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetBinaryValue method, SetShortValue method, SetLongValue method, SetFloatValue method, SetDoubleValue method, SetStringValue method, SetAgeValue method, SetDateValue method, SetTimeValue method, SetDateTimeValue method


SetConvertValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetConvertValue(void);
Delphi Syntax | function SetConvertValue: Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the value(s) in the CurrentElement from strings.

Before calling this method, set the StringValueCount property to the number of values you wish to set, and then fill the StringValues property with the desired value(s). The string values that you set, will be automatically converted to the appropirate VR for the current element.

See Also

Elements:

GetConvertValue method


SetCurrentElement method

Delphi example

C++Builder example

Builder Syntax | bool __fastcall SetCurrentElement(Cardinal hElement);
Delphi Syntax | function SetCurrentElement(hElement: Cardinal): Boolean;
Overview | Refer to Working with Data Sets.

Remarks

Updates the CurrentElement property to the Data Set item identified by hElement.

You can store the hElement property of the CurrentElement property when you move to a new item, and use that to return to that item later.

See Also

Elements:

CurrentElement property


SetCurrentIOD method

Delphi example

C++Builder example

Builder Syntax | bool __fastcall SetCurrentIOD(Cardinal hIOD);
Delphi Syntax | function SetCurrentIOD(hIOD: Cardinal): Boolean;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the CurrentIOD property to the IOD Structure item identified by hIOD.

You can store the hIOD property of the CurrentIOD property when you move to a new item, and use that to return to that item later.


SetDateTimeValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetDateTimeValue(Cardinal uCount);
Delphi Syntax | function SetDateTimeValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of time values from the DateTimeValues property into the item specified by the CurrentElement property.

Before calling this method, set the DateTimeValueCount property to the number of values you wish to set, and then fill the DateTimeValues property with the desired values.

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

If uCount is greater than the DateTimeValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_DT. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetBinaryValue method, SetShortValue method, SetLongValue method, SetFloatValue method, SetDoubleValue method, SetStringValue method, SetAgeValue method, SetDateValue method, SetTimeValue method, SetCharValue method


SetDateValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetDateValue(Cardinal uCount);
Delphi Syntax | function SetDateValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of date values from the DateValues property into the item specified by the CurrentElement property.

Before calling this method, set the DateValueCount property to the number of values you wish to set, and then fill the DateValues property with the desired values.

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

If uCount is greater than the DateValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_DA. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetBinaryValue method, SetShortValue method, SetLongValue method, SetFloatValue method, SetDoubleValue method, SetStringValue method, SetAgeValue method, SetDateTimeValue method, SetTimeValue method, SetCharValue method


SetDoubleValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetDoubleValue(Cardinal uCount);
Delphi Syntax | function SetDoubleValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of Double values from the DoubleValues property into the item specified by the CurrentElement property.

Before calling this method, set the DoubleValueCount property to the number of values you wish to set, and then fill the DoubleValues property with the desired values.

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

If uCount is greater than the DoubleValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_DS or VR_FD. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetBinaryValue method, SetShortValue method, SetLongValue method, SetFloatValue method, SetDateValue method, SetStringValue method, SetAgeValue method, SetDateTimeValue method, SetTimeValue method, SetCharValue method


SetDSPreamble method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetDSPreamble(void);
Delphi Syntax | function SetDSPreamble: Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the preamble buffer with the value of the Preamble property. This will be used when saving the Data Set to a DICOM file.

The standard length of the preamble is 128 bytes. If the preamble buffer contains more than 128 bytes of data, only the first 128 bytes will be used.

To retrieve the contents of the Preamble, call the GetDSPreamble method.

See Also

Elements:

GetDSPreamble method, Preamble property


SetFloatValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetFloatValue(Cardinal uCount);
Delphi Syntax | function SetFloatValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of float values from the FloatValues property into the item specified by the CurrentElement property.

Before calling this method, set the FloatValueCount property to the number of values you wish to set, and then fill the FloatValues property with the desired values.

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

If uCount is greater than the FloatValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_FL. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetBinaryValue method, SetShortValue method, SetLongValue method, SetDoubleValue method, SetDateValue method, SetStringValue method, SetAgeValue method, SetDateTimeValue method, SetTimeValue method, SetCharValue method


SetIODDescription method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetIODDescription(System::AnsiString sDescription);
Delphi Syntax | function SetIODDescription(sDescription: String): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the description of the item in the IOD Structure specified by the CurrentIOD property.

The following methods will also help you navigate the IOD Structure:

MoveFirstIOD method

MoveLastIOD method

MoveNextIOD method

MoveParentIOD method

MoveChildIOD method

MoveRootIOD method

See Also

Elements:

MoveFirstIOD method, MoveLastIOD method, MoveNextIOD method, MovePrevIOD method, MoveParentIOD method, MoveChildIOD method, MoveRootIOD method, SetIODName method


SetIODName method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetIODName(System::AnsiString sName);
Delphi Syntax | function SetIODName(sName: String): Integer;
Overview | Refer to Working with Information Object Definitions.

Remarks

Updates the name of the item in the IOD Structure specified by the CurrentIOD property.

The following methods will also help you navigate the IOD Structure:

MoveFirstIOD method

MoveLastIOD method

MoveNextIOD method

MoveParentIOD method

MoveChildIOD method

MoveRootIOD method

See Also

Elements:

MoveFirstIOD method, MoveLastIOD method, MoveNextIOD method, MovePrevIOD method, MoveParentIOD method, MoveChildIOD method, MoveRootIOD method, SetIODDescription method


SetLongValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetLongValue(Cardinal uCount);
Delphi Syntax | function SetLongValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of long values from the LongValues property into the item specified by the CurrentElement property.

Before calling this method, set the LongValueCount property to the number of values you wish to set, and then fill the LongValues property with the desired values.

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

If uCount is greater than the LongValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_AT, VR_IS, VR_SL, or VR_UL. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetBinaryValue method, SetShortValue method, SetFloatValue method, SetDoubleValue method, SetDateValue method, SetStringValue method, SetAgeValue method, SetDateTimeValue method, SetTimeValue method, SetCharValue method


SetShortValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetShortValue(Cardinal uCount);
Delphi Syntax | function SetShortValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of short values from the ShortValues property into the item specified by the CurrentElement property.

Before calling this method, set the ShortValueCount property to the number of values you wish to set, and then fill the ShortValues property with the desired values.

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

If uCount is greater than the ShortValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_OW, VR_SS, or VR_US. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetBinaryValue method, SetLongValue method, SetFloatValue method, SetDoubleValue method, SetDateValue method, SetStringValue method, SetAgeValue method, SetDateTimeValue method, SetTimeValue method, SetCharValue method


SetStringValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetStringValue(Cardinal uCount);
Delphi Syntax | function SetStringValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of string values from the StringValues property into the item specified by the CurrentElement property.

Before calling this method, set the StringValueCount property to the number of values you wish to set, and then fill the StringValues property with the desired value(s).

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

For more information on required delimiters between multiple values, refer to An Overview of the DICOM File Format and the DICOM Standard.

If uCount is greater than the CharValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_AE, VR_CS, VR_LO, VR_LT, VR_SH, VR_ST, VR_UI, VR_UT, or VR_PN. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetBinaryValue method, SetLongValue method, SetFloatValue method, SetDoubleValue method, SetDateValue method, SetShortValue method, SetAgeValue method, SetDateTimeValue method, SetTimeValue method, SetCharValue method


SetTagName method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetTagName(System::AnsiString sName);
Delphi Syntax | function SetTagName(sName: String): Integer;
Overview | Refer to Working with Tags.

Remarks

Sets the name of the item in the Data Element Tag Table specified by the CurrentTag property.

See Also

Elements:

MoveFirstTag method, MoveLastTag method, MoveNextTag method, MovePrevTag method, FindTag method, FindIndexTag method


SetTimeValue method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetTimeValue(Cardinal uCount);
Delphi Syntax | function SetTimeValue(uCount: Cardinal): Integer;
Overview | Refer to Working with Data Sets.

Remarks

Sets the specified number of time values from the TimeValues property into the item specified by the CurrentElement property.

Before calling this method, set the TimeValueCount property to the number of values you wish to set, and then fill the TimeValues property with the desired values.

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

If uCount is greater than the TimeValueCount property, an error is returned.

This method overwrites the values associated with the item specified by the CurrentElement property.

This function can be called only if the Value Representation of the Data Element is VR_TM. For more information about Value Representations, refer to Default Value Representation Table.

See Also

Elements:

SetBinaryValue method, SetLongValue method, SetFloatValue method, SetDoubleValue method, SetDateValue method, SetShortValue method, SetAgeValue method, SetDateTimeValue method, SetStringValue method, SetCharValue method


SetUIDName method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetUIDName(System::AnsiString sName);
Delphi Syntax | function SetUIDName(sName: String): Integer;
Overview | Refer to Working with Unique Identifiers.

Remarks

Sets the name of the item in the UID Table specified by the CurrentUID property.

See Also

Elements:

MoveFirstUID method, MoveLastUID method, MoveNextUID method, MovePrevUID method, FindUID method, FindIndexUID method


SetVRName method

Delphi example

C++Builder example

Builder Syntax | int __fastcall SetVRName(System::AnsiString sName);
Delphi Syntax | function SetVRName(sName: String): Integer;
Overview | Refer to Working with Value Representations.

Remarks

Sets the name of the item in the Value Representation Table specified by the CurrentVR property.

See Also

Elements:

MoveFirstVR method, MoveLastVR method, MoveNextVR method, MovePrevVR method, FindVR method, FindIndexVR method


ShortValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal ShortValueCount
Delphi Syntax | ShortValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of short values in the ShortValues property.

If you are retrieving short values associated with the element specified in the CurrentElement property, calling the GetShortValue method updates this property with the number of short values associated with the specified element.

If you are setting short values associated with the element specified in the CurrentElement property, you can set the ShortValueCount property to allocate storage for the ShortValues array property, prior to setting the short values using SetShortValue.

Set this property to 0 at any time to free the memory used for the ShortValues property.

See Also

Elements:

ShortValues property, GetShortValue method, SetShortValue method


ShortValues property

Delphi example

C++Builder example

Builder Syntax | short ShortValues[Cardinal uIndex]
Delphi Syntax | ShortValues[uIndex: Cardinal]: SmallInt
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of short values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the ShortValueCount property.

If you are retrieving short values associated with the element specified in the CurrentElement property, calling the GetShortValue method updates this property with the short values associated with the specified element.

If you are setting short values associated with the element specified in the CurrentElement property, you can set the ShortValueCount property to allocate storage for the ShortValues property, prior to setting the short values using SetShortValue.

Set the ShortValueCount property to 0 at any time to free the memory used for the ShortValues property.

See Also

Elements:

ShortValueCount property, GetShortValue method, SetShortValue method


StringValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal StringValueCount
Delphi Syntax | StringValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of string values in the StringValues property.

If you are retrieving string values associated with the element specified in the CurrentElement property, calling the GetStringValue method updates this property with the number of string values associated with the specified element.

If you are setting string values associated with the element specified in the CurrentElement property, you can set the StringValueCount property to allocate storage for the StringValues array property, prior to setting the string values using SetStringValue.

Set this property to 0 at any time to free the memory used for the StringValues property.

See Also

Elements:

StringValues property, GetStringValue method, SetStringValue method


StringValues property

Delphi example

C++Builder example

Builder Syntax | System::AnsiString StringValues[Cardinal uIndex]
Delphi Syntax | StringValues[uIndex: Cardinal]: String
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of string values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the StringValueCount property.

If you are retrieving string values associated with the element specified in the CurrentElement property, calling the GetStringValue method updates this property with the string values associated with the specified element.

If you are setting string values associated with the element specified in the CurrentElement property, you can set the StringValueCount property to allocate storage for the StringValues property, prior to setting the string values using SetStringValue.

Set the StringValueCount property to 0 at any time to free the memory used for the StringValues property.

See Also

Elements:

StringValueCount property, GetStringValue method, SetStringValue method


TimeValueCount property

Delphi example

C++Builder example

Builder Syntax | Cardinal TimeValueCount
Delphi Syntax | TimeValueCount: Cardinal
Overview | Refer to Working with Data Sets.

Remarks

Contains the number of time values in the TimeValues property.

If you are retrieving time values associated with the element specified in the CurrentElement property, calling the GetTimeValue method updates this property with the number of time values associated with the specified element.

If you are setting time values associated with the element specified in the CurrentElement property, you can set the TimeValueCount property to allocate storage for the TimeValues array property, prior to setting the time values using SetTimeValue.

Set this property to 0 at any time to free the memory used for the TimeValues property.

See Also

Elements:

TimeValues property, GetTimeValue method, SetTimeValue method


TimeValues property

Delphi example

C++Builder example

Builder Syntax | TValueTime* TimeValues[Cardinal uIndex]
Delphi Syntax | TimeValues[uIndex: Cardinal]: TValueTime
Overview | Refer to Working with Data Sets.

Remarks

Contains an array of time values retrieved from or set to the Data Element specified by the CurrentElement property. The size of this array is determined by the TimeValueCount property.

The TValueTime class has the following properties:

Property | Type | Description
Fractions | Cardinal | Fraction of a second.
Hours | Word | Hours
Minutes | Word | Minutes
Seconds | Word | Seconds

If you are retrieving time values associated with the element specified in the CurrentElement property, calling the GetTimeValue method updates this property with the time values associated with the specified element.

If you are setting time values associated with the element specified in the CurrentElement property, you can set the TimeValueCount property to allocate storage for the TimeValues property, prior to setting the date values using SetTimeValue.

Set the TimeValueCount property to 0 at any time to free the memory used for the TimeValues property.

See Also

Elements:

TimeValueCount property, GetTimeValue method, SetTimeValue method


UnlockSupport method

Delphi example

C++Builder example

Builder Syntax | void __fastcall UnlockSupport(int iType, System::AnsiString Key);
Delphi Syntax | procedure UnlockSupport(iType: Integer; Key: String);
Overview | Refer to Implementing DICOM Support.

Remarks

Unlocks support for an optional feature, such as LEADTOOLS Document/Medical capabilities.

For information about LEADTOOLS Document/Medical capabilities, contact LEAD.

See Also

Elements:

IsSupportLocked method


Compression Table

The table below contains possible combinations of compression, photometric setting, bits per pixel, and quality factor.

Compression | Photometric | BPP | QFactor
IMAGE_COMPRESSION_NONE | IMAGE_PHOTOMETRIC_MONOCHROME2 | 8 |
IMAGE_COMPRESSION_NONE | IMAGE_PHOTOMETRIC_MONOCHROME2 | 16 |
IMAGE_COMPRESSION_NONE | IMAGE_PHOTOMETRIC_PALETTE_COLOR | 8 |
IMAGE_COMPRESSION_NONE | IMAGE_PHOTOMETRIC_RGB | 24 |
IMAGE_COMPRESSION_RLE | IMAGE_PHOTOMETRIC_MONOCHROME2 | 8 |
IMAGE_COMPRESSION_RLE | IMAGE_PHOTOMETRIC_MONOCHROME2 | 16 |
IMAGE_COMPRESSION_RLE | IMAGE_PHOTOMETRIC_PALETTE_COLOR | 8 |
IMAGE_COMPRESSION_RLE | IMAGE_PHOTOMETRIC_RGB | 24 |
IMAGE_COMPRESSION_JPEG_LOSSLESS | IMAGE_PHOTOMETRIC_MONOCHROME2 | 8 |
IMAGE_COMPRESSION_JPEG_LOSSLESS | IMAGE_PHOTOMETRIC_MONOCHROME2 | 12 |
IMAGE_COMPRESSION_JPEG_LOSSLESS | IMAGE_PHOTOMETRIC_MONOCHROME2 | 16 |
IMAGE_COMPRESSION_JPEG_LOSSLESS | IMAGE_PHOTOMETRIC_RGB | 24 |
IMAGE_COMPRESSION_JPEG_LOSSY | IMAGE_PHOTOMETRIC_MONOCHROME2 | 8 | 2-255
IMAGE_COMPRESSION_JPEG_LOSSY | IMAGE_PHOTOMETRIC_MONOCHROME2 | 12 | 2-255
IMAGE_COMPRESSION_JPEG_LOSSY | IMAGE_PHOTOMETRIC_RGB | 24 | 2-255


Data Element Tag Constants

The following is a list of the default Data Element Tags that are standard for the DICOM file format.

Code constant | Code value
TAG_FILE_META_INFORMATION_VERSION | $00020001
TAG_MEDIA_STORAGE_SOP_CLASS_UID | $00020002
TAG_MEDIA_STORAGE_SOP_INSTANCE_UID | $00020003
TAG_TRANSFER_SYNTAX_UID | $00020010
TAG_IMPLEMENTATION_CLASS_UID | $00020012
TAG_IMPLEMENTATION_VERSION_NAME | $00020013
TAG_SOURCE_APPLICATION_ENTITY_TITLE | $00020016
TAG_PRIVATE_INFORMATION_CREATOR_UID | $00020100
TAG_PRIVATE_INFORMATION | $00020102
TAG_FILE_SET_ID | $00041130
TAG_FILE_SET_DESCRIPTOR_FILE_ID | $00041141
TAG_SPECIFIC_CHARACTER_SET_OF_FILE | $00041142
TAG_OFFSET_FIRST_ROOT_DIRECTORY | $00041200
TAG_OFFSET_LAST_ROOT_DIRECTORY | $00041202
TAG_FILE_SET_CONSISTENCY_FLAG | $00041212
TAG_DIRECTORY_RECORD_SEQUENCE | $00041220
TAG_OFFSET_NEXT_DIRECTORY | $00041400
TAG_RECORD_IN_USE_FLAG | $00041410
TAG_OFFSET_CHILD_DIRECTORY | $00041420
TAG_DIRECTORY_RECORD_TYPE | $00041430
TAG_PRIVATE_RECORD_UID | $00041432
TAG_REFERENCED_FILE_ID | $00041500
TAG_OFFSET_MRDR_DIRECTORY | $00041504
TAG_REFERENCED_SOP_CLASS_UID_IN_FILE | $00041510
TAG_REFERENCED_SOP_INSTANCE_UID_IN_FILE | $00041511
TAG_REFERENCED_TRANSFER_SYNTAX_UID_IN_FILE | $00041512
TAG_NUMBER_OF_REFERENCES | $00041600
TAG_SPECIFIC_CHARACTER_SET | $00080005
TAG_IMAGE_TYPE | $00080008
TAG_INSTANCE_CREATION_DATE | $00080012
TAG_INSTANCE_CREATION_TIME | $00080013
TAG_INSTANCE_CREATOR_UID | $00080014
TAG_SOP_CLASS_UID | $00080016
TAG_SOP_INSTANCE_UID | $00080018
TAG_STUDY_DATE | $00080020
TAG_SERIES_DATE | $00080021
TAG_ACQUISITION_DATE | $00080022
TAG_IMAGE_DATE | $00080023
TAG_OVERLAY_DATE | $00080024
TAG_CURVE_DATE | $00080025
TAG_STUDY_TIME | $00080030
TAG_SERIES_TIME | $00080031
TAG_ACQUISITION_TIME | $00080032
TAG_IMAGE_TIME | $00080033
TAG_OVERLAY_TIME | $00080034
TAG_CURVE_TIME | $00080035
TAG_NUCLEAR_MEDICINE_SERIES_TYPE_RETIRED | $00080042
TAG_ACCESSION_NUMBER | $00080050
TAG_QUERY_RETRIEVE_LEVEL | $00080052
TAG_RETRIEVE_AE_TITLE | $00080054
TAG_FAILED_SOP_INSTANCE_UID_LIST | $00080058
TAG_MODALITY | $00080060
TAG_MODALITIES_IN_STUDY | $00080061
TAG_CONVERSION_TYPE | $00080064
TAG_PRESENTATION_INTENT_TYPE | $00080068
TAG_MANUFACTURER | $00080070
TAG_INSTITUTION_NAME | $00080080
TAG_INSTITUTION_ADDRESS | $00080081
TAG_INSTITUTION_CODE_SEQUENCE | $00080082
TAG_REFERRING_PHYSICIAN_NAME | $00080090
TAG_REFERRING_PHYSICIAN_ADDRESS | $00080092
TAG_REFERRING_PHYSICIAN_TELEPHONE_NUMBERS | $00080094
TAG_CODE_VALUE | $00080100
TAG_CODING_SCHEME_DESIGNATOR | $00080102
TAG_CODE_MEANING | $00080104
TAG_CONTEXT_GROUP_LOCAL_VERSION | $00080107
TAG_STATION_NAME | $00081010
TAG_STUDY_DESCRIPTION | $00081030
TAG_PROCEDURE_CODE_SEQUENCE | $00081032
TAG_SERIES_DESCRIPTION | $0008103E
TAG_INSTITUTIONAL_DEPARTMENT_NAME | $00081040
TAG_PHYSICIAN_OF_RECORD | $00081048
TAG_PERFORMING_PHYSICIAN_NAME | $00081050
TAG_NAME_OF_PHYSICIAN_READING_STUDY | $00081060
TAG_OPERATORS_NAME | $00081070
TAG_ADMITTING_DIAGNOSES_DESCRIPTION | $00081080
TAG_ADMITTING_DIAGNOSIS_CODE_SEQUENCE | $00081084
TAG_MANUFACTURER_MODEL_NAME | $00081090
TAG_REFERENCED_RESULTS_SEQUENCE | $00081100
TAG_REFERENCED_STUDY_SEQUENCE | $00081110
TAG_REFERENCED_STUDY_COMPONENT_SEQUENCE | $00081111
TAG_REFERENCED_SERIES_SEQUENCE | $00081115
TAG_REFERENCED_PATIENT_SEQUENCE | $00081120
TAG_REFERENCED_VISIT_SEQUENCE | $00081125
TAG_REFERENCED_OVERLAY_SEQUENCE_0008 | $00081130
TAG_REFERENCED_IMAGE_SEQUENCE | $00081140
TAG_REFERENCED_CURVE_SEQUENCE | $00081145
TAG_REFERENCED_SOP_CLASS_UID | $00081150
TAG_REFERENCED_SOP_INSTANCE_UID | $00081155
TAG_SOP_CLASSES_SUPPORTED | $0008115A
TAG_REFERENCED_FRAME_NUMBER | $00081160
TAG_TRANSACTION_UID | $00081195
TAG_FAILURE_REASON | $00081197
TAG_FAILED_SOP_SEQUENCE | $00081198
TAG_REFERENCED_SOP_SEQUENCE | $00081199
TAG_LOSSY_IMAGE_COMPRESSION_RETIRED | $00082110
TAG_DERIVATION_DESCRIPTION | $00082111
TAG_SOURCE_IMAGE_SEQUENCE | $00082112
TAG_STAGE_NAME | $00082120
TAG_STAGE_NUMBER | $00082122
TAG_NUMBER_OF_STAGES | $00082124
TAG_VIEW_NUMBER | $00082128
TAG_NUMBER_OF_EVENT_TIMERS | $00082129
TAG_NUMBER_OF_VIEWS_IN_STAGE | $0008212A
TAG_EVENT_ELAPSED_TIME | $00082130
TAG_EVENT_TIMER_NAME | $00082132
TAG_START_TRIM | $00082142
TAG_STOP_TRIM | $00082143
TAG_RECOMMENDED_DISPLAY_FRAME_RATE | $00082144
TAG_TRANSDUCER_POSITION_RETIRED | $00082200
TAG_TRANSDUCER_ORIENTATION_RETIRED | $00082204
TAG_ANATOMIC_STRUCTURE_RETIRED | $00082208
TAG_ANATOMIC_REGION_SEQUENCE | $00082218
TAG_ANATOMIC_REGION_MODIFIER_SEQUENCE | $00082220
TAG_PRIMARY_ANATOMIC_STRUCTURE_SEQUENCE | $00082228
TAG_ANATOMIC_STRUCTURE_SPACE_OR_REGION_SEQUENCE | $00082229
TAG_PRIMARY_ANATOMIC_STRUCTURE_MODIFIER_SEQUENCE | $00082230
TAG_TRANSDUCER_POSITION_SEQUENCE | $00082240
TAG_TRANSDUCER_POSITION_MODIFIER_SEQUENCE | $00082242
TAG_TRANSDUCER_ORIENTATION_SEQUENCE | $00082244
TAG_TRANSDUCER_ORIENTATION_MODIFIER_SEQUENCE | $00082246
TAG_PATIENT_NAME | $00100010
TAG_PATIENT_ID | $00100020
TAG_ISSUER_OF_PATIENT_ID | $00100021
TAG_PATIENT_BIRTH_DATE | $00100030
TAG_PATIENT_BIRTH_TIME | $00100032
TAG_PATIENT_SEX | $00100040
TAG_PATIENT_INSURANCE_PLAN_CODE_SEQUENCE | $00100050
TAG_OTHER_PATIENT_IDS | $00101000
TAG_OTHER_PATIENT_NAMES | $00101001
TAG_PATIENT_BIRTH_NAME | $00101005
TAG_PATIENT_AGE | $00101010
TAG_PATIENT_SIZE | $00101020
TAG_PATIENT_WEIGHT | $00101030
TAG_PATIENT_ADDRESS | $00101040
TAG_PATIENT_MOTHER_BIRTH_NAME | $00101060
TAG_MILITARY_RANK | $00101080
TAG_BRANCH_OF_SERVICE | $00101081
TAG_MEDICAL_RECORD_LOCATOR | $00101090
TAG_MEDICAL_ALERTS | $00102000
TAG_CONTRAST_ALLERGIES | $00102110
TAG_COUNTRY_OF_RESIDENCE | $00102150
TAG_REGION_OF_RESIDENCE | $00102152
TAG_PATIENT_TELEPHONE_NUMBERS | $00102154
TAG_ETHNIC_GROUP | $00102160
TAG_OCCUPATION | $00102180
TAG_SMOKING_STATUS | $001021A0
TAG_ADDITIONAL_PATIENT_HISTORY | $001021B0
TAG_PREGNANCY_STATUS | $001021C0
TAG_LAST_MENSTRUAL_DATE | $001021D0
TAG_PATIENT_RELIGIOUS_PREFERENCE | $001021F0
TAG_PATIENT_COMMENTS | $00104000
TAG_CONTRAST_BOLUS_AGENT | $00180010
TAG_CONTRAST_BOLUS_AGENT_SEQUENCE | $00180012
TAG_CONTRAST_BOLUS_ADMINISTRATION_ROUTE_SEQUENCE | $00180014
TAG_BODY_PART_EXAMINED | $00180015
TAG_SCANNING_SEQUENCE | $00180020
TAG_SEQUENCE_VARIANT | $00180021
TAG_SCAN_OPTIONS | $00180022
TAG_MR_ACQUISITION_TYPE | $00180023
TAG_SEQUENCE_NAME | $00180024
TAG_ANGIO_FLAG | $00180025
TAG_INTERVENTION_DRUG_INFORMATION_SEQUENCE | $00180026
TAG_INTERVENTION_DRUG_STOP_TIME | $00180027
TAG_INTERVENTION_DRUG_DOSE | $00180028
TAG_INTERVENTION_DRUG_CODE_SEQUENCE | $00180029
TAG_ADDITIONAL_DRUG_SEQUENCE | $0018002A
TAG_RADIONUCLIDE_RETIRED | $00180030
TAG_RADIOPHARMACEUTICAL | $00180031
TAG_ENERGY_WINDOW_CENTERLINE_RETIRED | $00180032
TAG_ENERGY_WINDOW_TOTAL_WIDTH_RETIRED | $00180033
TAG_INTERVENTION_DRUG_NAME | $00180034
TAG_INTERVENTION_DRUG_START_TIME | $00180035
TAG_INTERVENTIONAL_THERAPY_SEQUENCE | $00180036
TAG_THERAPY_TYPE | $00180037
TAG_INTERVENTIONAL_STATUS | $00180038
TAG_THERAPY_DESCRIPTION | $00180039
TAG_CINE_RATE | $00180040
TAG_SLICE_THICKNESS | $00180050
TAG_KVP | $00180060
TAG_COUNTS_ACCUMULATED | $00180070
TAG_ACQUISITION_TERMINATION_CONDITION | $00180071
TAG_EFFECTIVE_SERIES_DURATION | $00180072
TAG_ACQUISITION_START_CONDITION | $00180073
TAG_ACQUISITION_START_CONDITION_DATA | $00180074
TAG_ACQUISITION_TERMINATION_CONDITION_DATA | $00180075
TAG_REPETITION_TIME | $00180080
TAG_ECHO_TIME | $00180081
TAG_INVERSION_TIME | $00180082
TAG_NUMBER_OF_AVERAGES | $00180083
TAG_IMAGING_FREQUENCY | $00180084
TAG_IMAGED_NUCLEUS | $00180085
TAG_ECHO_NUMBER | $00180086
TAG_MAGNETIC_FIELD_STRENGTH | $00180087
TAG_SPACING_BETWEEN_SLICES | $00180088
TAG_NUMBER_OF_PHASE_ENCODING_STEPS | $00180089
TAG_DATA_COLLECTION_DIAMETER | $00180090
TAG_ECHO_TRAIN_LENGTH | $00180091
TAG_PERCENT_SAMPLING | $00180093
TAG_PERCENT_PHASE_FIELD_OF_VIEW | $00180094
TAG_PIXEL_BANDWIDTH | $00180095
TAG_DEVICE_SERIAL_NUMBER | $00181000
TAG_PLATE_ID | $00181004
TAG_SECONDARY_CAPTURE_DEVICE_ID | $00181010
TAG_HARDCOPY_CREATION_DEVICE_ID | $00181011
TAG_DATE_OF_SECONDARY_CAPTURE | $00181012
TAG_TIME_OF_SECONDARY_CAPTURE | $00181014
TAG_SECONDARY_CAPTURE_DEVICE_MANUFACTURER | $00181016
TAG_HARDCOPY_DEVICE_MANUFACTURER | $00181017
TAG_SECONDARY_CAPTURE_DEVICE_MANUFACTURER_MODEL_NAME | $00181018
TAG_SECONDARY_CAPTURE_DEVICE_SOFTWARE_VERSION | $00181019
TAG_HARDCOPY_DEVICE_SOFTWARE_VERSION | $0018101A
TAG_HARDCOPY_DEVICE_MANFUACTURER_MODEL_NAME | $0018101B
TAG_SOFTWARE_VERSION | $00181020
TAG_VIDEO_IMAGE_FORMAT_ACQUIRED | $00181022
TAG_DIGITAL_IMAGE_FORMAT_ACQUIRED | $00181023
TAG_PROTOCOL_NAME | $00181030
TAG_CONTRAST_BOLUS_ROUTE | $00181040
TAG_CONTRAST_BOLUS_VOLUME | $00181041
TAG_CONTRAST_BOLUS_START_TIME | $00181042
TAG_CONTRAST_BOLUS_STOP_TIME | $00181043
TAG_CONTRAST_BOLUS_TOTAL_DOSE | $00181044
TAG_SYRINGE_COUNTS | $00181045
TAG_CONTRAST_FLOW_RATE | $00181046
TAG_CONTRAST_FLOW_DURATION | $00181047
TAG_CONTRAST_BOLUS_INGREDIENT | $00181048
TAG_CONTRAST_BOLUS_INGREDIENT_CONCENTRATION | $00181049
TAG_SPATIAL_RESOLUTION | $00181050
TAG_TRIGGER_TIME | $00181060
TAG_TRIGGER_SOURCE_OR_TYPE | $00181061
TAG_NOMINAL_INTERVAL | $00181062
TAG_FRAME_TIME | $00181063
TAG_FRAMING_TYPE | $00181064
TAG_FRAME_TIME_VECTOR | $00181065
TAG_FRAME_DELAY | $00181066
TAG_RADIOPHARMACEUTICAL_ROUTE | $00181070
TAG_RADIOPHARMACEUTICAL_VOLUME | $00181071
TAG_RADIOPHARMACEUTICAL_START_TIME | $00181072
TAG_RADIOPHARMACEUTICAL_STOP_TIME | $00181073
TAG_RADIONUCLIDE_TOTAL_DOSE | $00181074
TAG_RADIONUCLIDE_HALF_LIFE | $00181075
TAG_RADIONUCLIDE_POSITRON_FRACTION | $00181076
TAG_RADIOPHARMACEUTICAL_SPECIFIC_ACTIVITY | $00181077
TAG_BEAT_REJECTION_FLAG | $00181080
TAG_LOW_R_R_VALUE | $00181081
TAG_HIGH_R_R_VALUE | $00181082
TAG_INTERVALS_ACQUIRED | $00181083
TAG_INTERVALS_REJECTED | $00181084
TAG_PVC_REJECTION | $00181085
TAG_SKIP_BEATS | $00181086
TAG_HEART_RATE | $00181088
TAG_CARDIAC_NUMBER_OF_IMAGES | $00181090
TAG_TRIGGER_WINDOW | $00181094
TAG_RECONSTRUCTION_DIAMETER | $00181100
TAG_DISTANCE_SOURCE_TO_DETECTOR | $00181110
TAG_DISTANCE_SOURCE_TO_PATIENT | $00181111
TAG_ESTIMATED_RADIOGRAPHIC_MAGNIFICATION_FACTOR | $00181114
TAG_GANTRY_DETECTOR_TILT | $00181120
TAG_GANTRY_DETECTOR_SLEW | $00181121
TAG_TABLE_HEIGHT | $00181130
TAG_TABLE_TRAVERSE | $00181131
TAG_TABLE_MOTION | $00181134
TAG_TABLE_VERTICAL_INCREMENT | $00181135
TAG_TABLE_LATERAL_INCREMENT | $00181136
TAG_TABLE_LONGITUDINAL_INCREMENT | $00181137
TAG_TABLE_ANGLE | $00181138
TAG_ROTATION_DIRECTION | $00181140
TAG_ANGULAR_POSITION | $00181141
TAG_RADIAL_POSITION | $00181142
TAG_SCAN_ARC | $00181143
TAG_ANGULAR_STEP | $00181144
TAG_CENTER_OF_ROTATION_OFFSET | $00181145
TAG_ROTATION_OFFSET_RETIRED | $00181146
TAG_FIELD_OF_VIEW_SHAPE | $00181147
TAG_FIELD_OF_VIEW_DIMENSION | $00181149
TAG_EXPOSURE_TIME | $00181150
TAG_X_RAY_TUBE_CURRENT | $00181151
TAG_EXPOSURE | $00181152
TAG_EXPOSURE_IN_UAS | $00181153
TAG_AVERAGE_PULSE_WIDTH | $00181154
TAG_RADIATION_SETTING | $00181155
TAG_RADIATION_MODE | $0018115A
TAG_IMAGE_AREA_DOSE_PRODUCT | $0018115E
TAG_FILTER_TYPE | $00181160
TAG_TYPE_OF_FILTERS | $00181161
TAG_INTENSIFIER_SIZE | $00181162
TAG_IMAGER_PIXEL_SPACING | $00181164
TAG_GRID | $00181166
TAG_GENERATOR_POWER | $00181170
TAG_COLLIMATOR_GRID_NAME | $00181180
TAG_COLLIMATOR_TYPE | $00181181
TAG_FOCAL_DISTANCE | $00181182
TAG_X_FOCUS_CENTER | $00181183
TAG_Y_FOCUS_CENTER | $00181184
TAG_FOCAL_SPOT | $00181190
TAG_DATE_OF_LAST_CALIBRATION | $00181200
TAG_TIME_OF_LAST_CALIBRATION | $00181201
TAG_CONVOLUTION_KERNEL | $00181210
TAG_ACTUAL_FRAME_DURATION | $00181242
TAG_COUNT_RATE | $00181243
TAG_PREFERRED_PLAYBACK_SEQUENCING | $00181244
TAG_RECEIVING_COIL | $00181250
TAG_TRANSMITTING_COIL | $00181251
TAG_PLATE_TYPE | $00181260
TAG_PHOSPHOR_TYPE | $00181261
TAG_SCAN_VELOCITY | $00181300
TAG_WHOLE_BODY_TECHNIQUE | $00181301
TAG_SCAN_LENGTH | $00181302
TAG_ACQUISITION_MATRIX | $00181310
TAG_PHASE_ENCODING_DIRECTION | $00181312
TAG_FLIP_ANGLE | $00181314
TAG_VARIABLE_FLIP_ANGLE_FLAG | $00181315
TAG_SAR | $00181316
TAG_DB_DT | $00181318
TAG_ACQUISITION_DEVICE_PROCESSING_DESCRIPTION | $00181400
TAG_ACQUISITION_DEVICE_PROCESSING_CODE | $00181401
TAG_CASSETTE_ORIENTATION | $00181402
TAG_CASSETTE_SIZE | $00181403
TAG_EXPOSURES_ON_PLATE | $00181404
TAG_RELATIVE_X_RAY_EXPOSURE | $00181405
TAG_COLUMN_ANGULATION | $00181450
TAG_TOMO_LAYER_HEIGHT | $00181460
TAG_TOMO_ANGLE | $00181470
TAG_TOMO_TIME | $00181480
TAG_POSITIONER_MOTION | $00181500
TAG_POSITIONER_PRIMARY_ANGLE | $00181510
TAG_POSITIONER_SECONDARY_ANGLE | $00181511
TAG_POSITIONER_PRIMARY_ANGLE_INCREMENT | $00181520
TAG_POSITIONER_SECONDARY_ANGLE_INCREMENT | $00181521
TAG_DETECTOR_PRIMARY_ANGLE | $00181530
TAG_DETECTOR_SECONDARY_ANGLE | $00181531
TAG_SHUTTER_SHAPE | $00181600
TAG_SHUTTER_LEFT_VERTICAL_EDGE | $00181602
TAG_SHUTTER_RIGHT_VERTICAL_EDGE | $00181604
TAG_SHUTTER_UPPER_HORIZONTAL_EDGE | $00181606
TAG_SHUTTER_LOWER_HORIZONTAL_EDGE | $00181608
TAG_CENTER_OF_CIRCULAR_SHUTTER | $00181610
TAG_RADIUS_OF_CIRCULAR_SHUTTER | $00181612
TAG_VERTICES_OF_THE_POLYGONAL_SHUTTER | $00181620
TAG_COLLIMATOR_SHAPE | $00181700
TAG_COLLIMATOR_LEFT_VERTICAL_EDGE | $00181702
TAG_COLLIMATOR_RIGHT_VERTICAL_EDGE | $00181704
TAG_COLLIMATOR_UPPER_HORIZONTAL_EDGE | $00181706
TAG_COLLIMATOR_LOWER_HORIZONTAL_EDGE | $00181708
TAG_CENTER_OF_CIRCULAR_COLLIMATOR | $00181710
TAG_RADIUS_OF_CIRCULAR_COLLIMATOR | $00181712
TAG_VERTICES_OF_THE_POLYGONAL_COLLIMATOR | $00181720
TAG_OUTPUT_POWER | $00185000
TAG_TRANSDUCER_DATA | $00185010
TAG_FOCUS_DEPTH | $00185012
TAG_PROCESSING_FUNCTION | $00185020
TAG_POSTPROCESSING_FUNCTION | $00185021
TAG_MECHANICAL_INDEX | $00185022
TAG_THERMAL_INDEX | $00185024
TAG_CRANIAL_THERMAL_INDEX | $00185026
TAG_SOFT_TISSUE_THERMAL_INDEX | $00185027
TAG_SOFT_TISSUE_FOCUS_THERMAL_INDEX | $00185028
TAG_SOFT_TISSUE_SURFACE_THERMAL_INDEX | $00185029
TAG_DEPTH_OF_SCAN_FIELD | $00185050
TAG_PATIENT_POSITION | $00185100
TAG_VIEW_POSITION | $00185101
TAG_IMAGE_TRANSFORMATION_MATRIX | $00185210
TAG_IMAGE_TRANSLATION_VECTOR | $00185212
TAG_SENSITIVITY | $00186000
TAG_SEQUENCE_OF_ULTRASOUND_REGIONS | $00186011
TAG_REGION_SPATIAL_FORMAT | $00186012
TAG_REGION_DATA_TYPE | $00186014
TAG_REGION_FLAGS | $00186016
TAG_REGION_LOCATION_MIN_X_0 | $00186018
TAG_REGION_LOCATION_MIN_Y_0 | $0018601A
TAG_REGION_LOCATION_MAX_X_1 | $0018601C
TAG_REGION_LOCATION_MAX_Y_1 | $0018601E
TAG_REFERENCE_PIXEL_X_0 | $00186020
TAG_REFERENCE_PIXEL_Y_0 | $00186022
TAG_PHYSICAL_UNITS_X_DIRECTION | $00186024
TAG_PHYSICAL_UNITS_Y_DIRECTION | $00186026
TAG_REFERENCE_PIXEL_PHYSICAL_VALUE_X | $00186028
TAG_REFERENCE_PIXEL_PHYSICAL_VALUE_Y | $0018602A
TAG_PHYSICAL_DELTA_X | $0018602C
TAG_PHYSICAL_DELTA_Y | $0018602E
TAG_TRANSDUCER_FREQUENCY | $00186030
TAG_TRANSDUCER_TYPE | $00186031
TAG_PULSE_REPETITION_FREQUENCY | $00186032
TAG_DOPPLER_CORRECTION_ANGLE | $00186034
TAG_STEERING_ANGLE | $00186036
TAG_DOPPLER_SAMPLE_VOLUME_X_POSITION | $00186038
TAG_DOPPLER_SAMPLE_VOLUME_Y_POSITION | $0018603A
TAG_TM_LINE_POSITION_X_0 | $0018603C
TAG_TM_LINE_POSITION_Y_0 | $0018603E
TAG_TM_LINE_POSITION_X_1 | $00186040
TAG_TM_LINE_POSITION_Y_1 | $00186042
TAG_PIXEL_COMPONENT_ORGANIZATION | $00186044
TAG_PIXEL_COMPONENT_MASK | $00186046
TAG_PIXEL_COMPONENT_RANGE_START | $00186048
TAG_PIXEL_COMPONENT_RANGE_STOP | $0018604A
TAG_PIXEL_COMPONENT_PHYSICAL_UNITS | $0018604C
TAG_PIXEL_COMPONENT_DATA_TYPE | $0018604E
TAG_NUMBER_OF_TABLE_BREAK_POINTS | $00186050
TAG_TABLE_OF_X_BREAK_POINTS | $00186052
TAG_TABLE_OF_Y_BREAK_POINTS | $00186054
TAG_NUMBER_OF_TABLE_ENTRIES | $00186056
TAG_TABLE_OF_PIXEL_VALUES | $00186058
TAG_TABLE_OF_PARAMETER_VALUES | $0018605A
TAG_STUDY_INSTANCE_UID | $0020000D
TAG_SERIES_INSTANCE_UID | $0020000E
TAG_STUDY_ID | $00200010
TAG_SERIES_NUMBER | $00200011
TAG_ACQUISITION_NUMBER | $00200012
TAG_INSTANCE_NUMBER | $00200013
TAG_ISOTOPE_NUMBER_RETIRED | $00200014
TAG_PHASE_NUMBER_RETIRED | $00200015
TAG_INTERVAL_NUMBER_RETIRED | $00200016
TAG_TIME_SLOT_NUMBER_RETIRED | $00200017
TAG_ANGLE_NUMBER_RETIRED | $00200018
TAG_ITEM_NUMBER | $00200019
TAG_PATIENT_ORIENTATION | $00200020
TAG_OVERLAY_NUMBER | $00200022
TAG_CURVE_NUMBER | $00200024
TAG_LOOKUP_TABLE_NUMBER | $00200026
TAG_IMAGE_POSITION_PATIENT | $00200032
TAG_IMAGE_ORIENTATION_PATIENT | $00200037
TAG_FRAME_OF_REFERENCE_UID | $00200052
TAG_LATERALITY | $00200060
TAG_TEMPORAL_POSITION_IDENTIFIER | $00200100
TAG_NUMBER_OF_TEMPORAL_POSITIONS | $00200105
TAG_TEMPORAL_RESOLUTION | $00200110
TAG_SERIES_IN_STUDY | $00201000
TAG_IMAGES_IN_ACQUISITION | $00201002
TAG_ACQUISITIONS_IN_STUDY | $00201004
TAG_POSITION_REFERENCE_INDICATOR | $00201040
TAG_SLICE_LOCATION | $00201041
TAG_OTHER_STUDY_NUMBERS | $00201070
TAG_NUMBER_OF_PATIENT_RELATED_STUDIES | $00201200
TAG_NUMBER_OF_PATIENT_RELATED_SERIES | $00201202
TAG_NUMBER_OF_PATIENT_RELATED_INSTANCES | $00201204
TAG_NUMBER_OF_STUDY_RELATED_SERIES | $00201206
TAG_NUMBER_OF_STUDY_RELATED_INSTANCES | $00201208
TAG_NUMBER_OF_SERIES_RELATED_INSTANCES | $00201209
TAG_IMAGE_COMMENTS | $00204000
TAG_SAMPLES_PER_PIXEL | $00280002
TAG_PHOTOMETRIC_INTERPRETATION | $00280004
TAG_PLANAR_CONFIGURATION | $00280006
TAG_NUMBER_OF_FRAMES | $00280008
TAG_FRAME_INCREMENT_POINTER | $00280009
TAG_ROWS | $00280010
TAG_COLUMNS | $00280011
TAG_PLANES | $00280012
TAG_ULTRASOUND_COLOR_DATA_PRESENT | $00280014
TAG_PIXEL_SPACING | $00280030
TAG_ZOOM_FACTOR | $00280031
TAG_ZOOM_CENTER | $00280032
TAG_PIXEL_ASPECT_RATIO | $00280034
TAG_CORRECTED_IMAGE | $00280051
TAG_BITS_ALLOCATED | $00280100
TAG_BITS_STORED | $00280101
TAG_HIGH_BIT | $00280102
TAG_PIXEL_REPRESENTATION | $00280103
TAG_SMALLEST_IMAGE_PIXEL_VALUE | $00280106
TAG_LARGEST_IMAGE_PIXEL_VALUE | $00280107
TAG_SMALLEST_PIXEL_VALUE_IN_SERIES | $00280108
TAG_LARGEST_PIXEL_VALUE_IN_SERIES | $00280109
TAG_SMALLEST_IMAGE_PIXEL_VALUE_IN_PLANE | $00280110
TAG_LARGEST_IMAGE_PIXEL_VALUE_IN_PLANE | $00280111
TAG_PIXEL_PADDING_VALUE | $00280120
TAG_PIXEL_INTENSITY_RELATIONSHIP | $00281040
TAG_WINDOW_CENTER | $00281050
TAG_WINDOW_WIDTH | $00281051
TAG_RESCALE_INTERCEPT | $00281052
TAG_RESCALE_SLOPE | $00281053
TAG_RESCALE_TYPE | $00281054
TAG_WINDOW_CENTER_WIDTH_EXPLANATION | $00281055
TAG_RECOMMENDED_VIEWING_MODE | $00281090
TAG_RED_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR | $00281101
TAG_GREEN_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR | $00281102
TAG_BLUE_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR | $00281103
TAG_PALETTE_COLOR_LOOKUP_TABLE_UID | $00281199
TAG_RED_PALETTE_COLOR_LOOKUP_TABLE_DATA | $00281201
TAG_GREEN_PALETTE_COLOR_LOOKUP_TABLE_DATA | $00281202
TAG_BLUE_PALETTE_COLOR_LOOKUP_TABLE_DATA | $00281203
TAG_SEGMENTED_RED_PALETTE_COLOR_LOOKUP_TABLE_DATA | $00281221
TAG_SEGMENTED_GREEN_PALETTE_COLOR_LOOKUP_TABLE_DATA | $00281222
TAG_SEGMENTED_BLUE_PALETTE_COLOR_LOOKUP_TABLE_DATA | $00281223
TAG_LOSSY_IMAGE_COMPRESSION | $00282110
TAG_LOSSY_IMAGE_COMPRESSION_RATIO | $00282112
TAG_MODALITY_LUT_SEQUENCE | $00283000
TAG_LUT_DESCRIPTOR | $00283002
TAG_LUT_EXPLANATION | $00283003
TAG_MODALITY_LUT_TYPE | $00283004
TAG_LUT_DATA | $00283006
TAG_VOI_LUT_SEQUENCE | $00283010
TAG_BIPLANE_ACQUISITION_SEQUENCE | $00285000
TAG_REPRESENTATIVE_FRAME_NUMBER | $00286010
TAG_FRAME_NUMBERS_OF_INTEREST_FOI | $00286020
TAG_FRAME_OF_INTEREST_DESCRIPTION | $00286022
TAG_MASK_POINTER | $00286030
TAG_R_WAVE_POINTER | $00286040
TAG_MASK_SUBTRACTION_SEQUENCE | $00286100
TAG_MASK_OPERATION | $00286101
TAG_APPLICABLE_FRAME_RANGE | $00286102
TAG_MASK_FRAME_NUMBERS | $00286110
TAG_CONTRAST_FRAME_AVERAGING | $00286112
TAG_MASK_SUB_PIXEL_SHIFT | $00286114
TAG_TID_OFFSET | $00286120
TAG_MASK_OPERATION_EXPLANATION | $00286190
TAG_STUDY_STATUS_ID | $0032000A
TAG_STUDY_PRIORITY_ID | $0032000C
TAG_STUDY_ID_ISSUER | $00320012
TAG_STUDY_VERIFIED_DATE | $00320032
TAG_STUDY_VERIFIED_TIME | $00320033
TAG_STUDY_READ_DATE | $00320034
TAG_STUDY_READ_TIME | $00320035
TAG_SCHEDULED_STUDY_START_DATE | $00321000
TAG_SCHEDULED_STUDY_START_TIME | $00321001
TAG_SCHEDULED_STUDY_STOP_DATE | $00321010
TAG_SCHEDULED_STUDY_STOP_TIME | $00321011
TAG_SCHEDULED_STUDY_LOCATION | $00321020
TAG_SCHEDULED_STUDY_LOCATION_AE_TITLE | $00321021
TAG_REASON_FOR_STUDY | $00321030
TAG_REQUESTING_PHYSICIAN | $00321032
TAG_REQUESTING_SERVICE | $00321033
TAG_STUDY_ARRIVAL_DATE | $00321040
TAG_STUDY_ARRIVAL_TIME | $00321041
TAG_STUDY_COMPLETION_DATE | $00321050
TAG_STUDY_COMPLETION_TIME | $00321051
TAG_STUDY_COMPONENT_STATUS_ID | $00321055
TAG_REQUESTED_PROCEDURE_DESCRIPTION | $00321060
TAG_REQUESTED_PROCEDURE_CODE_SEQUENCE | $00321064
TAG_REQUESTED_CONTRAST_AGENT | $00321070
TAG_STUDY_COMMENTS | $00324000
TAG_REFERENCED_PATIENT_ALIAS_SEQUENCE | $00380004
TAG_VISIT_STATUS_ID | $00380008
TAG_ADMISSION_ID | $00380010
TAG_ISSUER_OF_ADMISSION_ID | $00380011
TAG_ROUTE_OF_ADMISSIONS | $00380016
TAG_SCHEDULED_ADMISSION_DATE | $0038001A
TAG_SCHEDULED_ADMISSION_TIME | $0038001B
TAG_SCHEDULED_DISCHARGE_DATE | $0038001C
TAG_SCHEDULED_DISCHARGE_TIME | $0038001D
TAG_SCHEDULED_PATIENT_INSTITUTION_RESIDENCE | $0038001E
TAG_ADMITTING_DATE | $00380020
TAG_ADMITTING_TIME | $00380021
TAG_DISCHARGE_DATE | $00380030
TAG_DISCHARGE_TIME | $00380032
TAG_DISCHARGE_DIAGNOSIS_DESCRIPTION | $00380040
TAG_DISCHARGE_DIAGNOSIS_CODE_SEQUENCE | $00380044
TAG_SPECIAL_NEEDS | $00380050
TAG_CURRENT_PATIENT_LOCATION | $00380300
TAG_PATIENT_INSTITUTION_RESIDENCE | $00380400
TAG_PATIENT_STATE | $00380500
TAG_VISIT_COMMENTS | $00384000
TAG_SCHEDULED_STATION_AE_TITLE | $00400001
TAG_SCHEDULED_PROCEDURE_STEP_START_DATE | $00400002
TAG_SCHEDULED_PROCEDURE_STEP_START_TIME | $00400003
TAG_SCHEDULED_PROCEDURE_STEP_END_DATE | $00400004
TAG_SCHEDULED_PROCEDURE_STEP_END_TIME | $00400005
TAG_SCHEDULED_PERFORMING_PHYSICIAN_NAME | $00400006
TAG_SCHEDULED_PROCEDURE_STEP_DESCRIPTION | $00400007
TAG_SCHEDULED_ACTION_ITEM_CODE_SEQUENCE | $00400008
TAG_SCHEDULED_PROCEDURE_STEP_ID | $00400009
TAG_SCHEDULED_STATION_NAME | $00400010
TAG_SCHEDULED_PROCEDURE_STEP_LOCATION | $00400011
TAG_PRE_MEDICATION | $00400012
TAG_SCHEDULED_PROCEDURE_STEP_STATUS | $00400020
TAG_SCHEDULED_PROCEDURE_STEP_SEQUENCE | $00400100
TAG_REFERENCED_STANDALONE_SOP_INSTANCE_SEQUENCE | $00400220
TAG_PERFORMED_STATION_AE_TITLE | $00400241
TAG_PERFORMED_STATION_NAME | $00400242
TAG_PERFORMED_LOCATION | $00400243
TAG_PERFORMED_PROCEDURE_STEP_START_DATE | $00400244
TAG_PERFORMED_PROCEDURE_STEP_START_TIME | $00400245
TAG_PERFORMED_PROCEDURE_STEP_END_DATE | $00400250
TAG_PERFORMED_PROCEDURE_STEP_END_TIME | $00400251
TAG_PERFORMED_PROCEDURE_STEP_STATUS | $00400252
TAG_PERFORMED_PROCEDURE_STEP_ID | $00400253
TAG_PERFORMED_PROCEDURE_STEP_DESCRIPTION | $00400254
TAG_PERFORMED_PROCEDURE_TYPE_DESCRIPTION | $00400255
TAG_PERFORMED_ACTION_ITEM_SEQUENCE | $00400260
TAG_SCHEDULED_STEP_ATTRIBUTES_SEQUENCE | $00400270
TAG_REQUEST_ATTRIBUTES_SEQUENCE | $00400275
TAG_COMMENTS_ON_THE_PERFORMED_PROCEDURE_STEPS | $00400280
TAG_QUANTITY_SEQUENCE | $00400293
TAG_QUANTITY | $00400294
TAG_MEASURING_UNITS_SEQUENCE | $00400295
TAG_BILLING_ITEM_SEQUENCE | $00400296
TAG_TOTAL_TIME_OF_FLUOROSCOPY | $00400300
TAG_TOTAL_NUMBER_OF_EXPOSURES | $00400301
TAG_ENTRANCE_DOSE | $00400302
TAG_EXPOSED_AREA | $00400303
TAG_DISTANCE_SOURCE_TO_ENTRANCE | $00400306
TAG_COMMENTS_ON_RADIATION_DOSE | $00400310
TAG_BILLING_PROCEDURE_STEP_SEQUENCE | $00400320
TAG_FILM_CONSUMPTION_SEQUENCE | $00400321
TAG_BILLING_SUPPLIES_AND_DEVICES_SEQUENCE | $00400324
TAG_REFERENCED_PROCEDURE_STEP_SEQUENCE | $00400330
TAG_PERFORMED_SERIES_SEQUENCE | $00400340
TAG_COMMENTS_ON_THE_SCHEDULED_PROCEDURE_STEP | $00400400
TAG_REQUESTED_PROCEDURE_ID | $00401001
TAG_REASON_FOR_THE_REQUESTED_PROCEDURE | $00401002
TAG_REQUESTED_PROCEDURE_PRIORITY | $00401003
TAG_PATIENT_TRANSPORT_ARRANGEMENTS | $00401004
TAG_REQUESTED_PROCEDURE_LOCATION | $00401005
TAG_PLACER_ORDER_NUMBER_PROCEDURE_RETIRED | $00401006
TAG_FILLER_ORDER_NUMBER_PROCEDURE_RETIRED | $00401007
TAG_CONFIDENTIALITY_CODE | $00401008
TAG_REPORTING_PRIORITY | $00401009
TAG_NAMES_OF_INTENDED_RECIPIENTS_OF_RESULTS | $00401010
TAG_REQUESTED_PROCEDURE_COMMENTS | $00401400
TAG_REASON_FOR_THE_IMAGING_SERVICE_REQUEST | $00402001
TAG_ISSUE_DATE_OF_IMAGING_SERVICE_REQUEST | $00402004
TAG_ISSUE_TIME_OF_IMAGING_SERVICE_REQUEST | $00402005
TAG_PLACER_ORDER_NUMBER_IMAGING_SERVICE_REQUEST_RETIRED | $00402006
TAG_FILLER_ORDER_NUMBER_IMAGING_SERVICE_REQUEST_RETIRED | $00402007
TAG_ORDER_ENTERED_BY | $00402008
TAG_ORDER_ENTERER_LOCATION | $00402009
TAG_ORDER_CALLBACK_PHONE_NUMBER | $00402010
TAG_PLACER_ORDER_NUMBER_IMAGING_SERVICE_REQUEST | $00402016
TAG_FILLER_ORDER_NUMBER_IMAGING_SERVICE_REQUEST | $00402017
TAG_IMAGING_SERVICE_REQUEST_COMMENTS | $00402400
TAG_CONFIDENTIALITY_CONSTRAINT_ON_PATIENT_DATA_DESCRIPTION | $00403001
TAG_CALIBRATION_IMAGE | $00500004
TAG_DEVICE_SEQUENCE | $00500010
TAG_DEVICE_LENGTH | $00500014
TAG_DEVICE_DIAMETER | $00500016
TAG_DEVICE_DIAMETER_UNITS | $00500017
TAG_DEVICE_VOLUME | $00500018
TAG_INTER_MARKER_DISTANCE | $00500019
TAG_DEVICE_DESCRIPTION | $00500020
TAG_ENERGY_WINDOW_VECTOR | $00540010
TAG_NUMBER_OF_ENERGY_WINDOWS | $00540011
TAG_ENERGY_WINDOW_INFORMATION_SEQUENCE | $00540012
TAG_ENERGY_WINDOW_RANGE_SEQUENCE | $00540013
TAG_ENERGY_WINDOW_LOWER_LIMIT | $00540014
TAG_ENERGY_WINDOW_UPPER_LIMIT | $00540015
TAG_RADIOPHARMACEUTICAL_INFORMATION_SEQUENCE | $00540016
TAG_RESIDUAL_SYRINGE_COUNTS | $00540017
TAG_ENERGY_WINDOW_NAME | $00540018
TAG_DETECTOR_VECTOR | $00540020
TAG_NUMBER_OF_DETECTORS | $00540021
TAG_DETECTOR_INFORMATION_SEQUENCE | $00540022
TAG_PHASE_VECTOR | $00540030
TAG_NUMBER_OF_PHASES | $00540031
TAG_PHASE_INFORMATION_SEQUENCE | $00540032
TAG_NUMBER_OF_FRAMES_IN_PHASE | $00540033
TAG_PHASE_DELAY | $00540036
TAG_PAUSE_BETWEEN_FRAMES | $00540038
TAG_ROTATION_VECTOR | $00540050
TAG_NUMBER_OF_ROTATIONS | $00540051
TAG_ROTATION_INFORMATION_SEQUENCE | $00540052
TAG_NUMBER_OF_FRAMES_IN_ROTATION | $00540053
TAG_R_R_INTERVAL_VECTOR | $00540060
TAG_NUMBER_OF_R_R_INTERVALS | $00540061
TAG_GATED_INFORMATION_SEQUENCE | $00540062
TAG_DATA_INFORMATION_SEQUENCE | $00540063
TAG_TIME_SLOT_VECTOR | $00540070
TAG_NUMBER_OF_TIME_SLOTS | $00540071
TAG_TIME_SLOT_INFORMATION_SEQUENCE | $00540072
TAG_TIME_SLOT_TIME | $00540073
TAG_SLICE_VECTOR | $00540080
TAG_NUMBER_OF_SLICES | $00540081
TAG_ANGULAR_VIEW_VECTOR | $00540090
TAG_TIME_SLICE_VECTOR | $00540100
TAG_NUMBER_OF_TIME_SLICES | $00540101
TAG_START_ANGLE | $00540200
TAG_TYPE_OF_DETECTOR_MOTION | $00540202
TAG_TRIGGER_VECTOR | $00540210
TAG_NUMBER_OF_TRIGGERS_IN_PHASE | $00540211
TAG_VIEW_CODE_SEQUENCE | $00540220
TAG_VIEW_MODIFIER_CODE_SEQUENCE | $00540222
TAG_RADIONUCLIDE_CODE_SEQUENCE | $00540300
TAG_ADMINISTRATION_ROUTE_CODE_SEQUENCE | $00540302
TAG_RADIOPHARMACEUTICAL_CODE_SEQUENCE | $00540304
TAG_CALIBRATION_DATA_SEQUENCE | $00540306
TAG_ENERGY_WINDOW_NUMBER | $00540308
TAG_IMAGE_ID | $00540400
TAG_PATIENT_ORIENTATION_CODE_SEQUENCE | $00540410
TAG_PATIENT_ORIENTATION_MODIFIER_CODE_SEQUENCE | $00540412
TAG_PATIENT_GANTRY_RELATIONSHIP_CODE_SEQUENCE | $00540414
TAG_SERIES_TYPE | $00541000
TAG_UNITS | $00541001
TAG_COUNTS_SOURCE | $00541002
TAG_REPROJECTION_METHOD | $00541004
TAG_RANDOMS_CORRECTION_METHOD | $00541100
TAG_ATTENUATION_CORRECTION_METHOD | $00541101
TAG_DECAY_CORRECTION | $00541102
TAG_RECONSTRUCTION_METHOD | $00541103
TAG_DETECTOR_LINES_OF_RESPONSE_USED | $00541104
TAG_SCATTER_CORRECTION_METHOD | $00541105
TAG_AXIAL_ACCEPTANCE | $00541200
TAG_AXIAL_MASH | $00541201
TAG_TRANSVERSE_MASH | $00541202
TAG_DETECTOR_ELEMENT_SIZE | $00541203
TAG_COINCIDENCE_WINDOW_WIDTH | $00541210
TAG_SECONDARY_COUNTS_TYPE | $00541220
TAG_FRAME_REFERENCE_TIME | $00541300
TAG_PRIMARY_PROMPTS_COUNTS_ACCUMULATED | $00541310
TAG_SECONDARY_COUNTS_ACCUMULATED | $00541311
TAG_SLICE_SENSITIVITY_FACTOR | $00541320
TAG_DECAY_FACTOR | $00541321
TAG_DOSE_CALIBRATION_FACTOR | $00541322
TAG_SCATTER_FRACTION_FACTOR | $00541323
TAG_DEAD_TIME_FACTOR | $00541324
TAG_IMAGE_INDEX | $00541330
TAG_COUNTS_INCLUDED | $00541400
TAG_DEAD_TIME_CORRECTION_FLAG | $00541401
TAG_HISTOGRAM_SEQUENCE | $00603000
TAG_HISTOGRAM_NUMBER_OF_BINS | $00603002
TAG_HISTOGRAM_FIRST_BIN_VALUE | $00603004
TAG_HISTOGRAM_LAST_BIN_VALUE | $00603006
TAG_HISTOGRAM_BIN_WIDTH | $00603008
TAG_HISTOGRAM_EXPLANATION | $00603010
TAG_HISTOGRAM_DATA | $00603020
TAG_STORAGE_MEDIA_FILE_SET_ID | $00880130
TAG_STORAGE_MEDIA_FILE_SET_UID | $00880140
TAG_ICON_IMAGE_SEQUENCE | $00880200
TAG_TOPIC_TITLE | $00880904
TAG_TOPIC_SUBJECT | $00880906
TAG_TOPIC_AUTHOR | $00880910
TAG_TOPIC_KEY_WORDS | $00880912
TAG_NUMBER_OF_COPIES | $20000010
TAG_PRINTER_CONFIGURATION_SEQUENCE | $2000001E
TAG_PRINT_PRIORITY | $20000020
TAG_MEDIUM_TYPE | $20000030
TAG_FILM_DESTINATION | $20000040
TAG_FILM_SESSION_LABEL | $20000050
TAG_MEMORY_ALLOCATION | $20000060
TAG_MAXIMUM_MEMORY_ALLOCATION | $20000061
TAG_COLOR_IMAGE_PRINTING_FLAG | $20000062
TAG_COLLATION_FLAG | $20000063
TAG_ANNOTATION_FLAG | $20000065
TAG_IMAGE_OVERLAY_FLAG | $20000067
TAG_PRESENTATION_LUT_FLAG | $20000069
TAG_IMAGE_BOX_PRESENTATION_LUT_FLAG | $2000006A
TAG_MEMORY_BIT_DEPTH | $200000A0
TAG_PRINTING_BIT_DEPTH | $200000A1
TAG_MEDIA_INSTALLED_SEQUENCE | $200000A2
TAG_OTHER_MEDIA_AVAILABLE_SEQUENCE | $200000A4
TAG_SUPPORTED_IMAGE_DISPLAY_FORMATS_SEQUENCE | $200000A8
TAG_REFERENCED_FILM_BOX_SEQUENCE | $20000500
TAG_REFERENCED_STORED_PRINT_SEQUENCE | $20000510
TAG_IMAGE_DISPLAY_FORMAT | $20100010
TAG_ANNOTATION_DISPLAY_FORMAT_ID | $20100030
TAG_FILM_ORIENTATION | $20100040
TAG_FILM_SIZE_ID | $20100050
TAG_PRINTER_RESOLUTION_ID | $20100052
TAG_DEFAULT_PRINTER_RESOLUTION_ID | $20100054
TAG_MAGNIFICATION_TYPE | $20100060
TAG_SMOOTHING_TYPE | $20100080
TAG_DEFAULT_MAGNIFICATION_TYPE | $201000A6
TAG_OTHER_MAGNIFICATION_TYPES_AVAILABLE | $201000A7
TAG_DEFAULT_SMOOTHING_TYPE | $201000A8
TAG_OTHER_SMOOTHING_TYPES_AVAILABLE | $201000A9
TAG_BORDER_DENSITY | $20100100
TAG_EMPTY_IMAGE_DENSITY | $20100110
TAG_MIN_DENSITY | $20100120
TAG_MAX_DENSITY | $20100130
TAG_TRIM | $20100140
TAG_CONFIGURATION_INFORMATION | $20100150
TAG_CONFIGURATION_INFORMATION_DESCRIPTION | $20100152
TAG_MAXIMUM_COLLATED_FILMS | $20100154
TAG_ILLUMINATION | $2010015E
TAG_REFLECTED_AMBIENT_LIGHT | $20100160
TAG_PRINTER_PIXEL_SPACING | $20100376
TAG_REFERENCED_FILM_SESSION_SEQUENCE | $20100500
TAG_REFERENCED_IMAGE_BOX_SEQUENCE | $20100510
TAG_REFERENCED_BASIC_ANNOTATION_BOX_SEQUENCE | $20100520
TAG_IMAGE_POSITION | $20200010
TAG_POLARITY | $20200020
TAG_REQUESTED_IMAGE_SIZE | $20200030
TAG_REQUESTED_DECIMATE_CROP_BEHAVIOR | $20200040
TAG_REQUESTED_RESOLUTION_ID | $20200050
TAG_REQUESTED_IMAGE_SIZE_FLAG | $202000A0
TAG_DECIMATE_CROP_RESULT | $202000A2
TAG_BASIC_GRAYSCALE_IMAGE_SEQUENCE | $20200110
TAG_BASIC_COLOR_IMAGE_SEQUENCE | $20200111
TAG_REFERENCED_IMAGE_OVERLAY_BOX_SEQUENCE_RETIRED | $20200130
TAG_REFERENCED_VOI_LUT_BOX_SEQUENCE_RETIRED | $20200140
TAG_ANNOTATION_POSITION | $20300010
TAG_TEXT_STRING | $20300020
TAG_REFERENCED_OVERLAY_PLANE_SEQUENCE | $20400010
TAG_REFERENCED_OVERLAY_PLANE_GROUPS | $20400011
TAG_OVERLAY_PIXEL_DATA_SEQUENCE | $20400020
TAG_OVERLAY_MAGNIFICATION_TYPE | $20400060
TAG_OVERLAY_SMOOTHING_TYPE | $20400070
TAG_OVERLAY_OR_IMAGE_MAGNIFICATION | $20400072
TAG_MAGNIFY_TO_NUMBER_OF_COLUMNS | $20400074
TAG_OVERLAY_FOREGROUND_DENSITY | $20400080
TAG_OVERLAY_BACKGROUND_DENSITY | $20400082
TAG_OVERLAY_MODE_RETIRED | $20400090
TAG_THRESHOLD_DENSITY_RETIRED | $20400100
TAG_REFERENCED_IMAGE_BOX_SEQUENCE_RETIRED | $20400500
TAG_PRESENTATION_LUT_SEQUENCE | $20500010
TAG_PRESENTATION_LUT_SHAPE | $20500020
TAG_REFERENCED_PRESENTATION_LUT_SEQUENCE | $20500500
TAG_PRINT_JOB_ID | $21000010
TAG_EXECUTION_STATUS | $21000020
TAG_EXECUTION_STATUS_INFO | $21000030
TAG_CREATION_DATE | $21000040
TAG_CREATION_TIME | $21000050
TAG_ORIGINATOR | $21000070
TAG_DESTINATION_AE | $21000140
TAG_OWNER_ID | $21000160
TAG_NUMBER_OF_FILMS | $21000170
TAG_REFERENCED_PRINT_JOB_SEQUENCE_2100 | $21000500
TAG_PRINTER_STATUS | $21100010
TAG_PRINTER_STATUS_INFO | $21100020
TAG_PRINTER_NAME | $21100030
TAG_PRINT_QUEUE_ID | $21100099
TAG_QUEUE_STATUS | $21200010
TAG_PRINT_JOB_DESCRIPTION_SEQUENCE | $21200050
TAG_REFERENCED_PRINT_JOB_SEQUENCE_2120 | $21200070
TAG_PRINT_MANAGEMENT_CAPABILITIES_SEQUENCE | $21300010
TAG_PRINTER_CHARACTERISTICS_SEQUENCE | $21300015
TAG_FILM_BOX_CONTENT_SEQUENCE | $21300030
TAG_IMAGE_BOX_CONTENT_SEQUENCE | $21300040
TAG_ANNOTATION_CONTENT_SEQUENCE | $21300050
TAG_IMAGE_OVERLAY_BOX_CONTENT_SEQUENCE | $21300060
TAG_PRESENTATION_LUT_CONTENT_SEQUENCE | $21300080
TAG_PROPOSED_STUDY_SEQUENCE | $213000A0
TAG_ORIGINAL_IMAGE_SEQUENCE | $213000C0
TAG_RT_IMAGE_LABEL | $30020002
TAG_RT_IMAGE_NAME | $30020003
TAG_RT_IMAGE_DESCRIPTION | $30020004
TAG_REPORTED_VALUES_ORIGIN | $3002000A
TAG_RT_IMAGE_PLANE | $3002000C
TAG_X_RAY_IMAGE_RECEPTOR_ANGLE | $3002000E
TAG_RT_IMAGE_ORIENTATION | $30020010
TAG_IMAGE_PLANE_PIXEL_SPACING | $30020011
TAG_RT_IMAGE_POSITION | $30020012
TAG_RADIATION_MACHINE_NAME | $30020020
TAG_RADIATION_MACHINE_SAD | $30020022
TAG_RADIATION_MACHINE_SSD | $30020024
TAG_RT_IMAGE_SID | $30020026
TAG_SOURCE_TO_REFERENCE_OBJECT_DISTANCE | $30020028
TAG_FRACTION_NUMBER | $30020029
TAG_EXPOSURE_SEQUENCE | $30020030
TAG_METERSET_EXPOSURE | $30020032
TAG_DVH_TYPE | $30040001
TAG_DOSE_UNITS | $30040002
TAG_DOSE_TYPE | $30040004
TAG_DOSE_COMMENT | $30040006
TAG_NORMALIZATION_POINT | $30040008
TAG_DOSE_SUMMATION_TYPE | $3004000A
TAG_GRID_FRAME_OFFSET_VECTOR | $3004000C
TAG_DOSE_GRID_SCALING | $3004000E
TAG_RT_DOSE_ROI_SEQUENCE | $30040010
TAG_DOSE_VALUE | $30040012
TAG_DVH_NORMALIZATION_POINT | $30040040
TAG_DVH_NORMALIZATION_DOSE_VALUE | $30040042
TAG_DVH_SEQUENCE | $30040050
TAG_DVH_DOSE_SCALING | $30040052
TAG_DVH_VOLUME_UNITS | $30040054
TAG_DVH_NUMBER_OF_BINS | $30040056
TAG_DVH_DATA | $30040058
TAG_DVH_REFERENCED_ROI_SEQUENCE | $30040060
TAG_DVH_ROI_CONTRIBUTION_TYPE | $30040062
TAG_DVH_MINIMUM_DOSE | $30040070
TAG_DVH_MAXIMUM_DOSE | $30040072
TAG_DVH_MEAN_DOSE | $30040074
TAG_STRUCTURE_SET_LABEL | $30060002
TAG_STRUCTURE_SET_NAME | $30060004
TAG_STRUCTURE_SET_DESCRIPTION | $30060006
TAG_STRUCTURE_SET_DATE | $30060008
TAG_STRUCTURE_SET_TIME | $30060009
TAG_REFERENCED_FRAME_OF_REFERENCE_SEQUENCE | $30060010
TAG_RT_REFERENCED_STUDY_SEQUENCE | $30060012
TAG_RT_REFERENCED_SERIES_SEQUENCE | $30060014
TAG_CONTOUR_IMAGE_SEQUENCE | $30060016
TAG_STRUCTURE_SET_ROI_SEQUENCE | $30060020
TAG_ROI_NUMBER | $30060022
TAG_REFERENCED_FRAME_OF_REFERENCE_UID | $30060024
TAG_ROI_NAME | $30060026
TAG_ROI_DESCRIPTION | $30060028
TAG_ROI_DISPLAY_COLOR | $3006002A
TAG_ROI_VOLUME | $3006002C
TAG_RT_RELATED_ROI_SEQUENCE | $30060030
TAG_RT_ROI_RELATIONSHIP | $30060033
TAG_ROI_GENERATION_ALGORITHM | $30060036
TAG_ROI_GENERATION_DESCRIPTION | $30060038
TAG_ROI_CONTOUR_SEQUENCE | $30060039
TAG_CONTOUR_SEQUENCE | $30060040
TAG_CONTOUR_GEOMETRIC_TYPE | $30060042
TAG_CONTOUR_SLAB_THICKNESS | $30060044
TAG_CONTOUR_OFFSET_VECTOR | $30060045
TAG_NUMBER_OF_CONTOUR_POINTS | $30060046
TAG_CONTOUR_DATA | $30060050
TAG_RT_ROI_OBSERVATIONS_SEQUENCE | $30060080
TAG_OBSERVATION_NUMBER | $30060082
TAG_REFERENCED_ROI_NUMBER | $30060084
TAG_ROI_OBSERVATION_LABEL | $30060085
TAG_RT_ROI_IDENTIFICATION_CODE_SEQUENCE | $30060086
TAG_ROI_OBSERVATION_DESCRIPTION | $30060088
TAG_RELATED_RT_ROI_OBSERVATIONS_SEQUENCE | $300600A0
TAG_RT_ROI_INTERPRETED_TYPE | $300600A4
TAG_ROI_INTERPRETER | $300600A6
TAG_ROI_PHYSICAL_PROPERTIES_SEQUENCE | $300600B0
TAG_ROI_PHYSICAL_PROPERTY | $300600B2
TAG_ROI_PHYSICAL_PROPERTY_VALUE | $300600B4
TAG_FRAME_OF_REFERENCE_RELATIONSHIP_SEQUENCE | $300600C0
TAG_RELATED_FRAME_OF_REFERENCE_UID | $300600C2
TAG_FRAME_OF_REFERENCE_TRANSFORMATION_TYPE | $300600C4
TAG_FRAME_OF_REFERENCE_TRANSFORMATION_MATRIX | $300600C6
TAG_FRAME_OF_REFERENCE_TRANSFORMATION_COMMENT | $300600C8
TAG_MEASURED_DOSE_REFERENCE_SEQUENCE | $30080010
TAG_MEASURED_DOSE_DESCRIPTION | $30080012
TAG_MEASURED_DOSE_TYPE | $30080014
TAG_MEASURED_DOSE_VALUE | $30080016
TAG_TREATMENT_SESSION_BEAM_SEQUENCE | $30080020
TAG_CURRENT_FRACTION_NUMBER | $30080022
TAG_TREATMENT_CONTROL_POINT_DATE | $30080024
TAG_TREATMENT_CONTROL_POINT_TIME | $30080025
TAG_TREATMENT_TERMINATION_STATUS | $3008002A
TAG_TREATMENT_TERMINATION_CODE | $3008002B
TAG_TREATMENT_VERIFICATION_STATUS | $3008002C
TAG_REFERENCED_TREATMENT_RECORD_SEQUENCE | $30080030
TAG_SPECIFIED_PRIMARY_METERSET | $30080032
TAG_SPECIFIED_SECONDARY_METERSET | $30080033
TAG_DELIVERED_PRIMARY_METERSET | $30080036
TAG_DELIVERED_SECONDARY_METERSET | $30080037
TAG_SPECIFIED_TREATMENT_TIME | $3008003A
TAG_DELIVERED_TREATMENT_TIME | $3008003B
TAG_CONTROL_POINT_DELIVERY_SEQUENCE | $30080040
TAG_SPECIFIED_METERSET | $30080042
TAG_DELIVERED_METERSET | $30080044
TAG_DOSE_RATE_DELIVERED | $30080048
TAG_TREATMENT_SUMMARY_CALCULATED_DOSE_REFERENCE_SEQUENCE | $30080050
TAG_CUMULATIVE_DOSE_TO_DOSE_REFERENCE | $30080052
TAG_FIRST_TREATMENT_DATE | $30080054
TAG_MOST_RECENT_TREATMENT_DATE | $30080056
TAG_NUMBER_OF_FRACTIONS_DELIVERED | $3008005A
TAG_OVERRIDE_SEQUENCE | $30080060
TAG_OVERRIDE_PARAMETER_POINTER | $30080062
TAG_MEASURED_DOSE_REFERENCE_NUMBER | $30080064
TAG_OVERRIDE_REASON | $30080066
TAG_CALCULATED_DOSE_REFERENCE_SEQUENCE | $30080070
TAG_CALCULATED_DOSE_REFERENCE_NUMBER | $30080072
TAG_CALCULATED_DOSE_REFERENCE_DESCRIPTION | $30080074
TAG_CALCULATED_DOSE_REFERENCE_DOSE_VALUE | $30080076
TAG_START_METERSET | $30080078
TAG_END_METERSET | $3008007A
TAG_REFERENCED_MEASURED_DOSE_REFERENCE_SEQUENCE | $30080080
TAG_REFERENCED_MEASURED_DOSE_REFERENCE_NUMBER | $30080082
TAG_REFERENCED_CALCULATED_DOSE_REFERENCE_SEQUENCE | $30080090
TAG_REFERENCED_CALCULATED_DOSE_REFERENCE_NUMBER | $30080092
TAG_BEAM_LIMITING_DEVICE_LEAF_PAIRS_SEQUENCE | $300800A0
TAG_RECORDED_WEDGE_SEQUENCE | $300800B0
TAG_RECORDED_COMPENSATOR_SEQUENCE | $300800C0
TAG_RECORDED_BLOCK_SEQUENCE | $300800D0
TAG_TREATMENT_SUMMARY_MEASURED_DOSE_REFERENCE_SEQUENCE | $300800E0
TAG_RECORDED_SOURCE_SEQUENCE | $30080100
TAG_SOURCE_SERIAL_NUMBER | $30080105
TAG_TREATMENT_SESSION_APPLICATION_SETUP_SEQUENCE | $30080110
TAG_APPLICATION_SETUP_CHECK | $30080116
TAG_RECORDED_BRACHY_ACCESSORY_DEVICE_SEQUENCE | $30080120
TAG_REFERENCED_BRACHY_ACCESSORY_DEVICE_NUMBER | $30080122
TAG_RECORDED_CHANNEL_SEQUENCE | $30080130
TAG_SPECIFIED_CHANNEL_TOTAL_TIME | $30080132
TAG_DELIVERED_CHANNEL_TOTAL_TIME | $30080134
TAG_SPECIFIED_NUMBER_OF_PULSES | $30080136
TAG_DELIVERED_NUMBER_OF_PULSES | $30080138
TAG_SPECIFIED_PULSE_REPETITION_INTERVAL | $3008013A
TAG_DELIVERED_PULSE_REPETITION_INTERVAL | $3008013C
TAG_RECORDED_SOURCE_APPLICATOR_SEQUENCE | $30080140
TAG_REFERENCED_SOURCE_APPLICATOR_NUMBER | $30080142
TAG_RECORDED_CHANNEL_SHIELD_SEQUENCE | $30080150
TAG_REFERENCED_CHANNEL_SHIELD_NUMBER | $30080152
TAG_BRACHY_CONTROL_POINT_DELIVERED_SEQUENCE | $30080160
TAG_SAFE_POSITION_EXIT_DATE | $30080162
TAG_SAFE_POSITION_EXIT_TIME | $30080164
TAG_SAFE_POSITION_RETURN_DATE | $30080166
TAG_SAFE_POSITION_RETURN_TIME | $30080168
TAG_CURRENT_TREATMENT_STATUS | $30080200
TAG_TREATMENT_STATUS_COMMENT | $30080202
TAG_FRACTION_GROUP_SUMMARY_SEQUENCE | $30080220
TAG_REFERENCED_FRACTION_NUMBER | $30080223
TAG_FRACTION_GROUP_TYPE | $30080224
TAG_BEAM_STOPPER_POSITION | $30080230
TAG_FRACTION_STATUS_SUMMARY_SEQUENCE | $30080240
TAG_TREATMENT_DATE | $30080250
TAG_TREATMENT_TIME | $30080251
TAG_RT_PLAN_LABEL | $300A0002
TAG_RT_PLAN_NAME | $300A0003
TAG_RT_PLAN_DESCRIPTION | $300A0004
TAG_RT_PLAN_DATE | $300A0006
TAG_RT_PLAN_TIME | $300A0007
TAG_TREATMENT_PROTOCOLS | $300A0009
TAG_TREATMENT_INTENT | $300A000A
TAG_TREATMENT_SITES | $300A000B
TAG_RT_PLAN_GEOMETRY | $300A000C
TAG_PRESCRIPTION_DESCRIPTION | $300A000E
TAG_DOSE_REFERENCE_SEQUENCE | $300A0010
TAG_DOSE_REFERENCE_NUMBER | $300A0012
TAG_DOSE_REFERENCE_STRUCTURE_TYPE | $300A0014
TAG_NOMINAL_BEAM_ENERGY_UNIT | $300A0015
TAG_DOSE_REFERENCE_DESCRIPTION | $300A0016
TAG_DOSE_REFERENCE_POINT_COORDINATES | $300A0018
TAG_NOMINAL_PRIOR_DOSE | $300A001A
TAG_DOSE_REFERENCE_TYPE | $300A0020
TAG_CONSTRAINT_WEIGHT | $300A0021
TAG_DELIVERY_WARNING_DOSE | $300A0022
TAG_DELIVERY_MAXIMUM_DOSE | $300A0023
TAG_TARGET_MINIMUM_DOSE | $300A0025
TAG_TARGET_PRESCRIPTION_DOSE | $300A0026
TAG_TARGET_MAXIMUM_DOSE | $300A0027
TAG_TARGET_UNDERDOSE_VOLUME_FRACTION | $300A0028
TAG_ORGAN_AT_RISK_FULL_VOLUME_DOSE | $300A002A
TAG_ORGAN_AT_RISK_LIMIT_DOSE | $300A002B
TAG_ORGAN_AT_RISK_MAXIMUM_DOSE | $300A002C
TAG_ORGAN_AT_RISK_OVERDOSE_VOLUME_FRACTION | $300A002D
TAG_TOLERANCE_TABLE_SEQUENCE | $300A0040
TAG_TOLERANCE_TABLE_NUMBER | $300A0042
TAG_TOLERANCE_TABLE_LABEL | $300A0043
TAG_GANTRY_ANGLE_TOLERANCE | $300A0044
TAG_BEAM_LIMITING_DEVICE_ANGLE_TOLERANCE | $300A0046
TAG_BEAM_LIMITING_DEVICE_TOLERANCE_SEQUENCE | $300A0048
TAG_BEAM_LIMITING_DEVICE_POSITION_TOLERANCE | $300A004A
TAG_PATIENT_SUPPORT_ANGLE_TOLERANCE | $300A004C
TAG_TABLE_TOP_ECCENTRIC_ANGLE_TOLERANCE | $300A004E
TAG_TABLE_TOP_VERTICAL_POSITION_TOLERANCE | $300A0051
TAG_TABLE_TOP_LONGITUDINAL_POSITION_TOLERANCE | $300A0052
TAG_TABLE_TOP_LATERAL_POSITION_TOLERANCE | $300A0053
TAG_RT_PLAN_RELATIONSHIP | $300A0055
TAG_FRACTION_GROUP_SEQUENCE | $300A0070
TAG_FRACTION_GROUP_NUMBER | $300A0071
TAG_NUMBER_OF_FRACTIONS_PLANNED | $300A0078
TAG_NUMBER_OF_FRACTIONS_PER_DAY | $300A0079
TAG_REPEAT_FRACTION_CYCLE_LENGTH | $300A007A
TAG_FRACTION_PATTERN | $300A007B
TAG_NUMBER_OF_BEAMS | $300A0080
TAG_BEAM_DOSE_SPECIFICATION_POINT | $300A0082
TAG_BEAM_DOSE | $300A0084
TAG_BEAM_METERSET | $300A0086
TAG_NUMBER_OF_BRACHY_APPLICATION_SETUPS | $300A00A0
TAG_BRACHY_APPLICATION_SETUP_DOSE_SPECIFICATION_POINT | $300A00A2
TAG_BRACHY_APPLICATION_SETUP_DOSE | $300A00A4
TAG_BEAM_SEQUENCE | $300A00B0
TAG_TREATMENT_MACHINE_NAME | $300A00B2
TAG_PRIMARY_DOSIMETER_UNIT | $300A00B3
TAG_SOURCE_AXIS_DISTANCE | $300A00B4
TAG_BEAM_LIMITING_DEVICE_SEQUENCE | $300A00B6
TAG_RT_BEAM_LIMITING_DEVICE_TYPE | $300A00B8
TAG_SOURCE_TO_BEAM_LIMITING_DEVICE_DISTANCE | $300A00BA
TAG_NUMBER_OF_LEAF_JAW_PAIRS | $300A00BC
TAG_LEAF_POSITION_BOUNDARIES | $300A00BE
TAG_BEAM_NUMBER | $300A00C0
TAG_BEAM_NAME | $300A00C2
TAG_BEAM_DESCRIPTION | $300A00C3
TAG_BEAM_TYPE | $300A00C4
TAG_RADIATION_TYPE | $300A00C6
TAG_REFERENCE_IMAGE_NUMBER | $300A00C8
TAG_PLANNED_VERIFICATION_IMAGE_SEQUENCE | $300A00CA
TAG_IMAGING_DEVICE_SPECIFIC_ACQUISITION_PARAMETERS | $300A00CC
TAG_TREATMENT_DELIVERY_TYPE | $300A00CE
TAG_NUMBER_OF_WEDGES | $300A00D0
TAG_WEDGE_SEQUENCE | $300A00D1
TAG_WEDGE_NUMBER | $300A00D2
TAG_WEDGE_TYPE | $300A00D3
TAG_WEDGE_ID | $300A00D4
TAG_WEDGE_ANGLE | $300A00D5
TAG_WEDGE_FACTOR | $300A00D6
TAG_WEDGE_ORIENTATION | $300A00D8
TAG_SOURCE_TO_WEDGE_TRAY_DISTANCE | $300A00DA
TAG_NUMBER_OF_COMPENSATORS | $300A00E0
TAG_MATERIAL_ID | $300A00E1
TAG_TOTAL_COMPENSATOR_TRAY_FACTOR | $300A00E2
TAG_COMPENSATOR_SEQUENCE | $300A00E3
TAG_COMPENSATOR_NUMBER | $300A00E4
TAG_COMPENSATOR_ID | $300A00E5
TAG_SOURCE_TO_COMPENSATOR_TRAY_DISTANCE | $300A00E6
TAG_COMPENSATOR_ROWS | $300A00E7
TAG_COMPENSATOR_COLUMNS | $300A00E8
TAG_COMPENSATOR_PIXEL_SPACING | $300A00E9
TAG_COMPENSATOR_POSITION | $300A00EA
TAG_COMPENSATOR_TRANSMISSION_DATA | $300A00EB
TAG_COMPENSATOR_THICKNESS_DATA | $300A00EC
TAG_NUMBER_OF_BOLI | $300A00ED
TAG_COMPENSATOR_TYPE | $300A00EE
TAG_NUMBER_OF_BLOCKS | $300A00F0
TAG_TOTAL_BLOCK_TRAY_FACTOR | $300A00F2
TAG_BLOCK_SEQUENCE | $300A00F4
TAG_BLOCK_TRAY_ID | $300A00F5
TAG_SOURCE_TO_BLOCK_TRAY_DISTANCE | $300A00F6
TAG_BLOCK_TYPE | $300A00F8
TAG_BLOCK_DIVERGENCE | $300A00FA
TAG_BLOCK_NUMBER | $300A00FC
TAG_BLOCK_NAME | $300A00FE
TAG_BLOCK_THICKNESS | $300A0100
TAG_BLOCK_TRANSMISSION | $300A0102
TAG_BLOCK_NUMBER_OF_POINTS | $300A0104
TAG_BLOCK_DATA | $300A0106
TAG_APPLICATOR_SEQUENCE | $300A0107
TAG_APPLICATOR_ID | $300A0108
TAG_APPLICATOR_TYPE | $300A0109
TAG_APPLICATOR_DESCRIPTION | $300A010A
TAG_CUMULATIVE_DOSE_REFERENCE_COEFFICIENT | $300A010C
TAG_FINAL_CUMULATIVE_METERSET_WEIGHT | $300A010E
TAG_NUMBER_OF_CONTROL_POINTS | $300A0110
TAG_CONTROL_POINT_SEQUENCE | $300A0111
TAG_CONTROL_POINT_INDEX | $300A0112
TAG_NOMINAL_BEAM_ENERGY | $300A0114
TAG_DOSE_RATE_SET | $300A0115
TAG_WEDGE_POSITION_SEQUENCE | $300A0116
TAG_WEDGE_POSITION | $300A0118
TAG_BEAM_LIMITING_DEVICE_POSITION_SEQUENCE | $300A011A
TAG_LEAF_JAW_POSITIONS | $300A011C
TAG_GANTRY_ANGLE | $300A011E
TAG_GANTRY_ROTATION_DIRECTION | $300A011F
TAG_BEAM_LIMITING_DEVICE_ANGLE | $300A0120
TAG_BEAM_LIMITING_DEVICE_ROTATION_DIRECTION | $300A0121
TAG_PATIENT_SUPPORT_ANGLE | $300A0122
TAG_PATIENT_SUPPORT_ROTATION_DIRECTION | $300A0123
TAG_TABLE_TOP_ECCENTRIC_AXIS_DISTANCE | $300A0124
TAG_TABLE_TOP_ECCENTRIC_ANGLE | $300A0125
TAG_TABLE_TOP_ECCENTRIC_ROTATION_DIRECTION | $300A0126
TAG_TABLE_TOP_VERTICAL_POSITION | $300A0128
TAG_TABLE_TOP_LONGITUDINAL_POSITION | $300A0129
TAG_TABLE_TOP_LATERAL_POSITION | $300A012A
TAG_ISOCENTER_POSITION | $300A012C
TAG_SURFACE_ENTRY_POINT | $300A012E
TAG_SOURCE_TO_SURFACE_DISTANCE | $300A0130
TAG_CUMULATIVE_METERSET_WEIGHT | $300A0134
TAG_PATIENT_SETUP_SEQUENCE | $300A0180
TAG_PATIENT_SETUP_NUMBER | $300A0182
TAG_PATIENT_ADDITIONAL_POSITION | $300A0184
TAG_FIXATION_DEVICE_SEQUENCE | $300A0190
TAG_FIXATION_DEVICE_TYPE | $300A0192
TAG_FIXATION_DEVICE_LABEL | $300A0194
TAG_FIXATION_DEVICE_DESCRIPTION | $300A0196
TAG_FIXATION_DEVICE_POSITION | $300A0198
TAG_SHIELDING_DEVICE_SEQUENCE | $300A01A0
TAG_SHIELDING_DEVICE_TYPE | $300A01A2
TAG_SHIELDING_DEVICE_LABEL | $300A01A4
TAG_SHIELDING_DEVICE_DESCRIPTION | $300A01A6
TAG_SHIELDING_DEVICE_POSITION | $300A01A8
TAG_SETUP_TECHNIQUE | $300A01B0
TAG_SETUP_TECHNIQUE_DESCRIPTION | $300A01B2
TAG_SETUP_DEVICE_SEQUENCE | $300A01B4
TAG_SETUP_DEVICE_TYPE | $300A01B6
TAG_SETUP_DEVICE_LABEL | $300A01B8
TAG_SETUP_DEVICE_DESCRIPTION | $300A01BA
TAG_SETUP_DEVICE_PARAMETER | $300A01BC
TAG_SETUP_REFERENCE_DESCRIPTION | $300A01D0
TAG_TABLE_TOP_VERTICAL_SETUP_DISPLACEMENT | $300A01D2
TAG_TABLE_TOP_LONGITUDINAL_SETUP_DISPLACEMENT | $300A01D4
TAG_TABLE_TOP_LATERAL_SETUP_DISPLACEMENT | $300A01D6
TAG_BRACHY_TREATMENT_TECHNIQUE | $300A0200
TAG_BRACHY_TREATMENT_TYPE | $300A0202
TAG_TREATMENT_MACHINE_SEQUENCE | $300A0206
TAG_SOURCE_SEQUENCE | $300A0210
TAG_SOURCE_NUMBER | $300A0212
TAG_SOURCE_TYPE | $300A0214
TAG_SOURCE_MANUFACTURER | $300A0216
TAG_ACTIVE_SOURCE_DIAMETER | $300A0218
TAG_ACTIVE_SOURCE_LENGTH | $300A021A
TAG_SOURCE_ENCAPSULATION_NOMINAL_THICKNESS | $300A0222
TAG_SOURCE_ENCAPSULATION_NOMINAL_TRANSMISSION | $300A0224
TAG_SOURCE_ISOTOPE_NAME | $300A0226
TAG_SOURCE_ISOTOPE_HALF_LIFE | $300A0228
TAG_REFERENCE_AIR_KERMA_RATE | $300A022A
TAG_AIR_KERMA_RATE_REFERENCE_DATE | $300A022C
TAG_AIR_KERMA_RATE_REFERENCE_TIME | $300A022E
TAG_APPLICATION_SETUP_SEQUENCE | $300A0230
TAG_APPLICATION_SETUP_TYPE | $300A0232
TAG_APPLICATION_SETUP_NUMBER | $300A0234
TAG_APPLICATION_SETUP_NAME | $300A0236
TAG_APPLICATION_SETUP_MANUFACTURER | $300A0238
TAG_TEMPLATE_NUMBER | $300A0240
TAG_TEMPLATE_TYPE | $300A0242
TAG_TEMPLATE_NAME | $300A0244
TAG_TOTAL_REFERENCE_AIR_KERMA | $300A0250
TAG_BRACHY_ACCESSORY_DEVICE_SEQUENCE | $300A0260
TAG_BRACHY_ACCESSORY_DEVICE_NUMBER | $300A0262
TAG_BRACHY_ACCESSORY_DEVICE_ID | $300A0263
TAG_BRACHY_ACCESSORY_DEVICE_TYPE | $300A0264
TAG_BRACHY_ACCESSORY_DEVICE_NAME | $300A0266
TAG_BRACHY_ACCESSORY_DEVICE_NOMINAL_THICKNESS | $300A026A
TAG_BRACHY_ACCESSORY_DEVICE_NOMINAL_TRANSMISSION | $300A026C
TAG_CHANNEL_SEQUENCE | $300A0280
TAG_CHANNEL_NUMBER | $300A0282
TAG_CHANNEL_LENGTH | $300A0284
TAG_CHANNEL_TOTAL_TIME | $300A0286
TAG_SOURCE_MOVEMENT_TYPE | $300A0288
TAG_NUMBER_OF_PULSES | $300A028A
TAG_PULSE_REPETITION_INTERVAL | $300A028C
TAG_SOURCE_APPLICATOR_NUMBER | $300A0290
TAG_SOURCE_APPLICATOR_ID | $300A0291
TAG_SOURCE_APPLICATOR_TYPE | $300A0292
TAG_SOURCE_APPLICATOR_NAME | $300A0294
TAG_SOURCE_APPLICATOR_LENGTH | $300A0296
TAG_SOURCE_APPLICATOR_MANUFACTURER | $300A0298
TAG_SOURCE_APPLICATOR_WALL_NOMINAL_THICKNESS | $300A029C
TAG_SOURCE_APPLICATOR_WALL_NOMINAL_TRANSMISSION | $300A029E
TAG_SOURCE_APPLICATOR_STEP_SIZE | $300A02A0
TAG_TRANSFER_TUBE_NUMBER | $300A02A2
TAG_TRANSFER_TUBE_LENGTH | $300A02A4
TAG_CHANNEL_SHIELD_SEQUENCE | $300A02B0
TAG_CHANNEL_SHIELD_NUMBER | $300A02B2
TAG_CHANNEL_SHIELD_ID | $300A02B3
TAG_CHANNEL_SHIELD_NAME | $300A02B4
TAG_CHANNEL_SHIELD_NOMINAL_THICKNESS | $300A02B8
TAG_CHANNEL_SHIELD_NOMINAL_TRANSMISSION | $300A02BA
TAG_FINAL_CUMULATIVE_TIME_WEIGHT | $300A02C8
TAG_BRACHY_CONTROL_POINT_SEQUENCE | $300A02D0
TAG_CONTROL_POINT_RELATIVE_POSITION | $300A02D2
TAG_CONTROL_POINT_3D_POSITION | $300A02D4
TAG_CUMULATIVE_TIME_WEIGHT | $300A02D6
TAG_REFERENCED_RT_PLAN_SEQUENCE | $300C0002
TAG_REFERENCED_BEAM_SEQUENCE | $300C0004
TAG_REFERENCED_BEAM_NUMBER | $300C0006
TAG_REFERENCED_REFERENCE_IMAGE_NUMBER | $300C0007
TAG_START_CUMULATIVE_METERSET_WEIGHT | $300C0008
TAG_END_CUMULATIVE_METERSET_WEIGHT | $300C0009
TAG_REFERENCED_BRACHY_APPLICATION_SETUP_SEQUENCE | $300C000A
TAG_REFERENCED_BRACHY_APPLICATION_SETUP_NUMBER | $300C000C
TAG_REFERENCED_SOURCE_NUMBER | $300C000E
TAG_REFERENCED_FRACTION_GROUP_SEQUENCE | $300C0020
TAG_REFERENCED_FRACTION_GROUP_NUMBER | $300C0022
TAG_REFERENCED_VERIFICATION_IMAGE_SEQUENCE | $300C0040
TAG_REFERENCED_REFERENCE_IMAGE_SEQUENCE | $300C0042
TAG_REFERENCED_DOSE_REFERENCE_SEQUENCE | $300C0050
TAG_REFERENCED_DOSE_REFERENCE_NUMBER | $300C0051
TAG_BRACHY_REFERENCED_DOSE_REFERENCE_SEQUENCE | $300C0055
TAG_REFERENCED_STRUCTURE_SET_SEQUENCE | $300C0060
TAG_REFERENCED_PATIENT_SETUP_NUMBER | $300C006A
TAG_REFERENCED_DOSE_SEQUENCE | $300C0080
TAG_REFERENCED_TOLERANCE_TABLE_NUMBER | $300C00A0
TAG_REFERENCED_BOLUS_SEQUENCE | $300C00B0
TAG_REFERENCED_WEDGE_NUMBER | $300C00C0
TAG_REFERENCED_COMPENSATOR_NUMBER | $300C00D0
TAG_REFERENCED_BLOCK_NUMBER | $300C00E0
TAG_REFERENCED_CONTROL_POINT_INDEX | $300C00F0
TAG_APPROVAL_STATUS | $300E0002
TAG_REVIEW_DATE | $300E0004
TAG_REVIEW_TIME | $300E0005
TAG_REVIEWER_NAME | $300E0008
TAG_RESULTS_ID | $40080040
TAG_RESULTS_ID_ISSUER | $40080042
TAG_REFERENCED_INTERPRETATION_SEQUENCE | $40080050
TAG_INTERPRETATION_RECORDED_DATE | $40080100
TAG_INTERPRETATION_RECORDED_TIME | $40080101
TAG_INTERPRETATION_RECORDER | $40080102
TAG_REFERENCE_TO_RECORDED_SOUND | $40080103
TAG_INTERPRETATION_TRANSCRIPTION_DATE | $40080108
TAG_INTERPRETATION_TRANSCRIPTION_TIME | $40080109
TAG_INTERPRETATION_TRANSCRIBER | $4008010A
TAG_INTERPRETATION_TEXT | $4008010B
TAG_INTERPRETATION_AUTHOR | $4008010C
TAG_INTERPRETATION_APPROVER_SEQUENCE | $40080111
TAG_INTERPRETATION_APPROVAL_DATE | $40080112
TAG_INTERPRETATION_APPROVAL_TIME | $40080113
TAG_PHYSICIAN_APPROVING_INTERPRETATION | $40080114
TAG_INTERPRETATION_DIAGNOSIS_DESCRIPTION | $40080115
TAG_INTERPRETATION_DIAGNOSIS_CODE_SEQUENCE | $40080117
TAG_RESULTS_DISTRIBUTION_LIST_SEQUENCE | $40080118
TAG_DISTRIBUTION_NAME | $40080119
TAG_DISTRIBUTION_ADDRESS | $4008011A
TAG_INTERPRETATION_ID | $40080200
TAG_INTERPRETATION_ID_ISSUER | $40080202
TAG_INTERPRETATION_TYPE_ID | $40080210
TAG_INTERPRETATION_STATUS_ID | $40080212
TAG_IMPRESSIONS | $40080300
TAG_RESULTS_COMMENTS | $40084000
TAG_CURVE_DIMENSIONS | $50000005
TAG_NUMBER_OF_POINTS | $50000010
TAG_TYPE_OF_DATA | $50000020
TAG_CURVE_DESCRIPTION | $50000022
TAG_AXIS_UNITS | $50000030
TAG_AXIS_LABELS | $50000040
TAG_DATA_VALUE_REPRESENTATION | $50000103
TAG_MINIMUM_COORDINATE_VALUE | $50000104
TAG_MAXIMUM_COORDINATE_VALUE | $50000105
TAG_CURVE_RANGE | $50000106
TAG_CURVE_DATA_DESCRIPTOR | $50000110
TAG_COORDINATE_START_VALUE | $50000112
TAG_COORDINATE_STEP_VALUE | $50000114
TAG_AUDIO_TYPE | $50002000
TAG_AUDIO_SAMPLE_FORMAT | $50002002
TAG_NUMBER_OF_CHANNELS | $50002004
TAG_NUMBER_OF_SAMPLES | $50002006
TAG_SAMPLE_RATE | $50002008
TAG_TOTAL_TIME | $5000200A
TAG_AUDIO_SAMPLE_DATA | $5000200C
TAG_AUDIO_COMMENTS | $5000200E
TAG_CURVE_LABEL | $50002500
TAG_REFERENCED_OVERLAY_SEQUENCE_5$X | $50002600
TAG_REFERENCED_OVERLAY_GROUP | $50002610
TAG_CURVE_DATA | $50003000
TAG_OVERLAY_ROWS | $60000010
TAG_OVERLAY_COLUMNS | $60000011
TAG_OVERLAY_PLANES | $60000012
TAG_NUMBER_OF_FRAMES_IN_OVERLAY | $60000015
TAG_OVERLAY_DESCRIPTION | $60000022
TAG_OVERLAY_TYPE | $60000040
TAG_OVERLAY_SUBTYPE | $60000045
TAG_OVERLAY_ORIGIN | $60000050
TAG_IMAGE_FRAME_ORIGIN | $60000051
TAG_OVERLAY_PLANE_ORIGIN | $60000052
TAG_OVERLAY_BITS_ALLOCATED | $60000100
TAG_OVERLAY_BIT_POSITION | $60000102
TAG_OVERLAY_DESCRIPTOR_GRAY_RETIRED | $60001100
TAG_OVERLAY_DESCRIPTOR_RED_RETIRED | $60001101
TAG_OVERLAY_DESCRIPTOR_GREEN_RETIRED | $60001102
TAG_OVERLAY_DESCRIPTOR_BLUE_RETIRED | $60001103
TAG_OVERLAYS_GRAY_RETIRED | $60001200
TAG_OVERLAYS_RED_RETIRED | $60001201
TAG_OVERLAYS_GREEN_RETIRED | $60001202
TAG_OVERLAYS_BLUE_RETIRED | $60001203
TAG_ROI_AREA | $60001301
TAG_ROI_MEAN | $60001302
TAG_ROI_STANDARD_DEVIATION | $60001303
TAG_OVERLAY_LABEL | $60001500
TAG_OVERLAY_DATA | $60003000
TAG_PIXEL_DATA | $7FE00010
TAG_LEAD_BITMAP | $7FE00010
TAG_DATA_SET_TRAILING_PADDING | $FFFCFFFC
TAG_ITEM | $FFFEE000
TAG_ITEM_DELIMITATION_ITEM | $FFFEE00D
TAG_SEQUENCE_DELIMITATION_ITEM | $FFFEE0DD


Data Element Tag Table

The following is a table of default information about the Data Element Tags that are standard for the DICOM file format. For a list of constants that correspond to the code values below, refer to the Data Element Tag Constants.

Code value | Mask | Name | VR | Min | Max | Div
$0020001 | $FFFFFFFF | File Meta Information Version | VR_OB | 1 | 1 | 1
$0020002 | $FFFFFFFF | Media Storage SOP Class UID | VR_UI | 1 | 1 | 1
$0020003 | $FFFFFFFF | Media Storage SOP Instance UID | VR_UI | 1 | 1 | 1
$0020010 | $FFFFFFFF | Transfer Syntax UID | VR_UI | 1 | 1 | 1
$0020012 | $FFFFFFFF | Implementation Class UID | VR_UI | 1 | 1 | 1
$0020013 | $FFFFFFFF | Implementation Version Name | VR_SH | 1 | 1 | 1
$0020016 | $FFFFFFFF | Source Application Entity Title | VR_AE | 1 | 1 | 1
$0020100 | $FFFFFFFF | Private Information Creator UID | VR_UI | 1 | 1 | 1
$0020102 | $FFFFFFFF | Private Information | VR_OB | 1 | 1 | 1
$0041130 | $FFFFFFFF | File-set ID | VR_CS | 1 | 1 | 1
$0041141 | $FFFFFFFF | File-set Descriptor File ID | VR_CS | 1 | 8 | 1
$0041142 | $FFFFFFFF | Specific Character Set of File-set Descriptor File | VR_CS | 1 | 1 | 1
$0041200 | $FFFFFFFF | Offset of the First Directory Record of the Root Directory Entity | VR_UL | 1 | 1 | 1
$0041202 | $FFFFFFFF | Offset of the Last Directory Record of the Root Directory Entity | VR_UL | 1 | 1 | 1
$0041212 | $FFFFFFFF | File-set Consistency Flag | VR_US | 1 | 1 | 1
$0041220 | $FFFFFFFF | Directory Record Sequence | VR_SQ | 1 | 1 | 1
$0041400 | $FFFFFFFF | Offset of the Next Directory Record | VR_UL | 1 | 1 | 1
$0041410 | $FFFFFFFF | Record In-use Flag | VR_US | 1 | 1 | 1
$0041420 | $FFFFFFFF | Offset of Referenced Lower-Level Directory Entity | VR_UL | 1 | 1 | 1
$0041430 | $FFFFFFFF | Directory Record Type | VR_CS | 1 | 1 | 1
$0041432 | $FFFFFFFF | Private Record UID | VR_UI | 1 | 1 | 1
$0041500 | $FFFFFFFF | Referenced File ID | VR_CS | 1 | 8 | 1
$0041504 | $FFFFFFFF | MRDR Directory Record Offset | VR_UL | 1 | 1 | 1
$0041510 | $FFFFFFFF | Referenced SOP Class UID in File | VR_UI | 1 | 1 | 1
$0041511 | $FFFFFFFF | Referenced SOP Instance UID in File | VR_UI | 1 | 1 | 1
$0041512 | $FFFFFFFF | Referenced Transfer Syntax UID in File | VR_UI | 1 | 1 | 1
$0041600 | $FFFFFFFF | Number of References | VR_UL | 1 | 1 | 1
$0080005 | $FFFFFFFF | Specific Character Set | VR_CS | 1 | -1 | 1
$0080008 | $FFFFFFFF | Image Type | VR_CS | 1 | -1 | 1
$0080012 | $FFFFFFFF | Instance Creation Date | VR_DA | 1 | 1 | 1
$0080013 | $FFFFFFFF | Instance Creation Time | VR_TM | 1 | 1 | 1
$0080014 | $FFFFFFFF | Instance Creator UID | VR_UI | 1 | 1 | 1
$0080016 | $FFFFFFFF | SOP Class UID | VR_UI | 1 | 1 | 1
$0080018 | $FFFFFFFF | SOP Instance UID | VR_UI | 1 | 1 | 1
$0080020 | $FFFFFFFF | Study Date | VR_DA | 1 | 1 | 1
$0080021 | $FFFFFFFF | Series Date | VR_DA | 1 | 1 | 1
$0080022 | $FFFFFFFF | Acquisition Date | VR_DA | 1 | 1 | 1
$0080023 | $FFFFFFFF | Image Date | VR_DA | 1 | 1 | 1
$0080024 | $FFFFFFFF | Overlay Date | VR_DA | 1 | 1 | 1
$0080025 | $FFFFFFFF | Curve Date | VR_DA | 1 | 1 | 1
$0080030 | $FFFFFFFF | Study Time | VR_TM | 1 | 1 | 1
$0080031 | $FFFFFFFF | Series Time | VR_TM | 1 | 1 | 1
$0080032 | $FFFFFFFF | Acquisition Time | VR_TM | 1 | 1 | 1
$0080033 | $FFFFFFFF | Image Time | VR_TM | 1 | 1 | 1
$0080034 | $FFFFFFFF | Overlay Time | VR_TM | 1 | 1 | 1
$0080035 | $FFFFFFFF | Curve Time | VR_TM | 1 | 1 | 1
$0080042 | $FFFFFFFF | Nuclear Medicine Series Type (Retired) | VR_CS | 1 | 1 | 1
$0080050 | $FFFFFFFF | Accession Number | VR_SH | 1 | 1 | 1
$0080052 | $FFFFFFFF | Query/Retrieve Level | VR_CS | 1 | 1 | 1
$0080054 | $FFFFFFFF | Retrieve AE Title | VR_AE | 1 | -1 | 1
$0080058 | $FFFFFFFF | Failed SOP Instance UID List | VR_UI | 1 | -1 | 1
$0080060 | $FFFFFFFF | Modality | VR_CS | 1 | 1 | 1
$0080061 | $FFFFFFFF | Modalities in Study | VR_CS | 1 | -1 | 1
$0080064 | $FFFFFFFF | Conversion Type | VR_CS | 1 | 1 | 1
$0080070 | $FFFFFFFF | Manufacturer | VR_LO | 1 | 1 | 1
$0080080 | $FFFFFFFF | Institution Name | VR_LO | 1 | 1 | 1
$0080081 | $FFFFFFFF | Institution Address | VR_ST | 1 | 1 | 1
$0080082 | $FFFFFFFF | Institution Code Sequence | VR_SQ | 1 | 1 | 1
$0080090 | $FFFFFFFF | Referring Physician's Name | VR_PN | 1 | 1 | 1
$0080092 | $FFFFFFFF | Referring Physician's Address | VR_ST | 1 | 1 | 1
$0080094 | $FFFFFFFF | Referring Physician's Telephone Numbers | VR_SH | 1 | -1 | 1
$0080100 | $FFFFFFFF | Code Value | VR_SH | 1 | 1 | 1
$0080102 | $FFFFFFFF | Coding Scheme Designator | VR_SH | 1 | 1 | 1
$0080104 | $FFFFFFFF | Code Meaning | VR_LO | 1 | 1 | 1
$0081010 | $FFFFFFFF | Station Name | VR_SH | 1 | 1 | 1
$0081030 | $FFFFFFFF | Study Description | VR_LO | 1 | 1 | 1
$0081032 | $FFFFFFFF | Procedure Code Sequence | VR_SQ | 1 | 1 | 1
$008103E | $FFFFFFFF | Series Description | VR_LO | 1 | 1 | 1
$0081040 | $FFFFFFFF | Institutional Department Name | VR_LO | 1 | 1 | 1
$0081048 | $FFFFFFFF | Physician(s) of Record | VR_PN | 1 | -1 | 1
$0081050 | $FFFFFFFF | Performing Physician's Name | VR_PN | 1 | -1 | 1
$0081060 | $FFFFFFFF | Name of Physician(s) Reading Study | VR_PN | 1 | -1 | 1
$0081070 | $FFFFFFFF | Operators' Name | VR_PN | 1 | -1 | 1
$0081080 | $FFFFFFFF | Admitting Diagnoses Description | VR_LO | 1 | -1 | 1
$0081084 | $FFFFFFFF | Admitting Diagnosis Code Sequence | VR_SQ | 1 | 1 | 1
$0081090 | $FFFFFFFF | Manufacturer's Model Name | VR_LO | 1 | 1 | 1
$0081100 | $FFFFFFFF | Referenced Results Sequence | VR_SQ | 1 | 1 | 1
$0081110 | $FFFFFFFF | Referenced Study Sequence | VR_SQ | 1 | 1 | 1
$0081111 | $FFFFFFFF | Referenced Study Component Sequence | VR_SQ | 1 | 1 | 1
$0081115 | $FFFFFFFF | Referenced Series Sequence | VR_SQ | 1 | 1 | 1
$0081120 | $FFFFFFFF | Referenced Patient Sequence | VR_SQ | 1 | 1 | 1
$0081125 | $FFFFFFFF | Referenced Visit Sequence | VR_SQ | 1 | 1 | 1
$0081130 | $FFFFFFFF | Referenced Overlay Sequence | VR_SQ | 1 | 1 | 1
$0081140 | $FFFFFFFF | Referenced Image Sequence | VR_SQ | 1 | 1 | 1
$0081145 | $FFFFFFFF | Referenced Curve Sequence | VR_SQ | 1 | 1 | 1
$0081150 | $FFFFFFFF | Referenced SOP Class UID | VR_UI | 1 | 1 | 1
$0081155 | $FFFFFFFF | Referenced SOP Instance UID | VR_UI | 1 | 1 | 1
$0081160 | $FFFFFFFF | Referenced Frame Number | VR_IS | 1 | 1 | 1
$0081195 | $FFFFFFFF | Transaction UID | VR_UI | 1 | 1 | 1
$0081197 | $FFFFFFFF | Failure Reason | VR_US | 1 | 1 | 1
$0081198 | $FFFFFFFF | Failed SOP Sequence | VR_SQ | 1 | 1 | 1
$0081199 | $FFFFFFFF | Referenced SOP Sequence | VR_SQ | 1 | 1 | 1
$0082110 | $FFFFFFFF | Lossy Image Compression (Retired) | VR_CS | 1 | 1 | 1
$0082111 | $FFFFFFFF | Derivation Description | VR_ST | 1 | 1 | 1
$0082112 | $FFFFFFFF | Source Image Sequence | VR_SQ | 1 | 1 | 1
$0082120 | $FFFFFFFF | Stage Name | VR_SH | 1 | 1 | 1
$0082122 | $FFFFFFFF | Stage Number | VR_IS | 1 | 1 | 1
$0082124 | $FFFFFFFF | Number of Stages | VR_IS | 1 | 1 | 1
$0082128 | $FFFFFFFF | View Number | VR_IS | 1 | 1 | 1
$0082129 | $FFFFFFFF | Number of Event Timers | VR_IS | 1 | 1 | 1
$008212A | $FFFFFFFF | Number of Views in Stage | VR_IS | 1 | 1 | 1
$0082130 | $FFFFFFFF | Event Elapsed Time(s) | VR_DS | 1 | -1 | 1
$0082132 | $FFFFFFFF | Event Timer Name(s) | VR_LO | 1 | -1 | 1
$0082142 | $FFFFFFFF | Start Trim | VR_IS | 1 | 1 | 1
$0082143 | $FFFFFFFF | Stop Trim | VR_IS | 1 | 1 | 1
$0082144 | $FFFFFFFF | Recommended Display Frame Rate | VR_IS | 1 | 1 | 1
$0082200 | $FFFFFFFF | Transducer Position (Retired) | VR_CS | 1 | 1 | 1
$0082204 | $FFFFFFFF | Transducer Orientation (Retired) | VR_CS | 1 | 1 | 1
$0082208 | $FFFFFFFF | Anatomic Structure (Retired) | VR_CS | 1 | 1 | 1
$0082218 | $FFFFFFFF | Anatomic Region Sequence | VR_SQ | 1 | 1 | 1
$0082220 | $FFFFFFFF | Anatomic Region Modifier Sequence | VR_SQ | 1 | 1 | 1
$0082228 | $FFFFFFFF | Primary Anatomic Structure Sequence | VR_SQ | 1 | 1 | 1
$0082229 | $FFFFFFFF | Anatomic Structure, Space or Region Sequence | VR_SQ | 1 | 1 | 1
$0082230 | $FFFFFFFF | Primary Anatomic Structure Modifier Sequence | VR_SQ | 1 | 1 | 1
$0082240 | $FFFFFFFF | Transducer Position Sequence | VR_SQ | 1 | 1 | 1
$0082242 | $FFFFFFFF | Transducer Position Modifier Sequence | VR_SQ | 1 | 1 | 1
$0082244 | $FFFFFFFF | Transducer Orientation Sequence | VR_SQ | 1 | 1 | 1
$0082246 | $FFFFFFFF | Transducer Orientation Modifier Sequence | VR_SQ | 1 | 1 | 1
$0100010 | $FFFFFFFF | Patient's Name | VR_PN | 1 | 1 | 1
$0100020 | $FFFFFFFF | Patient ID | VR_LO | 1 | 1 | 1
$0100021 | $FFFFFFFF | Issuer of Patient ID | VR_LO | 1 | 1 | 1
$0100030 | $FFFFFFFF | Patient's Birth Date | VR_DA | 1 | 1 | 1
$0100032 | $FFFFFFFF | Patient's Birth Time | VR_TM | 1 | 1 | 1
$0100040 | $FFFFFFFF | Patient's Sex | VR_CS | 1 | 1 | 1
$0100050 | $FFFFFFFF | Patient's Insurance Plan Code Sequence | VR_SQ | 1 | 1 | 1
$0101000 | $FFFFFFFF | Other Patient IDs | VR_LO | 1 | -1 | 1
$0101001 | $FFFFFFFF | Other Patient Names | VR_PN | 1 | -1 | 1
$0101005 | $FFFFFFFF | Patient's Birth Name | VR_PN | 1 | 1 | 1
$0101010 | $FFFFFFFF | Patient's Age | VR_AS | 1 | 1 | 1
$0101020 | $FFFFFFFF | Patient's Size | VR_DS | 1 | 1 | 1
$0101030 | $FFFFFFFF | Patient's Weight | VR_DS | 1 | 1 | 1
$0101040 | $FFFFFFFF | Patient's Address | VR_LO | 1 | 1 | 1
$0101060 | $FFFFFFFF | Patient's Mother's Birth Name | VR_PN | 1 | 1 | 1
$0101080 | $FFFFFFFF | Military Rank | VR_LO | 1 | 1 | 1
$0101081 | $FFFFFFFF | Branch of Service | VR_LO | 1 | 1 | 1
$0101090 | $FFFFFFFF | Medical Record Locator | VR_LO | 1 | 1 | 1
$0102000 | $FFFFFFFF | Medical Alerts | VR_LO | 1 | -1 | 1
$0102110 | $FFFFFFFF | Contrast Allergies | VR_LO | 1 | -1 | 1
$0102150 | $FFFFFFFF | Country of Residence | VR_LO | 1 | 1 | 1
$0102152 | $FFFFFFFF | Region of Residence | VR_LO | 1 | 1 | 1
$0102154 | $FFFFFFFF | Patient's Telephone Numbers | VR_SH | 1 | -1 | 1
$0102160 | $FFFFFFFF | Ethnic Group | VR_SH | 1 | 1 | 1
$0102180 | $FFFFFFFF | Occupation | VR_SH | 1 | 1 | 1
$01021A0 | $FFFFFFFF | Smoking Status | VR_CS | 1 | 1 | 1
$01021B0 | $FFFFFFFF | Additional Patient History | VR_LT | 1 | 1 | 1
$01021C0 | $FFFFFFFF | Pregnancy Status | VR_US | 1 | 1 | 1
$01021D0 | $FFFFFFFF | Last Menstrual Date | VR_DA | 1 | 1 | 1
$01021F0 | $FFFFFFFF | Patient's Religious Preference | VR_LO | 1 | 1 | 1
$0104000 | $FFFFFFFF | Patient Comments | VR_LT | 1 | 1 | 1
$0180010 | $FFFFFFFF | Contrast/Bolus Agent | VR_LO | 1 | 1 | 1
$0180012 | $FFFFFFFF | Contrast/Bolus Agent Sequence | VR_SQ | 1 | 1 | 1
$0180014 | $FFFFFFFF | Contrast/Bolus Administration Route Sequence | VR_SQ | 1 | 1 | 1
$0180015 | $FFFFFFFF | Body Part Examined | VR_CS | 1 | 1 | 1
$0180020 | $FFFFFFFF | Scanning Sequence | VR_CS | 1 | -1 | 1
$0180021 | $FFFFFFFF | Sequence Variant | VR_CS | 1 | -1 | 1
$0180022 | $FFFFFFFF | Scan Options | VR_CS | 1 | -1 | 1
$0180023 | $FFFFFFFF | MR Acquisition Type | VR_CS | 1 | 1 | 1
$0180024 | $FFFFFFFF | Sequence Name | VR_SH | 1 | 1 | 1
$0180025 | $FFFFFFFF | Angio Flag | VR_CS | 1 | 1 | 1
$0180026 | $FFFFFFFF | Intervention Drug Information Sequence | VR_SQ | 1 | 1 | 1
$0180027 | $FFFFFFFF | Intervention Drug Stop Time | VR_TM | 1 | 1 | 1
$0180028 | $FFFFFFFF | Intervention Drug Dose | VR_DS | 1 | 1 | 1
$0180029 | $FFFFFFFF | Intervention Drug Code Sequence | VR_SQ | 1 | 1 | 1
$018002A | $FFFFFFFF | Additional Drug Sequence | VR_SQ | 1 | 1 | 1
$0180030 | $FFFFFFFF | Radionuclide (Retired) | VR_LO | 1 | -1 | 1
$0180031 | $FFFFFFFF | Radiopharmaceutical | VR_LO | 1 | 1 | 1
$0180032 | $FFFFFFFF | Energy Window Centerline (Retired) | VR_DS | 1 | 1 | 1
$0180033 | $FFFFFFFF | Energy Window Total Width (Retired) | VR_DS | 1 | -1 | 1
$0180034 | $FFFFFFFF | Intervention Drug Name | VR_LO | 1 | 1 | 1
$0180035 | $FFFFFFFF | Intervention Drug Start Time | VR_TM | 1 | 1 | 1
$0180036 | $FFFFFFFF | Interventional Therapy Sequence | VR_SQ | 1 | 1 | 1
$0180037 | $FFFFFFFF | Therapy Type | VR_CS | 1 | 1 | 1
$0180038 | $FFFFFFFF | Interventional Status | VR_CS | 1 | 1 | 1
$0180039 | $FFFFFFFF | Therapy Description | VR_CS | 1 | 1 | 1
$0180040 | $FFFFFFFF | Cine Rate | VR_IS | 1 | 1 | 1
$0180050 | $FFFFFFFF | Slice Thickness | VR_DS | 1 | 1 | 1
$0180060 | $FFFFFFFF | KVP | VR_DS | 1 | 1 | 1
$0180070 | $FFFFFFFF | Counts Accumulated | VR_IS | 1 | 1 | 1
$0180071 | $FFFFFFFF | Acquisition Termination Condition | VR_CS | 1 | 1 | 1
$0180072 | $FFFFFFFF | Effective Series Duration | VR_DS | 1 | 1 | 1
$0180073 | $FFFFFFFF | Acquisition Start Condition | VR_CS | 1 | 1 | 1
$0180074 | $FFFFFFFF | Acquisition Start Condition Data | VR_IS | 1 | 1 | 1
$0180075 | $FFFFFFFF | Acquisition Termination Condition Data | VR_IS | 1 | 1 | 1
$0180080 | $FFFFFFFF | Repetition Time | VR_DS | 1 | 1 | 1
$0180081 | $FFFFFFFF | Echo Time | VR_DS | 1 | 1 | 1
$0180082 | $FFFFFFFF | Inversion Time | VR_DS | 1 | 1 | 1
$0180083 | $FFFFFFFF | Number of Averages | VR_DS | 1 | 1 | 1
$0180084 | $FFFFFFFF | Imaging Frequency | VR_DS | 1 | 1 | 1
$0180085 | $FFFFFFFF | Imaged Nucleus | VR_SH | 1 | 1 | 1
$0180086 | $FFFFFFFF | Echo Number(s) | VR_IS | 1 | -1 | 1
$0180087 | $FFFFFFFF | Magnetic Field Strength | VR_DS | 1 | 1 | 1
$0180088 | $FFFFFFFF | Spacing Between Slices | VR_DS | 1 | 1 | 1
$0180089 | $FFFFFFFF | Number of Phase Encoding Steps | VR_IS | 1 | 1 | 1
$0180090 | $FFFFFFFF | Data Collection Diameter | VR_DS | 1 | 1 | 1
$0180091 | $FFFFFFFF | Echo Train Length | VR_IS | 1 | 1 | 1
$0180093 | $FFFFFFFF | Percent Sampling | VR_DS | 1 | 1 | 1
$0180094 | $FFFFFFFF | Percent Phase Field of View | VR_DS | 1 | 1 | 1
$0180095 | $FFFFFFFF | Pixel Bandwidth | VR_DS | 1 | 1 | 1
$0181000 | $FFFFFFFF | Device Serial Number | VR_LO | 1 | 1 | 1
$0181004 | $FFFFFFFF | Plate ID | VR_LO | 1 | 1 | 1
$0181010 | $FFFFFFFF | Secondary Capture Device ID | VR_LO | 1 | 1 | 1
$0181011 | $FFFFFFFF | Hardcopy Creation Device ID | VR_LO | 1 | 1 | 1
$0181012 | $FFFFFFFF | Date of Secondary Capture | VR_DA | 1 | 1 | 1
$0181014 | $FFFFFFFF | Time of Secondary Capture | VR_TM | 1 | 1 | 1
$0181016 | $FFFFFFFF | Secondary Capture Device Manufacturer | VR_LO | 1 | 1 | 1
$0181017 | $FFFFFFFF | Hardcopy Device Manufacturer | VR_LO | 1 | 1 | 1
$0181018 | $FFFFFFFF | Secondary Capture Device Manufacturer's Model Name | VR_LO | 1 | 1 | 1
$0181019 | $FFFFFFFF | Secondary Capture Device Software Version(s) | VR_LO | 1 | -1 | 1
$018101A | $FFFFFFFF | Hardcopy Device Software Version | VR_LO | 1 | -1 | 1
$018101B | $FFFFFFFF | Hardcopy Device Manfuacturer's Model Name | VR_LO | 1 | 1 | 1
$0181020 | $FFFFFFFF | Software Version(s) | VR_LO | 1 | -1 | 1
$0181022 | $FFFFFFFF | Video Image Format Acquired | VR_SH | 1 | 1 | 1
$0181023 | $FFFFFFFF | Digital Image Format Acquired | VR_LO | 1 | 1 | 1
$0181030 | $FFFFFFFF | Protocol Name | VR_LO | 1 | 1 | 1
$0181040 | $FFFFFFFF | Contrast/Bolus Route | VR_LO | 1 | 1 | 1
$0181041 | $FFFFFFFF | Contrast/Bolus Volume | VR_DS | 1 | 1 | 1
$0181042 | $FFFFFFFF | Contrast/Bolus Start Time | VR_TM | 1 | 1 | 1
$0181043 | $FFFFFFFF | Contrast/Bolus Stop Time | VR_TM | 1 | 1 | 1
$0181044 | $FFFFFFFF | Contrast/Bolus Total Dose | VR_DS | 1 | 1 | 1
$0181045 | $FFFFFFFF | Syringe Counts | VR_IS | 1 | 1 | 1
$0181046 | $FFFFFFFF | Contrast Flow Rate(s) | VR_DS | 1 | -1 | 1
$0181047 | $FFFFFFFF | Contrast Flow Duration(s) | VR_DS | 1 | -1 | 1
$0181048 | $FFFFFFFF | Contrast/Bolus Ingredient | VR_CS | 1 | 1 | 1
$0181049 | $FFFFFFFF | Contrast/Bolus Ingredient Concentration | VR_DS | 1 | 1 | 1
$0181050 | $FFFFFFFF | Spatial Resolution | VR_DS | 1 | 1 | 1
$0181060 | $FFFFFFFF | Trigger Time | VR_DS | 1 | 1 | 1
$0181061 | $FFFFFFFF | Trigger Source or Type | VR_LO | 1 | 1 | 1
$0181062 | $FFFFFFFF | Nominal Interval | VR_IS | 1 | 1 | 1
$0181063 | $FFFFFFFF | Frame Time | VR_DS | 1 | 1 | 1
$0181064 | $FFFFFFFF | Framing Type | VR_LO | 1 | 1 | 1
$0181065 | $FFFFFFFF | Frame Time Vector | VR_DS | 1 | -1 | 1
$0181066 | $FFFFFFFF | Frame Delay | VR_DS | 1 | 1 | 1
$0181070 | $FFFFFFFF | Radiopharmaceutical Route | VR_LO | 1 | 1 | 1
$0181071 | $FFFFFFFF | Radiopharmaceutical Volume | VR_DS | 1 | 1 | 1
$0181072 | $FFFFFFFF | Radiopharmaceutical Start Time | VR_TM | 1 | 1 | 1
$0181073 | $FFFFFFFF | Radiopharmaceutical Stop Time | VR_TM | 1 | 1 | 1
$0181074 | $FFFFFFFF | Radionuclide Total Dose | VR_DS | 1 | 1 | 1
$0181075 | $FFFFFFFF | Radionuclide Half Life | VR_DS | 1 | 1 | 1
$0181076 | $FFFFFFFF | Radionuclide Positron Fraction | VR_DS | 1 | 1 | 1
$0181077 | $FFFFFFFF | Radiopharmaceutical Specific Activity | VR_DS | 1 | 1 | 1
$0181080 | $FFFFFFFF | Beat Rejection Flag | VR_CS | 1 | 1 | 1
$0181081 | $FFFFFFFF | Low R-R Value | VR_IS | 1 | 1 | 1
$0181082 | $FFFFFFFF | High R-R Value | VR_IS | 1 | 1 | 1
$0181083 | $FFFFFFFF | Intervals Acquired | VR_IS | 1 | 1 | 1
$0181084 | $FFFFFFFF | Intervals Rejected | VR_IS | 1 | 1 | 1
$0181085 | $FFFFFFFF | PVC Rejection | VR_LO | 1 | 1 | 1
$0181086 | $FFFFFFFF | Skip Beats | VR_IS | 1 | 1 | 1
$0181088 | $FFFFFFFF | Heart Rate | VR_IS | 1 | 1 | 1
$0181090 | $FFFFFFFF | Cardiac Number of Images | VR_IS | 1 | 1 | 1
$0181094 | $FFFFFFFF | Trigger Window | VR_IS | 1 | 1 | 1
$0181100 | $FFFFFFFF | Reconstruction Diameter | VR_DS | 1 | 1 | 1
$0181110 | $FFFFFFFF | Distance Source to Detector | VR_DS | 1 | 1 | 1
$0181111 | $FFFFFFFF | Distance Source to Patient | VR_DS | 1 | 1 | 1
$0181114 | $FFFFFFFF | Estimated Radiographic Magnification Factor | VR_DS | 1 | 1 | 1
$0181120 | $FFFFFFFF | Gantry/Detector Tilt | VR_DS | 1 | 1 | 1
$0181121 | $FFFFFFFF | Gantry/Detector Slew | VR_DS | 1 | 1 | 1
$0181130 | $FFFFFFFF | Table Height | VR_DS | 1 | 1 | 1
$0181131 | $FFFFFFFF | Table Traverse | VR_DS | 1 | 1 | 1
$0181134 | $FFFFFFFF | Table Motion | VR_CS | 1 | 1 | 1
$0181135 | $FFFFFFFF | Table Vertical Increment | VR_DS | 1 | -1 | 1
$0181136 | $FFFFFFFF | Table Lateral Increment | VR_DS | 1 | -1 | 1
$0181137 | $FFFFFFFF | Table Longitudinal Increment | VR_DS | 1 | -1 | 1
$0181138 | $FFFFFFFF | Table Angle | VR_DS | 1 | 1 | 1
$0181140 | $FFFFFFFF | Rotation Direction | VR_CS | 1 | 1 | 1
$0181141 | $FFFFFFFF | Angular Position | VR_DS | 1 | 1 | 1
$0181142 | $FFFFFFFF | Radial Position | VR_DS | 1 | -1 | 1
$0181143 | $FFFFFFFF | Scan Arc | VR_DS | 1 | 1 | 1
$0181144 | $FFFFFFFF | Angular Step | VR_DS | 1 | 1 | 1
$0181145 | $FFFFFFFF | Center of Rotation Offset | VR_DS | 1 | 1 | 1
$0181146 | $FFFFFFFF | Rotation Offset (Retired) | VR_DS | 1 | -1 | 1
$0181147 | $FFFFFFFF | Field of View Shape | VR_CS | 1 | 1 | 1
$0181149 | $FFFFFFFF | Field of View Dimension(s) | VR_IS | 1 | 2 | 1
$0181150 | $FFFFFFFF | Exposure Time | VR_IS | 1 | 1 | 1
$0181151 | $FFFFFFFF | X-ray Tube Current | VR_IS | 1 | 1 | 1
$0181152 | $FFFFFFFF | Exposure | VR_IS | 1 | 1 | 1
$0181153 | $FFFFFFFF | Exposure in uAs | VR_IS | 1 | 1 | 1
$0181154 | $FFFFFFFF | Average Pulse Width | VR_DS | 1 | 1 | 1
$0181155 | $FFFFFFFF | Radiation Setting | VR_CS | 1 | 1 | 1
$018115A | $FFFFFFFF | Radiation Mode | VR_CS | 1 | 1 | 1
$018115E | $FFFFFFFF | Image Area Dose Product | VR_DS | 1 | 1 | 1
$0181160 | $FFFFFFFF | Filter Type | VR_SH | 1 | 1 | 1
$0181161 | $FFFFFFFF | Type of Filters | VR_LO | 1 | -1 | 1
$0181162 | $FFFFFFFF | Intensifier Size | VR_DS | 1 | 1 | 1
$0181164 | $FFFFFFFF | Imager Pixel Spacing | VR_DS | 2 | 2 | 1
$0181166 | $FFFFFFFF | Grid | VR_CS | 1 | 1 | 1
$0181170 | $FFFFFFFF | Generator Power | VR_IS | 1 | 1 | 1
$0181180 | $FFFFFFFF | Collimator/grid Name | VR_SH | 1 | 1 | 1
$0181181 | $FFFFFFFF | Collimator Type | VR_CS | 1 | 1 | 1
$0181182 | $FFFFFFFF | Focal Distance | VR_IS | 1 | 2 | 1
$0181183 | $FFFFFFFF | X Focus Center | VR_DS | 1 | 2 | 1
$0181184 | $FFFFFFFF | Y Focus Center | VR_DS | 1 | 2 | 1
$0181190 | $FFFFFFFF | Focal Spot(s) | VR_DS | 1 | -1 | 1
$0181200 | $FFFFFFFF | Date of Last Calibration | VR_DA | 1 | -1 | 1
$0181201 | $FFFFFFFF | Time of Last Calibration | VR_TM | 1 | -1 | 1
$0181210 | $FFFFFFFF | Convolution Kernel | VR_SH | 1 | -1 | 1
$0181242 | $FFFFFFFF | Actual Frame Duration | VR_IS | 1 | 1 | 1
$0181243 | $FFFFFFFF | Count Rate | VR_IS | 1 | 1 | 1
$0181244 | $FFFFFFFF | Preferred Playback Sequencing | VR_US | 1 | 1 | 1
$0181250 | $FFFFFFFF | Receiving Coil | VR_SH | 1 | 1 | 1
$0181251 | $FFFFFFFF | Transmitting Coil | VR_SH | 1 | 1 | 1
$0181260 | $FFFFFFFF | Plate Type | VR_SH | 1 | 1 | 1
$0181261 | $FFFFFFFF | Phosphor Type | VR_LO | 1 | 1 | 1
$0181300 | $FFFFFFFF | Scan Velocity | VR_DS | 1 | 1 | 1
$0181301 | $FFFFFFFF | Whole Body Technique | VR_CS | 1 | -1 | 1
$0181302 | $FFFFFFFF | Scan Length | VR_IS | 1 | 1 | 1
$0181310 | $FFFFFFFF | Acquisition Matrix | VR_US | 4 | 4 | 1
$0181312 | $FFFFFFFF | Phase Encoding Direction | VR_CS | 1 | 1 | 1
$0181314 | $FFFFFFFF | Flip Angle | VR_DS | 1 | 1 | 1
$0181315 | $FFFFFFFF | Variable Flip Angle Flag | VR_CS | 1 | 1 | 1
$0181316 | $FFFFFFFF | SAR | VR_DS | 1 | 1 | 1
$0181318 | $FFFFFFFF | dB/dt | VR_DS | 1 | 1 | 1
$0181400 | $FFFFFFFF | Acquisition Device Processing Description | VR_LO | 1 | 1 | 1
$0181401 | $FFFFFFFF | Acquisition Device Processing Code | VR_LO | 1 | 1 | 1
$0181402 | $FFFFFFFF | Cassette Orientation | VR_CS | 1 | 1 | 1
$0181403 | $FFFFFFFF | Cassette Size | VR_CS | 1 | 1 | 1
$0181404 | $FFFFFFFF | Exposures on Plate | VR_US | 1 | 1 | 1
$0181405 | $FFFFFFFF | Relative X-ray Exposure | VR_IS | 1 | 1 | 1
$0181450 | $FFFFFFFF | Column Angulation | VR_CS | 1 | 1 | 1
$0181460 | $FFFFFFFF | Tomo Layer Height | VR_DS | 1 | 1 | 1
$0181470 | $FFFFFFFF | Tomo Angle | VR_DS | 1 | 1 | 1
$0181480 | $FFFFFFFF | Tomo Time | VR_DS | 1 | 1 | 1
$0181500 | $FFFFFFFF | Positioner Motion | VR_CS | 1 | 1 | 1
$0181510 | $FFFFFFFF | Positioner Primary Angle | VR_DS | 1 | 1 | 1
$0181511 | $FFFFFFFF | Positioner Secondary Angle | VR_DS | 1 | 1 | 1
$0181520 | $FFFFFFFF | Positioner Primary Angle Increment | VR_DS | 1 | -1 | 1
$0181521 | $FFFFFFFF | Positioner Secondary Angle Increment | VR_DS | 1 | -1 | 1
$0181530 | $FFFFFFFF | Detector Primary Angle | VR_DS | 1 | 1 | 1
$0181531 | $FFFFFFFF | Detector Secondary Angle | VR_DS | 1 | 1 | 1
$0181600 | $FFFFFFFF | Shutter Shape | VR_CS | 1 | 3 | 1
$0181602 | $FFFFFFFF | Shutter Left Vertical Edge | VR_IS | 1 | 1 | 1
$0181604 | $FFFFFFFF | Shutter Right Vertical Edge | VR_IS | 1 | 1 | 1
$0181606 | $FFFFFFFF | Shutter Upper Horizontal Edge | VR_IS | 1 | 1 | 1
$0181608 | $FFFFFFFF | Shutter Lower Horizontal Edge | VR_IS | 1 | 1 | 1
$0181610 | $FFFFFFFF | Center of Circular Shutter | VR_IS | 2 | 2 | 1
$0181612 | $FFFFFFFF | Radius of Circular Shutter | VR_IS | 1 | 1 | 1
$0181620 | $FFFFFFFF | Vertices of the Polygonal Shutter | VR_IS | 2 | -1 | 2
$0181700 | $FFFFFFFF | Collimator Shape | VR_CS | 1 | 3 | 1
$0181702 | $FFFFFFFF | Collimator Left Vertical Edge | VR_IS | 1 | 1 | 1
$0181704 | $FFFFFFFF | Collimator Right Vertical Edge | VR_IS | 1 | 1 | 1
$0181706 | $FFFFFFFF | Collimator Upper Horizontal Edge | VR_IS | 1 | 1 | 1
$0181708 | $FFFFFFFF | Collimator Lower Horizontal Edge | VR_IS | 1 | 1 | 1
$0181710 | $FFFFFFFF | Center of Circular Collimator | VR_IS | 2 | 2 | 1
$0181712 | $FFFFFFFF | Radius of Circular Collimator | VR_IS | 1 | 1 | 1
$0181720 | $FFFFFFFF | Vertices of the Polygonal Collimator | VR_IS | 2 | -1 | 2
$0185000 | $FFFFFFFF | Output Power | VR_SH | 1 | -1 | 1
$0185010 | $FFFFFFFF | Transducer Data | VR_LO | 3 | 3 | 1
$0185012 | $FFFFFFFF | Focus Depth | VR_DS | 1 | 1 | 1
$0185020 | $FFFFFFFF | Processing Function | VR_LO | 1 | 1 | 1
$0185021 | $FFFFFFFF | Postprocessing Function | VR_LO | 1 | 1 | 1
$0185022 | $FFFFFFFF | Mechanical Index | VR_DS | 1 | 1 | 1
$0185024 | $FFFFFFFF | Thermal Index | VR_DS | 1 | 1 | 1
$0185026 | $FFFFFFFF | Cranial Thermal Index | VR_DS | 1 | 1 | 1
$0185027 | $FFFFFFFF | Soft Tissue Thermal Index | VR_DS | 1 | 1 | 1
$0185028 | $FFFFFFFF | Soft Tissue-focus Thermal Index | VR_DS | 1 | 1 | 1
$0185029 | $FFFFFFFF | Soft Tissue-surface Thermal Index | VR_DS | 1 | 1 | 1
$0185050 | $FFFFFFFF | Depth of Scan Field | VR_IS | 1 | 1 | 1
$0185100 | $FFFFFFFF | Patient Position | VR_CS | 1 | 1 | 1
$0185101 | $FFFFFFFF | View Position | VR_CS | 1 | 1 | 1
$0185210 | $FFFFFFFF | Image Transformation Matrix | VR_DS | 6 | 6 | 1
$0185212 | $FFFFFFFF | Image Translation Vector | VR_DS | 3 | 3 | 1
$0186000 | $FFFFFFFF | Sensitivity | VR_DS | 1 | 1 | 1
$0186011 | $FFFFFFFF | Sequence of Ultrasound Regions | VR_SQ | 1 | 1 | 1
$0186012 | $FFFFFFFF | Region Spatial Format | VR_US | 1 | 1 | 1
$0186014 | $FFFFFFFF | Region Data Type | VR_US | 1 | 1 | 1
$0186016 | $FFFFFFFF | Region Flags | VR_UL | 1 | 1 | 1
$0186018 | $FFFFFFFF | Region Location Min X 0 | VR_UL | 1 | 1 | 1
$018601A | $FFFFFFFF | Region Location Min Y 0 | VR_UL | 1 | 1 | 1
$018601C | $FFFFFFFF | Region Location Max X 1 | VR_UL | 1 | 1 | 1
$018601E | $FFFFFFFF | Region Location Max Y 1 | VR_UL | 1 | 1 | 1
$0186020 | $FFFFFFFF | Reference Pixel X 0 | VR_SL | 1 | 1 | 1
$0186022 | $FFFFFFFF | Reference Pixel Y 0 | VR_SL | 1 | 1 | 1
$0186024 | $FFFFFFFF | Physical Units X Direction | VR_US | 1 | 1 | 1
$0186026 | $FFFFFFFF | Physical Units Y Direction | VR_US | 1 | 1 | 1
$0186028 | $FFFFFFFF | Reference Pixel Physical Value X | VR_FD | 1 | 1 | 1
$018602A | $FFFFFFFF | Reference Pixel Physical Value Y | VR_FD | 1 | 1 | 1
$018602C | $FFFFFFFF | Physical Delta X | VR_FD | 1 | 1 | 1
$018602E | $FFFFFFFF | Physical Delta Y | VR_FD | 1 | 1 | 1
$0186030 | $FFFFFFFF | Transducer Frequency | VR_UL | 1 | 1 | 1
$0186031 | $FFFFFFFF | Transducer Type | VR_CS | 1 | 1 | 1
$0186032 | $FFFFFFFF | Pulse Repetition Frequency | VR_UL | 1 | 1 | 1
$0186034 | $FFFFFFFF | Doppler Correction Angle | VR_FD | 1 | 1 | 1
$0186036 | $FFFFFFFF | Steering Angle | VR_FD | 1 | 1 | 1
$0186038 | $FFFFFFFF | Doppler Sample Volume X Position | VR_UL | 1 | 1 | 1
$018603A | $FFFFFFFF | Doppler Sample Volume Y Position | VR_UL | 1 | 1 | 1
$018603C | $FFFFFFFF | TM-Line Position X 0 | VR_UL | 1 | 1 | 1
$018603E | $FFFFFFFF | TM-Line Position Y 0 | VR_UL | 1 | 1 | 1
$0186040 | $FFFFFFFF | TM-Line Position X 1 | VR_UL | 1 | 1 | 1
$0186042 | $FFFFFFFF | TM-Line Position Y 1 | VR_UL | 1 | 1 | 1
$0186044 | $FFFFFFFF | Pixel Component Organization | VR_US | 1 | 1 | 1
$0186046 | $FFFFFFFF | Pixel Component Mask | VR_UL | 1 | 1 | 1
$0186048 | $FFFFFFFF | Pixel Component Range Start | VR_UL | 1 | 1 | 1
$018604A | $FFFFFFFF | Pixel Component Range Stop | VR_UL | 1 | 1 | 1
$018604C | $FFFFFFFF | Pixel Component Physical Units | VR_US | 1 | 1 | 1
$018604E | $FFFFFFFF | Pixel Component Data Type | VR_US | 1 | 1 | 1
$0186050 | $FFFFFFFF | Number of Table Break Points | VR_UL | 1 | 1 | 1
$0186052 | $FFFFFFFF | Table of X Break Points | VR_UL | 1 | -1 | 1
$0186054 | $FFFFFFFF | Table of Y Break Points | VR_FD | 1 | -1 | 1
$0186056 | $FFFFFFFF | Number of Table Entries | VR_UL | 1 | 1 | 1
$0186058 | $FFFFFFFF | Table of Pixel Values | VR_UL | 1 | -1 | 1
$018605A | $FFFFFFFF | Table of Parameter Values | VR_FL | 1 | -1 | 1
$020000D | $FFFFFFFF | Study Instance UID | VR_UI | 1 | 1 | 1
$020000E | $FFFFFFFF | Series Instance UID | VR_UI | 1 | 1 | 1
$0200010 | $FFFFFFFF | Study ID | VR_SH | 1 | 1 | 1
$0200011 | $FFFFFFFF | Series Number | VR_IS | 1 | 1 | 1
$0200012 | $FFFFFFFF | Acquisition Number | VR_IS | 1 | 1 | 1
$0200013 | $FFFFFFFF | Image Number | VR_IS | 1 | 1 | 1
$0200014 | $FFFFFFFF | Isotope Number (Retired) | VR_IS | 1 | 1 | 1
$0200015 | $FFFFFFFF | Phase Number (Retired) | VR_IS | 1 | 1 | 1
$0200016 | $FFFFFFFF | Interval Number (Retired) | VR_IS | 1 | 1 | 1
$0200017 | $FFFFFFFF | Time Slot Number (Retired) | VR_IS | 1 | 1 | 1
$0200018 | $FFFFFFFF | Angle Number (Retired) | VR_IS | 1 | 1 | 1
$0200020 | $FFFFFFFF | Patient Orientation | VR_CS | 2 | 2 | 1
$0200022 | $FFFFFFFF | Overlay Number | VR_IS | 1 | 1 | 1
$0200024 | $FFFFFFFF | Curve Number | VR_IS | 1 | 1 | 1
$0200026 | $FFFFFFFF | Lookup Table Number | VR_IS | 1 | 1 | 1
$0200032 | $FFFFFFFF | Image Position (Patient) | VR_DS | 3 | 3 | 1
$0200037 | $FFFFFFFF | Image Orientation (Patient) | VR_DS | 6 | 6 | 1
$0200052 | $FFFFFFFF | Frame of Reference UID | VR_UI | 1 | 1 | 1
$0200060 | $FFFFFFFF | Laterality | VR_CS | 1 | 1 | 1
$0200100 | $FFFFFFFF | Temporal Position Identifier | VR_IS | 1 | 1 | 1
$0200105 | $FFFFFFFF | Number of Temporal Positions | VR_IS | 1 | 1 | 1
$0200110 | $FFFFFFFF | Temporal Resolution | VR_DS | 1 | 1 | 1
$0201000 | $FFFFFFFF | Series in Study | VR_IS | 1 | 1 | 1
$0201002 | $FFFFFFFF | Images in Acquisition | VR_IS | 1 | 1 | 1
$0201004 | $FFFFFFFF | Acquisitions in Study | VR_IS | 1 | 1 | 1
$0201040 | $FFFFFFFF | Position Reference Indicator | VR_LO | 1 | 1 | 1
$0201041 | $FFFFFFFF | Slice Location | VR_DS | 1 | 1 | 1
$0201070 | $FFFFFFFF | Other Study Numbers | VR_IS | 1 | -1 | 1ustright
$0201200 | $FFFFFFFF | Number of Patient Related Studies | VR_IS | 1 | 1 | 1
$0201202 | $FFFFFFFF | Number of Patient Related Series | VR_IS | 1 | 1 | 1
$0201204 | $FFFFFFFF | Number of Patient Related Images | VR_IS | 1 | 1 | 1
$0201206 | $FFFFFFFF | Number of Study Related Series | VR_IS | 1 | 1 | 1
$0201208 | $FFFFFFFF | Number of Study Related Images | VR_IS | 1 | 1 | 1
$0201209 | $FFFFFFFF | Number of Series Related Images | VR_IS | 1 | 1 | 1
$0204000 | $FFFFFFFF | Image Comments | VR_LT | 1 | 1 | 1
$0280002 | $FFFFFFFF | Samples per Pixel | VR_US | 1 | 1 | 1
$0280004 | $FFFFFFFF | Photometric Interpretation | VR_CS | 1 | 1 | 1
$0280006 | $FFFFFFFF | Planar Configuration | VR_US | 1 | 1 | 1
$0280008 | $FFFFFFFF | Number of Frames | VR_IS | 1 | 1 | 1
$0280009 | $FFFFFFFF | Frame Increment Pointer | VR_AT | 1 | -1 | 1
$0280010 | $FFFFFFFF | Rows | VR_US | 1 | 1 | 1
$0280011 | $FFFFFFFF | Columns | VR_US | 1 | 1 | 1
$0280012 | $FFFFFFFF | Planes | VR_US | 1 | 1 | 1
$0280014 | $FFFFFFFF | Ultrasound Color Data Present | VR_US | 1 | 1 | 1
$0280030 | $FFFFFFFF | Pixel Spacing | VR_DS | 2 | 2 | 1
$0280031 | $FFFFFFFF | Zoom Factor | VR_DS | 2 | 2 | 1
$0280032 | $FFFFFFFF | Zoom Center | VR_DS | 2 | 2 | 1
$0280034 | $FFFFFFFF | Pixel Aspect Ratio | VR_IS | 2 | 2 | 1
$0280051 | $FFFFFFFF | Corrected Image | VR_CS | 1 | -1 | 1
$0280100 | $FFFFFFFF | Bits Allocated | VR_US | 1 | 1 | 1
$0280101 | $FFFFFFFF | Bits Stored | VR_US | 1 | 1 | 1
$0280102 | $FFFFFFFF | High Bit | VR_US | 1 | 1 | 1
$0280103 | $FFFFFFFF | Pixel Representation | VR_US | 1 | 1 | 1
$0280106 | $FFFFFFFF | Smallest Image Pixel Value | VR_US | 1 | 1 | 1
$0280107 | $FFFFFFFF | Largest Image Pixel Value | VR_US | 1 | 1 | 1
$0280108 | $FFFFFFFF | Smallest Pixel Value in Series | VR_US | 1 | 1 | 1
$0280109 | $FFFFFFFF | Largest Pixel Value in Series | VR_US | 1 | 1 | 1
$0280110 | $FFFFFFFF | Smallest Image Pixel Value in Plane | VR_US | 1 | 1 | 1
$0280111 | $FFFFFFFF | Largest Image Pixel Value in Plane | VR_US | 1 | 1 | 1
$0280120 | $FFFFFFFF | Pixel Padding Value | VR_US | 1 | 1 | 1
$0281040 | $FFFFFFFF | Pixel Intensity Relationship | VR_CS | 1 | 1 | 1
$0281050 | $FFFFFFFF | Window Center | VR_DS | 1 | -1 | 1
$0281051 | $FFFFFFFF | Window Width | VR_DS | 1 | -1 | 1
$0281052 | $FFFFFFFF | Rescale Intercept | VR_DS | 1 | 1 | 1
$0281053 | $FFFFFFFF | Rescale Slope | VR_DS | 1 | 1 | 1
$0281054 | $FFFFFFFF | Rescale Type | VR_LO | 1 | 1 | 1
$0281055 | $FFFFFFFF | Window Center & Width Explanation | VR_LO | 1 | -1 | 1
$0281090 | $FFFFFFFF | Recommended Viewing Mode | VR_CS | 1 | 1 | 1
$0281101 | $FFFFFFFF | Red Palette Color Lookup Table Descriptor | VR_US | 3 | 3 | 1
$0281102 | $FFFFFFFF | Green Palette Color Lookup Table Descriptor | VR_US | 3 | 3 | 1
$0281103 | $FFFFFFFF | Blue Palette Color Lookup Table Descriptor | VR_US | 3 | 3 | 1
$0281199 | $FFFFFFFF | Palette Color Lookup Table UID | VR_UI | 1 | 1 | 1
$0281201 | $FFFFFFFF | Red Palette Color Lookup Table Data | VR_US | 1 | -1 | 1
$0281202 | $FFFFFFFF | Green Palette Color Lookup Table Data | VR_US | 1 | -1 | 1
$0281203 | $FFFFFFFF | Blue Palette Color Lookup Table Data | VR_US | 1 | -1 | 1
$0281221 | $FFFFFFFF | Segmented Red Palette Color Lookup Table Data | VR_OW | 1 | 1 | 1
$0281222 | $FFFFFFFF | Segmented Green Palette Color Lookup Table Data | VR_OW | 1 | 1 | 1
$0281223 | $FFFFFFFF | Segmented Blue Palette Color Lookup Table Data | VR_OW | 1 | 1 | 1
$0282110 | $FFFFFFFF | Lossy Image Compression | VR_CS | 1 | 1 | 1
$0283000 | $FFFFFFFF | Modality LUT Sequence | VR_SQ | 1 | 1 | 1
$0283002 | $FFFFFFFF | LUT Descriptor | VR_US | 3 | 3 | 1
$0283003 | $FFFFFFFF | LUT Explanation | VR_LO | 1 | 1 | 1
$0283004 | $FFFFFFFF | Modality LUT Type | VR_LO | 1 | 1 | 1
$0283006 | $FFFFFFFF | LUT Data | VR_US | 1 | -1 | 1
$0283010 | $FFFFFFFF | VOI LUT Sequence | VR_SQ | 1 | 1 | 1
$0285000 | $FFFFFFFF | Bi-Plane Acquisition Sequence | VR_SQ | 1 | 1 | 1
$0286010 | $FFFFFFFF | Representative Frame Number | VR_US | 1 | 1 | 1
$0286020 | $FFFFFFFF | Frame Numbers of Interest (FOI) | VR_US | 1 | -1 | 1
$0286022 | $FFFFFFFF | Frame(s) of Interest Description | VR_LO | 1 | -1 | 1
$0286030 | $FFFFFFFF | Mask Pointer(s) | VR_US | 1 | -1 | 1
$0286040 | $FFFFFFFF | R Wave Pointer | VR_US | 1 | -1 | 1
$0286100 | $FFFFFFFF | Mask Subtraction Sequence | VR_SQ | 1 | 1 | 1
$0286101 | $FFFFFFFF | Mask Operation | VR_CS | 1 | 1 | 1
$0286102 | $FFFFFFFF | Applicable Frame Range | VR_US | 2 | -1 | 2
$0286110 | $FFFFFFFF | Mask Frame Numbers | VR_US | 1 | -1 | 1
$0286112 | $FFFFFFFF | Contrast Frame Averaging | VR_US | 1 | 1 | 1
$0286114 | $FFFFFFFF | Mask Sub-pixel Shift | VR_FL | 2 | 2 | 1
$0286120 | $FFFFFFFF | TID Offset | VR_SS | 1 | 1 | 1
$0286190 | $FFFFFFFF | Mask Operation Explanation | VR_ST | 1 | 1 | 1
$032000A | $FFFFFFFF | Study Status ID | VR_CS | 1 | 1 | 1
$032000C | $FFFFFFFF | Study Priority ID | VR_CS | 1 | 1 | 1
$0320012 | $FFFFFFFF | Study ID Issuer | VR_LO | 1 | 1 | 1
$0320032 | $FFFFFFFF | Study Verified Date | VR_DA | 1 | 1 | 1
$0320033 | $FFFFFFFF | Study Verified Time | VR_TM | 1 | 1 | 1
$0320034 | $FFFFFFFF | Study Read Date | VR_DA | 1 | 1 | 1
$0320035 | $FFFFFFFF | Study Read Time | VR_TM | 1 | 1 | 1
$0321000 | $FFFFFFFF | Scheduled Study Start Date | VR_DA | 1 | 1 | 1
$0321001 | $FFFFFFFF | Scheduled Study Start Time | VR_TM | 1 | 1 | 1
$0321010 | $FFFFFFFF | Scheduled Study Stop Date | VR_DA | 1 | 1 | 1
$0321011 | $FFFFFFFF | Scheduled Study Stop Time | VR_TM | 1 | 1 | 1
$0321020 | $FFFFFFFF | Scheduled Study Location | VR_LO | 1 | 1 | 1
$0321021 | $FFFFFFFF | Scheduled Study Location AE Title(s) | VR_AE | 1 | -1 | 1
$0321030 | $FFFFFFFF | Reason for Study | VR_LO | 1 | 1 | 1
$0321032 | $FFFFFFFF | Requesting Physician | VR_PN | 1 | 1 | 1
$0321033 | $FFFFFFFF | Requesting Service | VR_LO | 1 | 1 | 1
$0321040 | $FFFFFFFF | Study Arrival Date | VR_DA | 1 | 1 | 1
$0321041 | $FFFFFFFF | Study Arrival Time | VR_TM | 1 | 1 | 1
$0321050 | $FFFFFFFF | Study Completion Date | VR_DA | 1 | 1 | 1
$0321051 | $FFFFFFFF | Study Completion Time | VR_TM | 1 | 1 | 1
$0321055 | $FFFFFFFF | Study Component Status ID | VR_CS | 1 | 1 | 1
$0321060 | $FFFFFFFF | Requested Procedure Description | VR_LO | 1 | 1 | 1
$0321064 | $FFFFFFFF | Requested Procedure Code Sequence | VR_SQ | 1 | 1 | 1
$0321070 | $FFFFFFFF | Requested Contrast Agent | VR_LO | 1 | 1 | 1
$0324000 | $FFFFFFFF | Study Comments | VR_LT | 1 | 1 | 1
$0380004 | $FFFFFFFF | Referenced Patient Alias Sequence | VR_SQ | 1 | 1 | 1
$0380008 | $FFFFFFFF | Visit Status ID | VR_CS | 1 | 1 | 1
$0380010 | $FFFFFFFF | Admission ID | VR_LO | 1 | 1 | 1
$0380011 | $FFFFFFFF | Issuer of Admission ID | VR_LO | 1 | 1 | 1
$0380016 | $FFFFFFFF | Route of Admissions | VR_LO | 1 | 1 | 1
$038001A | $FFFFFFFF | Scheduled Admission Date | VR_DA | 1 | 1 | 1
$038001B | $FFFFFFFF | Scheduled Admission Time | VR_TM | 1 | 1 | 1
$038001C | $FFFFFFFF | Scheduled Discharge Date | VR_DA | 1 | 1 | 1
$038001D | $FFFFFFFF | Scheduled Discharge Time | VR_TM | 1 | 1 | 1
$038001E | $FFFFFFFF | Scheduled Patient Institution Residence | VR_LO | 1 | 1 | 1
$0380020 | $FFFFFFFF | Admitting Date | VR_DA | 1 | 1 | 1
$0380021 | $FFFFFFFF | Admitting Time | VR_TM | 1 | 1 | 1
$0380030 | $FFFFFFFF | Discharge Date | VR_DA | 1 | 1 | 1
$0380032 | $FFFFFFFF | Discharge Time | VR_TM | 1 | 1 | 1
$0380040 | $FFFFFFFF | Discharge Diagnosis Description | VR_LO | 1 | 1 | 1
$0380044 | $FFFFFFFF | Discharge Diagnosis Code Sequence | VR_SQ | 1 | 1 | 1
$0380050 | $FFFFFFFF | Special Needs | VR_LO | 1 | 1 | 1
$0380300 | $FFFFFFFF | Current Patient Location | VR_LO | 1 | 1 | 1
$0380400 | $FFFFFFFF | Patient's Institution Residence | VR_LO | 1 | 1 | 1
$0380500 | $FFFFFFFF | Patient State | VR_LO | 1 | 1 | 1
$0384000 | $FFFFFFFF | Visit Comments | VR_LT | 1 | 1 | 1
$0400001 | $FFFFFFFF | Scheduled Station AE Title | VR_AE | 1 | -1 | 1
$0400002 | $FFFFFFFF | Scheduled Procedure Step Start Date | VR_DA | 1 | 1 | 1
$0400003 | $FFFFFFFF | Scheduled Procedure Step Start Time | VR_TM | 1 | 1 | 1
$0400004 | $FFFFFFFF | Scheduled Procedure Step End Date | VR_DA | 1 | 1 | 1
$0400005 | $FFFFFFFF | Scheduled Procedure Step End Time | VR_TM | 1 | 1 | 1
$0400006 | $FFFFFFFF | Scheduled Performing Physician's Name | VR_PN | 1 | 1 | 1
$0400007 | $FFFFFFFF | Scheduled Procedure Step Description | VR_LO | 1 | 1 | 1
$0400008 | $FFFFFFFF | Scheduled Action Item Code Sequence | VR_SQ | 1 | 1 | 1
$0400009 | $FFFFFFFF | Scheduled Procedure Step ID | VR_SH | 1 | 1 | 1
$0400010 | $FFFFFFFF | Scheduled Station Name | VR_SH | 1 | -1 | 1
$0400011 | $FFFFFFFF | Scheduled Procedure Step Location | VR_SH | 1 | 1 | 1
$0400012 | $FFFFFFFF | Pre-Medication | VR_LO | 1 | 1 | 1
$0400020 | $FFFFFFFF | Scheduled Procedure Step Status | VR_CS | 1 | 1 | 1
$0400100 | $FFFFFFFF | Scheduled Procedure Step Sequence | VR_SQ | 1 | 1 | 1
$0400220 | $FFFFFFFF | Referenced Standalone SOP Instance Sequence | VR_SQ | 1 | 1 | 1
$0400241 | $FFFFFFFF | Performed Station AE Title | VR_AE | 1 | 1 | 1
$0400242 | $FFFFFFFF | Performed Station Name | VR_SH | 1 | 1 | 1
$0400243 | $FFFFFFFF | Performed Location | VR_SH | 1 | 1 | 1
$0400244 | $FFFFFFFF | Performed Procedure Step Start Date | VR_DA | 1 | 1 | 1
$0400245 | $FFFFFFFF | Performed Procedure Step Start Time | VR_TM | 1 | 1 | 1
$0400250 | $FFFFFFFF | Performed Procedure Step End Date | VR_DA | 1 | 1 | 1
$0400251 | $FFFFFFFF | Performed Procedure Step End Time | VR_TM | 1 | 1 | 1
$0400252 | $FFFFFFFF | Performed Procedure Step Status | VR_CS | 1 | 1 | 1
$0400253 | $FFFFFFFF | Performed Procedure Step ID | VR_CS | 1 | 1 | 1
$0400254 | $FFFFFFFF | Performed Procedure Step Description | VR_LO | 1 | 1 | 1
$0400255 | $FFFFFFFF | Performed Procedure Type Description | VR_LO | 1 | 1 | 1
$0400260 | $FFFFFFFF | Performed Action Item Sequence | VR_SQ | 1 | 1 | 1
$0400270 | $FFFFFFFF | Scheduled Step Attributes Sequence | VR_SQ | 1 | 1 | 1
$0400275 | $FFFFFFFF | Request Attributes Sequence | VR_SQ | 1 | 1 | 1
$0400280 | $FFFFFFFF | Comments on the Performed Procedure Steps | VR_ST | 1 | 1 | 1
$0400293 | $FFFFFFFF | Quantity Sequence | VR_SQ | 1 | 1 | 1
$0400294 | $FFFFFFFF | Quantity | VR_DS | 1 | 1 | 1
$0400295 | $FFFFFFFF | Measuring Units Sequence | VR_SQ | 1 | 1 | 1
$0400296 | $FFFFFFFF | Billing Item Sequence | VR_SQ | 1 | 1 | 1
$0400300 | $FFFFFFFF | Total Time of Fluoroscopy | VR_US | 1 | 1 | 1
$0400301 | $FFFFFFFF | Total Number of Exposures | VR_US | 1 | 1 | 1
$0400302 | $FFFFFFFF | Entrance Dose | VR_US | 1 | 1 | 1
$0400303 | $FFFFFFFF | Exposed Area | VR_US | 1 | 2 | 1
$0400306 | $FFFFFFFF | Distance Source to Entrance | VR_DS | 1 | 1 | 1
$0400310 | $FFFFFFFF | Comments on Radiation Dose | VR_ST | 1 | 1 | 1
$0400320 | $FFFFFFFF | Billing Procedure Step Sequence | VR_SQ | 1 | 1 | 1
$0400321 | $FFFFFFFF | Film Consumption Sequence | VR_SQ | 1 | 1 | 1
$0400324 | $FFFFFFFF | Billing Supplies and Devices Sequence | VR_SQ | 1 | 1 | 1
$0400330 | $FFFFFFFF | Referenced Procedure Step Sequence | VR_SQ | 1 | 1 | 1
$0400340 | $FFFFFFFF | Performed Series Sequence | VR_SQ | 1 | 1 | 1
$0400400 | $FFFFFFFF | Comments on the Scheduled Procedure Step | VR_LT | 1 | 1 | 1
$0401001 | $FFFFFFFF | Requested Procedure ID | VR_SH | 1 | 1 | 1
$0401002 | $FFFFFFFF | Reason for the Requested Procedure | VR_LO | 1 | 1 | 1
$0401003 | $FFFFFFFF | Requested Procedure Priority | VR_SH | 1 | 1 | 1
$0401004 | $FFFFFFFF | Patient Transport Arrangements | VR_LO | 1 | 1 | 1
$0401005 | $FFFFFFFF | Requested Procedure Location | VR_LO | 1 | 1 | 1
$0401006 | $FFFFFFFF | Placer Order Number / Procedure | VR_SH | 1 | 1 | 1
$0401007 | $FFFFFFFF | Filler Order Number / Procedure | VR_SH | 1 | 1 | 1
$0401008 | $FFFFFFFF | Confidentiality Code | VR_LO | 1 | 1 | 1
$0401009 | $FFFFFFFF | Reporting Priority | VR_SH | 1 | 1 | 1
$0401010 | $FFFFFFFF | Names of Intended Recipients of Results | VR_PN | 1 | -1 | 1
$0401400 | $FFFFFFFF | Requested Procedure Comments | VR_LT | 1 | 1 | 1
$0402001 | $FFFFFFFF | Reason for the Imaging Service Request | VR_LO | 1 | 1 | 1
$0402004 | $FFFFFFFF | Issue Date of Imaging Service Request | VR_DA | 1 | 1 | 1
$0402005 | $FFFFFFFF | Issue Time of Imaging Service Request | VR_TM | 1 | 1 | 1
$0402006 | $FFFFFFFF | Placer Order Number / Imaging Service Request | VR_SH | 1 | 1 | 1
$0402007 | $FFFFFFFF | Filler Order Number / Imaging Service Request | VR_SH | 1 | 1 | 1
$0402008 | $FFFFFFFF | Order Entered By | VR_PN | 1 | 1 | 1
$0402009 | $FFFFFFFF | Order Enterer's Location | VR_SH | 1 | 1 | 1
$0402010 | $FFFFFFFF | Order Callback Phone Number | VR_SH | 1 | 1 | 1
$0402400 | $FFFFFFFF | Imaging Service Request Comments | VR_LT | 1 | 1 | 1
$0403001 | $FFFFFFFF | Confidentiality Constraint on Patient Data Description | VR_LO | 1 | 1 | 1
$0500004 | $FFFFFFFF | Calibration Image | VR_CS | 1 | 1 | 1
$0500010 | $FFFFFFFF | Device Sequence | VR_SQ | 1 | 1 | 1
$0500014 | $FFFFFFFF | Device Length | VR_DS | 1 | 1 | 1
$0500016 | $FFFFFFFF | Device Diameter | VR_DS | 1 | 1 | 1
$0500017 | $FFFFFFFF | Device Diameter Units | VR_CS | 1 | 1 | 1
$0500018 | $FFFFFFFF | Device Volume | VR_DS | 1 | 1 | 1
$0500019 | $FFFFFFFF | Inter-marker Distance | VR_DS | 1 | 1 | 1
$0500020 | $FFFFFFFF | Device Description | VR_LO | 1 | 1 | 1
$0540010 | $FFFFFFFF | Energy Window Vector | VR_US | 1 | -1 | 1
$0540011 | $FFFFFFFF | Number of Energy Windows | VR_US | 1 | 1 | 1
$0540012 | $FFFFFFFF | Energy Window Information Sequence | VR_SQ | 1 | 1 | 1
$0540013 | $FFFFFFFF | Energy Window Range Sequence | VR_SQ | 1 | 1 | 1
$0540014 | $FFFFFFFF | Energy Window Lower Limit | VR_DS | 1 | 1 | 1
$0540015 | $FFFFFFFF | Energy Window Upper Limit | VR_DS | 1 | 1 | 1
$0540016 | $FFFFFFFF | Radiopharmaceutical Information Sequence | VR_SQ | 1 | 1 | 1
$0540017 | $FFFFFFFF | Residual Syringe Counts | VR_IS | 1 | 1 | 1
$0540018 | $FFFFFFFF | Energy Window Name | VR_SH | 1 | 1 | 1
$0540020 | $FFFFFFFF | Detector Vector | VR_US | 1 | -1 | 1
$0540021 | $FFFFFFFF | Number of Detectors | VR_US | 1 | 1 | 1
$0540022 | $FFFFFFFF | Detector Information Sequence | VR_SQ | 1 | 1 | 1
$0540030 | $FFFFFFFF | Phase Vector | VR_US | 1 | -1 | 1
$0540031 | $FFFFFFFF | Number of Phases | VR_US | 1 | 1 | 1
$0540032 | $FFFFFFFF | Phase Information Sequence | VR_SQ | 1 | 1 | 1
$0540033 | $FFFFFFFF | Number of Frames in Phase | VR_US | 1 | 1 | 1
$0540036 | $FFFFFFFF | Phase Delay | VR_IS | 1 | 1 | 1
$0540038 | $FFFFFFFF | Pause Between Frames | VR_IS | 1 | 1 | 1
$0540050 | $FFFFFFFF | Rotation Vector | VR_US | 1 | -1 | 1
$0540051 | $FFFFFFFF | Number of Rotations | VR_US | 1 | 1 | 1
$0540052 | $FFFFFFFF | Rotation Information Sequence | VR_SQ | 1 | 1 | 1
$0540053 | $FFFFFFFF | Number of Frames in Rotation | VR_US | 1 | 1 | 1
$0540060 | $FFFFFFFF | R-R Interval Vector | VR_US | 1 | -1 | 1
$0540061 | $FFFFFFFF | Number of R-R Intervals | VR_US | 1 | 1 | 1
$0540062 | $FFFFFFFF | Gated Information Sequence | VR_SQ | 1 | 1 | 1
$0540063 | $FFFFFFFF | Data Information Sequence | VR_SQ | 1 | 1 | 1
$0540070 | $FFFFFFFF | Time Slot Vector | VR_US | 1 | -1 | 1
$0540071 | $FFFFFFFF | Number of Time Slots | VR_US | 1 | 1 | 1
$0540072 | $FFFFFFFF | Time Slot Information Sequence | VR_SQ | 1 | 1 | 1
$0540073 | $FFFFFFFF | Time Slot Time | VR_DS | 1 | 1 | 1
$0540080 | $FFFFFFFF | Slice Vector | VR_US | 1 | -1 | 1
$0540081 | $FFFFFFFF | Number of Slices | VR_US | 1 | 1 | 1
$0540090 | $FFFFFFFF | Angular View Vector | VR_US | 1 | -1 | 1
$0540100 | $FFFFFFFF | Time Slice Vector | VR_US | 1 | -1 | 1
$0540101 | $FFFFFFFF | Number of Time Slices | VR_US | 1 | 1 | 1
$0540200 | $FFFFFFFF | Start Angle | VR_DS | 1 | 1 | 1
$0540202 | $FFFFFFFF | Type of Detector Motion | VR_CS | 1 | 1 | 1
$0540210 | $FFFFFFFF | Trigger Vector | VR_IS | 1 | -1 | 1
$0540211 | $FFFFFFFF | Number of Triggers in Phase | VR_US | 1 | 1 | 1
$0540220 | $FFFFFFFF | View Code Sequence | VR_SQ | 1 | 1 | 1
$0540222 | $FFFFFFFF | View Angulation Modifier Code Sequence | VR_SQ | 1 | 1 | 1
$0540300 | $FFFFFFFF | Radionuclide Code Sequence | VR_SQ | 1 | 1 | 1
$0540302 | $FFFFFFFF | Administration Route Code Sequence | VR_SQ | 1 | 1 | 1
$0540304 | $FFFFFFFF | Radiopharmaceutical Code Sequence | VR_SQ | 1 | 1 | 1
$0540306 | $FFFFFFFF | Calibration Data Sequence | VR_SQ | 1 | 1 | 1
$0540308 | $FFFFFFFF | Energy Window Number | VR_US | 1 | 1 | 1
$0540400 | $FFFFFFFF | Image ID | VR_SH | 1 | 1 | 1
$0540410 | $FFFFFFFF | Patient Orientation Code Sequence | VR_SQ | 1 | 1 | 1
$0540412 | $FFFFFFFF | Patient Orientation Modifier Code Sequence | VR_SQ | 1 | 1 | 1
$0540414 | $FFFFFFFF | Patient Gantry Relationship Code Sequence | VR_SQ | 1 | 1 | 1
$0541000 | $FFFFFFFF | Series Type | VR_CS | 2 | 2 | 1
$0541001 | $FFFFFFFF | Units | VR_CS | 1 | 1 | 1
$0541002 | $FFFFFFFF | Counts Source | VR_CS | 1 | 1 | 1
$0541004 | $FFFFFFFF | Reprojection Method | VR_CS | 1 | 1 | 1
$0541100 | $FFFFFFFF | Randoms Correction Method | VR_CS | 1 | 1 | 1
$0541101 | $FFFFFFFF | Attenuation Correction Method | VR_LO | 1 | 1 | 1
$0541102 | $FFFFFFFF | Decay Correction | VR_CS | 1 | 1 | 1
$0541103 | $FFFFFFFF | Reconstruction Method | VR_LO | 1 | 1 | 1
$0541104 | $FFFFFFFF | Detector Lines of Response Used | VR_LO | 1 | 1 | 1
$0541105 | $FFFFFFFF | Scatter Correction Method | VR_LO | 1 | 1 | 1
$0541200 | $FFFFFFFF | Axial Acceptance | VR_DS | 1 | 1 | 1
$0541201 | $FFFFFFFF | Axial Mash | VR_IS | 2 | 2 | 1
$0541202 | $FFFFFFFF | Transverse Mash | VR_IS | 1 | 1 | 1
$0541203 | $FFFFFFFF | Detector Element Size | VR_DS | 2 | 2 | 1
$0541210 | $FFFFFFFF | Coincidence Window Width | VR_DS | 1 | 1 | 1
$0541220 | $FFFFFFFF | Secondary Counts Type | VR_CS | 1 | -1 | 1
$0541300 | $FFFFFFFF | Frame Reference Time | VR_DS | 1 | 1 | 1
$0541310 | $FFFFFFFF | Primary (Prompts) Counts Accumulated | VR_IS | 1 | 1 | 1
$0541311 | $FFFFFFFF | Secondary Counts Accumulated | VR_IS | 1 | -1 | 1
$0541320 | $FFFFFFFF | Slice Sensitivity Factor | VR_DS | 1 | 1 | 1
$0541321 | $FFFFFFFF | Decay Factor | VR_DS | 1 | 1 | 1
$0541322 | $FFFFFFFF | Dose Calibration Factor | VR_DS | 1 | 1 | 1
$0541323 | $FFFFFFFF | Scatter Fraction Factor | VR_DS | 1 | 1 | 1
$0541324 | $FFFFFFFF | Dead Time Factor | VR_DS | 1 | 1 | 1
$0541330 | $FFFFFFFF | Image Index | VR_US | 1 | 1 | 1
$0541400 | $FFFFFFFF | Counts Included | VR_CS | 1 | -1 | 1
$0541401 | $FFFFFFFF | Dead Time Correction Flag | VR_CS | 1 | 1 | 1
$0880130 | $FFFFFFFF | Storage Media File-set ID | VR_SH | 1 | 1 | 1
$0880140 | $FFFFFFFF | Storage Media File-set UID | VR_UI | 1 | 1 | 1
$0880200 | $FFFFFFFF | Icon Image Sequence | VR_SQ | 1 | 1 | 1
$0880904 | $FFFFFFFF | Topic Title | VR_LO | 1 | 1 | 1
$0880906 | $FFFFFFFF | Topic Subject | VR_ST | 1 | 1 | 1
$0880910 | $FFFFFFFF | Topic Author | VR_LO | 1 | 1 | 1
$0880912 | $FFFFFFFF | Topic Key Words | VR_LO | 1 | 32 | 1
$0000010 | $FFFFFFFF | Number of Copies | VR_IS | 1 | 1 | 1
$0000020 | $FFFFFFFF | Print Priority | VR_CS | 1 | 1 | 1
$0000030 | $FFFFFFFF | Medium Type | VR_CS | 1 | 1 | 1
$0000040 | $FFFFFFFF | Film Destination | VR_CS | 1 | 1 | 1
$0000050 | $FFFFFFFF | Film Session Label | VR_LO | 1 | 1 | 1
$0000060 | $FFFFFFFF | Memory Allocation | VR_IS | 1 | 1 | 1
$0000062 | $FFFFFFFF | Color Image Printing Flag | VR_CS | 1 | 1 | 1
$0000063 | $FFFFFFFF | Collation Flag | VR_CS | 1 | 1 | 1
$0000065 | $FFFFFFFF | Annotation Flag | VR_CS | 1 | 1 | 1
$0000067 | $FFFFFFFF | Image Overlay Flag | VR_CS | 1 | 1 | 1
$0000069 | $FFFFFFFF | Presentation LUT Flag | VR_CS | 1 | 1 | 1
$000006A | $FFFFFFFF | Image Box Presentation LUT Flag | VR_CS | 1 | 1 | 1
$0000500 | $FFFFFFFF | Referenced Film Box Sequence | VR_SQ | 1 | 1 | 1
$0000510 | $FFFFFFFF | Referenced Stored Print Sequence | VR_SQ | 1 | 1 | 1
$0100010 | $FFFFFFFF | Image Display Format | VR_ST | 1 | 1 | 1
$0100030 | $FFFFFFFF | Annotation Display Format ID | VR_CS | 1 | 1 | 1
$0100040 | $FFFFFFFF | Film Orientation | VR_CS | 1 | 1 | 1
$0100050 | $FFFFFFFF | Film Size ID | VR_CS | 1 | 1 | 1
$0100060 | $FFFFFFFF | Magnification Type | VR_CS | 1 | 1 | 1
$0100080 | $FFFFFFFF | Smoothing Type | VR_CS | 1 | 1 | 1
$0100100 | $FFFFFFFF | Border Density | VR_CS | 1 | 1 | 1
$0100110 | $FFFFFFFF | Empty Image Density | VR_CS | 1 | 1 | 1
$0100120 | $FFFFFFFF | Min Density | VR_US | 1 | 1 | 1
$0100130 | $FFFFFFFF | Max Density | VR_US | 1 | 1 | 1
$0100140 | $FFFFFFFF | Trim | VR_CS | 1 | 1 | 1
$0100150 | $FFFFFFFF | Configuration Information | VR_ST | 1 | 1 | 1
$010015E | $FFFFFFFF | Illumination | VR_US | 1 | 1 | 1
$0100160 | $FFFFFFFF | Reflected Ambient Light | VR_US | 1 | 1 | 1
$0100500 | $FFFFFFFF | Referenced Film Session Sequence | VR_SQ | 1 | 1 | 1
$0100510 | $FFFFFFFF | Referenced Image Box Sequence | VR_SQ | 1 | 1 | 1
$0100520 | $FFFFFFFF | Referenced Basic Annotation Box Sequence | VR_SQ | 1 | 1 | 1
$0200010 | $FFFFFFFF | Image Position | VR_US | 1 | 1 | 1
$0200020 | $FFFFFFFF | Polarity | VR_CS | 1 | 1 | 1
$0200030 | $FFFFFFFF | Requested Image Size | VR_DS | 1 | 1 | 1
$0200110 | $FFFFFFFF | Basic Grayscale Image Sequence | VR_SQ | 1 | 1 | 1
$0200111 | $FFFFFFFF | Basic Color Image Sequence | VR_SQ | 1 | 1 | 1
$0200130 | $FFFFFFFF | Referenced Image Overlay Box Sequence | VR_SQ | 1 | 1 | 1
$0200140 | $FFFFFFFF | Referenced VOI LUT Box Sequence | VR_SQ | 1 | 1 | 1
$0300010 | $FFFFFFFF | Annotation Position | VR_US | 1 | 1 | 1
$0300020 | $FFFFFFFF | Text String | VR_LO | 1 | 1 | 1
$0400010 | $FFFFFFFF | Referenced Overlay Plane Sequence | VR_SQ | 1 | 1 | 1
$0400011 | $FFFFFFFF | Referenced Overlay Plane Groups | VR_US | 1 | 99 | 1
$0400060 | $FFFFFFFF | Overlay Magnification Type | VR_CS | 1 | 1 | 1
$0400070 | $FFFFFFFF | Overlay Smoothing Type | VR_CS | 1 | 1 | 1
$0400080 | $FFFFFFFF | Overlay Foreground Density | VR_CS | 1 | 1 | 1
$0400090 | $FFFFFFFF | Overlay Mode | VR_CS | 1 | 1 | 1
$0400100 | $FFFFFFFF | Threshold Density | VR_CS | 1 | 1 | 1
$0400500 | $FFFFFFFF | Referenced Image Box Sequence (Retired) | VR_SQ | 1 | 1 | 1
$0500010 | $FFFFFFFF | Presentation LUT Sequence | VR_SQ | 1 | 1 | 1
$0500020 | $FFFFFFFF | Presentation LUT Shape | VR_CS | 1 | 1 | 1
$0500500 | $FFFFFFFF | Referenced Presentation LUT Sequence | VR_SQ | 1 | 1 | 1
$1000010 | $FFFFFFFF | Print Job ID | VR_SH | 1 | 1 | 1
$1000020 | $FFFFFFFF | Execution Status | VR_CS | 1 | 1 | 1
$1000030 | $FFFFFFFF | Execution Status Info | VR_CS | 1 | 1 | 1
$1000040 | $FFFFFFFF | Creation Date | VR_DA | 1 | 1 | 1
$1000050 | $FFFFFFFF | Creation Time | VR_TM | 1 | 1 | 1
$1000070 | $FFFFFFFF | Originator | VR_AE | 1 | 1 | 1
$1000140 | $FFFFFFFF | Destination AE | VR_AE | 1 | 1 | 1
$1000160 | $FFFFFFFF | Owner ID | VR_SH | 1 | 1 | 1
$1000170 | $FFFFFFFF | Number of Films | VR_IS | 1 | 1 | 1
$1000500 | $FFFFFFFF | Referenced Print Job Sequence | VR_SQ | 1 | 1 | 1
$1100010 | $FFFFFFFF | Printer Status | VR_CS | 1 | 1 | 1
$1100020 | $FFFFFFFF | Printer Status Info | VR_CS | 1 | 1 | 1
$1100030 | $FFFFFFFF | Printer Name | VR_LO | 1 | 1 | 1
$1100099 | $FFFFFFFF | Print Queue ID | VR_SH | 1 | 1 | 1
$1200010 | $FFFFFFFF | Queue Status | VR_CS | 1 | 1 | 1
$1200050 | $FFFFFFFF | Print Job Description Sequence | VR_SQ | 1 | 1 | 1
$1200070 | $FFFFFFFF | Referenced Print Job Sequence | VR_SQ | 1 | 1 | 1
$1300010 | $FFFFFFFF | Print Management Capabilities Sequence | VR_SQ | 1 | 1 | 1
$1300015 | $FFFFFFFF | Printer Characteristics Sequence | VR_SQ | 1 | 1 | 1
$1300030 | $FFFFFFFF | Film Box Content Sequence | VR_SQ | 1 | 1 | 1
$1300040 | $FFFFFFFF | Image Box Content Sequence | VR_SQ | 1 | 1 | 1
$1300050 | $FFFFFFFF | Annotation Content Sequence | VR_SQ | 1 | 1 | 1
$1300060 | $FFFFFFFF | Image Overlay Box Content Sequence | VR_SQ | 1 | 1 | 1
$1300080 | $FFFFFFFF | Presentation LUT Content Sequence | VR_SQ | 1 | 1 | 1
$13000A0 | $FFFFFFFF | Proposed Study Sequence | VR_SQ | 1 | 1 | 1
$13000C0 | $FFFFFFFF | Original Image Sequence | VR_SQ | 1 | 1 | 1
$0020002 | $FFFFFFFF | RT Image Label | VR_SH | 1 | 1 | 1
$0020003 | $FFFFFFFF | RT Image Name | VR_LO | 1 | 1 | 1
$0020004 | $FFFFFFFF | RT Image Description | VR_ST | 1 | 1 | 1
$002000A | $FFFFFFFF | Reported Values Origin | VR_CS | 1 | 1 | 1
$002000C | $FFFFFFFF | RT Image Plane | VR_CS | 1 | 1 | 1
$002000E | $FFFFFFFF | X-Ray Image Receptor Angle | VR_DS | 1 | 1 | 1
$0020010 | $FFFFFFFF | RT Image Orientation | VR_DS | 6 | 6 | 1
$0020011 | $FFFFFFFF | Image Plane Pixel Spacing | VR_DS | 2 | 2 | 1
$0020012 | $FFFFFFFF | RT Image Position | VR_DS | 2 | 2 | 1
$0020020 | $FFFFFFFF | Radiation Machine Name | VR_SH | 1 | 1 | 1
$0020022 | $FFFFFFFF | Radiation Machine SAD | VR_DS | 1 | 1 | 1
$0020024 | $FFFFFFFF | Radiation Machine SSD | VR_DS | 1 | 1 | 1
$0020026 | $FFFFFFFF | RT Image SID | VR_DS | 1 | 1 | 1
$0020028 | $FFFFFFFF | Source to Reference Object Distance | VR_DS | 1 | 1 | 1
$0020029 | $FFFFFFFF | Fraction Number | VR_IS | 1 | 1 | 1
$0020030 | $FFFFFFFF | Exposure Sequence | VR_SQ | 1 | 1 | 1
$0020032 | $FFFFFFFF | Meterset Exposure | VR_DS | 1 | 1 | 1
$0040001 | $FFFFFFFF | DVH Type | VR_CS | 1 | 1 | 1
$0040002 | $FFFFFFFF | Dose Units | VR_CS | 1 | 1 | 1
$0040004 | $FFFFFFFF | Dose Type | VR_CS | 1 | 1 | 1
$0040006 | $FFFFFFFF | Dose Comment | VR_LO | 1 | 1 | 1
$0040008 | $FFFFFFFF | Normalization Point | VR_DS | 3 | 3 | 1
$004000A | $FFFFFFFF | Dose Summation Type | VR_CS | 1 | 1 | 1
$004000C | $FFFFFFFF | Grid Frame Offset Vector | VR_DS | 2 | -1 | 1
$004000E | $FFFFFFFF | Dose Grid Scaling | VR_DS | 1 | 1 | 1
$0040010 | $FFFFFFFF | RT Dose ROI Sequence | VR_SQ | 1 | 1 | 1
$0040012 | $FFFFFFFF | Dose Value | VR_DS | 1 | 1 | 1
$0040040 | $FFFFFFFF | DVH Normalization Point | VR_DS | 3 | 3 | 1
$0040042 | $FFFFFFFF | DVH Normalization Dose Value | VR_DS | 1 | 1 | 1
$0040050 | $FFFFFFFF | DVH Sequence | VR_SQ | 1 | 1 | 1
$0040052 | $FFFFFFFF | DVH Dose Scaling | VR_DS | 1 | 1 | 1
$0040054 | $FFFFFFFF | DVH Volume Units | VR_CS | 1 | 1 | 1
$0040056 | $FFFFFFFF | DVH Number of Bins | VR_IS | 1 | 1 | 1
$0040058 | $FFFFFFFF | DVH Data | VR_DS | 2 | -1 | 2
$0040060 | $FFFFFFFF | DVH Referenced ROI Sequence | VR_SQ | 1 | 1 | 1
$0040062 | $FFFFFFFF | DVH ROI Contribution Type | VR_CS | 1 | 1 | 1
$0040070 | $FFFFFFFF | DVH Minimum Dose | VR_DS | 1 | 1 | 1
$0040072 | $FFFFFFFF | DVH Maximum Dose | VR_DS | 1 | 1 | 1
$0040074 | $FFFFFFFF | DVH Mean Dose | VR_DS | 1 | 1 | 1
$0060002 | $FFFFFFFF | Structure Set Label | VR_SH | 1 | 1 | 1
$0060004 | $FFFFFFFF | Structure Set Name | VR_LO | 1 | 1 | 1
$0060006 | $FFFFFFFF | Structure Set Description | VR_ST | 1 | 1 | 1
$0060008 | $FFFFFFFF | Structure Set Date | VR_DA | 1 | 1 | 1
$0060009 | $FFFFFFFF | Structure Set Time | VR_TM | 1 | 1 | 1
$0060010 | $FFFFFFFF | Referenced Frame of Reference Sequence | VR_SQ | 1 | 1 | 1
$0060012 | $FFFFFFFF | RT Referenced Study Sequence | VR_SQ | 1 | 1 | 1
$0060014 | $FFFFFFFF | RT Referenced Series Sequence | VR_SQ | 1 | 1 | 1
$0060016 | $FFFFFFFF | Contour Image Sequence | VR_SQ | 1 | 1 | 1
$0060020 | $FFFFFFFF | Structure Set ROI Sequence | VR_SQ | 1 | 1 | 1
$0060022 | $FFFFFFFF | ROI Number | VR_IS | 1 | 1 | 1
$0060024 | $FFFFFFFF | Referenced Frame of Reference UID | VR_UI | 1 | 1 | 1
$0060026 | $FFFFFFFF | ROI Name | VR_LO | 1 | 1 | 1
$0060028 | $FFFFFFFF | ROI Description | VR_ST | 1 | 1 | 1
$006002A | $FFFFFFFF | ROI Display Color | VR_IS | 3 | 3 | 1
$006002C | $FFFFFFFF | ROI Volume | VR_DS | 1 | 1 | 1
$0060030 | $FFFFFFFF | RT Related ROI Sequence | VR_SQ | 1 | 1 | 1
$0060033 | $FFFFFFFF | RT ROI Relationship | VR_CS | 1 | 1 | 1
$0060036 | $FFFFFFFF | ROI Generation Algorithm | VR_CS | 1 | 1 | 1
$0060038 | $FFFFFFFF | ROI Generation Description | VR_LO | 1 | 1 | 1
$0060039 | $FFFFFFFF | ROI Contour Sequence | VR_SQ | 1 | 1 | 1
$0060040 | $FFFFFFFF | Contour Sequence | VR_SQ | 1 | 1 | 1
$0060042 | $FFFFFFFF | Contour Geometric Type | VR_CS | 1 | 1 | 1
$0060044 | $FFFFFFFF | Contour Slab Thickness | VR_DS | 1 | 1 | 1
$0060045 | $FFFFFFFF | Contour Offset Vector | VR_DS | 3 | 3 | 1
$0060046 | $FFFFFFFF | Number of Contour Points | VR_IS | 1 | 1 | 1
$0060050 | $FFFFFFFF | Contour Data | VR_DS | 3 | -1 | 3
$0060080 | $FFFFFFFF | RT ROI Observations Sequence | VR_SQ | 1 | 1 | 1
$0060082 | $FFFFFFFF | Observation Number | VR_IS | 1 | 1 | 1
$0060084 | $FFFFFFFF | Referenced ROI Number | VR_IS | 1 | 1 | 1
$0060085 | $FFFFFFFF | ROI Observation Label | VR_SH | 1 | 1 | 1
$0060086 | $FFFFFFFF | RT ROI Identification Code Sequence | VR_SQ | 1 | 1 | 1
$0060088 | $FFFFFFFF | ROI Observation Description | VR_ST | 1 | 1 | 1
$00600A0 | $FFFFFFFF | Related RT ROI Observations Sequence | VR_SQ | 1 | 1 | 1
$00600A4 | $FFFFFFFF | RT ROI Interpreted Type | VR_CS | 1 | 1 | 1
$00600A6 | $FFFFFFFF | ROI Interpreter | VR_PN | 1 | 1 | 1
$00600B0 | $FFFFFFFF | ROI Physical Properties Sequence | VR_SQ | 1 | 1 | 1
$00600B2 | $FFFFFFFF | ROI Physical Property | VR_CS | 1 | 1 | 1
$00600B4 | $FFFFFFFF | ROI Physical Property Value | VR_DS | 1 | 1 | 1
$00600C0 | $FFFFFFFF | Frame of Reference Relationship Sequence | VR_SQ | 1 | 1 | 1
$00600C2 | $FFFFFFFF | Related Frame of Reference UID | VR_UI | 1 | 1 | 1
$00600C4 | $FFFFFFFF | Frame of Reference Transformation Type | VR_CS | 1 | 1 | 1
$00600C6 | $FFFFFFFF | Frame of Reference Transformation Matrix | VR_DS | 16 | 16 | 1
$00600C8 | $FFFFFFFF | Frame of Reference Transformation Comment | VR_LO | 1 | 1 | 1
$00A0002 | $FFFFFFFF | RT Plan Label | VR_SH | 1 | 1 | 1
$00A0003 | $FFFFFFFF | RT Plan Name | VR_LO | 1 | 1 | 1
$00A0004 | $FFFFFFFF | RT Plan Description | VR_ST | 1 | 1 | 1
$00A0006 | $FFFFFFFF | RT Plan Date | VR_DA | 1 | 1 | 1
$00A0007 | $FFFFFFFF | RT Plan Time | VR_TM | 1 | 1 | 1
$00A0009 | $FFFFFFFF | Treatment Protocols | VR_LO | 1 | -1 | 1
$00A000A | $FFFFFFFF | Treatment Intent | VR_CS | 1 | 1 | 1
$00A000B | $FFFFFFFF | Treatment Sites | VR_LO | 1 | -1 | 1
$00A000C | $FFFFFFFF | RT Plan Geometry | VR_CS | 1 | 1 | 1
$00A000E | $FFFFFFFF | Prescription Description | VR_ST | 1 | 1 | 1
$00A0010 | $FFFFFFFF | Dose Reference Sequence | VR_SQ | 1 | 1 | 1
$00A0012 | $FFFFFFFF | Dose Reference Number | VR_IS | 1 | 1 | 1
$00A0014 | $FFFFFFFF | Dose Reference Structure Type | VR_CS | 1 | 1 | 1
$00A0016 | $FFFFFFFF | Dose Reference Description | VR_LO | 1 | 1 | 1
$00A0018 | $FFFFFFFF | Dose Reference Point Coordinates | VR_DS | 3 | 3 | 1
$00A001A | $FFFFFFFF | Nominal Prior Dose | VR_DS | 1 | 1 | 1
$00A0020 | $FFFFFFFF | Dose Reference Type | VR_CS | 1 | 1 | 1
$00A0021 | $FFFFFFFF | Constraint Weight | VR_DS | 1 | 1 | 1
$00A0022 | $FFFFFFFF | Delivery Warning Dose | VR_DS | 1 | 1 | 1
$00A0023 | $FFFFFFFF | Delivery Maximum Dose | VR_DS | 1 | 1 | 1
$00A0025 | $FFFFFFFF | Target Minimum Dose | VR_DS | 1 | 1 | 1
$00A0026 | $FFFFFFFF | Target Prescription Dose | VR_DS | 1 | 1 | 1
$00A0027 | $FFFFFFFF | Target Maximum Dose | VR_DS | 1 | 1 | 1
$00A0028 | $FFFFFFFF | Target Underdose Volume Fraction | VR_DS | 1 | 1 | 1
$00A002A | $FFFFFFFF | Organ at Risk Full-volume Dose | VR_DS | 1 | 1 | 1
$00A002B | $FFFFFFFF | Organ at Risk Limit Dose | VR_DS | 1 | 1 | 1
$00A002C | $FFFFFFFF | Organ at Risk Maximum Dose | VR_DS | 1 | 1 | 1
$00A002D | $FFFFFFFF | Organ at Risk Overdose Volume Fraction | VR_DS | 1 | 1 | 1
$00A0040 | $FFFFFFFF | Tolerance Table Sequence | VR_SQ | 1 | 1 | 1
$00A0042 | $FFFFFFFF | Tolerance Table Number | VR_IS | 1 | 1 | 1
$00A0043 | $FFFFFFFF | Tolerance Table Label | VR_SH | 1 | 1 | 1
$00A0044 | $FFFFFFFF | Gantry Angle Tolerance | VR_DS | 1 | 1 | 1
$00A0046 | $FFFFFFFF | Beam Limiting Device Angle Tolerance | VR_DS | 1 | 1 | 1
$00A0048 | $FFFFFFFF | Beam Limiting Device Tolerance Sequence | VR_SQ | 1 | 1 | 1
$00A004A | $FFFFFFFF | Beam Limiting Device Position Tolerance | VR_DS | 1 | 1 | 1
$00A004C | $FFFFFFFF | Patient Support Angle Tolerance | VR_DS | 1 | 1 | 1
$00A004E | $FFFFFFFF | Table Top Eccentric Angle Tolerance | VR_DS | 1 | 1 | 1
$00A0051 | $FFFFFFFF | Table Top Vertical Position Tolerance | VR_DS | 1 | 1 | 1
$00A0052 | $FFFFFFFF | Table Top Longitudinal Position Tolerance | VR_DS | 1 | 1 | 1
$00A0053 | $FFFFFFFF | Table Top Lateral Position Tolerance | VR_DS | 1 | 1 | 1
$00A0055 | $FFFFFFFF | RT Plan Relationship | VR_CS | 1 | 1 | 1
$00A0070 | $FFFFFFFF | Fraction Group Sequence | VR_SQ | 1 | 1 | 1
$00A0071 | $FFFFFFFF | Fraction Group Number | VR_IS | 1 | 1 | 1
$00A0078 | $FFFFFFFF | Number of Fractions Planned | VR_IS | 1 | 1 | 1
$00A0079 | $FFFFFFFF | Number of Fractions Per Day | VR_IS | 1 | 1 | 1
$00A007A | $FFFFFFFF | Repeat Fraction Cycle Length | VR_IS | 1 | 1 | 1
$00A007B | $FFFFFFFF | Fraction Pattern | VR_LT | 1 | 1 | 1
$00A0080 | $FFFFFFFF | Number of Beams | VR_IS | 1 | 1 | 1
$00A0082 | $FFFFFFFF | Beam Dose Specification Point | VR_DS | 3 | 3 | 1
$00A0084 | $FFFFFFFF | Beam Dose | VR_DS | 1 | 1 | 1
$00A0086 | $FFFFFFFF | Beam Meterset | VR_DS | 1 | 1 | 1
$00A00A0 | $FFFFFFFF | Number of Brachy Application Setups | VR_IS | 1 | 1 | 1
$00A00A2 | $FFFFFFFF | Brachy Application Setup Dose Specification Point | VR_DS | 3 | 3 | 1
$00A00A4 | $FFFFFFFF | Brachy Application Setup Dose | VR_DS | 1 | 1 | 1
$00A00B0 | $FFFFFFFF | Beam Sequence | VR_SQ | 1 | 1 | 1
$00A00B2 | $FFFFFFFF | Treatment Machine Name | VR_SH | 1 | 1 | 1
$00A00B3 | $FFFFFFFF | Primary Dosimeter Unit | VR_CS | 1 | 1 | 1
$00A00B4 | $FFFFFFFF | Source-Axis Distance | VR_DS | 1 | 1 | 1
$00A00B6 | $FFFFFFFF | Beam Limiting Device Sequence | VR_SQ | 1 | 1 | 1
$00A00B8 | $FFFFFFFF | RT Beam Limiting Device Type | VR_CS | 1 | 1 | 1
$00A00BA | $FFFFFFFF | Source to Beam Limiting Device Distance | VR_DS | 1 | 1 | 1
$00A00BC | $FFFFFFFF | Number of Leaf/Jaw Pairs | VR_IS | 1 | 1 | 1
$00A00BE | $FFFFFFFF | Leaf Position Boundaries | VR_DS | 3 | -1 | 1
$00A00C0 | $FFFFFFFF | Beam Number | VR_IS | 1 | 1 | 1
$00A00C2 | $FFFFFFFF | Beam Name | VR_LO | 1 | 1 | 1
$00A00C3 | $FFFFFFFF | Beam Description | VR_ST | 1 | 1 | 1
$00A00C4 | $FFFFFFFF | Beam Type | VR_CS | 1 | 1 | 1
$00A00C6 | $FFFFFFFF | Radiation Type | VR_CS | 1 | 1 | 1
$00A00C8 | $FFFFFFFF | Reference Image Number | VR_IS | 1 | 1 | 1
$00A00CA | $FFFFFFFF | Planned Verification Image Sequence | VR_SQ | 1 | 1 | 1
$00A00CC | $FFFFFFFF | Imaging Device-Specific Acquisition Parameters | VR_LO | 1 | -1 | 1
$00A00CE | $FFFFFFFF | Treatment Delivery Type | VR_CS | 1 | 1 | 1
$00A00D0 | $FFFFFFFF | Number of Wedges | VR_IS | 1 | 1 | 1
$00A00D1 | $FFFFFFFF | Wedge Sequence | VR_SQ | 1 | 1 | 1
$00A00D2 | $FFFFFFFF | Wedge Number | VR_IS | 1 | 1 | 1
$00A00D3 | $FFFFFFFF | Wedge Type | VR_CS | 1 | 1 | 1
$00A00D4 | $FFFFFFFF | Wedge ID | VR_SH | 1 | 1 | 1
$00A00D5 | $FFFFFFFF | Wedge Angle | VR_IS | 1 | 1 | 1
$00A00D6 | $FFFFFFFF | Wedge Factor | VR_DS | 1 | 1 | 1
$00A00D8 | $FFFFFFFF | Wedge Orientation | VR_DS | 1 | 1 | 1
$00A00DA | $FFFFFFFF | Source to Wedge Tray Distance | VR_DS | 1 | 1 | 1
$00A00E0 | $FFFFFFFF | Number of Compensators | VR_IS | 1 | 1 | 1
$00A00E1 | $FFFFFFFF | Material ID | VR_SH | 1 | 1 | 1
$00A00E2 | $FFFFFFFF | Total Compensator Tray Factor | VR_DS | 1 | 1 | 1
$00A00E3 | $FFFFFFFF | Compensator Sequence | VR_SQ | 1 | 1 | 1
$00A00E4 | $FFFFFFFF | Compensator Number | VR_IS | 1 | 1 | 1
$00A00E5 | $FFFFFFFF | Compensator ID | VR_SH | 1 | 1 | 1
$00A00E6 | $FFFFFFFF | Source to Compensator Tray Distance | VR_DS | 1 | 1 | 1
$00A00E7 | $FFFFFFFF | Compensator Rows | VR_IS | 1 | 1 | 1
$00A00E8 | $FFFFFFFF | Compensator Columns | VR_IS | 1 | 1 | 1
$00A00E9 | $FFFFFFFF | Compensator Pixel Spacing | VR_DS | 2 | 2 | 1
$00A00EA | $FFFFFFFF | Compensator Position | VR_DS | 2 | 2 | 1
$00A00EB | $FFFFFFFF | Compensator Transmission Data | VR_DS | 1 | -1 | 1
$00A00EC | $FFFFFFFF | Compensator Thickness Data | VR_DS | 1 | -1 | 1
$00A00ED | $FFFFFFFF | Number of Boli | VR_IS | 1 | 1 | 1
$00A00F0 | $FFFFFFFF | Number of Blocks | VR_IS | 1 | 1 | 1
$00A00F2 | $FFFFFFFF | Total Block Tray Factor | VR_DS | 1 | 1 | 1
$00A00F4 | $FFFFFFFF | Block Sequence | VR_SQ | 1 | 1 | 1
$00A00F5 | $FFFFFFFF | Block Tray ID | VR_SH | 1 | 1 | 1
$00A00F6 | $FFFFFFFF | Source to Block Tray Distance | VR_DS | 1 | 1 | 1
$00A00F8 | $FFFFFFFF | Block Type | VR_CS | 1 | 1 | 1
$00A00FA | $FFFFFFFF | Block Divergence | VR_CS | 1 | 1 | 1
$00A00FC | $FFFFFFFF | Block Number | VR_IS | 1 | 1 | 1
$00A00FE | $FFFFFFFF | Block Name | VR_LO | 1 | 1 | 1
$00A0100 | $FFFFFFFF | Block Thickness | VR_DS | 1 | 1 | 1
$00A0102 | $FFFFFFFF | Block Transmission | VR_DS | 1 | 1 | 1
$00A0104 | $FFFFFFFF | Block Number of Points | VR_IS | 1 | 1 | 1
$00A0106 | $FFFFFFFF | Block Data | VR_DS | 2 | -1 | 2
$00A0107 | $FFFFFFFF | Applicator Sequence | VR_SQ | 1 | 1 | 1
$00A0108 | $FFFFFFFF | Applicator ID | VR_SH | 1 | 1 | 1
$00A0109 | $FFFFFFFF | Applicator Type | VR_CS | 1 | 1 | 1
$00A010A | $FFFFFFFF | Applicator Description | VR_LO | 1 | 1 | 1
$00A010C | $FFFFFFFF | Cumulative Dose Reference Coefficient | VR_DS | 1 | 1 | 1
$00A010E | $FFFFFFFF | Final Cumulative Meterset Weight | VR_DS | 1 | 1 | 1
$00A0110 | $FFFFFFFF | Number of Control Points | VR_IS | 1 | 1 | 1
$00A0111 | $FFFFFFFF | Control Point Sequence | VR_SQ | 1 | 1 | 1
$00A0112 | $FFFFFFFF | Control Point Index | VR_IS | 1 | 1 | 1
$00A0114 | $FFFFFFFF | Nominal Beam Energy | VR_DS | 1 | 1 | 1
$00A0115 | $FFFFFFFF | Dose Rate Set | VR_DS | 1 | 1 | 1
$00A0116 | $FFFFFFFF | Wedge Position Sequence | VR_SQ | 1 | 1 | 1
$00A0118 | $FFFFFFFF | Wedge Position | VR_CS | 1 | 1 | 1
$00A011A | $FFFFFFFF | Beam Limiting Device Position Sequence | VR_SQ | 1 | 1 | 1
$00A011C | $FFFFFFFF | Leaf/Jaw Positions | VR_DS | 2 | -1 | 2
$00A011E | $FFFFFFFF | Gantry Angle | VR_DS | 1 | 1 | 1
$00A011F | $FFFFFFFF | Gantry Rotation Direction | VR_CS | 1 | 1 | 1
$00A0120 | $FFFFFFFF | Beam Limiting Device Angle | VR_DS | 1 | 1 | 1
$00A0121 | $FFFFFFFF | Beam Limiting Device Rotation Direction | VR_CS | 1 | 1 | 1
$00A0122 | $FFFFFFFF | Patient Support Angle | VR_DS | 1 | 1 | 1
$00A0123 | $FFFFFFFF | Patient Support Rotation Direction | VR_CS | 1 | 1 | 1
$00A0124 | $FFFFFFFF | Table Top Eccentric Axis Distance | VR_DS | 1 | 1 | 1
$00A0125 | $FFFFFFFF | Table Top Eccentric Angle | VR_DS | 1 | 1 | 1
$00A0126 | $FFFFFFFF | Table Top Eccentric Rotation Direction | VR_CS | 1 | 1 | 1
$00A0128 | $FFFFFFFF | Table Top Vertical Position | VR_DS | 1 | 1 | 1
$00A0129 | $FFFFFFFF | Table Top Longitudinal Position | VR_DS | 1 | 1 | 1
$00A012A | $FFFFFFFF | Table Top Lateral Position | VR_DS | 1 | 1 | 1
$00A012C | $FFFFFFFF | Isocenter Position | VR_DS | 3 | 3 | 1
$00A012E | $FFFFFFFF | Surface Entry Point | VR_DS | 3 | 3 | 1
$00A0130 | $FFFFFFFF | Source to Surface Distance | VR_DS | 1 | 1 | 1
$00A0134 | $FFFFFFFF | Cumulative Meterset Weight | VR_DS | 1 | 1 | 1
$00A0180 | $FFFFFFFF | Patient Setup Sequence | VR_SQ | 1 | 1 | 1
$00A0182 | $FFFFFFFF | Patient Setup Number | VR_IS | 1 | 1 | 1
$00A0184 | $FFFFFFFF | Patient Additional Position | VR_LO | 1 | 1 | 1
$00A0190 | $FFFFFFFF | Fixation Device Sequence | VR_SQ | 1 | 1 | 1
$00A0192 | $FFFFFFFF | Fixation Device Type | VR_CS | 1 | 1 | 1
$00A0194 | $FFFFFFFF | Fixation Device Label | VR_SH | 1 | 1 | 1
$00A0196 | $FFFFFFFF | Fixation Device Description | VR_ST | 1 | 1 | 1
$00A0198 | $FFFFFFFF | Fixation Device Position | VR_SH | 1 | 1 | 1
$00A01A0 | $FFFFFFFF | Shielding Device Sequence | VR_SQ | 1 | 1 | 1
$00A01A2 | $FFFFFFFF | Shielding Device Type | VR_CS | 1 | 1 | 1
$00A01A4 | $FFFFFFFF | Shielding Device Label | VR_SH | 1 | 1 | 1
$00A01A6 | $FFFFFFFF | Shielding Device Description | VR_ST | 1 | 1 | 1
$00A01A8 | $FFFFFFFF | Shielding Device Position | VR_SH | 1 | 1 | 1
$00A01B0 | $FFFFFFFF | Setup Technique | VR_CS | 1 | 1 | 1
$00A01B2 | $FFFFFFFF | Setup Technique Description | VR_ST | 1 | 1 | 1
$00A01B4 | $FFFFFFFF | Setup Device Sequence | VR_SQ | 1 | 1 | 1
$00A01B6 | $FFFFFFFF | Setup Device Type | VR_CS | 1 | 1 | 1
$00A01B8 | $FFFFFFFF | Setup Device Label | VR_SH | 1 | 1 | 1
$00A01BA | $FFFFFFFF | Setup Device Description | VR_ST | 1 | 1 | 1
$00A01BC | $FFFFFFFF | Setup Device Parameter | VR_DS | 1 | 1 | 1
$00A01D0 | $FFFFFFFF | Setup Reference Description | VR_ST | 1 | 1 | 1
$00A01D2 | $FFFFFFFF | Table Top Vertical Setup Displacement | VR_DS | 1 | 1 | 1
$00A01D4 | $FFFFFFFF | Table Top Longitudinal Setup Displacement | VR_DS | 1 | 1 | 1
$00A01D6 | $FFFFFFFF | Table Top Lateral Setup Displacement | VR_DS | 1 | 1 | 1
$00A0200 | $FFFFFFFF | Brachy Treatment Technique | VR_CS | 1 | 1 | 1
$00A0202 | $FFFFFFFF | Brachy Treatment Type | VR_CS | 1 | 1 | 1
$00A0206 | $FFFFFFFF | Treatment Machine Sequence | VR_SQ | 1 | 1 | 1
$00A0210 | $FFFFFFFF | Source Sequence | VR_SQ | 1 | 1 | 1
$00A0212 | $FFFFFFFF | Source Number | VR_IS | 1 | 1 | 1
$00A0214 | $FFFFFFFF | Source Type | VR_CS | 1 | 1 | 1
$00A0216 | $FFFFFFFF | Source Manufacturer | VR_LO | 1 | 1 | 1
$00A0218 | $FFFFFFFF | Active Source Diameter | VR_DS | 1 | 1 | 1
$00A021A | $FFFFFFFF | Active Source Length | VR_DS | 1 | 1 | 1
$00A0222 | $FFFFFFFF | Source Encapsulation Nominal Thickness | VR_DS | 1 | 1 | 1
$00A0224 | $FFFFFFFF | Source Encapsulation Nominal Transmission | VR_DS | 1 | 1 | 1
$00A0226 | $FFFFFFFF | Source Isotope Name | VR_LO | 1 | 1 | 1
$00A0228 | $FFFFFFFF | Source Isotope Half Life | VR_DS | 1 | 1 | 1
$00A022A | $FFFFFFFF | Reference Air Kerma Rate | VR_DS | 1 | 1 | 1
$00A022C | $FFFFFFFF | Air Kerma Rate Reference Date | VR_DA | 1 | 1 | 1
$00A022E | $FFFFFFFF | Air Kerma Rate Reference Time | VR_TM | 1 | 1 | 1
$00A0230 | $FFFFFFFF | Application Setup Sequence | VR_SQ | 1 | 1 | 1
$00A0232 | $FFFFFFFF | Application Setup Type | VR_CS | 1 | 1 | 1
$00A0234 | $FFFFFFFF | Application Setup Number | VR_IS | 1 | 1 | 1
$00A0236 | $FFFFFFFF | Application Setup Name | VR_LO | 1 | 1 | 1
$00A0238 | $FFFFFFFF | Application Setup Manufacturer | VR_LO | 1 | 1 | 1
$00A0240 | $FFFFFFFF | Template Number | VR_IS | 1 | 1 | 1
$00A0242 | $FFFFFFFF | Template Type | VR_SH | 1 | 1 | 1
$00A0244 | $FFFFFFFF | Template Name | VR_LO | 1 | 1 | 1
$00A0250 | $FFFFFFFF | Total Reference Air Kerma | VR_DS | 1 | 1 | 1
$00A0260 | $FFFFFFFF | Brachy Accessory Device Sequence | VR_SQ | 1 | 1 | 1
$00A0262 | $FFFFFFFF | Brachy Accessory Device Number | VR_IS | 1 | 1 | 1
$00A0263 | $FFFFFFFF | Brachy Accessory Device ID | VR_SH | 1 | 1 | 1
$00A0264 | $FFFFFFFF | Brachy Accessory Device Type | VR_CS | 1 | 1 | 1
$00A0266 | $FFFFFFFF | Brachy Accessory Device Name | VR_LO | 1 | 1 | 1
$00A026A | $FFFFFFFF | Brachy Accessory Device Nominal Thickness | VR_DS | 1 | 1 | 1
$00A026C | $FFFFFFFF | Brachy Accessory Device Nominal Transmission | VR_DS | 1 | 1 | 1
$00A0280 | $FFFFFFFF | Channel Sequence | VR_SQ | 1 | 1 | 1
$00A0282 | $FFFFFFFF | Channel Number | VR_IS | 1 | 1 | 1
$00A0284 | $FFFFFFFF | Channel Length | VR_DS | 1 | 1 | 1
$00A0286 | $FFFFFFFF | Channel Total Time | VR_DS | 1 | 1 | 1
$00A0288 | $FFFFFFFF | Source Movement Type | VR_CS | 1 | 1 | 1
$00A028A | $FFFFFFFF | Number of Pulses | VR_IS | 1 | 1 | 1
$00A028C | $FFFFFFFF | Pulse Repetition Interval | VR_DS | 1 | 1 | 1
$00A0290 | $FFFFFFFF | Source Applicator Number | VR_IS | 1 | 1 | 1
$00A0291 | $FFFFFFFF | Source Applicator ID | VR_SH | 1 | 1 | 1
$00A0292 | $FFFFFFFF | Source Applicator Type | VR_CS | 1 | 1 | 1
$00A0294 | $FFFFFFFF | Source Applicator Name | VR_LO | 1 | 1 | 1
$00A0296 | $FFFFFFFF | Source Applicator Length | VR_DS | 1 | 1 | 1
$00A0298 | $FFFFFFFF | Source Applicator Manufacturer | VR_LO | 1 | 1 | 1
$00A029C | $FFFFFFFF | Source Applicator Wall Nominal Thickness | VR_DS | 1 | 1 | 1
$00A029E | $FFFFFFFF | Source Applicator Wall Nominal Transmission | VR_DS | 1 | 1 | 1
$00A02A0 | $FFFFFFFF | Source Applicator Step Size | VR_DS | 1 | 1 | 1
$00A02A2 | $FFFFFFFF | Transfer Tube Number | VR_IS | 1 | 1 | 1
$00A02A4 | $FFFFFFFF | Transfer Tube Length | VR_DS | 1 | 1 | 1
$00A02B0 | $FFFFFFFF | Channel Shield Sequence | VR_SQ | 1 | 1 | 1
$00A02B2 | $FFFFFFFF | Channel Shield Number | VR_IS | 1 | 1 | 1
$00A02B3 | $FFFFFFFF | Channel Shield ID | VR_SH | 1 | 1 | 1
$00A02B4 | $FFFFFFFF | Channel Shield Name | VR_LO | 1 | 1 | 1
$00A02B8 | $FFFFFFFF | Channel Shield Nominal Thickness | VR_DS | 1 | 1 | 1
$00A02BA | $FFFFFFFF | Channel Shield Nominal Transmission | VR_DS | 1 | 1 | 1
$00A02C8 | $FFFFFFFF | Final Cumulative Time Weight | VR_DS | 1 | 1 | 1
$00A02D0 | $FFFFFFFF | Brachy Control Point Sequence | VR_SQ | 1 | 1 | 1
$00A02D2 | $FFFFFFFF | Control Point Relative Position | VR_DS | 1 | 1 | 1
$00A02D4 | $FFFFFFFF | Control Point 3D Position | VR_DS | 3 | 3 | 1
$00A02D6 | $FFFFFFFF | Cumulative Time Weight | VR_DS | 1 | 1 | 1
$00C0002 | $FFFFFFFF | Referenced RT Plan Sequence | VR_SQ | 1 | 1 | 1
$00C0004 | $FFFFFFFF | Referenced Beam Sequence | VR_SQ | 1 | 1 | 1
$00C0006 | $FFFFFFFF | Referenced Beam Number | VR_IS | 1 | 1 | 1
$00C0007 | $FFFFFFFF | Referenced Reference Image Number | VR_IS | 1 | 1 | 1
$00C0008 | $FFFFFFFF | Start Cumulative Meterset Weight | VR_DS | 1 | 1 | 1
$00C0009 | $FFFFFFFF | End Cumulative Meterset Weight | VR_DS | 1 | 1 | 1
$00C000A | $FFFFFFFF | Referenced Brachy Application Setup Sequence | VR_SQ | 1 | 1 | 1
$00C000C | $FFFFFFFF | Referenced Brachy Application Setup Number | VR_IS | 1 | 1 | 1
$00C000E | $FFFFFFFF | Referenced Source Number | VR_IS | 1 | 1 | 1
$00C0020 | $FFFFFFFF | Referenced Fraction Group Sequence | VR_SQ | 1 | 1 | 1
$00C0022 | $FFFFFFFF | Referenced Fraction Group Number | VR_IS | 1 | 1 | 1
$00C0040 | $FFFFFFFF | Referenced Verification Image Sequence | VR_SQ | 1 | 1 | 1
$00C0042 | $FFFFFFFF | Referenced Reference Image Sequence | VR_SQ | 1 | 1 | 1
$00C0050 | $FFFFFFFF | Referenced Dose Reference Sequence | VR_SQ | 1 | 1 | 1
$00C0051 | $FFFFFFFF | Referenced Dose Reference Number | VR_IS | 1 | 1 | 1
$00C0055 | $FFFFFFFF | Brachy Referenced Dose Reference Sequence | VR_SQ | 1 | 1 | 1
$00C0060 | $FFFFFFFF | Referenced Structure Set Sequence | VR_SQ | 1 | 1 | 1
$00C006A | $FFFFFFFF | Referenced Patient Setup Number | VR_IS | 1 | 1 | 1
$00C0080 | $FFFFFFFF | Referenced Dose Sequence | VR_SQ | 1 | 1 | 1
$00C00A0 | $FFFFFFFF | Referenced Tolerance Table Number | VR_IS | 1 | 1 | 1
$00C00B0 | $FFFFFFFF | Referenced Bolus Sequence | VR_SQ | 1 | 1 | 1
$00C00C0 | $FFFFFFFF | Referenced Wedge Number | VR_IS | 1 | 1 | 1
$00C00D0 | $FFFFFFFF | Referenced Compensator Number | VR_IS | 1 | 1 | 1
$00C00E0 | $FFFFFFFF | Referenced Block Number | VR_IS | 1 | 1 | 1
$00C00F0 | $FFFFFFFF | Referenced Control Point Index | VR_IS | 1 | 1 | 1
$00E0002 | $FFFFFFFF | Approval Status | VR_CS | 1 | 1 | 1
$00E0004 | $FFFFFFFF | Review Date | VR_DA | 1 | 1 | 1
$00E0005 | $FFFFFFFF | Review Time | VR_TM | 1 | 1 | 1
$00E0008 | $FFFFFFFF | Reviewer Name | VR_PN | 1 | 1 | 1
$0080040 | $FFFFFFFF | Results ID | VR_SH | 1 | 1 | 1
$0080042 | $FFFFFFFF | Results ID Issuer | VR_LO | 1 | 1 | 1
$0080050 | $FFFFFFFF | Referenced Interpretation Sequence | VR_SQ | 1 | 1 | 1
$0080100 | $FFFFFFFF | Interpretation Recorded Date | VR_DA | 1 | 1 | 1
$0080101 | $FFFFFFFF | Interpretation Recorded Time | VR_TM | 1 | 1 | 1
$0080102 | $FFFFFFFF | Interpretation Recorder | VR_PN | 1 | 1 | 1
$0080103 | $FFFFFFFF | Reference to Recorded Sound | VR_LO | 1 | 1 | 1
$0080108 | $FFFFFFFF | Interpretation Transcription Date | VR_DA | 1 | 1 | 1
$0080109 | $FFFFFFFF | Interpretation Transcription Time | VR_TM | 1 | 1 | 1
$008010A | $FFFFFFFF | Interpretation Transcriber | VR_PN | 1 | 1 | 1
$008010B | $FFFFFFFF | Interpretation Text | VR_ST | 1 | 1 | 1
$008010C | $FFFFFFFF | Interpretation Author | VR_PN | 1 | 1 | 1
$0080111 | $FFFFFFFF | Interpretation Approver Sequence | VR_SQ | 1 | 1 | 1
$0080112 | $FFFFFFFF | Interpretation Approval Date | VR_DA | 1 | 1 | 1
$0080113 | $FFFFFFFF | Interpretation Approval Time | VR_TM | 1 | 1 | 1
$0080114 | $FFFFFFFF | Physician Approving Interpretation | VR_PN | 1 | 1 | 1
$0080115 | $FFFFFFFF | Interpretation Diagnosis Description | VR_LT | 1 | 1 | 1
$0080117 | $FFFFFFFF | Interpretation Diagnosis Code Sequence | VR_SQ | 1 | 1 | 1
$0080118 | $FFFFFFFF | Results Distribution List Sequence | VR_SQ | 1 | 1 | 1
$0080119 | $FFFFFFFF | Distribution Name | VR_PN | 1 | 1 | 1
$008011A | $FFFFFFFF | Distribution Address | VR_LO | 1 | 1 | 1
$0080200 | $FFFFFFFF | Interpretation ID | VR_SH | 1 | 1 | 1
$0080202 | $FFFFFFFF | Interpretation ID Issuer | VR_LO | 1 | 1 | 1
$0080210 | $FFFFFFFF | Interpretation Type ID | VR_CS | 1 | 1 | 1
$0080212 | $FFFFFFFF | Interpretation Status ID | VR_CS | 1 | 1 | 1
$0080300 | $FFFFFFFF | Impressions | VR_ST | 1 | 1 | 1
$0084000 | $FFFFFFFF | Results Comments | VR_ST | 1 | 1 | 1
$0000005 | $FF00FFFF | Curve Dimensions | VR_US | 1 | 1 | 1
$0000010 | $FF00FFFF | Number of Points | VR_US | 1 | 1 | 1
$0000020 | $FF00FFFF | Type of Data | VR_CS | 1 | 1 | 1
$0000022 | $FF00FFFF | Curve Description | VR_LO | 1 | 1 | 1
$0000030 | $FF00FFFF | Axis Units | VR_SH | 1 | -1 | 1
$0000040 | $FF00FFFF | Axis Labels | VR_SH | 1 | -1 | 1
$0000103 | $FF00FFFF | Data Value Representation | VR_US | 1 | 1 | 1
$0000104 | $FF00FFFF | Minimum Coordinate Value | VR_US | 1 | -1 | 1
$0000105 | $FF00FFFF | Maximum Coordinate Value | VR_US | 1 | -1 | 1
$0000106 | $FF00FFFF | Curve Range | VR_SH | 1 | -1 | 1
$0000110 | $FF00FFFF | Curve Data Descriptor | VR_US | 1 | -1 | 1
$0000112 | $FF00FFFF | Coordinate Start Value | VR_US | 1 | 1 | 1
$0000114 | $FF00FFFF | Coordinate Step Value | VR_US | 1 | 1 | 1
$0002000 | $FF00FFFF | Audio Type | VR_US | 1 | 1 | 1
$0002002 | $FF00FFFF | Audio Sample Format | VR_US | 1 | 1 | 1
$0002004 | $FF00FFFF | Number of Channels | VR_US | 1 | 1 | 1
$0002006 | $FF00FFFF | Number of Samples | VR_UL | 1 | 1 | 1
$0002008 | $FF00FFFF | Sample Rate | VR_UL | 1 | 1 | 1
$000200A | $FF00FFFF | Total Time | VR_UL | 1 | 1 | 1
$000200C | $FF00FFFF | Audio Sample Data | VR_OW | 1 | 1 | 1
$000200E | $FF00FFFF | Audio Comments | VR_LT | 1 | 1 | 1
$0002500 | $FF00FFFF | Curve Label | VR_LO | 1 | 1 | 1
$0002600 | $FF00FFFF | Referenced Overlay Sequence | VR_SQ | 1 | 1 | 1
$0002610 | $FF00FFFF | Referenced Overlay Group | VR_US | 1 | 1 | 1
$0003000 | $FF00FFFF | Curve Data | VR_OW | 1 | 1 | 1
$0000010 | $FF00FFFF | Overlay Rows | VR_US | 1 | 1 | 1
$0000011 | $FF00FFFF | Overlay Columns | VR_US | 1 | 1 | 1
$0000012 | $FF00FFFF | Overlay Planes | VR_US | 1 | 1 | 1
$0000015 | $FF00FFFF | Number of Frames in Overlay | VR_IS | 1 | 1 | 1
$0000022 | $FF00FFFF | Overlay Description | VR_LO | 1 | 1 | 1
$0000040 | $FF00FFFF | Overlay Type | VR_CS | 1 | 1 | 1
$0000045 | $FF00FFFF | Overlay Subtype | VR_LO | 1 | 1 | 1
$0000050 | $FF00FFFF | Overlay Origin | VR_SS | 2 | 2 | 1
$0000051 | $FF00FFFF | Image Frame Origin | VR_US | 1 | 1 | 1
$0000052 | $FF00FFFF | Overlay Plane Origin | VR_US | 1 | 1 | 1
$0000100 | $FF00FFFF | Overlay Bits Allocated | VR_US | 1 | 1 | 1
$0000102 | $FF00FFFF | Overlay Bit Position | VR_US | 1 | 1 | 1
$0001100 | $FF00FFFF | Overlay Descriptor - Gray (Retired) | VR_US | 1 | 1 | 1
$0001101 | $FF00FFFF | Overlay Descriptor - Red (Retired) | VR_US | 1 | 1 | 1
$0001102 | $FF00FFFF | Overlay Descriptor - Green (Retired) | VR_US | 1 | 1 | 1
$0001103 | $FF00FFFF | Overlay Descriptor - Blue (Retired) | VR_US | t 1 | 1 | 1
$0001200 | $FF00FFFF | Overlays - Gray (Retired) | VR_US | 1 | -1 | 1
$0001201 | $FF00FFFF | Overlays - Red (Retired) | VR_US | 1 | -1 | 1
$0001202 | $FF00FFFF | Overlays - Green (Retired) | VR_US | 1 | -1 | 1
$0001203 | $FF00FFFF | Overlays - Blue (Retired) | VR_US | 1 | -1 | 1
$0001301 | $FF00FFFF | ROI Area | VR_IS | 1 | 1 | 1
$0001302 | $FF00FFFF | ROI Mean | VR_DS | 1 | 1 | 1
$0001303 | $FF00FFFF | ROI Standard Deviation | VR_DS | 1 | 1 | 1
$0001500 | $FF00FFFF | Overlay Label | VR_LO | 1 | 1 | 1
$0003000 | $FF00FFFF | Overlay Data | VR_OW | 1 | 1 | 1
$FE00010 | $FFFFFFFF | Pixel Data | VR_OW | 1 | 1 | 1
$FFFCFFFC | $FFFFFFFF | Data Set Trailing Padding | VR_OB | 1 | 1 | 1
$FFFEE000 | $FFFFFFFF | Item | VR_UN | 1 | 1 | 1


Default Value Representation Tag Table

Default Value Representation Table

The table below contains the default values for the Value Representations supported by DICOM.

For more information on the structure of this table, refer to CurrentCR property.

Code | Name | Length | Restriction | UnitSize
VR_AE | Application Entity | 16 | VR_STRING | VR_MAXIMUM | 1
VR_AS | Age String | 4 | VR_TEXT | VR_FIXED | 1
VR_AT | Attribute Tag | 4 | VR_BINARY | VR_FIXED | 4
VR_CS | Code String | 16 | VR_STRING | VR_MAXIMUM | 1
VR_DA | Date | 8 | VR_TEXT | VR_FIXED | 1
VR_DS | Decimal String | 16 | VR_STRING | VR_MAXIMUM | 1
VR_DT | Date Time | 26 | VR_TEXT | VR_MAXIMUM | 1
VR_FD | Floating Point Double | 8 | VR_BINARY | VR_FIXED | 8
VR_FL | Floating Point Single | 4 | VR_BINARY | VR_FIXED | 4
VR_IS | Integer String | 12 | VR_STRING | VR_MAXIMUM | 1
VR_LO | Long String | 64 | VR_STRING | VR_MAXIMUM | 1
VR_LT | Long Text | 10240 | VR_TEXT | VR_MAXIMUM | 1
VR_OB | Other Byte String | 0 | VR_BINARY | VR_ANY | 1
VR_OW | Other Word String | 0 | VR_BINARY | VR_ANY | 2
VR_PN | Person Name | 64 | VR_TEXT | VR_MAXIMUM_GROUP | 1
VR_SH | Short String | 16 | VR_STRING | VR_MAXIMUM | 1
VR_SL | Signed Long | 4 | VR_BINARY | VR_FIXED | 4
VR_SQ | Sequence of Items | 0 | VR_NOT_APPLICABLE | 1
VR_SS | Signed Short | 2 | VR_BINARY | VR_FIXED | 2
VR_ST | Short Text | 1024 | VR_TEXT | VR_MAXIMUM | 1
VR_TM | Time | 16 | VR_TEXT | VR_MAXIMUM | 1
VR_UI | Unique Identifier | 64 | VR_TEXT | VR_MAXIMUM | 1
VR_UL | Unsigned Long | 4 | VR_BINARY | VR_FIXED | 4
VR_UN | Unknown | 0 | VR_BINARY | VR_ANY | 1
VR_US | Unsigned Short | 2 | VR_BINARY | VR_FIXED | 2
VR_UT | Unlimited Text | $FFFFFFFE | VR_TEXT | VR_MAXIMUM | 1


DICOM Standard

The DICOM Standard is published by the

National Electrical Manufacturers Association

1300 N. 17th Street

Rosslyn, Virginia 22209 USA


LEADTOOLS Documentation

LEADTOOLS Reference Manuals

LEADTOOLS provides reference manuals that contain the same information as the online help. You can print them from PDF files. Please note that due to the large size of the PDF files that contain the LEADTOOLS manuals, these files are no longer included in the setup. Instead, these PDF files can be downloaded from our website at http://support.leadtools.com/SupportPortal/DesktopDefault.aspx?tabindex=3&tabid=27.

To print the PDF files, you must use the Adobe Acrobat Reader 3.0 or higher. You can download a copy of the Acrobat Reader from the Adobe web site (http://www.adobe.com). Note that different versions of the Acrobat Reader are available for different operating systems, but they all can read the same PDF files.


Raster Pro/Document/Medical Features

Raster Pro:

LEADTOOLS Raster Imaging Pro provides some imaging capabilities that are not available in the LEADTOOLS Raster Imaging product. In order to access these features, you must unlock them by calling UnlockSupport (L_SUPPORT_LTPRO, L_KEY_LTPRO). L_KEY_LTPRO can be found in ltkey.h.

If you are a licensed user of LEADTOOLS Raster Imaging, and would like to access Raster Imaging Pro features, you must contact Tech Support for information on obtaining a license and the unlock key for calling LSettings::UnlockSupport.

Document/Medical:

LEADTOOLS Document Imaging, LEADTOOLS Document Imaging Suite, LEADTOOLS Medical Imaging and LEADTOOLS Medical Imaging Suite are the most comprehensive imaging toolkits on the market. No other toolkit provides as many imaging features for color, gray-scale and black & white images in one development package, and for one price. These toolkits comprise LEAD's best code and are designed for the programmer who is looking for the fastest performance, and/or the most extensive color, document, and medical imaging capabilities available.

These toolkits contain powerful annotation capabilities and optimized document image processing filters, and high performance compression, decompression and viewing of JPEG, LEAD CMP, MRC and CCITT G3/G4. The annotation capabilities enable the programmer to add text, highlights, sticky notes, audio, ellipses, buttons, lines, arrows, rectangles, polygons, redaction (blackout), hotspots, freehand scribble, pointers, bitmap and text stamps, to black & white and color images. Programmers working with document imaging will also find special processing filters such as despeckle, deskew, favor black, and scale to gray to enhance their black and white 1 bit images. Additionally, you can achieve faster rotation in 90-degree increments by applying a rotated view perspective to the bitmap. These LEADTOOLS toolkits offer the fastest software-only JPEG decoder available.

LEADTOOLS Document Imaging

The LEADTOOLS Document Imaging toolkit contains all the features available in the LEADTOOLS Raster Imaging Pro. In addition, it contains the following capabilities:

Special functions for Document (bitonal) images. The LEADTOOLS functions for bitonal images are especially useful for working with images from black-and-white scanners or FAX machines. These functions let you do things such as automatically straighten (deskew) an image, remove spots (despeckle), or clarify a scaled display (using scale-to-gray and favor-black features).

Annotation. LEADTOOLS supports annotation of images by letting you overlay images with text, lines, shapes, arrows, buttons, highlights, hot spots, sticky notes, stamps, buttons, and sounds.

Fast rotation. LEADTOOLS achieves fast rotation in 90-degree increments by applying a rotated view perspective to the bitmap.

ISIS support. LEADTOOLS supports ISIS interfaces for driving scanning devices.

Faster compression and decompression. The Document/Medical editions work faster when loading and saving LEAD CMP, JPEG, and CCITT Group 3 and Group 4 images. The LEADTOOLS functions for loading and saving are the same in all products. The only difference is in performance.

1-bit Image Clean-up. The Document toolkits include support for removing dots, blobs, holes, inverted text, lines, borders, bumps and nicks from 1-bit images.

Region Clean-up. [Document/Medical] Remove all the holes from a region.

Embedded Messages. The Document toolkits include support for embedding messages in lossless image formats like bmp, tiff, lossless jpeg, etc. The message is embedded without any visible changes to the image, and does not appreciably increase the size of the image. The message is password-protected.

Image Conversion. The Document toolkits include support for transforming a bitmap into a binary image using specified thresholds or a threshold calculated automatically based on statistical features of the bitmap.

12 and 16 bit grayscale images. [Document/Medical] Load, process, display, window level and save 12 and 16 bit grayscale images (including support for 16-bit grayscale TIFF).

48 and 64 bit color images. [Document/Medical] Load, process, display, and save 48 and 64 bit color images.

MRC Support. [Document/Medical] LEADTOOLS supports the Mixed Raster Content format for color documents containing mixed image and text components. For more information, refer to the .

Halftoning. [Document/Medical] Convert 1-, 4-, 8-, 16-, 24-, or 32-bit bitmaps to a halftoned bitmap, with a specified pattern rotation. A halftoned bitmap is a 1-bit bitmap that has been dithered for black and white printing or display.

LEADTOOLS Document Imaging Suite

The LEADTOOLS Document Imaging Suite toolkit contains all the capabilities of LEADTOOLS Document Imaging, and includes the features listed below. Please note that the OCR features are included in this toolkit, however they can also be purchased as a plug-in for the LEADTOOLS Document Imaging toolkit. Also, JBIG support is provided in this toolkit, however a JBIG Module may be added on to LEADTOOLS Document Imaging, LEADTOOLS Medical Imaging or LEADTOOLS Medical Imaging Suite.

OCR features. [Document/Medical] LEAD offers OCR features that use Scansoft Textbridge technology. Support for these features is included in the LEADTOOLS Document Imaging Suite, and can be added, via plug-in to the LEADTOOLS Document Imaging, LEADTOOLS Medical Imaging and LEADTOOLS Medical Imaging Suite toolkits. The OCR features allow you to perform optical character recognition and turn images into documents. Features include preset confidence and accuracy levels for controlling how sensitive the engine is to unrecognized text, artificial intelligence for improving recognition on documents of the same type, and built-in and user-defined lexicons for limiting the type of text to recognize within a particular zone. LEADTOOLS provides the ability to verify or correct text during, and (using LEAD's unique OCR editor) after recognition. LEAD's OCR editor ties the text being edited directly to the image, providing a visual reference to the original bitmap data. The OCR engine can perform Automatic area segmentation creating multi-layered zones, recognizing areas such as tables, rules, images and text. Or, you can manually designate up to 250 such zones. The OCR features support different fonts, sizes (5 to 72 point) and styles. Fax, dot matrix and halftones can be preprocessed to improve recognition results. The OCR Engine supports major European and Scandinavian languages (Danish, Dutch, Finnish, French, German, Italian, Norwegian, Portuguese, Russian, Spanish, and Swedish) as well as English. Support for dialects such as US. English, French Canadian, Latin American Spanish, Swiss German, and Brazilian Portuguese is also provided.

Recognized text can be exported to more than 40 different formats, including MS Word, MS Excel, Dbase andWordPerfect. The LEADTOOLS OCR features contain superior OCR processing speeds, for use in form recognition and processing applications.

LEAD's JBIG filter. [Document/Medical] LEAD includes support for this filter in the LEADTOOLS Document Imaging Suite toolkit. Support for this filter can be added to LEADTOOLS Document Imaging, LEADTOOLS Medical Imaging or LEADTOOLS Medical Imaging Suite by purchasing the JBIG Module. JBIG defines a method for lossless compression encoding of a bi-level image (two-color image). This method can also be used for coding grayscale and color images. LEADTOOLS completely supports all three types of images, giving you the ability to make full use of this powerful compression technology. LEADTOOLS also supports the progressive capability of JBIG, allowing you to store and send multiple representations of images at different resolutions without any extra storage overhead.

LEADTOOLS Medical Imaging

LEADTOOLS Medical Imaging contains all the capabilities of LEADTOOLS Document Imaging. It also includes general medical imaging technologies (1-16,24,32 bit color, 1-16 bit grayscale and window leveling of 12 and 16-bit grayscale images) and support for the DICOM file format.

DICOM file support. [Medical] LEADTOOLS Medical Imaging provides COMPLETE support for the DICOM 3.0 specification, including all standard IOD classes and modalities (CR, CT, MR, NM, US, RF, SC, VL, etc.) and complete DICOM Basic Directory support.

Window leveling. [Document/Medical] Detect and set LowBit and HighBit for image data, display images with automatic LUT intensity expansion, or set LUT entries and ranges with specific values and gradients. Display images through the LUT without changing the data, or process the image data using the LUT. Linearize the number of pixels locally in a bitmap, based on the specified color space in order to bring out the detail in dark areas of an image, and smooth the edges between blocks.

Medical Imaging Processing. [Medical] LEADTOOLS Medical Imaging provides image processing functionality designed specifically to allow you to examine and improve the quality of medical images.

LEADTOOLS Medical Imaging Suite

LEADTOOLS Medical Imaging Suite contains all the capabilities of LEADTOOLS Medical Imaging. In addition, it supports the following:

DICOM Communication support. [Medical Suite] LEADTOOLS provides COMPLETE support for DICOM Communications, including all Service Classes (Verification, Storage, Query/Retrieve, Patient Management, etc), and contains high-level communications functions simplifying the creation of DICOM client/server applications.

(Document/Medical) is used in the documentation to designate the features that are available in LEADTOOLS Document Imaging, LEADTOOLS Document Imaging Suite, LEADTOOLS Medical Imaging and LEADTOOLS Medical Imaging Suite. Those features that are available only in the Medical toolkits are indicated in the documentation by (Medical). Features available only in the LEADTOOLS Medical Imaging Suite toolkit are indicated in the documentation by (Medical Suite).

(Internet only) is used in the documentation to designate the features that are available only in the LEADTOOLS Internet toolkit.

For more information, refer to Document/Medical Edition Support and Licensing Requirements.


Express Support and Licensing Requirements

Document/Medical Support and Licensing Requirements

Document/Medical Licensing and Royalty Agreements:

Congratulations! You have licensed one of the LEADTOOLS Document/Medical software products, the most comprehensive imaging toolkits on the market, enabling you to create powerful imaging applications. The license terms for LEADTOOLS Document Imaging, LEADTOOLS Document Imaging Suite, LEADTOOLS Medical Imaging and LEADTOOLS Medical Imaging Suite require runtime licensing based on the number of copies of your application that you deploy (i.e., distribute or install and use internally).

By paying the initial box price for the applicable LEADTOOLS product, you have obtained a development license, which entitles you to develop your application and test it. Once completed, if you wish to distribute the application or deploy it internally on multiple machines, you are required to enter into a duplication and distribution agreement with LEAD. You have the ability to choose from several licensing options depending on your volume needs.

The product you are installing is a fully functional working version and includes support for all features in LEADTOOLS Document Imaging, LEADTOOLS Document Imaging Suite, LEADTOOLS Medical Imaging and LEADTOOLS Medical Imaging Suite. (Depending on which product you have licensed, some of the features may ultimately not be available to you. See the on-line help file for a product feature comparison.) Until you sign and return the correct licensing agreement, your application will display a "nag" message. Once LEAD receives the executed contract, we will provide you a password that will permit you to terminate the "nag" message for the product that you have licensed. In addition to providing the password, you must also use the no nag version of the LTKRN14N.DLL, found in the REDIST\NONAGLTKRN directory. This is also the version you must redistribute.

Duplication and Distribution Agreements

Click this button to start the Licensing help file to review the License Agreements governing your use of the software.


IOD Class Constants

The following constants are used to indicate the Class Information Object Definitions.

Code constant | Code value and meaning
DICOM_CLASS_CR_IMAGE_STORAGE | Computed Radiography Image
DICOM_CLASS_CT_IMAGE_STORAGE | Computed Tomography Image
DICOM_CLASS_MR_IMAGE_STORAGE | Magnetic Resonance Image
DICOM_CLASS_NM_IMAGE_STORAGE | Nuclear Medicine Image
DICOM_CLASS_NM_IMAGE_STORAGE_RETIRED | Nuclear Medicine Image (Retired)
DICOM_CLASS_US_IMAGE_STORAGE | Ultrasound Image
DICOM_CLASS_US_IMAGE_STORAGE_RETIRED | Ultrasound Image (Retired)
DICOM_CLASS_US_MULTI_FRAME_IMAGE_STORAGE | Ultrasound Multi-frame Image
DICOM_CLASS_US_MULTI_FRAME_IMAGE_STORAGE_RETIRED | Ultrasound Multi-frame Image (Retired)
DICOM_CLASS_SC_IMAGE_STORAGE | Secondary Capture Image
DICOM_CLASS_STANDALONE_OVERLAY_STORAGE | Standalone Overlay
DICOM_CLASS_STANDALONE_CURVE_STORAGE | Standalone Curve
DICOM_CLASS_BASIC_STUDY_DESCRIPTOR | Basic Study Descriptor
DICOM_CLASS_STANDALONE_MODALITY_LUT_STORAGE | Standalone Modality LUT
DICOM_CLASS_STANDALONE_VOI_LUT_STORAGE | Standalone VOI LUT
DICOM_CLASS_XA_IMAGE_STORAGE | X-Ray Angiographic Image
DICOM_CLASS_XA_BIPLANE_IMAGE_STORAGE_RETIRED | X-Ray Angiographic Bi-Plane Image (Retired)
DICOM_CLASS_XRF_IMAGE_STORAGE | X-Ray Radiofluoroscopic Image
DICOM_CLASS_RT_IMAGE_STORAGE | Radiotherapy Image
DICOM_CLASS_RT_DOSE_STORAGE | Radiotherapy Dose
DICOM_CLASS_RT_STRUCTURE_SET_STORAGE | Radiotherapy Structure Set
DICOM_CLASS_RT_PLAN_STORAGE | Radiotherapy Plan
DICOM_CLASS_PET_IMAGE_STORAGE | Positron Emission Tomography Image
DICOM_CLASS_STANDALONE_PET_CURVE_STORAGE | Standalone Positron Emission Tomography Curve
DICOM_CLASS_STORED_PRINT_STORAGE | Stored Print
DICOM_CLASS_HC_GRAYSCALE_IMAGE_STORAGE | Hardcopy Grayscale Image
DICOM_CLASS_HC_COLOR_IMAGE_STORAGE | Hardcopy Color Image
DICOM_CLASS_DX_IMAGE_STORAGE_PRESENTATION | Digital X-ray image presentation.
DICOM_CLASS_DX_IMAGE_STORAGE_PROCESSING | Digital X-ray image processing.
DICOM_CLASS_DX_MAMMOGRAPHY_IMAGE_STORAGE _PRESENTATION | Digital X-ray Mammography image presentation.
DICOM_CLASS_DX_MAMMOGRAPHY_IMAGE_STORAGE _PROCESSING | Digital X-ray Mammography image processing.
DICOM_CLASS_DX_INTRAORAL_IMAGE_STORAGE_PRESENTATION | Digital X-ray Intraoral image presentation.
DICOM_CLASS_DX_INTRAORAL_IMAGE_STORAGE_PROCESSING | Digital X-ray Intraoral image processing.
DICOM_CLASS_RT_BEAMS_TREATMENT_RECORD_STORAGE | Radiotherapy Beams Treatment Record.
DICOM_CLASS_RT_BRACHY_TREATMENT_RECORD_STORAGE | Radiotherapy Brachy Treatment Record.
DICOM_CLASS_RT_TREATMENT_SUMMARY_RECORD_STORAGE | Radiotherapy Treatment Summary Record.
DICOM_CLASS_VL_ENDOSCOPIC_IMAGE_STORAGE | Visible Light Endoscopic image.
DICOM_CLASS_VL_MICROSCOPIC_IMAGE_STORAGE | Visible Light Microscopic image.
DICOM_CLASS_VL_SLIDE_COORDINATES_MICROSCOPIC_ IMAGE_STORAGE | Visible Light slide coordinates for a Microscopic image.
DICOM_CLASS_VL_PHOTOGRAPHIC_IMAGE_STORAGE | Visible Light Photographic image.
DICOM_CLASS_PATIENT | Patient
DICOM_CLASS_VISIT | Visit
DICOM_CLASS_STUDY | Study
DICOM_CLASS_STUDY_COMPONENT | Study Component
DICOM_CLASS_RESULTS | Results
DICOM_CLASS_INTERPRETATION | Interpretation
DICOM_CLASS_BASIC_FILM_SESSION | Basic Film Session
DICOM_CLASS_BASIC_FILM_BOX | Basic Film Box
DICOM_CLASS_BASIC_IMAGE_BOX | Basic Image Box
DICOM_CLASS_BASIC_GRAYSCALE_IMAGE_BOX | Basic Grayscale Image Box
DICOM_CLASS_BASIC_COLOR_IMAGE_BOX | Basic Color Image Box
DICOM_CLASS_BASIC_ANNOTATION | Basic Annotation
DICOM_CLASS_PRINT_JOB | Print Job
DICOM_CLASS_PRINTER | Printer
DICOM_CLASS_VOI_LUT_BOX_RETIRED | VOI LUT Box (Retired)
DICOM_CLASS_IMAGE_OVERLAY_BOX_RETIRED | Image Overlay Box (Retired)
DICOM_CLASS_STORAGE_COMMITMENT_PUSH_MODEL | Storage Commitment
DICOM_CLASS_STORAGE_COMMITMENT_PULL_MODEL | Storage Commitment
DICOM_CLASS_PRINT_QUEUE | Print Queue
DICOM_CLASS_MODALITY_PERFORMED_PROCEDURE_STEP | Modality Performed Procedure Step
DICOM_CLASS_PRESENTATION_LUT | Presentation LUT
DICOM_CLASS_PULL_PRINT_REQUEST | Pull Print Request
DICOM_CLASS_PATIENT_META | Patient Meta
DICOM_CLASS_STUDY_META | Study Meta
DICOM_CLASS_RESULTS_META | Results Meta
DICOM_CLASS_BASIC_GRAYSCALE_PRINT_META | Basic Print Meta
DICOM_CLASS_BASIC_COLOR_PRINT_META | Basic Print Meta
DICOM_CLASS_REFERENCED_GRAYSCALE_PRINT_META_RETIRED | Referenced Print Meta (Retired)
DICOM_CLASS_REFERENCED_COLOR_PRINT_META_RETIRED | Referenced Print Meta (Retired)
DICOM_CLASS_PULL_STORED_PRINT_META | Pull Stored Print Meta
DICOM_CLASS_PRINTER_CONFIGURATION | Printer configuration.
DICOM_CLASS_BASIC_PRINT_IMAGE_OVERLAY_BOX | Basic print image overlay box.
DICOM_CLASS_BASIC_DIRECTORY | Basic Directory
DICOM_CLASS_PATIENT_ROOT_QUERY_PATIENT | Patient root query patient.
DICOM_CLASS_PATIENT_ROOT_QUERY_STUDY | Patient root query study.
DICOM_CLASS_PATIENT_ROOT_QUERY_SERIES | Patient root query series.
DICOM_CLASS_PATIENT_ROOT_QUERY_IMAGE | Patient root query image.
DICOM_CLASS_STUDY_ROOT_QUERY_STUDY | Study root query study.
DICOM_CLASS_STUDY_ROOT_QUERY_SERIES | Study root query series.
DICOM_CLASS_STUDY_ROOT_QUERY_IMAGE | Study root query image.
DICOM_CLASS_PATIENT_STUDY_QUERY_PATIENT | Patient study query patient.
DICOM_CLASS_PATIENT_STUDY_QUERY_STUDY | Patient study query study.
DICOM_CLASS_BASIC_TEXT_SR | Basic Text Structured Reporting
DICOM_CLASS_ENHANCED_SR | Enhanced Structured Reporting
DICOM_CLASS_COMPREHENSIVE_SR | Comprehensive Structured Reporting
DICOM_CLASS_GRAYSCALE_SOFTCOPY_PRESENTATION_STATE | Grayscale Softcopy Presentation State
DICOM_CLASS_BASIC_VOICE_AUDIO | Basic Voice Audio
DICOM_CLASS_12_LEAD_ECG | 12-Lead ECG
DICOM_CLASS_GENERAL_ECG | General ECG
DICOM_CLASS_AMBULATORY_ECG | Ambulatory ECG
DICOM_CLASS_HEMODYNAMIC | Hemodynamic
DICOM_CLASS_BASIC_CARDIAC_EP | Basic Cardiac EP
DICOM_CLASS_UNKNOWN | Unknown
DICOM_CLASS_MAX | Maximum number of classes.


IOD Module Constants

The following constants are used to indicate the Module Information Object Definitions.

Code constant | Code value and meaning
DICOM_MODULE_PATIENT | Patient module
DICOM_MODULE_GENERAL_STUDY | General Study module
DICOM_MODULE_PATIENT_STUDY | Patient Study module
DICOM_MODULE_GENERAL_SERIES | General Series module
DICOM_MODULE_CR_SERIES | Computed Radiography Series module
DICOM_MODULE_GENERAL_EQUIPMENT | General Equipment module
DICOM_MODULE_GENERAL_IMAGE | General Image module
DICOM_MODULE_IMAGE_PIXEL | Image Pixel module
DICOM_MODULE_CONTRAST_BOLUS | Contrast Bolus module
DICOM_MODULE_CR_IMAGE | Computed Radiography Image module
DICOM_MODULE_OVERLAY_PLANE | Overlay Plane module
DICOM_MODULE_CURVE | Curve module
DICOM_MODULE_MODALITY_LUT | Modality LUT module
DICOM_MODULE_VOI_LUT | VOI LUT module
DICOM_MODULE_SOP_COMMON | SOP Common module
DICOM_MODULE_FRAME_OF_REFERENCE | Frame of Reference module
DICOM_MODULE_IMAGE_PLANE | Image Plane module
DICOM_MODULE_CT_IMAGE | Computed Tomography Image module
DICOM_MODULE_MR_IMAGE | Magnetic Resonance Image module
DICOM_MODULE_NM_PET_PATIENT_ORIENTATION | Nuclear Medicine Positron Emission Tomography Patient Orientation module
DICOM_MODULE_NM_IMAGE_PIXEL | Nuclear Medicine Image Pixel module
DICOM_MODULE_MULTI_FRAME | Multi-Frame module
DICOM_MODULE_NM_MULTI_FRAME | Nuclear Medicine Multi-Frame module
DICOM_MODULE_NM_IMAGE | Nuclear Medicine Image module
DICOM_MODULE_NM_ISOTOPE | Nuclear Medicine Isotope module
DICOM_MODULE_NM_DETECTOR | Nuclear Medicine Detector module
DICOM_MODULE_NM_TOMO_ACQUISITION | Nuclear Medicine Tomography Acquisition module
DICOM_MODULE_NM_MULTI_GATED_ACQUISITION | Nuclear Medicine Multi-Gated Acquisition module
DICOM_MODULE_NM_PHASE | Nuclear Medicine Phase module
DICOM_MODULE_NM_RECONSTRUCTION | Nuclear Medicine Reconstruction module
DICOM_MODULE_MULTI_FRAME_OVERLAY | Multi-Frame Overlay module
DICOM_MODULE_US_FRAME_OF_REFERENCE | Ultrasound Frame of Reference module
DICOM_MODULE_PALETTE_COLOR_LOOCKUP_TABLE | Palette Color LookUp Table module
DICOM_MODULE_US_REGION_CALIBRATION | Ultrasound Region Calibration module
DICOM_MODULE_US_IMAGE | Ultrasound Image module
DICOM_MODULE_CURVE_IDENTIFICATION | Curve Identification module
DICOM_MODULE_AUDIO | Audio module
DICOM_MODULE_CINE | Cine module
DICOM_MODULE_SC_EQUIPMENT | Secondary Capture Equipment module
DICOM_MODULE_SC_IMAGE | Secondary Capture Image module
DICOM_MODULE_OVERLAY_IDENTIFICATION | Overlay Identification module
DICOM_MODULE_PATIENT_SUMMARY | Patient Summary module
DICOM_MODULE_STUDY_CONTENT | Study Content module
DICOM_MODULE_LUT_IDENTIFICATION | LUT Identification module
DICOM_MODULE_FRAME_POINTERS | Frame Pointers module
DICOM_MODULE_MASK | Mask module
DICOM_MODULE_DISPLAY_SHUTTER | Display Shutter module
DICOM_MODULE_DEVICE | Device module
DICOM_MODULE_THERAPY | Therapy module
DICOM_MODULE_XA_IMAGE | X-Ray Angiographic Image module
DICOM_MODULE_XA_ACQUISITION | X-Ray Angiographic Acquisition module
DICOM_MODULE_XA_COLLIMATOR | X-Ray Angiographic Collimator module
DICOM_MODULE_XA_TABLE | X-Ray Angiographic Table module
DICOM_MODULE_XA_POSITIONER | X-Ray Angiographic Positioner module
DICOM_MODULE_BIPLANE_SEQUENCE | Biplane Sequence module
DICOM_MODULE_BIPLANE_OVERLAY | Biplane Overlay module
DICOM_MODULE_BIPLANE_IMAGE | Biplane Image module
DICOM_MODULE_XRF_POSITIONER | X-Ray Radiofluoroscopic Positioner module
DICOM_MODULE_XRF_TOMO_ACQUISITION | X-Ray Radiofluoroscopic Tomography Acquisition module
DICOM_MODULE_RT_SERIES | Radiotherapy Series module
DICOM_MODULE_RT_IMAGE | Radiotherapy Image module
DICOM_MODULE_APPROVAL | Approval module
DICOM_MODULE_RT_DOSE | Radiotherapy Dose module
DICOM_MODULE_RT_DVH | Radiotherapy Dose Volume Histograms module
DICOM_MODULE_STRUCTURE_SET | Structure Set module
DICOM_MODULE_ROI_CONTOUR | Region Of Interest Contour module
DICOM_MODULE_RT_DOSE_ROI | Radiotherapy Dose Region Of Interest module.
DICOM_MODULE_RT_OBSERVATIONS | Radiotherapy Observations module
DICOM_MODULE_RT_GENERAL_PLAN | Radiotherapy General Plan module
DICOM_MODULE_RT_PRESCRIPTION | Radiotherapy Prescription module
DICOM_MODULE_RT_TOLERANCE_TABLES | Radiotherapy Tolerance Tables module
DICOM_MODULE_RT_PATIENT_SETUP | Radiotherapy Patient Setup module
DICOM_MODULE_RT_FRACTION_SCHEME | Radiotherapy Fraction Scheme module
DICOM_MODULE_RT_BEAMS | Radiotherapy Beams module
DICOM_MODULE_RT_BRACHY_APPLICATION_SETUPS | Radiotherapy Brachy Application Setups module
DICOM_MODULE_PET_SERIES | Positron Emission Tomography Series module
DICOM_MODULE_PET_ISOTOPE | Positron Emission Tomography Isotope module
DICOM_MODULE_PET_MULTIGATED_ACQUISITION | Positron Emission Tomography Multi-gated Acquisition module
DICOM_MODULE_PET_IMAGE | Positron Emission Tomography Image module
DICOM_MODULE_PET_CURVE | Positron Emission Tomography Curve module
DICOM_MODULE_PRINTER_CHARACTERISTICS | Printer Characteristics module
DICOM_MODULE_FILM_BOX | Film Box module
DICOM_MODULE_IMAGE_BOX_LIST | Image Box List module
DICOM_MODULE_ANNOTATION_LIST | Annotation List module
DICOM_MODULE_IMAGE_OVERLAY_BOX_LIST | Image Overlay Box List module
DICOM_MODULE_PRESENTATION_LUT_LIST | Presentation LUT List module
DICOM_MODULE_HC_EQUIPMENT | Hard Copy Equipment module
DICOM_MODULE_HC_GRAYSCALE_IMAGE | Hard Copy Grayscale Image module
DICOM_MODULE_HC_COLOR_IMAGE | Hard Copy Color Image module
DICOM_MODULE_PATIENT_RELATIONSHIP | Patient Relationship module
DICOM_MODULE_PATIENT_IDENTIFICATION | Patient Identification module
DICOM_MODULE_PATIENT_DEMOGRAPHIC | Patient Demographic module
DICOM_MODULE_PATIENT_MEDICAL | Patient Medical module
DICOM_MODULE_VISIT_RELATIONSHIP | Visit Relationship module
DICOM_MODULE_VISIT_IDENTIFICATION | Visit Identification module
DICOM_MODULE_VISIT_ADMISSION | Visit Admission module
DICOM_MODULE_VISIT_STAY | Visit Stay module
DICOM_MODULE_VISIT_DISCHARGE | Visit Discharge module
DICOM_MODULE_VISIT_SCHEDULING | Visit Scheduling module
DICOM_MODULE_STUDY_RELATIONSHIP | Study Relationship module
DICOM_MODULE_STUDY_IDENTIFICATION | Study Identification module
DICOM_MODULE_STUDY_CLASSIFICATION | Study Classification module
DICOM_MODULE_STUDY_SCHEDULING | Study Scheduling module
DICOM_MODULE_STUDY_ACQUISITION | Study Acquisition module
DICOM_MODULE_STUDY_READ | Study Read module
DICOM_MODULE_STUDY_COMPONENT_RELATIONSHIP | Study Component Relationship module
DICOM_MODULE_STUDY_COMPONENT_ACQUISITION | Study Component Acquisition module
DICOM_MODULE_STUDY_COMPONENT | Study Component module
DICOM_MODULE_RESULTS_RELATIONSHIP | Results Relationship module
DICOM_MODULE_RESULTS_IDENTIFICATION | Results Identification module
DICOM_MODULE_RESULTS_IMPRESSIONS | Results Impressions module
DICOM_MODULE_INTERPRETATION_RELATIONSHIP | Interpretation Relationship module
DICOM_MODULE_INTERPRETATION_IDENTIFICATION | Interpretation Identification module
DICOM_MODULE_INTERPRETATION_STATE | Interpretation State module
DICOM_MODULE_INTERPRETATION_RECORDING | Interpretation Recording module
DICOM_MODULE_INTERPRETATION_TRANSCRIPTION | Interpretation Transcription module
DICOM_MODULE_INTERPRETATION_APPROVAL | Interpretation Approval module
DICOM_MODULE_BASIC_FILM_SESSION_PRESENTATION | Basic Film Session Presentation module
DICOM_MODULE_BASIC_FILM_SESSION_RELATIONSHIP | Basic Film Session Relationship module
DICOM_MODULE_BASIC_FILM_BOX_PRESENTATION | Basic Film Box Presentation module
DICOM_MODULE_BASIC_FILM_BOX_RELATIONSHIP | Basic Film Box Relationship module
DICOM_MODULE_IMAGE_BOX_PRESENTATION | Image Box Presentation module
DICOM_MODULE_IMAGE_BOX_RELATIONSHIP | Image Box Relationship module
DICOM_MODULE_BASIC_ANNOTATION_PRESENTATION | Basic Annotation Presentation module
DICOM_MODULE_PRINT_JOB | Print Job module
DICOM_MODULE_PRINTER | Printer module
DICOM_MODULE_IMAGE_OVERLAY_BOX_PRESENTATION | Image Overlay Box Presentation module
DICOM_MODULE_IMAGE_OVERLAY_BOX_RELATIONSHIP | Image Overlay Box Relationship module
DICOM_MODULE_STORAGE_COMMITMENT | Storage Commitment module
DICOM_MODULE_GENERAL_QUEUE | General Queue module
DICOM_MODULE_PRINT_QUEUE | Print Queue module
DICOM_MODULE_PERFORMED_PROCEDURE_STEP_RELATIONSHIP | Performed Procedure Step Relationship module
DICOM_MODULE_PERFORMED_PROCEDURE_STEP_INFORMATION | Performed Procedure Step Information module
DICOM_MODULE_IMAGE_ACQUISITION_RESULTS | Image Acquisition Results module
DICOM_MODULE_RADIATION_DOSE | Radiation Dose module
DICOM_MODULE_BILLING_AND_MATERIAL_MANAGEMENT_CODES | Billing and Material Management Codes module
DICOM_MODULE_PRESENTATION_LUT | Presentation LUT module
DICOM_MODULE_PRINT_REQUEST | Print Request module
DICOM_MODULE_NM_SERIES_RETIRED | Nuclear Medicine Series (Retired)
DICOM_MODULE_NM_EQUIPMENT_RETIRED | Nuclear Medicine Equipment (Retired)
DICOM_MODULE_NM_IMAGE_RETIRED | Nuclear Medicine Image (Retired)
DICOM_MODULE_NM_SPECT_ACQUISITION_IMAGE_RETIRED | Nuclear Medicine Spect Acquisition Image (Retired)
DICOM_MODULE_NM_MULTI_GATED_ACQUISITION_IMAGE_RETIRED | Nuclear Medicine Multi-Gated Acquisition Image (Retired)
DICOM_MODULE_US_FRAME_OF_REFERENCE_RETIRED | Ultrasound Frame of Reference (Retired)
DICOM_MODULE_US_REGION_CALIBRATION_RETIRED | Ultrasound Region of Calibration (Retired)
DICOM_MODULE_US_IMAGE_RETIRED | Ultrasound Image (Retired)
DICOM_MODULE_FILESET_IDENTIFICATION | Fileset identification
DICOM_MODULE_DIRECTORY_INFORMATION | Directory information
DICOM_MODULE_RECORD_SELECTION_KEY | Record Selection Key
DICOM_MODULE_PATIENT_KEY | Patient Key
DICOM_MODULE_STUDY_KEY | Study Key
DICOM_MODULE_SERIES_KEY | Series Key
DICOM_MODULE_IMAGE_KEY | Image Key
DICOM_MODULE_OVERLAY_KEY | Overlay Key
DICOM_MODULE_MODALITY_LUT_KEY | Modality LUT Key
DICOM_MODULE_VOI_LUT_KEY | VOI LUT Key
DICOM_MODULE_CURVE_KEY | Curve Key
DICOM_MODULE_STORED_PRINT_KEY | Stored Print Key
DICOM_MODULE_RT_DOSE_KEY | Radiotherapy Dose Key
DICOM_MODULE_RT_STRUCTURE_SET_KEY | Radiotherapy Structure Set Key
DICOM_MODULE_RT_PLAN_KEY | Radiotherapy Plan Key
DICOM_MODULE_RT_TREATMENT_RECORD_KEY | Radiotherapy Treatment Record Key
DICOM_MODULE_TOPIC_KEY | Topic Key
DICOM_MODULE_VISIT_KEY | Visit Key
DICOM_MODULE_RESULT_KEY | Result Key
DICOM_MODULE_INTERPRETATION_KEY | Interpretation Key
DICOM_MODULE_STUDY_COMPONENT_KEY | Study Component Key
DICOM_MODULE_PRIVATE_KEY | Private Key
DICOM_MODULE_MULTIREFERENCED_FILE_KEY | Multi-referenced File Key
DICOM_MODULE_SPECIMEN_IDENTIFICATION | Specimen identification Module
DICOM_MODULE_DX_SERIES | Digital X-ray series Module
DICOM_MODULE_DX_ANATOMY_IMAGED | Digital X-ray anatomy imaged Module
DICOM_MODULE_DX_IMAGE | Digital X-ray image Module
DICOM_MODULE_DX_DETECTOR | Digital X-ray Detector Module
DICOM_MODULE_DX_POSITIONING | Digital X-ray Positioning Module
DICOM_MODULE_ACQUISITION_CONTEXT | Acquisition Context Module
DICOM_MODULE_XA_ACQUISITION_DOSE | X-Ray Angiographic Acquisition Dose Module
DICOM_MODULE_XA_GENERATION | X-Ray Angiographic Generation Module
DICOM_MODULE_XA_FILTRATION | X-Ray Angiographic Filtration Module
DICOM_MODULE_XA_GRID | X-Ray Angiographic Grid Module
DICOM_MODULE_IMAGE_HISTOGRAM | Image Histogram Module
DICOM_MODULE_MAMMOGRAPHY_SERIES | Mammography Series Module
DICOM_MODULE_MAMMOGRAPHY_IMAGE | Mammography Image Module
DICOM_MODULE_INTRAORAL_SERIES | Intra-oral Series Module
DICOM_MODULE_INTRAORAL_IMAGE | Intra-oral Image Module
DICOM_MODULE_RT_GENERAL_TREATMENT_RECORD | Radiotherapy General Treatment Record Module
DICOM_MODULE_RT_TREATMENT_MACHINE_RECORD | Radiotherapy Treatment Machine Record Module
DICOM_MODULE_MEASURED_DOSE_REFERENCE_RECORD | Measured Dose Reference Record Module
DICOM_MODULE_CALCULATED_DOSE_REFERENCE_RECORD | Calculated Dose Reference Record Module
DICOM_MODULE_RT_BEAMS_SESSION_RECORD | Radiotherapy Beams Session Record Module
DICOM_MODULE_RT_TREATMENT_SUMMARY_RECORD | Radiotherapy Treatment Summary Record Module
DICOM_MODULE_RT_BRACHY_SESSION_RECORD | Radiotherapy Brachy Session Record Module
DICOM_MODULE_VL_IMAGE | Visible Light Image Module
DICOM_MODULE_SLIDE_COORDINATES | Slide Coordinates Module
DICOM_MODULE_BASIC_PRINT_IMAGE_OVERLAY_BOX | Basic Print Image Overlay Box Module
DICOM_MODULE_PRINTER_CONFIGURATION | Printer Configuration Module
DICOM_MODULE_SR_DOCUMENT_SERIES | Structured Reporting Document Series
DICOM_MODULE_SR_DOCUMENT_GENERAL | Structured Reporting Document General
DICOM_MODULE_SR_DOCUMENT_CONTENT | Structured Reporting Document Content
DICOM_MODULE_SR_DOCUMENT_KEY | Structured Reporting Document key
DICOM_MODULE_PRESENTATION_SERIES | Presentation Series
DICOM_MODULE_PRESENTATION_STATE | Presentation state
DICOM_MODULE_BITMAP_DISPLAY_SHUTTER | Bitmap display shutter
DICOM_MODULE_OVERLAY_CURVE_ACTIVATION | Overlay curve activation
DICOM_MODULE_DISPLAYED_AREA | Displayed area
DICOM_MODULE_GRAPHIC_ANNOTATION | Graphic annotation
DICOM_MODULE_SPATIAL_TRANSFORMATION | Spatial transformation
DICOM_MODULE_GRAPHIC_LAYER | Graphic layer
DICOM_MODULE_SOFTCOPY_VOI_LUT | Softcopy VOI LUT
DICOM_MODULE_SOFTCOPY_PRESENTATION_LUT | Softcopy presentation LUT
DICOM_MODULE_SYNCHRONIZATION | Synchronization
DICOM_MODULE_WAVEFORM_IDENTIFICATION | Waveform identification
DICOM_MODULE_WAVEFORM | Waveform
DICOM_MODULE_WAVEFORM_ANNOTATION | Waveform annotation
DICOM_MODULE_MAX | Maximum number of modules


IOD Usage Constants

The following constants are used to indicate the usage of Information Object Definitions.

Code constant | Code value and meaning
DICOM_IOD_USAGE_M | [$00] Mandatory IOD
DICOM_IOD_USAGE_C | [$01] Conditional IOD
DICOM_IOD_USAGE_U | [$02] Optional IOD
DICOM_IOD_USAGE_1 | [$03] Mandatory IOD - type 1
DICOM_IOD_USAGE_1C | [$04] Conditional IOD - type 1
DICOM_IOD_USAGE_2 | [$05] Mandatory IOD - type 2
DICOM_IOD_USAGE_2C | [$06] Conditional IOD - type 2
DICOM_IOD_USAGE_3 | [$07] Optional IOD - type 3


UID Table

The following is a list of default values for the Unique Identifiers that are standard for the DICOM file format.

Code | Name
1.2.840.10008.1.1 | Verification SOP Class
1.2.840.10008.1.2 | Implicit VR Little Endian
1.2.840.10008.1.2.1 | Explicit VR Little Endian
1.2.840.10008.1.2.2 | Explicit VR Big Endian
1.2.840.10008.1.2.4.50 | JPEG Baseline (Process 1)
1.2.840.10008.1.2.4.51 | JPEG Extended (Process 2 & 4)
1.2.840.10008.1.2.4.52 | JPEG Extended (Process 3 & 5)
1.2.840.10008.1.2.4.53 | JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8)
1.2.840.10008.1.2.4.54 | JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9)
1.2.840.10008.1.2.4.55 | JPEG Full Progression, Non-Hierarchical (Process 10 & 12)
1.2.840.10008.1.2.4.56 | JPEG Full Progression, Non-Hierarchical (Process 11 & 13)
1.2.840.10008.1.2.4.57 | JPEG Lossless, Non-Hierarchical (Process 14)
1.2.840.10008.1.2.4.58 | JPEG Lossless, Non-Hierarchical (Process 15)
1.2.840.10008.1.2.4.59 | JPEG Extended, Hierarchical (Process 16 & 18)
1.2.840.10008.1.2.4.60 | JPEG Extended, Hierarchical (Process 17 & 19)
1.2.840.10008.1.2.4.61 | JPEG Spectral Selection, Hierarchical (Process 20 & 22)
1.2.840.10008.1.2.4.62 | JPEG Spectral Selection, Hierarchical (Process 21 & 23)
1.2.840.10008.1.2.4.63 | JPEG Full Progression, Hierarchical (Process 24 & 26)
1.2.840.10008.1.2.4.64 | JPEG Full Progression, Hierarchical (Process 25 & 27)
1.2.840.10008.1.2.4.65 | JPEG Lossless, Hierarchical (Process 28)
1.2.840.10008.1.2.4.66 | JPEG Lossless, Hierarchical (Process 29)
1.2.840.10008.1.2.4.70 | JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1])
1.2.840.10008.1.2.4.80 | JPEG-LS Lossless Image Compression Transfer Syntax
1.2.840.10008.1.2.4.81 | JPEG-LS Lossy (Near-Lossless) Image Compression Transfer Syntax
1.2.840.10008.1.2.5 | RLE Lossless
1.2.840.10008.1.3.10 | Media Storage Directory Storage
1.2.840.10008.1.9 | Basic Study Content Notification SOP Class
1.2.840.10008.1.20.1 | Storage Commitment Push Model SOP Class
1.2.840.10008.1.20.1.1 | Storage Commitment Push Model SOP Instance
1.2.840.10008.1.20.2 | Storage Commitment Pull Model SOP Class
1.2.840.10008.1.20.2.1 | Storage Commitment Pull Model SOP Instance
1.2.840.10008.3.1.1.1 | DICOM Application Context Name
1.2.840.10008.3.1.2.1.1 | Detached Patient Management SOP Class
1.2.840.10008.3.1.2.1.4 | Detached Patient Management Meta SOP Class
1.2.840.10008.3.1.2.2.1 | Detached Visit Management SOP Class
1.2.840.10008.3.1.2.3.1 | Detached Study Management SOP Class
1.2.840.10008.3.1.2.3.2 | Study Component Management SOP Class
1.2.840.10008.3.1.2.3.3 | Modality Performed Procedure Step SOP Class
1.2.840.10008.3.1.2.3.4 | Modality Performed Procedure Step Retrieve SOP Class
1.2.840.10008.3.1.2.3.5 | Modality Performed Procedure Step Notification SOP Class
1.2.840.10008.3.1.2.5.1 | Detached Results Management SOP Class
1.2.840.10008.3.1.2.5.4 | Detached Results Management Meta SOP Class
1.2.840.10008.3.1.2.5.5 | Detached Study Management Meta SOP Class
1.2.840.10008.3.1.2.6.1 | Detached Interpretation Management SOP Class
1.2.840.10008.5.1.1.1 | Basic Film Session SOP Class
1.2.840.10008.5.1.1.2 | Basic Film Box SOP Class
1.2.840.10008.5.1.1.4 | Basic Grayscale Image Box SOP Class
1.2.840.10008.5.1.1.4.1 | Basic Color Image Box SOP Class
1.2.840.10008.5.1.1.4.2 | Referenced Image Box SOP Class (Retired)
1.2.840.10008.5.1.1.9 | Basic Grayscale Print Management Meta SOP Class
1.2.840.10008.5.1.1.9.1 | Referenced Grayscale Print Management Meta SOP Class (Retired)
1.2.840.10008.5.1.1.14 | Print Job SOP Class
1.2.840.10008.5.1.1.15 | Basic Annotation Box SOP Class
1.2.840.10008.5.1.1.16 | Printer SOP Class
1.2.840.10008.5.1.1.16.376 | Printer Configuration Retrieval Class
1.2.840.10008.5.1.1.17 | Printer SOP Instance
1.2.840.10008.5.1.1.17.376 | Printer Configuration Retrieval Instance
1.2.840.10008.5.1.1.18 | Basic Color Print Management Meta SOP Class
1.2.840.10008.5.1.1.18.1 | Referenced Color Print Management Meta SOP Class (Retired)
1.2.840.10008.5.1.1.22 | VOI LUT Box SOP Class (Retired)
1.2.840.10008.5.1.1.23 | Presentation LUT SOP Class
1.2.840.10008.5.1.1.24 | Image Overlay Box SOP Class (Retired)
1.2.840.10008.5.1.1.24.1 | Basic Print Image Overlay Box Class
1.2.840.10008.5.1.1.25 | Print Queue SOP Instance
1.2.840.10008.5.1.1.26 | Print Queue Management SOP Class
1.2.840.10008.5.1.1.27 | Stored Print Storage SOP Class
1.2.840.10008.5.1.1.29 | Hardcopy Grayscale Image Storage SOP Class
1.2.840.10008.5.1.1.30 | Hardcopy Color Image Storage SOP Class
1.2.840.10008.5.1.1.31 | Pull Print Request SOP Class
1.2.840.10008.5.1.1.32 | Pull Stored Print Management Meta SOP Class
1.2.840.10008.5.1.4.1.1.1 | Computed Radiography Image Storage
1.2.840.10008.5.1.4.1.1.1.1 | Digital X-ray Image Storage Presentation
1.2.840.10008.5.1.4.1.1.1.1.1 | Digital X-ray Image Storage Processing
1.2.840.10008.5.1.4.1.1.1.2 | Digital X-ray Mammography Image Storage Presentation
1.2.840.10008.5.1.4.1.1.1.2.1 | Digital X-ray Mammography Image Storage Processing
1.2.840.10008.5.1.4.1.1.1.3 | Digital X-ray Intra-oral Image Storage Presentation
1.2.840.10008.5.1.4.1.1.1.3.1 | Digital X-ray Intra-oral Image Storage Processing
1.2.840.10008.5.1.4.1.1.2 | Computed Tomography Image Storage
1.2.840.10008.5.1.4.1.1.3 | Ultrasound Multi-frame Image Storage (Retired)
1.2.840.10008.5.1.4.1.1.3.1 | Ultrasound Multi-frame Image Storage
1.2.840.10008.5.1.4.1.1.4 | Magnetic Resonance Image Storage
1.2.840.10008.5.1.4.1.1.5 | Nuclear Medicine Image Storage (Retired)
1.2.840.10008.5.1.4.1.1.6 | Ultrasound Image Storage (Retired)
1.2.840.10008.5.1.4.1.1.6.1 | Ultrasound Image Storage
1.2.840.10008.5.1.4.1.1.7 | Secondary Capture Image Storage
1.2.840.10008.5.1.4.1.1.8 | Standalone Overlay Storage
1.2.840.10008.5.1.4.1.1.9 | Standalone Curve Storage
1.2.840.10008.5.1.4.1.1.9.1.3 | Ambulatory ECG Waveform Storage
1.2.840.10008.5.1.4.1.1.9.2.1 | Hemodynamic Waveform Storage
1.2.840.10008.5.1.4.1.1.9.3.1 | Cardiac Electrophysiology Waveform Storage
1.2.840.10008.5.1.4.1.1.9.4.1 | Basic Voice Audio Waveform Storage
1.2.840.10008.5.1.4.1.1.10 | Standalone Modality LUT Storage
1.2.840.10008.5.1.4.1.1.11 | Standalone VOI LUT Storage
1.2.840.10008.5.1.4.1.1.11.1 | Grayscale Softcopy Presentation State Storage
1.2.840.10008.5.1.4.1.1.12.1 | X-Ray Angiographic Image Storage
1.2.840.10008.5.1.4.1.1.12.2 | X-Ray Radiofluoroscopic Image Storage
1.2.840.10008.5.1.4.1.1.12.3 | X-Ray Angiographic Bi-Plane Image Storage (Retired)
1.2.840.10008.5.1.4.1.1.20 | Nuclear Medicine Image Storage
1.2.840.10008.5.1.4.1.1.128 | Positron Emission Tomography Image Storage
1.2.840.10008.5.1.4.1.1.129 | Standalone Positron Emission Tomography Curve Storage
1.2.840.10008.5.1.4.1.1.481.1 | Radiotherapy Image Storage
1.2.840.10008.5.1.4.1.1.481.2 | Radiotherapy Dose Storage
1.2.840.10008.5.1.4.1.1.481.3 | Radiotherapy Structure Set Storage
1.2.840.10008.5.1.4.1.1.481.4 | Radiotherapy Beams Treatment Record Storage Class
1.2.840.10008.5.1.4.1.1.481.5 | Radiotherapy Plan Storage
1.2.840.10008.5.1.4.1.1.481.6 | Radiotherapy Brachy Treatment Record Storage Class
1.2.840.10008.5.1.4.1.1.481.7 | Radiotherapy Treatment Summary Record Storage Class
1.2.840.10008.5.1.4.1.1.77.1 | Visible Light Storage (Retired)
1.2.840.10008.5.1.4.1.1.77.2 | Visible Light Multiframe Image Storage (Retired)
1.2.840.10008.5.1.4.1.1.77.1.1 | Visible Light Endoscopic Image Storage Class
1.2.840.10008.5.1.4.1.1.77.1.2 | Visible Light Microscopic Image Storage Class
1.2.840.10008.5.1.4.1.1.77.1.3 | Visible Light Slide Coordinates Microscopic Image Storage Class
1.2.840.10008.5.1.4.1.1.77.1.4 | Visible Light Photographic Image Storage Class
1.2.840.10008.5.1.4.1.1.88.11 | Basic Text Structured Reporting
1.2.840.10008.5.1.4.1.1.88.22 | Enhanced Structured Reporting
1.2.840.10008.5.1.4.1.1.88.33 | Comprehensive Structured Reporting
1.2.840.10008.5.1.4.1.2.1.1 | Patient Root Query/Retrieve Information Model - FIND
1.2.840.10008.5.1.4.1.2.1.2 | Patient Root Query/Retrieve Information Model - MOVE
1.2.840.10008.5.1.4.1.2.1.3 | Patient Root Query/Retrieve Information Model - GET
1.2.840.10008.5.1.4.1.2.2.1 | Study Root Query/Retrieve Information Model - FIND
1.2.840.10008.5.1.4.1.2.2.2 | Study Root Query/Retrieve Information Model - MOVE
1.2.840.10008.5.1.4.1.2.2.3 | Study Root Query/Retrieve Information Model - GET
1.2.840.10008.5.1.4.1.2.3.1 | Patient/Study Only Query/Retrieve Information Model - FIND
1.2.840.10008.5.1.4.1.2.3.2 | Patient/Study Only Query/Retrieve Information Model - MOVE
1.2.840.10008.5.1.4.1.2.3.3 | Patient/Study Only Query/Retrieve Information Model - GET
1.2.840.10008.5.1.4.31 | Modality Worklist Information Model - FIND


Value Representation Constants

The following constants are used to indicate the Value Representation.

Value | Meaning
VR_AE | [$145U] Application Entity
VR_AS | [$153U] Age String
VR_AT | [$154U] Attribute Tag
VR_CS | [$353U] Code String
VR_DA | [$441U] Date
VR_DS | [$453U] Decimal String
VR_DT | [$454U] Date Time
VR_FD | [$644U] Floating Point Double
VR_FL | [$64CU] Floating Point Single
VR_IS | [$953U] Integer String
VR_LO | [$C4FU] Long String
VR_LT | [$C54U] Long Text
VR_OB | [$F42U] Other Byte String
VR_OW | [$F57U] Other Word String
VR_PN | [$04EU] Person Name
VR_SH | [$348U] Short String
VR_SL | [$34CU] Signed Long
VR_SQ | [$351U] Sequence of Items
VR_SS | [$353U] Signed Short
VR_ST | [$354U] Short Text
VR_TM | [$44DU] Time
VR_UI | [$549U] Unique Identifier
VR_UL | [$54CU] Unsigned Long
VR_UN | [$54EU] Unknown
VR_US | [$553U] Unsigned Short
VR_UT | [$554U] Unlimited Text


Topic Selection

LEAD Technologies, Inc.
Suite 400
1201 Greenwood Cliff
Charlotte, NC 28204

Sales@Leadtools.com
www.leadtools.com

(704) 332-5532
FAX: (704) 372-8161
Tech Support: (704) 372-9681

LEADTOOLS is ideal for developers involved in still frame, multimedia, document, medical, and vector imaging projects, including Internet/Intranet applications. Independent of the specific application requirement – scanning, file format support/conversion, compression, image processing, annotation, database support, multimedia, etc. – LEADTOOLS provides the most comprehensive, robust, flexible, and powerful imaging solution available.

Click this button to start the Licensing help file to review the License Agreements governing your use of the software.

Click this button to start the Products help file to review the full line of LEADTOOLS Products.

Click this button to start the Imaging help file to review the full line of LEADTOOLS Image Categories.


uIndex Parameter for AgeValues

uIndex

Index into the array of age values. This is a zero-based index.


uIndex Parameter for BinaryValues

uIndex

Index into the array of binary values. This is a zero-based index.


uIndex Parameter for CharValues

uIndex

Index into the array of binary values. This is a zero-based index.


Return for ConformanceTestDS

Return Value

True | The Data Set conforms to the standard.
False | The Data Set does not conform to the standard.


uIndex Parameter for DateTimeValues

uIndex

Index into the array of date-time values. This is a zero-based index.


uIndex Parameter for DateValues

uIndex

Index into the array of date values. This is a zero-based index.


Return for DefaultIOD

Return Value

None.


Return for DefaultTag

Return Value

None.


Return for DefaultUID

Return Value

None.


Return for DefaultVR

Return Value

None.


Return for DeleteBitmapValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For DeleteBitmapValue

uCount

Number of frames to delete from the Pixel Data Element.


uIndex Parameter For DeleteBitmapValue

uIndex

Position of the first frame to delete. Use zero-based indexing. For example, if there are 10 bitmaps in a list, the index of the last one is 9. You can delete the last image in the Pixel Data Element by setting this to ELEMENT_INDEX_MAX.


Return for DeleteElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for DeleteIOD

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for DeleteKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


Return for DeleteModule

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uModule Parameter For DeleteModule

uModule

Module constant that specifies which module to delete. For a list of default values, refer to IOD Module Constants.


Return for DeleteTag

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for DeleteUID

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for DeleteVR

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uIndex Parameter for DoubleValues

uIndex

Index into the array of double values. This is a zero-based index.


Return for FindClassIOD

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uClass Parameter For FindClassIOD

uClass

Class constant that specifies the class to find. For a list of default values, refer to IOD Class Constants.


bTree Parameter For FindFirstElement

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the Data Set as a tree.
False | Evaluate the Data Set as a list.


Return for FindFirstElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uTag Parameter For FindFirstElement

uTag

Tag that specifies the item to find. For a list of default tag values, refer to Data Element Tag Constants.


bTree Parameter For FindFirstKey

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
TRUE | Evaluate the Data Set as a tree.
FALSE | Evaluate the Data Set as a list.


Return for FindFirstKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


szKey Parameter For FindFirstKey

szKey

String that contains the type of key element to find. Possible values are:

Value | Meaning
"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
"STORED PRINT" | Stored print key element
"RT DOSE" | RT dose key element
"RT STRUCTURE SET" | RT structure set key element
"RT PLAN" | RT plan key element
"RT TREAT RECORD" | RT treatment record key element
"TOPIC" | Topic key element
"VISIT" | Visit key element
"RESULTS" | Results key element
"INTERPRETATION" | Interpretation key element
"STUDY COMPONENT" | Study Component key element
"PRESENTATION" | Presentation key element
"WAVEFORM" | Waveform key element
"SR DOCUMENT" | Structured Reporting Document key element
"PRIVATE" | Private key element


Return for FindIndexModule

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uIndex for FindIndexModule

uIndex

Index value that indicates the position of the module in Level 0 of the Data Set. This index is zero-based.


Return for FindIndexTag

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uIndex Parameter For FindIndexTag

uIndex

An index into the Data Element Tag Table. This index is zero-based.


Return for FindIndexUID

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uIndex Parameter For FindIndexUID

uIndex

An index into the UID Table. This index is zero-based.


Return for FindIndexVR

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uIndex Parameter For FindIndexVR

uIndex

An index into the Value Representation Table. This index is zero-based.


bTree Parameter For FindIOD

bTree

Flag that indicates how the IOD Structure will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the IOD Structure as a tree. Update the CurrentIOD property with the first search item in the same level and with the same parent as the CurrentIOD.
False | Evaluate the IOD Structure as a list. Update the CurrentIOD property with the first search item in the IOD Structure.


Return for FindIOD

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nType Parameter For FindIOD

nType

The type of Information Object Definition you are working with. Possible values are:

Value | Meaning
DICOM_IOD_TYPE_CLASS | [$00] Class type Information Object Definition.
DICOM_IOD_TYPE_MODULE | [$01] Module type Information Object Definition.
DICOM_IOD_TYPE_ELEMENT | [$02] Element type Information Object Definition.


uCode Parameter For FindIOD

uCode

Code value that specifies the Information Object Definition. The information object may be a Class, a Module or a Tag. For lists of default values, refer to Data Element Tag Constants, IOD Class Constants, and IOD Module Constants.


bTree Parameter For FindLastElement

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the Data Set as a tree.
False | Evaluate the Data Set as a list.


Return for FindLastElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uTag Parameter For FindLastElement

uTag

Tag that specifies the item to find. For a list of default tag values, refer to Data Element Tag Constants.


bTree Parameter For FindLastKey

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
TRUE | Evaluate the Data Set as a tree.
FALSE | Evaluate the Data Set as a list.


Return for FindLastKey

Return Value

SUCCES | The function was successful.
<1 | An error occurred. Refer to Error Codes.


szKey Parameter For FindLastKey

szKey

String that contains the type of key element to find. Possible values are:

Value | Meaning
"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
"STORED PRINT" | Stored print key element
"RT DOSE" | RT dose key element
"RT STRUCTURE SET" | RT structure set key element
"RT PLAN" | RT plan key element
"RT TREAT RECORD" | RT treatment record key element
"TOPIC" | Topic key element
"VISIT" | Visit key element
"RESULTS" | Results key element
"INTERPRETATION" | Interpretation key element
"STUDY COMPONENT" | Study Component key element
"PRESENTATION" | Presentation key element
"WAVEFORM" | Waveform key element
"SR DOCUMENT" | Structured Reporting Document key element
"PRIVATE" | Private key element


Return for FindModule

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for FindModuleIOD

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uClass Parameter For FindModuleIOD

uClass

Class constant that specifies the class in which to look for the module. For a list of default values, refer to IOD Class Constants .


uModule Parameter For FindModuleIOD

uModule

Module constant that specifies the module to look for within the class specified in uClass. For a list of default module constants, refer to IOD Module Constants.


uModule Parameter For FindModule

uModule

Module constant that specifies the module to find. For a list of default module constants, refer to IOD Module Constants.


bTree Parameter For FindNextElement

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the Data Set as a tree.
False | Evaluate the Data Set as a list.


Return for FindNextElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For FindNextKey

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
TRUE | Evaluate the Data Set as a tree.
FALSE | Evaluate the Data Set as a list.


Return for FindNextKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


bTree Parameter For FindPrevElement

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the Data Set as a tree.
False | Evaluate the Data Set as a list.


Return for FindPrevElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For FindPrevKey

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
TRUE | Evaluate the Data Set as a tree.
FALSE | Evaluate the Data Set as a list.


Return for FindPrevKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


Return for FindTag

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCode Parameter For FindTag

uCode

A tag value. For a list of available tag values, refer to Data Element Tag Constants.


Return for FindUID

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


sCode Parameter For FindUID

sCode

Character string that contains a UID.


Return for FindVR

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nCode Parameter For FindVR

nCode

A value representation code. For a list of default Value Representation codes, refer to Value Representation Constants.


uIndex Parameter for FloatValues

uIndex

Index into the array of float values. This is a zero-based index.


Return for GetAgeValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetAgeValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetAgeValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetBinaryValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uLength Parameter For GetBinaryValue

uLength

Number of bytes of binary data to get


Return for GetBitmapCount

Return Value

The number of images in the Pixel Data Element specified by the CurrentElement property.


Return for GetBitmapListValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nBitsPerPixel Parameter For GetBitmapListValue

nBitsPerPixel

Resulting bitmap pixel depth. The following are valid values:

Value | Meaning
0 | Keep the original file's pixel depth (Do not convert).
1 to 8 | The specified bits per pixel in the resultant bitmap
12 | 12 bits per pixel in the resultant bitmap.
16 | 16 bits per pixel in the resultant bitmap
24 | 24 bits per pixel in the resultant bitmap
32 | 32 bits per pixel in the resultant bitmap


nOrder Parameter For GetBitmapListValue

nOrder

The desired color order. Possible values are:

Value | Meaning
ORDER_RGB | [0] Red-green-blue order.
ORDER_BGR | [1] Blue-green-red order.
ORDER_GRAY | [2] 12 or 16-bit grayscale image. 12 and 16-bit grayscale images are only supported in the Medical toolkits.
ORDER_RGBORGRAY | [3] Load the image as red, green, blue OR as a 12 or 16-bit grayscale image. 12 and 16-bit grayscale images are supported in the Medical toolkits only.
ORDER_BGRORGRAY | [4] Load the image as blue, green, red OR as a 12 or 16-bit grayscale image. 12 and 16-bit grayscale images are supported in the Medical toolkits only.
0 | The data is 8 bits per pixel or less.


uCount Parameter For GetBitmapListValue

uCount

Number of frames to load into the bitmap list.


uIndex Parameter For GetBitmapListValue

uIndex

Position of the first frame to get. Use zero-based indexing. For example, if there are 10 bitmaps in a list, the index of the last one is 9.


Return for GetBitmapValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nBitsPerPixel Parameter For GetBitmapValue

nBitsPerPixel

Resulting bitmap pixel depth. The following are valid values:

Value | Meaning
0 | Keep the original file's pixel depth (Do not convert).
1 to 8 | The specified bits per pixel in the resultant bitmap
12 | 12 bits per pixel in the resultant bitmap.
16 | 16 bits per pixel in the resultant bitmap
24 | 24 bits per pixel in the resultant bitmap
32 | 32 bits per pixel in the resultant bitmap


nOrder Parameter For GetBitmapValue

nOrder

The desired color order. Possible values are:

Value | Meaning
ORDER_RGB | [0] Red-green-blue order.
ORDER_BGR | [1] Blue-green-red order.
ORDER_GRAY | [2] 12 or 16-bit grayscale image. 12 and 16-bit grayscale images are only supported in the Medical toolkits .
ORDER_RGBORGRAY | [3] Load the image as red, green, blue OR as a 12 or 16-bit grayscale image. 12 and 16-bit grayscale images are supported in the Medical toolkits only.
ORDER_BGRORGRAY | [4] Load the image as blue, green, red OR as a 12 or 16-bit grayscale image. 12 and 16-bit grayscale images are supported in the Medical toolkits only.
0 | The data is 8 bits per pixel or less.


uIndex Parameter For GetBitmapValue

uIndex

Position of the image to get. Use zero-based indexing. For example, if there are 10 bitmaps in a list, the index of the last one is 9.


Return for GetCharValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetCharValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetCharValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetConvertValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for GetDateTimeValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetDateTimeValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetDateTimeValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetDateValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetDateValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetDateValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetDoubleValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetDoubleValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetDoubleValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetDSPreamble

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for GetElementLevel

Return Value

The level at which the element specified in the CurrentElement property is located, within the Data Set.


Return for GetFloatValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetFloatValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetFloatValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetImageInformation

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uIndex Parameter For GetImageInformation

uIndex

Index value that indicates the position of the image in the Pixel Data Element. This is a zero-based index. For example, if uIndex is 0, information about the image in position 0 will be set in the ImageInfo property.


Return for GetInfoCS

Return Value

None.


Return for GetInfoDS

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for GetKeyValue

Return Value

The key element type of the specified key element. Possible values are:

Value | Meaning
"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
"STORED PRINT" | Stored print key element
"RT DOSE" | RT dose key element
"RT STRUCTURE SET" | RT structure set key element
"RT PLAN" | RT plan key element
"RT TREAT RECORD" | RT treatment record key element
"TOPIC" | Topic key element
"VISIT" | Visit key element
"RESULTS" | Results key element
"INTERPRETATION" | Interpretation key element
"STUDY COMPONENT" | Study Component key element
"PRESENTATION" | Presentation key element
"WAVEFORM" | Waveform key element
"SR DOCUMENT" | Structured Reporting Document key element
"PRIVATE" | Private key element


Return for GetLongValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetLongValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetLongValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetModuleCount

Return Value

The number of modules in the entire Data Set.


Return for GetShortValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetShortValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetShortValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetStringValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetStringValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetStringValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetTagCount

Return Value

The number of items in the Data Element Tag Table.


Return for GetTimeValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For GetTimeValue

uCount

Value that indicates the number of values to retrieve when more than one value is stored in the Value Field. In most instances you will only retrieve one value so this parameter will be one.


uIndex Parameter For GetTimeValue

uIndex

Index value that indicates which value to retrieve when more than one value is stored in the Value Field. The index is zero-based.


Return for GetUIDCount

Return Value

The number of items in the UID Table.


Return for GetValueCount

Return Value

The number of values stored in the Value Field of the element specified in the CurrentElement property.


Return for GetVRCount

Return Value

The number of items in the Value Representation Table.


bRequest Parameter For InitCS

bRequest

Flag that indicates whether to create the command set as a request or a response. Possible values are:

Value | Meaning
TRUE | Create the command set as a request.
FALSE | Create the command set as a response.


nCommand Parameter For InitCS

nCommand

Type of command to create. Possible values are:

Value | Meaning
COMMAND_C_STORE | [$0001] Composite Store Command
COMMAND_C_FIND | [$0020] Composite Find Command
COMMAND_C_GET | [$0010] Composite Get Command
COMMAND_C_MOVE | [$0021] Composite Move Command
COMMAND_C_CANCEL | [$0FFF] Composite Cancel Command
COMMAND_C_ECHO | [$0030] Composite Echo Command
COMMAND_N_REPORT | [$0100] Normalized Report Command
COMMAND_N_GET | [$0110] Normalized Get Command
COMMAND_N_SET | [$0120] Normalized Set Command
COMMAND_N_ACTION | [$0130] Normalized Action Command
COMMAND_N_CREATE | [$0140] Normalized Create Command
COMMAND_N_DELETE | [$0150] Normalized Delete Command


Return for InitCS

Return Value

None.


nFlags Parameter For InitDS

nFlags

Transfer Syntax flag that indicates the organization of the data set and the type of image compression used. Possible values and combinations are:

Value | Meaning
0 | [$0000] Use the default combination of: DS_LITTLE_ENDIAN OR DS_EXPLICIT_VR OR DS_COMPRESSION_NONE
DS_LITTLE_ENDIAN | [$0004] Byte order is Little Endian.
DS_BIG_ENDIAN | [$0008] Byte order is Big Endian.
DS_IMPLICIT_VR | [$0010] The Value Representation is implicit.
DS_EXPLICIT_VR | [$0020] The Value Representation is explicit.

DS_LITTLE_ENDIAN OR DS_IMPLICIT_VR

DS_LITTLE_ENDIAN OR DS_EXPLICIT_VR

DS_BIG_ENDIAN OR DS_EXPLICIT_VR


uClass Parameter For InitDS

uClass

Value that specifies the class. For a list of default values, refer to the IOD Class Constants.


Return for InitDS

Return Value

None.


BitmapList Parameter For InsertBitmapListValue

BitmapList

The bitmap list to be inserted. The bitmap list to insert can be obtained from the BitmapList property.


Return for InsertBitmapListValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nBitsPerPixel Parameter For InsertBitmapListValue

nBitsPerPixel

Resulting bitmap pixel depth. The following are valid values:

Value | Meaning
0 | Keep the original file's pixel depth (Do not convert).
1 to 8 | The specified bits per pixel in the resultant bitmap
12 | 12 bits per pixel in the resultant bitmap.
16 | 16 bits per pixel in the resultant bitmap
24 | 24 bits per pixel in the resultant bitmap
32 | 32 bits per pixel in the resultant bitmap


nCompression Parameter For InsertBitmapListValue

nCompression

Value that indicates the type of compression to use. Possible values are:

Value | Meaning
DICOM_IMAGE_COMPRESSION_NONE | [$00] No compression.
DICOM_IMAGE_COMPRESSION_RLE | [$01] RLE compression.
DICOM_IMAGE_COMPRESSION_JPEG_LOSSLESS | [$02] JPEG LossLess compression.
DICOM_IMAGE_COMPRESSION_JPEG_LOSSY | [$03] JPEG Lossy compression.


nPhotometric Parameter For InsertBitmapListValue

nPhotometric

Photometric constant. Possible values are:

Value | Meaning
DICOM_IMAGE_PHOTOMETRIC_MONOCHROME1 | [$00] 8-bits per pixel, grayscale image.
DICOM_IMAGE_PHOTOMETRIC_MONOCHROME2 | [$01] 8-bits per pixel, grayscale image.
DICOM_IMAGE_PHOTOMETRIC_PALETTE_COLOR | [$02] 8 or 24-bits per pixel, palettized color image.
DICOM_IMAGE_PHOTOMETRIC_RGB | [$03] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_ARGB | [$04] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_CMYK | [$05] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_YBR_FULL_422 | [$06] 24-bits per pixel, RGB color image or 8-bits per pixel grayscale, based on the value of nBitsPerPixel.
DICOM_IMAGE_PHOTOMETRIC_YBR_FULL | [$07] 24-bits per pixel, RGB color image or 8-bits per pixel grayscale, based on the value of nBitsPerPixel.


nQFactor Parameter For InsertBitmapListValue

nQFactor

This parameter is used when saving an image file to FILE_CMP, FILE_JFIF, FILE_LEAD1JFIF, FILE_LEAD2JFIF, FILE_JTIF, FILE_LEAD1JTIF, FILE_LEAD2JTIF, FILE_FPX_JPEG_QFACTOR, and FILE_EXIF_JPEG. Qfactor is a number that determines the degree of loss in the compression process.

For possible values, refer to Compression Quality Factors .


uIndex Parameter For InsertBitmapListValue

uIndex

Index value that indicates the position at which the bitmap list will be inserted. This is a zero-based index. For example, if uIndex is 0, the new images will be inserted starting with the first position in the Pixel Data Element.


Bitmap Parameter For InsertBitmapValue

Bitmap

The bitmap to be inserted. The bitmap to insert can be obtained from the Bitmap property.


Return for InsertBitmapValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nBitsPerPixel Parameter For InsertBitmapValue

nBitsPerPixel

Resulting bitmap pixel depth. The following are valid values:

Value | Meaning
0 | Keep the original file's pixel depth (Do not convert).
1 to 8 | The specified bits per pixel in the resultant bitmap
12 | 12 bits per pixel in the resultant bitmap.
16 | 16 bits per pixel in the resultant bitmap
24 | 24 bits per pixel in the resultant bitmap
32 | 32 bits per pixel in the resultant bitmap


nCompression Parameter For InsertBitmapValue

nCompression

Value that indicates the type of compression to use. Possible values are:

Value | Meaning
DICOM_IMAGE_COMPRESSION_NONE | [$00] No compression.
DICOM_IMAGE_COMPRESSION_RLE | [$01] RLE compression.
DICOM_IMAGE_COMPRESSION_JPEG_LOSSLESS | [$02] JPEG LossLess compression.
DICOM_IMAGE_COMPRESSION_JPEG_LOSSY | [$03] JPEG Lossy compression.


nPhotometric Parameter For InsertBitmapValue

nPhotometric

Photometric constant. Possible values are:

Value | Meaning
DICOM_IMAGE_PHOTOMETRIC_MONOCHROME1 | [$00] 8-bits per pixel, grayscale image.
DICOM_IMAGE_PHOTOMETRIC_MONOCHROME2 | [$01] 8-bits per pixel, grayscale image.
DICOM_IMAGE_PHOTOMETRIC_PALETTE_COLOR | [$02] 8 or 24-bits per pixel, palettized color image.
DICOM_IMAGE_PHOTOMETRIC_RGB | [$03] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_ARGB | [$04] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_CMYK | [$05] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_YBR_FULL_422 | [$06] 24-bits per pixel, RGB color image or 8-bits per pixel grayscale, based on the value of nBitsPerPixel.
DICOM_IMAGE_PHOTOMETRIC_YBR_FULL | [$07] 24-bits per pixel, RGB color image or 8-bits per pixel grayscale, based on the value of nBitsPerPixel.


nQFactor Parameter For InsertBitmapValue

nQFactor

This parameter is used when saving an image file to FILE_CMP, FILE_JFIF, FILE_LEAD1JFIF, FILE_LEAD2JFIF, FILE_JTIF, FILE_LEAD1JTIF, FILE_LEAD2JTIF, FILE_FPX_JPEG_QFACTOR, and FILE_EXIF_JPEG. Qfactor is a number that determines the degree of loss in the compression process.

For possible values, refer to Compression Quality Factors .


uIndex Parameter For InsertBitmapValue

uIndex

Index value that indicates the position at which the bitmap will be inserted. This is a zero-based index. For example, if nIndex is 0, the new image will be inserted as the first image in the Pixel Data Element.


hDS Parameter For InsertDS

hDS

A DICOM handle to the data set to be copied (the source data set).


hSrcElement Parameter For InsertDS

hSrcElement

Handle to a Data element within the source data set. All children, grandchildren, etc. of this element will be added to the destination data set.


Return for InsertDS

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


bChild Parameter For InsertElement

bChild

Flag that indicates where to insert the item. Possible values are:

Value | Meaning
True | The new item will be inserted as the last child of the CurrentElement.
False | The new item will be inserted as the last sibling of the CurrentElement.


bSequence Parameter For InsertElement

bSequence

Flag that indicates whether the new item is a sequence. Possible values are:

Value | Meaning
True | The new item is a sequence.
False | The new item is not a sequence.


Return for InsertElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nVR Parameter For InsertElement

nVR

Value representation code that indicates the type of value stored in the data element. For a list of default values supported by DICOM, refer to Value Representation Constants.


uIndex Parameter For InsertElement

uIndex

Index value that indicates where to insert a TAG_ITEM data element in a sequence. This parameter is valid only if the data element being inserted has a tag of value TAG_ITEM. If the data element being inserted has any other tag value, this parameter is ignored. The index is zero based, so if you want to insert a TAG_ITEM data element as the first item in the sequence, set this to 0. The value ELEMENT_INDEX_MAX indicates to add the TAG_ITEM data element to the end of the sequence.

A sequence may consist of one or more items. This parameter lets you insert a TAG_ITEM data element as any item within the sequence, not just at the end. In addition, it lets you insert multiple TAG_ITEM data elements within a sequence.

If the CurrentElement property contains an item that is the parent of a sequence and bChild is true, the index will pertain to the children of that item. If the CurrentElement property contains an item that is a member of a sequence and bChild is false, the index pertains to the siblings of that item.


uTag Parameter For InsertElement

uTag

Tag value for the inserted element. For a list of default values, refer to Data Element Tag Constants.


bChild Parameter For InsertIOD

bChild

Flag that indicates where to insert the item. Possible values are:

Value | Meaning
True | The new item will be inserted as the last child of the item specified in the CurrentIOD property.
False | The new item will be inserted as the last sibling of the item specified in the CurrentIOD property.


Return for InsertIOD

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nType Parameter For InsertIOD

nType

The type of Information Object Definition you are working with. Possible values are:

Value | Meaning
DICOM_IOD_TYPE_CLASS | [$00] Class type Information Object Definition.
DICOM_IOD_TYPE_MODULE | [$01] Module type Information Object Definition.
DICOM_IOD_TYPE_ELEMENT | [$02] Element type Information Object Definition.


nUsage Parameter For InsertIOD

nUsage

Value that indicates whether the Information Object is mandatory, conditional or optional, and the type of usage. For a list of possible values, refer to IOD Usage Constants. For more information on mandatory, conditional and optional usage, refer to An Overview of Dicom or the DICOM Spec.


sDescription Parameter For InsertIOD

sDescription

Character string that contains a description of the inserted Information Object Definition.


sName Parameter For InsertIOD

sName

Character string that contains the name of the inserted item.


uCode Parameter For InsertIOD

uCode

Code value that indicates which Information Object Definition you are inserting. The information object may be a Class, a Module or a Tag. For lists of default values, refer to Data Element Tag Constants, IOD Class Constants, and IOD Module Constants.


bOptional Parameter For InsertKey

bOptional

Flag that indicates which parts of the key element to insert. Possible values are:

Value | Meaning
TRUE | Insert all parts of the specified key element.
FALSE | Insert only the mandatory parts of the specified key element.


Return for InsertKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


szKey Parameter For InsertKey

szKey

String that contains the type of key element to insert. Possible values are:

Value | Meaning
"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
"STORED PRINT" | Stored print key element
"RT DOSE" | RT dose key element
"RT STRUCTURE SET" | RT structure set key element
"RT PLAN" | RT plan key element
"RT TREAT RECORD" | RT treatment record key element
"TOPIC" | Topic key element
"VISIT" | Visit key element
"RESULTS" | Results key element
"INTERPRETATION" | Interpretation key element
"STUDY COMPONENT" | Study Component key element
"PRESENTATION" | Presentation key element
"WAVEFORM" | Waveform key element
"SR DOCUMENT" | Structured Reporting Document key element
"PRIVATE" | Private key element


bOptional Parameter For InsertModule

bOptional

Flag that indicates which elements of the module to insert. Possible values are:

Value | Meaning
True | Insert all elements of the specified module.
False | Insert only the mandatory elements of the specified module.


Return for InsertModule

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uModule Parameter For InsertModule

uModule

Module constant the indicates the module being inserted. For a list of default values, refer to IOD Module Constants.


Return for InsertTag

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nVR Parameter For InsertTag

nVR

Value representation code that indicates the type of value stored in the data element. For a list of default values supported by DICOM, refer to Value Representation Constants.


sName Parameter For InsertTag

sName

Character string that contains the name of the tag. To see the default values for the Tag Names, refer to the Default Data Element Tag Table.


uCode Parameter For InsertTag

uCode

Code that indicates the tag. For a list of default values, refer to Data Element Tag Constants.


uDivideVM Parameter For InsertTag

uDivideVM

Value used to divide the value multiplicity. When multiple values are stored in the value field of a data element, the number of values present must be evenly divisible by uDivideVM. For most items uDivideVM will be 1. However, if the values stored in the value field are RGB triplets, for example, you would have to store three values for each triplet. You could store 12 values, since 12 values would be 4 triplets, however, you could not store 13 values. In this case uDivideVM would be 3.


uMask Parameter For InsertTag

uMask

Masking value. Masking allows you to insert multiple elements in the same entry in the table.


uMaxVM Parameter For InsertTag

uMaxVM

Value that indicates the maximum number of values that may be stored in the Value Field of the Data Element.


uMinVM Parameter For InsertTag

uMinVM

Value that indicates the minimum number of values that may be stored in the Value Field of the Data Element.


Return for InsertUID

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


sCode Parameter For InsertUID

sCode

Unique identifier code. For a list of default values, refer to the UID Table.


sName Parameter For InsertUID

sName

Character string that contains the name of the unique identifier. For a list of default values, refer to the UID Table.


Return for InsertVR

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nCode Parameter For InsertVR

nCode

Code that indicates the type of value to be stored in the data element. For a list of default values refer to Value Representation Constants.


nRestrict Parameter For InsertVR

nRestrict

Restrictions on the length. Possible values are given below. These values may be combined using the bitwise OR operator.

Value | Meaning
VR_FIXED | [$0000] The length of the stored value is a fixed number of bytes.
VR_MAXIMUM | [$0001] nLength is the maximum number of bytes allowed.
VR_MAXIMUM_GROUP | [$0002] nLength is the maximum number of bytes allowed per component group
VR_ANY | [$0003] Any length is valid.
VR_NOT_APPLICABLE | [$0004] nLength is not applicable

One of the values above may be combined with one of the values below using the bitwise OR operator.

VR_BINARY | [$0100] Binary value.
VR_STRING | [$0200] String value (The character '\' is used as the delimiter between values for multiple data elements).
VR_TEXT | [$0400] Text value. (Data elements with this VR cannot be multi-valued).


nUnitSize Parameter For InsertVR

nUnitSize

The size of the smallest item to be stored in the value field of the data element.


sName Parameter For InsertVR

sName

Character string that contains the name of the value representation. For examples of Value Representation Names, refer to the Default Value Representation Table.


uLength Parameter For InsertVR

uLength

The length of the value to be stored in the data element.


Return for IsSupportLocked

Return Value

Return | Meaning
True | The optional feature is locked.
False | The optional feature is available in your toolkit.


iType Parameter For IsSupportLocked

iType

The optional feature to check.

Value | Meaning
L_SUPPORT_BARCODES_1D | Support for reading and writing Linear bar codes. This is available in the LEADTOOLS 1D Module.
L_SUPPORT_BARCODES_1D_SILVER | Support for reading and writing Linear bar codes silver module. This is available in the LEADTOOLS 1D Silver Module.
L_SUPPORT_BARCODES_PDF_READ | Support for reading PDF bar codes. This is available in the LEADTOOLS 2D PDF Module (read).
L_SUPPORT_BARCODES_PDF_WRITE | Support for writing PDF bar codes. This is available in the LEADTOOLS 2D PDF Module (write).
L_SUPPORT_BARCODES_DATAMATRIX_READ | Support for reading Data Matrix bar codes. This is available in the LEADTOOLS 2D Data Matrix Module (read).
L_SUPPORT_BARCODES_DATAMATRIX_WRITE | Support for writing Data Matrix bar codes. This is available in the LEADTOOLS 2D Data Matrix Module (write).
L_SUPPORT_BARCODES_QR_READ | Support for reading QR bar codes. This is available in the LEADTOOLS 2D QR Module (read).
L_SUPPORT_BARCODES_QR_WRITE | Support for writing QR bar codes. This is available in the LEADTOOLS 2D QR Module (write).
L_SUPPORT_BITONAL | Support for Scale to Gray and Favor Black processing.
L_SUPPORT_CMW | Support for the CMW file format, which uses Wavelet CMP compression.
L_SUPPORT_DICOM | DICOM file format support, but not the DICOM Communication support.
L_SUPPORT_DOCUMENT | LEADTOOLS Document features . A LEADTOOLS Document license is required
L_SUPPORT_EXTGRAY | Support for 12 bit grayscale, 16-bit grayscale, 48-bit color and 64-bit color image creation and manipulation.
L_SUPPORT_ICR | Support for the ICR Module within the OCR engine. This supports the recognition of handwritten text. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selections.
L_SUPPORT_J2K | Unlocks support for JPEG2000 images. The support needs to be unlocked to read and write both types of JPEG 2000 images (JPEG 2000 stream and JP2 files).
L_SUPPORT_LTPRO | Support for advanced image processing functions only available in the Raster Pro and above toolkits.
L_SUPPORT_MEDICAL | Support for the capabilities unlocked by L_SUPPORT_DICOM and L_SUPPORT_EXTGRAY, plus all Medical features.
L_SUPPORT_MEDICAL_NET | Support for everything unlocked by L_SUPPORT_MEDICAL, plus support for the unsecure DICOM Network Communication for Message Exchange.
L_SUPPORT_OCR | Support for the OCR features. (Document/Medical).
L_SUPPORT_OCR_ASIAN | Support for the OCR engine to recognize Asian text. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selections.
L_SUPPORT_OCR_PDF_OUTPUT | Support for saving OCR results as a PDF file. This license is in addition to the cost of the OCR Plugin or Document Imaging Suite.
L_SUPPORT_OMR | Support for the OMR Module within the OCR engine. This supports the recognition of check boxes. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selections.
L_SUPPORT_PDF | Support for the PDF, PS and EPS file formats. Available only in the LEADTOOLS PDF Plug in. If this support is locked, the PDF, PS and EPS files will not be loaded or saved.
L_SUPPORT_PDF_SAVE | Support for saving raster images as a PDF file. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selections.
L_SUPPORT_VECTOR | Support for the Vector Features and Vector file formats. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selection.


Return for LoadDS

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nFlags Parameter For LoadDS

nFlags

Meta-header flags and Transfer Syntax flags that indicate the file characteristics to use when loading the file. Possible values for the Meta-header flags are:

Value | Meaning
0 | [$0000] LEADTOOLS will automatically determine the presence or absence of the Meta-header.
DS_METAHEADER_PRESENT | [$0001] The header is present.
DS_METAHEADER_ABSENT | [$0002] The header is absent.

Possible values and combinations for the Transfer Syntax flags are:

0 | [$0000] LEADTOOLS will automatically determine the Transfer Syntax.
DS_LITTLE_ENDIAN | [$0004] Byte order is Little Endian.
DS_BIG_ENDIAN | [$0008] Byte order is Big Endian.
DS_IMPLICIT_VR | [$0010] The Value Representation is implicit.
DS_EXPLICIT_VR | [$0020] The Value Representation is explicit.

DS_LITTLE_ENDIAN OR DS_IMPLICIT_VR

DS_LITTLE_ENDIAN OR DS_EXPLICIT_VR

DS_BIG_ENDIAN OR DS_EXPLICIT_VR


sFilename Parameter For LoadDS

sFilename

Character string that contains the name of the file to load.


uIndex Parameter for LongValues

uIndex

Index into the array of long values. This is a zero-based index.


Return for MoveChildElement

Return Value

Return | Meeaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveChildIOD

Return Value

Return | Meeaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveChildKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


bTree Parameter For MoveFirstElement

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the Data Set as a tree. Update the CurrentElement property with the first item in the same level and with the same parent as the CurrentElement.
False | Evaluate the Data Set as a list. Update the CurrentElement property with the first item in the Data Set.


Return for MoveFirstElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MoveFirstIOD

bTree

Flag that indicates how the IOD Structure will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the IOD Structure as a tree. Update the CurrentIOD property with the first item in the same level and with the same parent as the CurrentIOD.
False | Evaluate the IOD Structure as a list. Update the CurrentIOD property with the first item in the IOD Structure.


Return for MoveFirstIOD

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MoveFirstKey

bTree

Flag that indicates how the DICOM Dir Data Set will be evaluated. Possible values are:

Value | Meaning
TRUE | Evaluate the DICOM Dir Data Set as a tree. Update the CurrentElement property with the first key element in the same level and with the same parent as the CurrentElement.
FALSE | Evaluate the DICOM Dir Data Set as a list. Update the CurrentElement property with the first key element in the Data Set.


Return for MoveFirstKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


Return for MoveFirstTag

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveFirstUID

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveFirstVR

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MoveLastElement

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the Data Set as a tree. Update the CurrentElement property with the last item in the same level and with the same parent as the CurrentElement.
False | Evaluate the Data Set as a list. Update the CurrentElement property with the last item in the Data Set.


Return for MoveLastElement

Return Value

Return | Value
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MoveLastIOD

bTree

Flag that indicates how the IOD Structure will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the IOD Structure as a tree. Update the CurrentIOD property with the last item in the same level and with the same parent as the CurrentIOD.
False | Evaluate the IOD Structure as a list. Update the CurrentIOD property with the last item in the IOD Structure.


Return for MoveLastIOD

Return Value

Return | Value
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MoveLastKey

bTree

Flag that indicates how the DICOM Dir Data Set will be evaluated. Possible values are:

Value | Meaning
TRUE | Evaluate the Data Set as a tree. Update the CurrentElement property with the last key element in the same level and with the same parent as the CurrentElement.
FALSE | Evaluate the Data Set as a list. Update the CurrentElement property with the last key element in the Data Set.


Return for MoveLastKey

Return Value

Return | Value
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


Return for MoveLastTag

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveLastUID

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveLastVR

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MoveNextElement

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the Data Set as a tree. Update the CurrentElement property with the next item in the same level and with the same parent as the CurrentElement.
False | Evaluate the Data Set as a list. Update CurrentElement property with the next item in the Data Set.


Return for MoveNextElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MoveNextIOD

bTree

Flag that indicates how the IOD Structure will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the IOD Structure as a tree. Update the CurrentIOD property with the next item in the same level and with the same parent as the CurrentIOD.
False | Evaluate the IOD Structure as a list. Update the CurrentIOD property with the next item in the IOD Structure.


Return for MoveNextIOD

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MoveNextKey

bTree

Flag that indicates how the DICOM Dir Data Set will be evaluated. Possible values are:

Value | Meaning
TRUE | Evaluate the Data Set as a tree. Update the CurrentElement property with the next key element in the same level and with the same parent as the CurrentElement.
FALSE | Evaluate the Data Set as a list. Update CurrentElement property with the next key element in the Data Set.


Return for MoveNextKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


Return for MoveNextTag

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveNextUID

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveNextVR

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveParentElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveParentIOD

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveParentKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


bTree Parameter For MovePrevElement

bTree

Flag that indicates how the Data Set will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the Data Set as a tree. Update the CurrentElement property with the previous item in the same level and with the same parent as the CurrentElement.
False | Evaluate the Data Set as a list. Update the CurrentElement property with the previous item in the Data Set.


Return for MovePrevElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MovePrevIOD

bTree

Flag that indicates how the IOD Structure will be evaluated. Possible values are:

Value | Meaning
True | Evaluate the IOD Structure as a tree. Update the CurrentIOD property with the previous item in the same level and with the same parent as the CurrentIOD.
False | Evaluate the IOD Structure as a list. Update the CurrentIOD property with the previous item in the IOD Structure.


Return for MovePrevIOD

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


bTree Parameter For MovePrevKey

bTree

Flag that indicates how the DICOM Dir Data Set will be evaluated. Possible values are:

Value | Meaning
TRUE | Evaluate the Data Set as a tree. Update the CurrentElement property with the previous key element in the same level and with the same parent as the CurrentElement.
FALSE | Evaluate the Data Set as a list. Update the CurrentElement property with the previous key element in the Data Set.


Return for MovePrevKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


Return for MovePrevTag

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MovePrevUID

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MovePrevVR

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveRootElement

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveRootIOD

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for MoveRootKey

Return Value

Return | Meaning
SUCCESS | The function was successful.
<1 | An error occurred. Refer to Error Codes.


nFlags Parameter for OnConformanceStatus

nFlags

Flag that indicates errors associated with the Data Element. Possible values are given below and may be combined using the bitwise OR operator.

Value | Meaning
CALLBACK_ERROR_VR | [$0001] Error associated with the Value Representation.
CALLBACK_ERROR_MIN_VM | [$0002] Error associated with the minimum value multiplicity value.
CALLBACK_ERROR_MAX_VM | [$0003] Error associated with the maximum value multiplicity value.
CALLBACK_ERROR_DIVIDE_VM | [$0004] Error associated with the value multiplicity divisor.


iPercent Parameter For OnProgressStatus

iPercent

The completion percentage of the current LEADTOOLS function.


Return for ResetDS

Return Value

None.


Return for ResetIOD

Return Value

None.


Return for ResetTag

Return Value

None.


Return for ResetUID

Return Value

None.


Return for ResetVR

Return Value

None.


Return for SaveDS

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nFlags Parameter For SaveDS

nFlags

Meta-header flags, Transfer Syntax flags and other flags that indicate file characteristics to use when saving the file. Possible values for Meta-header flags are.

Value | Meaning
0 | [$0000] Save the Data Set using the characteristics used when loading the Data Set. This can be used with compressed or uncompressed images.
DS_METAHEADER_PRESENT | [$0001] The header is present. This can be used with compressed or uncompressed images.
DS_METAHEADER_ABSENT | [$0002] The header is absent. This can be used only with uncompressed images.

Possible values and combinations for the Transfer Syntax flags are:

0 | [$0000] Save the Data Set using the characteristics used when loading the Data Set. This can be used with compressed or uncompressed images.
DS_LITTLE_ENDIAN | [$0004] Byte order is Little Endian. This can be used with compressed or uncompressed images.
DS_BIG_ENDIAN | [$0008] Byte order is Big Endian. This can be used only with uncompressed images.
DS_IMPLICIT_VR | [$0010] The Value Representation is implicit. This can be used only with uncompressed images.
DS_EXPLICIT_VR | [$0020] The Value Representation is explicit. This can be used with compressed or uncompressed images.

The following Transfer Syntax flag combinations can be used only with uncompressed images:

DS_LITTLE_ENDIAN OR DS_IMPLICIT_VR

DS_BIG_ENDIAN OR DS_EXPLICIT_VR

The following Transfer Syntax flag combination can be used with compressed or uncompressed images:

DS_LITTLE_ENDIAN OR DS_EXPLICIT_VR

Possible values and combinations for other flags are:

0 | [$0000] Save the Data Set using the characteristics used when loading the Data Set.
DS_GROUP_LENGTHS | [$0040] Include an entry in the file for each group with the group number and the number of elements that group has.
DS_LENGTH_EXPLICIT | [$0080] The length of a sequence (in bytes) is encoded as a 32-bit integer and no Sequence delimitation item is included at the end of the sequence.

DS_GROUP_LENGTHS OR DS_LENGTH_EXPLICIT

Any of the available Meta-header flags options above may be combined with any of the available options for the Transfer Syntax flags and other flags given above, based on whether the images are compressed or uncompressed. For example, you may combine DS_METAHEADER_ABSENT with DS_LITTLE_ENDIAN OR DS_IMPLICIT_VR and DS_GROUP_LENGTHS OR DS_LENGTH_EXPLICIT when using uncompressed images, or you may combine DS_METAHEADER_PRESENT with DS_LITTLE_ENDIAN OR DS_EXPLICIT_VR and DS_GROUP_LENGTHS OR DS_LENGTH_EXPLICIT when using compressed images.


sFilename Parameter For SaveDS

sFilename

Character string that contains the name of the file in which to save the Data Set.


Return for SetAgeValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetAgeValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetBinaryValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uLength Parameter For SetBinaryValue

uLength

Length, in bytes, of the binary values to set.


Return for SetBitmapListValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nBitsPerPixel Parameter For SetBitmapListValue

nBitsPerPixel

Resulting bitmap pixel depth. The following are valid values:

Value | Meaning
0 | Keep the original file's pixel depth (Do not convert).
1 to 8 | The specified bits per pixel in the resultant bitmap
12 | 12 bits per pixel in the resultant bitmap.
16 | 16 bits per pixel in the resultant bitmap
24 | 24 bits per pixel in the resultant bitmap
32 | 32 bits per pixel in the resultant bitmap


nCompression Parameter For SetBitmapListValue

nCompression

Value that indicates the type of compression to use. Possible values are:

Value | Meaning
DICOM_IMAGE_COMPRESSION_NONE | [$00] No compression.
DICOM_IMAGE_COMPRESSION_RLE | [$01] RLE compression.
DICOM_IMAGE_COMPRESSION_JPEG_LOSSLESS | [$02] JPEG LossLess compression.
DICOM_IMAGE_COMPRESSION_JPEG_LOSSY | [$03] JPEG Lossy compression.


nPhotometric Parameter For SetBitmapListValue

nPhotometric

Photometric constant. Possible values are:

Value | Meaning
DICOM_IMAGE_PHOTOMETRIC_MONOCHROME1 | [$00] 8-bits per pixel, grayscale image.
DICOM_IMAGE_PHOTOMETRIC_MONOCHROME2 | [$01] 8-bits per pixel, grayscale image.
DICOM_IMAGE_PHOTOMETRIC_PALETTE_COLOR | [$02] 8 or 24-bits per pixel, palettized color image.
DICOM_IMAGE_PHOTOMETRIC_RGB | [$03] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_ARGB | [$04] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_CMYK | [$05] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_YBR_FULL_422 | [$06] 24-bits per pixel, RGB color image or 8-bits per pixel grayscale, based on the value of nBitsPerPixel.
DICOM_IMAGE_PHOTOMETRIC_YBR_FULL | [$07] 24-bits per pixel, RGB color image or 8-bits per pixel grayscale, based on the value of nBitsPerPixel.


nQFactor Parameter For SetBitmapListValue

nQFactor

This parameter is used when saving an image file to FILE_CMP, FILE_JFIF, FILE_LEAD1JFIF, FILE_LEAD2JFIF, FILE_JTIF, FILE_LEAD1JTIF, FILE_LEAD2JTIF, FILE_FPX_JPEG_QFACTOR, and FILE_EXIF_JPEG. Qfactor is a number that determines the degree of loss in the compression process.

For possible values, refer to Compression Quality Factors .


Return for SetBitmapValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


nBitsPerPixel Parameter For SetBitmapValue

nBitsPerPixel

Resulting bitmap pixel depth. The following are valid values:

Value | Meaning
0 | Keep the original file's pixel depth (Do not convert).
1 to 8 | The specified bits per pixel in the resultant bitmap
12 | 12 bits per pixel in the resultant bitmap.
16 | 16 bits per pixel in the resultant bitmap
24 | 24 bits per pixel in the resultant bitmap
32 | 32 bits per pixel in the resultant bitmap


nCompression Parameter For SetBitmapValue

nCompression

Value that indicates the type of compression to use. Possible values are:

Value | Meaning
DICOM_IMAGE_COMPRESSION_NONE | [$00] No compression.
DICOM_IMAGE_COMPRESSION_RLE | [$01] RLE compression.
DICOM_IMAGE_COMPRESSION_JPEG_LOSSLESS | [$02] JPEG LossLess compression.
DICOM_IMAGE_COMPRESSION_JPEG_LOSSY | [$03] JPEG Lossy compression.


nPhotometric Parameter For SetBitmapValue

nPhotometric

Photometric constant. Possible values are:

Value | Meaning
DICOM_IMAGE_PHOTOMETRIC_MONOCHROME1 | [$00] 8-bits per pixel, grayscale image.
DICOM_IMAGE_PHOTOMETRIC_MONOCHROME2 | [$01] 8-bits per pixel, grayscale image.
DICOM_IMAGE_PHOTOMETRIC_PALETTE_COLOR | [$02] 8 or 24-bits per pixel, palettized color image.
DICOM_IMAGE_PHOTOMETRIC_RGB | [$03] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_ARGB | [$04] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_CMYK | [$05] 24-bits per pixel, RGB color image.
DICOM_IMAGE_PHOTOMETRIC_YBR_FULL_422 | [$06] 24-bits per pixel, RGB color image or 8-bits per pixel grayscale, based on the value of nBitsPerPixel.
DICOM_IMAGE_PHOTOMETRIC_YBR_FULL | [$07] 24-bits per pixel, RGB color image or 8-bits per pixel grayscale, based on the value of nBitsPerPixel.


nQFactor Parameter For SetBitmapValue

nQFactor

This parameter is used when saving an image file to FILE_CMP, FILE_JFIF, FILE_LEAD1JFIF, FILE_LEAD2JFIF, FILE_JTIF, FILE_LEAD1JTIF, FILE_LEAD2JTIF, FILE_FPX_JPEG_QFACTOR, and FILE_EXIF_JPEG. Qfactor is a number that determines the degree of loss in the compression process.

For possible values, refer to Compression Quality Factors .


Return for SetCharValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetCharValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetConvertValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for SetCurrentElement

Return Value

True | The CurrentElement has been set.
False | The hElement specified does not exist.


hElement Parameter For SetCurrentElement

hElement

Memory handle of the Data Set item to which to set the CurrentElement property.


Return for SetCurrentIOD

Return Value

True | The CurrentIOD has been set.
False | The hIOD specified does not exist.


hIOD Parameter For SetCurrentIOD

hIOD

Memory handle of the IOD Structure item to which to set the CurrentIOD property.


Return for SetDateTimeValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetDateTimeValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetDateValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetDateValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetDoubleValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetDoubleValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetDSPreamble

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


Return for SetFloatValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetFloatValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetIODDescription

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


sDescription Parameter For SetIODDescription

sDescription

Character string that contains the description to be set.


Return for SetIODName

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


sName Parameter For SetIODName

sName

Character string that contains the name to be set.


Return for SetLongValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetLongValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetShortValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetShortValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetStringValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetStringValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetTagName

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


sName Parameter For SetTagName

sName

Character string that contains the name to be set.


Return for SetTimeValue

Return Value

Return | Meaning
SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


uCount Parameter For SetTimeValue

uCount

Number of values to set in the Value Field, if you want to set multiple values in the Value Field.


Return for SetUIDName

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


sName Parameter For SetUIDName

sName

Character string that contains the name to be set.


Return for SetVRName

Return Value

SUCCESS | The function was successful.
<= 0 | An error occurred. Refer to Error Codes.


sName Parameter For SetVRName

sName

Character string that contains the name to be set.


uIndex Parameter for ShortValues

uIndex

Index into the array of short values. This is a zero-based index.


uIndex Parameter for StringValues

uIndex

Index into the array of string values. This is a zero-based index.


uIndex Parameter for TimeValues

uIndex

Index into the array of time values. This is a zero-based index.


iType Parameter For UnlockSupport

iType

The optional feature to unlock.

Value | Meaning
L_SUPPORT_BARCODES_1D | Support for reading and writing Linear bar codes. This is available in the LEADTOOLS 1D Module.
L_SUPPORT_BARCODES_1D_SILVER | Support for reading and writing Linear bar codes silver module. This is available in the LEADTOOLS 1D Silver Module.
L_SUPPORT_BARCODES_PDF_READ | Support for reading PDF bar codes. This is available in the LEADTOOLS 2D PDF Module (read).
L_SUPPORT_BARCODES_PDF_WRITE | Support for writing PDF bar codes. This is available in the LEADTOOLS 2D PDF Module (write).
L_SUPPORT_BARCODES_DATAMATRIX_READ | Support for reading Data Matrix bar codes. This is available in the LEADTOOLS 2D Data Matrix Module (read).
L_SUPPORT_BARCODES_DATAMATRIX_WRITE | Support for writing Data Matrix bar codes. This is available in the LEADTOOLS 2D Data Matrix Module (write).
L_SUPPORT_BARCODES_QR_READ | Support for reading QR bar codes. This is available in the LEADTOOLS 2D QR Module (read).
L_SUPPORT_BARCODES_QR_WRITE | Support for writing QR bar codes. This is available in the LEADTOOLS 2D QR Module (write).
L_SUPPORT_BITONAL | Support for Scale to Gray and Favor Black processing.
L_SUPPORT_CMW | Support for the CMW file format, which uses Wavelet CMP compression.
L_SUPPORT_DICOM | DICOM file format support, but not the DICOM Communication support.
L_SUPPORT_DOCUMENT | LEADTOOLS Document features . A LEADTOOLS Document license is required
L_SUPPORT_EXTGRAY | Support for 12 bit grayscale, 16-bit grayscale, 48-bit color and 64-bit color image creation and manipulation.
L_SUPPORT_ICR | Support for the ICR Module within the OCR engine. This supports the recognition of handwritten text. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selections.
L_SUPPORT_J2K | Unlocks support for JPEG2000 images. The support needs to be unlocked to read and write both types of JPEG 2000 images (JPEG 2000 stream and JP2 files).
L_SUPPORT_LTPRO | Support for advanced image processing functions only available in the Raster Pro and above toolkits.
L_SUPPORT_MEDICAL | Support for the capabilities unlocked by L_SUPPORT_DICOM and L_SUPPORT_EXTGRAY, plus all Medical features.
L_SUPPORT_MEDICAL_NET | Support for everything unlocked by L_SUPPORT_MEDICAL, plus support for the unsecure DICOM Network Communication for Message Exchange.
L_SUPPORT_OCR | Support for the OCR features. (Document/Medical).
L_SUPPORT_OCR_ASIAN | Support for the OCR engine to recognize Asian text. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selections.
L_SUPPORT_OCR_PDF_OUTPUT | Support for saving OCR results as a PDF file. This license is in addition to the cost of the OCR Plugin or Document Imaging Suite.
L_SUPPORT_OMR | Support for the OMR Module within the OCR engine. This supports the recognition of check boxes. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selections.
L_SUPPORT_PDF | Support for the PDF, PS and EPS file formats. Available only in the LEADTOOLS PDF Plug in. If this support is locked, the PDF, PS and EPS files will not be loaded or saved.
L_SUPPORT_PDF_SAVE | Support for saving raster images as a PDF file. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selections.
L_SUPPORT_VECTOR | Support for the Vector Features and Vector file formats. Available only in selected LEADTOOLS products. For a list of products, refer to Topic Selection.


Key Parameter For UnlockSupport

Key

The key to unlock the feature.


Return for UnlockSupport

Return Value

None.