[med-svn] [dcmtkpp] 01/01: Imported Upstream version 0.3.1

Julien Lamy lamy-guest at moszumanska.debian.org
Thu Oct 8 14:47:16 UTC 2015


This is an automated email from the git hooks/post-receive script.

lamy-guest pushed a commit to branch upstream
in repository dcmtkpp.

commit 1cbccc6fb69a693830775e6e011c956b3f446b66
Author: Julien Lamy <lamy at unistra.fr>
Date:   Thu Oct 8 11:49:10 2015 +0200

    Imported Upstream version 0.3.1
---
 .travis.yml                           |   20 +-
 CMakeLists.txt                        |    6 +
 README.md                             |   12 +-
 examples/CMakeLists.txt               |    7 +-
 examples/dicomdir.cpp                 |   23 +
 examples/dump.cpp                     |   91 +
 examples/find.cpp                     |   13 +-
 examples/get.cpp                      |   17 +-
 examples/move.cpp                     |   14 +-
 examples/store.cpp                    |   15 +-
 generate_registry                     |  148 +-
 registry.cpp.tmpl                     |   95 +
 registry.h.tmpl                       |   36 +
 src/CMakeLists.txt                    |   13 +-
 src/dcmtkpp/BasicDirectoryCreator.cpp |  472 ++
 src/dcmtkpp/BasicDirectoryCreator.h   |  113 +
 src/dcmtkpp/CStoreRequest.h           |    3 -
 src/dcmtkpp/DataSet.cpp               |    5 -
 src/dcmtkpp/ElementsDictionary.cpp    |   25 +
 src/dcmtkpp/ElementsDictionary.h      |   39 +
 src/dcmtkpp/Reader.cpp                |  601 +++
 src/dcmtkpp/Reader.h                  |  105 +
 src/dcmtkpp/SCU.cpp                   |    3 +-
 src/dcmtkpp/ServiceRole.cpp           |  346 +-
 src/dcmtkpp/ServiceRole.h             |    9 +-
 src/dcmtkpp/ServiceRole.txx           |    1 -
 src/dcmtkpp/StoreSCU.cpp              |  128 +-
 src/dcmtkpp/Tag.cpp                   |   34 +-
 src/dcmtkpp/UIDsDictionary.cpp        |   26 +
 src/dcmtkpp/UIDsDictionary.h          |   36 +
 src/dcmtkpp/VR.cpp                    |   15 +-
 src/dcmtkpp/VRFinder.cpp              |  198 +
 src/dcmtkpp/VRFinder.h                |   78 +
 src/dcmtkpp/Value.cpp                 |    7 +
 src/dcmtkpp/Value.h                   |   10 +
 src/dcmtkpp/Value.txx                 |   34 +
 src/dcmtkpp/Writer.cpp                |  547 +++
 src/dcmtkpp/Writer.h                  |  112 +
 src/dcmtkpp/conversion.cpp            |   58 +-
 src/dcmtkpp/conversion.h              |    9 +-
 src/dcmtkpp/registry.cpp              | 8174 +++++++++++++++++++++++++++++++++
 src/dcmtkpp/registry.h                | 8086 ++++++++++++++++----------------
 src/dcmtkpp/uid.cpp                   |   88 +
 src/dcmtkpp/uid.h                     |   34 +
 src/dcmtkpp/xml_converter.cpp         |  597 +++
 src/dcmtkpp/xml_converter.h           |   27 +
 tests/CMakeLists.txt                  |    1 +
 tests/code/Association.cpp            |    9 +-
 tests/code/CEchoRequest.cpp           |    8 +-
 tests/code/CEchoResponse.cpp          |    8 +-
 tests/code/CFindRequest.cpp           |    8 +-
 tests/code/CFindResponse.cpp          |    8 +-
 tests/code/CGetRequest.cpp            |    6 +-
 tests/code/CGetResponse.cpp           |    7 +-
 tests/code/CMoveRequest.cpp           |    8 +-
 tests/code/CMoveResponse.cpp          |    8 +-
 tests/code/CStoreRequest.cpp          |    8 +-
 tests/code/CStoreResponse.cpp         |    8 +-
 tests/code/DataSet.cpp                |    2 +
 tests/code/FindSCU.cpp                |    9 +-
 tests/code/GetSCU.cpp                 |   11 +-
 tests/code/MoveSCU.cpp                |   11 +-
 tests/code/Reader.cpp                 |  328 ++
 tests/code/SCU.cpp                    |    5 +-
 tests/code/StoreSCU.cpp               |   11 +-
 tests/code/Writer.cpp                 |  327 ++
 tests/code/conversion.cpp             |    3 +-
 tests/code/registry.cpp               |   28 +
 tests/code/uid.cpp                    |   14 +
 tests/code/xml_converter.cpp          | 1114 +++++
 70 files changed, 18032 insertions(+), 4448 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index b91eb36..3741652 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,11 +1,23 @@
+sudo: false
 language: cpp
 compiler:
   - gcc
   - clang
+addons:
+  apt:
+    packages:
+    - libdcmtk2-dev
+    - libwrap0-dev
+    - libjsoncpp-dev
+    - libicu-dev
+    - uuid-dev
+    - zlib1g-dev
+    - libboost-dev
+    - libboost-filesystem-dev
+    - libboost-test-dev
+    - dcmtk
 before_install:
-  - sudo apt-get update -qq
-  - sudo apt-get install -y libdcmtk2-dev libwrap0-dev libjsoncpp-dev libicu-dev zlib1g-dev libboost-test-dev dcmtk
-  - sudo pip install cpp-coveralls
+  - pip install --user cpp-coveralls
 before_script:
   - export SRC_DIR=$PWD
   - mkdir build
@@ -18,4 +30,4 @@ script:
   - make -j $(nproc)
   - ../tests/run.sh
 after_success:
-  - if [ "${CC}" = "gcc" ]; then coveralls --exclude examples --exclude tests --exclude-pattern '.*CMake[^/]+\.c(?:pp)?' --exclude-pattern "/usr/.*" --root=${SRC_DIR} --build-root ${BIN_DIR} | grep -vP "^File '.*'$" | grep -vP ":creating '.*'$" | grep -vP "^Lines executed:.*" | sed '/^$/d'; fi
+  - if [ "${CC}" = "gcc" ]; then ${HOME}/.local/bin/coveralls --exclude examples --exclude tests --exclude-pattern '.*CMake[^/]+\.c(?:pp)?' --exclude-pattern "/usr/.*" --root=${SRC_DIR} --build-root ${BIN_DIR} | grep -vP "^File '.*'$" | grep -vP ":creating '.*'$" | grep -vP "^Lines executed:.*" | sed '/^$/d'; fi
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 844a5fc..0cc8bea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,11 @@
 cmake_minimum_required(VERSION 2.8)
+
 project("dcmtkpp")
+set(dcmtkpp_MAJOR_VERSION 0)
+set(dcmtkpp_MINOR_VERSION 3)
+set(dcmtkpp_PATCH_VERSION 1)
+set(dcmtkpp_VERSION 
+    ${dcmtkpp_MAJOR_VERSION}.${dcmtkpp_MINOR_VERSION}.${dcmtkpp_PATCH_VERSION})
 
 option(BUILD_EXAMPLES "Build the examples directory." ON)
 
diff --git a/README.md b/README.md
index c4fb856..086f9e0 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,16 @@
 DCMTK++
 =======
 
-DCMTK++ is a set of wrappers around [DCMTK](http://dicom.offis.de/dcmtk.php.en)
-to have an easier API, notably for the networking part.
+DCMTK++ is a C++ wrapper library for the [DCMTK](http://dicom.offis.de/dcmtk.php.en)
+DICOM toolkit.
+
+DCMTK++ is a C++ wrapper library for [DCMTK](http://dicom.offis.de/dcmtk.php.en), 
+a C++ toolkit handling the DICOM medical imaging standard. DCMTK++ 
+leverages C++ constructs to provide a more user-friendly API, notably 
+for the networking part. Included in DCMTK++ are exception-based error 
+handling, generic access to datasets elements, standard JSON 
+representation of datasets, and generic implementation of messages, 
+clients and servers for the various DICOM protocols.
 
 [![Build Status](https://travis-ci.org/lamyj/dcmtkpp.svg?branch=master)](https://travis-ci.org/lamyj/dcmtkpp)
 [![Coverage Status](https://coveralls.io/repos/lamyj/dcmtkpp/badge.svg)](https://coveralls.io/r/lamyj/dcmtkpp)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 0764cb3..fa27216 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -2,9 +2,10 @@ add_definitions("-D HAVE_CONFIG_H")
 
 include_directories(${CMAKE_SOURCE_DIR}/src)
 
-set(examples find get move store)
+file(GLOB_RECURSE examples *.cpp)
 
-foreach(example ${examples})
-    add_executable(${example} ${example}.cpp)
+foreach(example_file ${examples})
+    get_filename_component(example ${example_file} NAME_WE)
+    add_executable(${example} ${example_file})
     target_link_libraries(${example} dcmtkpp dcmdata)
 endforeach()
diff --git a/examples/dicomdir.cpp b/examples/dicomdir.cpp
new file mode 100644
index 0000000..426a488
--- /dev/null
+++ b/examples/dicomdir.cpp
@@ -0,0 +1,23 @@
+#include <string>
+#include <vector>
+
+#include <dcmtkpp/BasicDirectoryCreator.h>
+#include <dcmtkpp/registry.h>
+
+int main(int argc, char** argv)
+{
+    std::string const root(argv[1]);
+    std::vector<std::string> const files(argv+2, argv+argc);
+
+    dcmtkpp::BasicDirectoryCreator creator(root, files,
+        {
+            {"PATIENT", { {dcmtkpp::registry::PatientBirthDate, 3} }},
+            {"STUDY", { {dcmtkpp::registry::PatientAge, 3} }},
+            {"SERIES", { {dcmtkpp::registry::SeriesDescription, 3} }},
+            {"IMAGE", { {dcmtkpp::registry::ImageType, 3} }},
+        });
+
+    creator();
+
+    return 0;
+}
diff --git a/examples/dump.cpp b/examples/dump.cpp
new file mode 100644
index 0000000..86200ce
--- /dev/null
+++ b/examples/dump.cpp
@@ -0,0 +1,91 @@
+#include <fstream>
+#include <iostream>
+#include <ostream>
+#include <string>
+#include <utility>
+
+#include <dcmtkpp/DataSet.h>
+#include <dcmtkpp/Reader.h>
+#include <dcmtkpp/Value.h>
+
+struct Printer
+{
+    typedef void result_type;
+
+    std::ostream & stream;
+    std::string indent;
+
+    Printer(std::ostream & stream, std::string const & indent="")
+    : stream(stream), indent(indent)
+    {
+        // Nothing else
+    }
+
+    template<typename T>
+    void operator()(T const & value) const
+    {
+        for(auto const & item: value)
+        {
+            this->stream << item << " ";
+        }
+    }
+
+    void operator()(dcmtkpp::Value::DataSets const & value) const
+    {
+        this->stream << "\n";
+
+        auto const last_it = --value.end();
+        for(auto it=value.begin(); it!= value.end(); ++it)
+        {
+            Printer const printer(this->stream, this->indent+"  ");
+            printer(*it);
+            if(it != last_it)
+            {
+                this->stream << "----\n";
+            }
+        }
+    }
+
+    void operator()(dcmtkpp::Value::Binary const & value) const
+    {
+        this->stream << this->indent << "(binary)";
+    }
+
+    void operator()(dcmtkpp::DataSet const & data_set) const
+    {
+        for(auto const & item: data_set)
+        {
+            this->stream << this->indent << item.first << " " << as_string(item.second.vr) << " ";
+            dcmtkpp::apply_visitor(*this, item.second.get_value());
+            this->stream << "\n";
+        }
+    }
+};
+
+int main(int argc, char** argv)
+{
+    for(int i=1; i<argc; ++i)
+    {
+        std::ifstream stream(argv[i], std::ios::in | std::ios::binary);
+
+        std::pair<dcmtkpp::DataSet, dcmtkpp::DataSet> file;
+        try
+        {
+            file = dcmtkpp::Reader::read_file(stream);
+        }
+        catch(std::exception & e)
+        {
+            std::cout << "Could not read " << argv[i] << ": " << e.what() << "\n";
+        }
+
+        auto const & meta_information = file.first;
+        auto const & data_set = file.second;
+
+        Printer printer(std::cout);
+        printer(meta_information);
+        std::cout << "\n";
+        printer(data_set);
+    }
+
+    return 0;
+}
diff --git a/examples/find.cpp b/examples/find.cpp
index 321b15c..9acb22a 100644
--- a/examples/find.cpp
+++ b/examples/find.cpp
@@ -1,8 +1,5 @@
 #include <iostream>
 
-#include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dctk.h>
-
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/FindSCU.h"
 #include "dcmtkpp/registry.h"
@@ -29,12 +26,12 @@ int main()
     association.set_peer_ae_title("pacs");
     
     association.add_presentation_context(
-        UID_FINDStudyRootQueryRetrieveInformationModel,
-        { UID_LittleEndianImplicitTransferSyntax });
+        dcmtkpp::registry::StudyRootQueryRetrieveInformationModelFIND,
+        { dcmtkpp::registry::ImplicitVRLittleEndian });
     
     association.add_presentation_context(
-        UID_VerificationSOPClass,
-        { UID_LittleEndianImplicitTransferSyntax });
+        dcmtkpp::registry::VerificationSOPClass,
+        { dcmtkpp::registry::ImplicitVRLittleEndian });
     
     association.associate(network);
     
@@ -51,7 +48,7 @@ int main()
     query.add(dcmtkpp::registry::NumberOfStudyRelatedSeries);
     query.add("StudyDate");
     
-    scu.set_affected_sop_class(UID_FINDStudyRootQueryRetrieveInformationModel);
+    scu.set_affected_sop_class(dcmtkpp::registry::StudyRootQueryRetrieveInformationModelFIND);
     
     std::cout << "--------\n";
     std::cout << "Callback\n";
diff --git a/examples/get.cpp b/examples/get.cpp
index f50690e..19ea720 100644
--- a/examples/get.cpp
+++ b/examples/get.cpp
@@ -1,8 +1,5 @@
 #include <iostream>
 
-#include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dctk.h>
-
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/GetSCU.h"
 #include "dcmtkpp/registry.h"
@@ -34,17 +31,17 @@ int main()
     association.set_peer_ae_title("pacs");
     
     association.add_presentation_context(
-        UID_GETStudyRootQueryRetrieveInformationModel,
-        { UID_LittleEndianImplicitTransferSyntax });
+        dcmtkpp::registry::StudyRootQueryRetrieveInformationModelGET,
+        { dcmtkpp::registry::ImplicitVRLittleEndian });
     
     association.add_presentation_context(
-        UID_MRImageStorage,
-        { UID_LittleEndianImplicitTransferSyntax },
+        dcmtkpp::registry::MRImageStorage,
+        { dcmtkpp::registry::ImplicitVRLittleEndian },
         ASC_SC_ROLE_SCP);
     
     association.add_presentation_context(
-        UID_VerificationSOPClass,
-        { UID_LittleEndianImplicitTransferSyntax });
+        dcmtkpp::registry::VerificationSOPClass,
+        { dcmtkpp::registry::ImplicitVRLittleEndian });
     
     association.associate(network);
     
@@ -60,7 +57,7 @@ int main()
     query.add("StudyInstanceUID", { "1.2.3.4.5" });
     query.add("SeriesInstanceUID", { "1.2.3.4.5.1" });
     
-    scu.set_affected_sop_class(UID_GETStudyRootQueryRetrieveInformationModel);
+    scu.set_affected_sop_class(dcmtkpp::registry::StudyRootQueryRetrieveInformationModelGET);
     
     std::cout << "--------\n";
     std::cout << "Callback\n";
diff --git a/examples/move.cpp b/examples/move.cpp
index fb8b12d..589ce1d 100644
--- a/examples/move.cpp
+++ b/examples/move.cpp
@@ -35,17 +35,17 @@ int main()
     association.set_peer_ae_title("pacs");
     
     association.add_presentation_context(
-        UID_MOVEStudyRootQueryRetrieveInformationModel,
-        { UID_LittleEndianImplicitTransferSyntax });
+        dcmtkpp::registry::StudyRootQueryRetrieveInformationModelMOVE,
+        { dcmtkpp::registry::ImplicitVRLittleEndian });
     
     association.add_presentation_context(
-        UID_MRImageStorage,
-        { UID_LittleEndianImplicitTransferSyntax },
+         dcmtkpp::registry::MRImageStorage,
+        { dcmtkpp::registry::ImplicitVRLittleEndian },
         ASC_SC_ROLE_SCP);
     
     association.add_presentation_context(
-        UID_VerificationSOPClass,
-        { UID_LittleEndianImplicitTransferSyntax });
+         dcmtkpp::registry::VerificationSOPClass,
+        { dcmtkpp::registry::ImplicitVRLittleEndian });
     
     association.associate(network);
     
@@ -62,7 +62,7 @@ int main()
     query.add("StudyInstanceUID", { "1.2.3.4.5" });
     query.add("SeriesInstanceUID", { "1.2.3.4.5.1" });
     
-    scu.set_affected_sop_class(UID_MOVEStudyRootQueryRetrieveInformationModel);
+    scu.set_affected_sop_class(dcmtkpp::registry::StudyRootQueryRetrieveInformationModelMOVE);
     
     std::cout << "--------\n";
     std::cout << "Callback\n";
diff --git a/examples/store.cpp b/examples/store.cpp
index 184da07..515821c 100644
--- a/examples/store.cpp
+++ b/examples/store.cpp
@@ -24,14 +24,17 @@ int main(int argc, char** argv)
     association.set_peer_port(11112);
     association.set_peer_ae_title("pacs");
     
-    association.add_presentation_context(UID_MRImageStorage,
-        { UID_LittleEndianImplicitTransferSyntax });
+    association.add_presentation_context(
+        dcmtkpp::registry::MRImageStorage,
+        { dcmtkpp::registry::ImplicitVRLittleEndian });
     
-    association.add_presentation_context(UID_EnhancedMRImageStorage,
-        { UID_LittleEndianImplicitTransferSyntax });
+    association.add_presentation_context(
+        dcmtkpp::registry::EnhancedMRImageStorage,
+        { dcmtkpp::registry::ImplicitVRLittleEndian });
     
-    association.add_presentation_context(UID_VerificationSOPClass,
-        { UID_LittleEndianImplicitTransferSyntax });
+    association.add_presentation_context(
+        dcmtkpp::registry::VerificationSOPClass,
+        { dcmtkpp::registry::ImplicitVRLittleEndian });
     
     association.associate(network);
     
diff --git a/generate_registry b/generate_registry
index e0a3f16..3ed077f 100755
--- a/generate_registry
+++ b/generate_registry
@@ -1,57 +1,62 @@
 #! /usr/bin/env python
 
+import argparse
+import os
 import re
 import urllib
 import sys
 import xml.etree.ElementTree
 
-def main():
-    sources = [
-        ("http://medical.nema.org/medical/dicom/current/source/docbook/part07/part07.xml", "table_E.1-1"),
-        ("http://medical.nema.org/medical/dicom/current/source/docbook/part06/part06.xml", "table_7-1"),
-        ("http://medical.nema.org/medical/dicom/current/source/docbook/part06/part06.xml", "table_8-1"),
-        ("http://medical.nema.org/medical/dicom/current/source/docbook/part06/part06.xml", "table_6-1"),
+import jinja2
 
-    ]
+def main():
+    parser = argparse.ArgumentParser("Generate registry files")
+    parser.add_argument(
+        "root", nargs="?", 
+        default="http://medical.nema.org/medical/dicom/current/source/docbook",
+        help="Root URL or path to the Docbook version of the DICOM standard")
+    
+    arguments = parser.parse_args()
+    
+    jinja_environment = jinja2.Environment(
+        loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
+        trim_blocks=True)
+    
+    templates = {
+        "src/dcmtkpp/registry.h": jinja_environment.get_template("registry.h.tmpl"),
+        "src/dcmtkpp/registry.cpp": jinja_environment.get_template("registry.cpp.tmpl"),
+    }
 
-    header = [
-        "/*************************************************************************",
-        "* dcmtkpp - Copyright (C) Universite de Strasbourg",
-        "* Distributed under the terms of the CeCILL-B license, as published by",
-        "* the CEA-CNRS-INRIA. Refer to the LICENSE file or to",
-        "* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html",
-        "* for details.",
-        "************************************************************************/",
-        "",
-        "#ifndef _afc7b2d7_0869_4fea_9a9b_7fe6228baca9",
-        "#define _afc7b2d7_0869_4fea_9a9b_7fe6228baca9",
-        "",
-        "#include \"dcmtkpp/Tag.h\"",
-        "",
-        "namespace dcmtkpp",
-        "{",
-        "",
-        "namespace registry",
-        "{",
+    sources = [
+        ("part07/part07.xml", "table_E.1-1"),
+        ("part06/part06.xml", "table_7-1"),
+        ("part06/part06.xml", "table_8-1"),
+        ("part06/part06.xml", "table_6-1"),
     ]
 
-    declarations = []
+    elements_dictionary = []
     for url, id_ in sources:
-        declarations.extend(generate_registry(url, id_))
-
-    footer = [
-        "}",
-        "",
-        "}",
-        "",
-        "#endif // _afc7b2d7_0869_4fea_9a9b_7fe6228baca9",
+        url = os.path.join(arguments.root, url)
+        entries = parse_elements_dictionaries(url, id_)
+        elements_dictionary.extend(entries)
+    
+    sources = [
+        ("part06/part06.xml", "table_A-1"),
     ]
-
-    print "\n".join(header+declarations+footer)
-
+    
+    uids = []
+    for url, id_ in sources:
+        uids.extend(parse_uids(os.path.join(arguments.root, url), id_))
+    
+    for path, template in templates.items():
+        with open(path, "w") as fd:
+            fd.write(template.render(
+                elements_dictionary=elements_dictionary,
+                uids=uids))
+    
     return 0
 
-def generate_registry(url, id_):
+def parse_elements_dictionaries(url, id_):
     fd = urllib.urlopen(url)
     document = xml.etree.ElementTree.parse(fd)
     fd.close()
@@ -67,7 +72,9 @@ def generate_registry(url, id_):
 
     for row in table.iterfind("./docbook:tbody/docbook:tr", namespaces):
         entry = row.findall("./docbook:td/docbook:para", namespaces)
-        tag = entry[0]
+
+        tag, name, keyword, vr, vm = entry[:5]
+
         if tag.getchildren():
             tag = tag.find("./docbook:emphasis", namespaces)
         tag = tag.text
@@ -78,17 +85,66 @@ def generate_registry(url, id_):
 
         tag = [int(x, 16) for x in match.groups()]
 
-        keyword = entry[2]
-        if keyword.getchildren():
-            keyword = keyword.find("./docbook:emphasis", namespaces)
-        keyword = keyword.text or ""
-        keyword = keyword.replace(u"\u200b", "").decode("ascii")
+        keyword = get_value(keyword, "ascii", namespaces)
         if not keyword:
             continue
+        
+        name = get_value(name, "utf-8", namespaces)
+        vr = get_value(vr, "ascii", namespaces)
+        vm = get_value(vm, "ascii", namespaces)
+        
+        entries.append((tag, name, keyword, vr, vm))
+
+    return entries
+
+def parse_uids(url, id_):
+    fd = urllib.urlopen(url)
+    document = xml.etree.ElementTree.parse(fd)
+    fd.close()
 
-        entries.append("    Tag const {}(0x{:04x}, 0x{:04x});".format(keyword, *tag))
+    namespaces = {
+        "xml": "http://www.w3.org/XML/1998/namespace",
+        "docbook": "http://docbook.org/ns/docbook"
+    }
 
+    table = document.find(".//*[@xml:id=\"{}\"]".format(id_), namespaces)
+
+    keywords_map = {
+        "12leadECGWaveformStorage": "TwelveleadECGWaveformStorage",
+    }
+
+    entries = []
+
+    for row in table.iterfind("./docbook:tbody/docbook:tr", namespaces):
+        entry = row.findall("./docbook:td/docbook:para", namespaces)
+        uid, name, type_ = entry[:3]
+        
+        uid = get_value(uid, "ascii", namespaces)
+        name = get_value(name, "ascii", namespaces)
+        type_ = get_value(type_, "ascii", namespaces)
+        
+        retired = name.endswith(" (Retired)")
+        keyword = name.replace(" (Retired)", "")
+        keyword = re.sub(":.*", "", keyword)
+        keyword = re.sub("\W", " ", keyword).strip().replace(" ", "")
+        if retired:
+            keyword += "_Retired"
+        
+        keyword = keywords_map.get(keyword, keyword)
+        
+        entries.append((uid, name, keyword, type_))
+    
     return entries
+    
+
+def get_value(element, encoding, namespaces):
+    emphasis = element.find("./docbook:emphasis", namespaces)
+    if emphasis is not None:
+        element = emphasis
+    
+    element = element.text or ""
+    element = element.replace(u"\u200b", "").replace(u"\u00b5", "u").encode(encoding)
+    return element
 
 if __name__ == "__main__":
     sys.exit(main())
diff --git a/registry.cpp.tmpl b/registry.cpp.tmpl
new file mode 100644
index 0000000..0169112
--- /dev/null
+++ b/registry.cpp.tmpl
@@ -0,0 +1,95 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include <stdint.h>
+
+#include "dcmtkpp/registry.h"
+
+#include "dcmtkpp/ElementsDictionary.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/VR.h"
+#include "dcmtkpp/UIDsDictionary.h"
+
+namespace dcmtkpp
+{
+
+namespace registry
+{
+
+struct RawElementsDictionaryEntry
+{
+    uint16_t group;
+    uint16_t element;
+    char const * name;
+    char const * keyword;
+    char const * vr;
+    char const * vm;
+};
+
+ElementsDictionary create_public_dictionary()
+{
+
+    RawElementsDictionaryEntry raw_entries[] = {
+{% for entry in elements_dictionary %}
+        { {{ "0x%04x"|format(entry[0][0]) }}, {{ "0x%04x"|format(entry[0][1]) }},
+          "{{ entry[1] }}", "{{ entry[2] }}",  "{{ entry[3] }}", "{{ entry[4] }}" },
+{% endfor %}
+    };
+
+    ElementsDictionary public_dictionary;
+    
+    unsigned long const count = sizeof(raw_entries)/sizeof(RawElementsDictionaryEntry);
+    for(unsigned long i=0; i<count; ++i)
+    {
+        RawElementsDictionaryEntry const & raw_entry = raw_entries[i];
+        Tag const tag(raw_entry.group, raw_entry.element);
+        ElementsDictionaryEntry const entry(
+            raw_entry.name, raw_entry.keyword, raw_entry.vr, raw_entry.vm);
+        public_dictionary.insert(std::pair<Tag, ElementsDictionaryEntry>(tag, entry));
+    }
+
+    return public_dictionary;
+}
+
+struct RawUIDsDictionaryEntry
+{
+    char const * uid;
+    char const * name;
+    char const * keyword;
+    char const * type;
+};
+
+UIDsDictionary create_uids_dictionary()
+{
+
+    RawUIDsDictionaryEntry raw_entries[] = {
+{% for entry in uids %}
+        { "{{ entry[0] }}", "{{ entry[1] }}", "{{ entry[2] }}",  "{{ entry[3] }}" },
+{% endfor %}
+    };
+
+    UIDsDictionary uids_dictionary;
+    
+    unsigned long const count = sizeof(raw_entries)/sizeof(RawUIDsDictionaryEntry);
+    for(unsigned long i=0; i<count; ++i)
+    {
+        RawUIDsDictionaryEntry const & raw_entry = raw_entries[i];
+        UIDsDictionaryEntry const entry(
+            raw_entry.name, raw_entry.keyword, raw_entry.type);
+        uids_dictionary.insert(std::pair<std::string, UIDsDictionaryEntry>(raw_entry.uid, entry));
+    }
+
+    return uids_dictionary;
+}
+
+}
+
+}
+
+dcmtkpp::ElementsDictionary dcmtkpp::registry::public_dictionary=dcmtkpp::registry::create_public_dictionary();
+dcmtkpp::UIDsDictionary dcmtkpp::registry::uids_dictionary=dcmtkpp::registry::create_uids_dictionary();
diff --git a/registry.h.tmpl b/registry.h.tmpl
new file mode 100644
index 0000000..9a5a216
--- /dev/null
+++ b/registry.h.tmpl
@@ -0,0 +1,36 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#ifndef _afc7b2d7_0869_4fea_9a9b_7fe6228baca9
+#define _afc7b2d7_0869_4fea_9a9b_7fe6228baca9
+
+#include "dcmtkpp/ElementsDictionary.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/UIDsDictionary.h"
+
+namespace dcmtkpp
+{
+
+namespace registry
+{
+{% for entry in elements_dictionary %}
+Tag const {{ entry[2] }}({{ "0x%04x, 0x%04x"|format(*entry[0]) }});
+{% endfor %}
+
+{% for entry in uids %}
+std::string const {{ entry[2] }}("{{ entry[0] }}");
+{% endfor %}
+
+extern ElementsDictionary public_dictionary;
+extern UIDsDictionary uids_dictionary;
+}
+
+}
+
+#endif // _afc7b2d7_0869_4fea_9a9b_7fe6228baca9
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 92306ef..e3ae50c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,3 +1,4 @@
+find_package(Boost REQUIRED COMPONENTS filesystem system)
 find_package(ICU REQUIRED)
 
 set(DCMTK_LIBRARIES dcmnet dcmdata oflog ofstd pthread z)
@@ -9,13 +10,19 @@ endif()
 file(GLOB_RECURSE headers "*.h")
 file(GLOB_RECURSE templates "*.txx")
 file(GLOB_RECURSE files "*.cpp")
-include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ICU_INCLUDE_DIR})
+include_directories(
+    ${CMAKE_CURRENT_SOURCE_DIR} ${Boost_INCLUDE_DIRS} ${ICU_INCLUDE_DIR})
 add_definitions("-D HAVE_CONFIG_H")
+add_definitions("-D DCMTKPP_MAJOR_VERSION=${dcmtkpp_MAJOR_VERSION}")
 
+link_directories(${Boost_LIBRARY_DIRS})
 add_library(dcmtkpp SHARED ${files})
 install(TARGETS dcmtkpp LIBRARY DESTINATION lib)
 install(FILES ${headers} ${templates} DESTINATION include/dcmtkpp)
 
-target_link_libraries(dcmtkpp ${DCMTK_LIBRARIES} jsoncpp ${ICU_LIBRARIES})
-
+target_link_libraries(dcmtkpp
+    ${Boost_LIBRARIES} ${DCMTK_LIBRARIES} jsoncpp ${ICU_LIBRARIES} uuid)
+set_target_properties(dcmtkpp PROPERTIES 
+    VERSION ${dcmtkpp_VERSION}
+    SOVERSION ${dcmtkpp_MAJOR_VERSION})
 
diff --git a/src/dcmtkpp/BasicDirectoryCreator.cpp b/src/dcmtkpp/BasicDirectoryCreator.cpp
new file mode 100644
index 0000000..3730b81
--- /dev/null
+++ b/src/dcmtkpp/BasicDirectoryCreator.cpp
@@ -0,0 +1,472 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include "dcmtkpp/BasicDirectoryCreator.h"
+
+#include <algorithm>
+#include <fstream>
+#include <iterator>
+#include <map>
+#include <memory>
+#include <stack>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include <boost/filesystem.hpp>
+#include <boost/filesystem/fstream.hpp>
+
+#include "dcmtkpp/DataSet.h"
+#include "dcmtkpp/Exception.h"
+#include "dcmtkpp/Reader.h"
+#include "dcmtkpp/registry.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/uid.h"
+
+namespace dcmtkpp
+{
+
+std::map<std::string, std::vector<BasicDirectoryCreator::RecordKey>> const
+BasicDirectoryCreator
+::default_record_keys = {
+    { "PATIENT", {
+        { registry::PatientName, 2},
+        { registry::PatientID, 1 } } },
+    { "STUDY", {
+        { registry::StudyDate, 1 },
+        { registry::StudyTime, 1 },
+        { registry::StudyDescription, 2 },
+        { registry::StudyInstanceUID, 1 }, // only if (0004,1511) is absent (see Note)
+        { registry::StudyID, 1 },
+        { registry::AccessionNumber, 2 } } },
+    { "SERIES", {
+        { registry::Modality, 1 },
+        { registry::SeriesInstanceUID, 1 },
+        { registry::SeriesNumber, 1 },
+        //registry::IconImageSequence
+        } },
+    { "IMAGE", {
+        { registry::InstanceNumber, 1 },
+        //registry::IconImageSequence
+        } },
+};
+
+BasicDirectoryCreator
+::BasicDirectoryCreator(
+    std::string const & root, std::vector<std::string> const & files,
+    std::map<std::string, std::vector<RecordKey>> const & extra_record_keys,
+    Writer::ItemEncoding item_encoding)
+: root(root), files(files), extra_record_keys(extra_record_keys),
+    item_encoding(item_encoding)
+{
+    // Nothing else.
+}
+
+void
+BasicDirectoryCreator
+::operator()() const
+{
+    auto const record_tree = this->_create_records();
+    auto linearized_tree = this->_linearize_records(record_tree);
+    auto const relative_offsets = this->_get_relative_offsets(
+        linearized_tree.records);
+    this->_write(linearized_tree, relative_offsets);
+}
+
+BasicDirectoryCreator::RecordMap
+BasicDirectoryCreator
+::_create_records() const
+{
+    RecordMap patients;
+
+    for(auto const & file: files)
+    {
+        auto const absolute_path = boost::filesystem::path(this->root)/file;
+        if(!boost::filesystem::is_regular_file(absolute_path))
+        {
+            throw Exception("No such file: "+absolute_path.string());
+        }
+
+        boost::filesystem::ifstream stream(
+            absolute_path, std::ifstream::in | std::ifstream::binary);
+        auto const meta_info_and_data_set = Reader::read_file(stream);
+        auto const & data_set = meta_info_and_data_set.second;
+
+        auto const & patient_id = data_set.as_string(
+            registry::PatientID)[0];
+        auto & patient = this->_find_record(patients, patient_id);
+        if(patient.data_set.empty())
+        {
+            this->_fill_record(data_set, patient, "PATIENT");
+        }
+
+        auto const & study_instance_uid = data_set.as_string(
+            registry::StudyInstanceUID)[0];
+        auto & study = this->_find_record(patient.children, study_instance_uid);
+        if(study.data_set.empty())
+        {
+            this->_fill_record(data_set, study, "STUDY");
+        }
+
+        auto const & series_instance_uid = data_set.as_string(
+            registry::SeriesInstanceUID)[0];
+        auto & series = this->_find_record(study.children, series_instance_uid);
+        if(series.data_set.empty())
+        {
+            this->_fill_record(data_set, series, "SERIES");
+        }
+
+        auto const & sop_instance_uid = data_set.as_string(
+            registry::SOPInstanceUID)[0];
+        auto & image = this->_find_record(series.children, sop_instance_uid);
+        if(image.data_set.empty())
+        {
+            this->_fill_record(data_set, image, "IMAGE");
+
+            Value::Strings file_id;
+            int begin = 0;
+            while(begin != std::string::npos)
+            {
+                auto const end = file.find('/', begin);
+                auto const size =
+                    (end==std::string::npos)?std::string::npos:(end-begin);
+                std::string const item = file.substr(begin, size);
+                file_id.push_back(item);
+                if(end == std::string::npos)
+                {
+                    begin = end;
+                }
+                else
+                {
+                    begin = end+1;
+                }
+            }
+
+            // Required if the Directory Record references a SOP Instance (PS3.3 F.3.2.2)
+            image.data_set.add(registry::ReferencedFileID, file_id);
+            image.data_set.add(
+                registry::ReferencedSOPClassUIDInFile,
+                data_set[registry::SOPClassUID]);
+            image.data_set.add(
+                registry::ReferencedSOPInstanceUIDInFile,
+                data_set[registry::SOPInstanceUID]);
+
+            auto const & meta_info = meta_info_and_data_set.first;
+            image.data_set.add(
+                registry::ReferencedTransferSyntaxUIDInFile,
+                meta_info[registry::TransferSyntaxUID]);
+        }
+    }
+
+    return patients;
+}
+
+BasicDirectoryCreator::Record &
+BasicDirectoryCreator
+::_find_record(RecordMap & records, std::string const & key) const
+{
+    auto iterator = records.find(key);
+    if(iterator == records.end())
+    {
+        iterator = records.insert({key, Record::Pointer(new Record())}).first;
+    }
+    return *(iterator->second);
+}
+
+void
+BasicDirectoryCreator
+::_fill_record(
+    DataSet const & data_set, Record & record, std::string const & type) const
+{
+    record.data_set.add(registry::DirectoryRecordType, {type});
+    record.data_set.add(registry::OffsetOfTheNextDirectoryRecord, {0});
+    record.data_set.add(registry::RecordInUseFlag, {0xffff});
+    record.data_set.add(
+        registry::OffsetOfReferencedLowerLevelDirectoryEntity, {0});
+
+    this->_update_record(data_set, record, this->default_record_keys.at(type));
+
+    auto const extra_record_keys_it = this->extra_record_keys.find(type);
+    if(extra_record_keys_it != this->extra_record_keys.end())
+    {
+        this->_update_record(data_set, record, extra_record_keys_it->second);
+    }
+}
+
+void
+BasicDirectoryCreator
+::_update_record(
+    DataSet const & data_set, Record & record,
+    std::vector<RecordKey> const & keys) const
+{
+    for(auto const & key: keys)
+    {
+        auto const & tag = key.first;
+        auto const & type = key.second;
+
+        if(data_set.has(tag))
+        {
+            record.data_set.add(tag, data_set[tag]);
+        }
+        else
+        {
+            if(type == 1)
+            {
+                throw Exception("Type 1 tag missing from data set: "+std::string(tag));
+            }
+            else if(type == 2)
+            {
+                record.data_set.add(tag);
+            }
+            // Otherwise do nothing.
+        }
+    }
+
+    registry::RecordInUseFlag;
+}
+
+BasicDirectoryCreator::LinearizedTree
+BasicDirectoryCreator
+::_linearize_records(RecordMap const & record_tree) const
+{
+    LinearizedTree linearized_tree;
+
+    // Prime the stack with all top-level records.
+    std::stack<Record::Pointer> stack;
+    for(auto const & record: record_tree)
+    {
+        stack.push(record.second);
+    }
+
+    // Create a depth-first list of records and a sibling map.
+    std::map<Record const *, long> location_map;
+    std::map<Record const *, Record const *> sibling_map;
+    while(!stack.empty())
+    {
+        auto const & record = stack.top();
+        stack.pop();
+
+        linearized_tree.records.push_back(record);
+        location_map[record.get()] = linearized_tree.records.size()-1;
+
+        auto const & children = record->children;
+
+        for(auto child_it=children.begin(); child_it!=children.end(); ++child_it)
+        {
+            auto const & child_record = child_it->second;
+            auto const sibling_it = std::next(child_it);
+            if(sibling_it != children.end())
+            {
+                auto const & sibling = sibling_it->second;
+                sibling_map[child_record.get()] = sibling.get();
+            }
+        }
+
+        // Use reverse iterators to keep the relative order of children during
+        // the depth-first search.
+        std::for_each(
+            children.rbegin(), children.rend(),
+            [&] (RecordMap::value_type const & child) { stack.push(child.second); });
+    }
+
+    // Update the topological information.
+
+    linearized_tree.child.resize(location_map.size());
+    std::fill(linearized_tree.child.begin(), linearized_tree.child.end(), -1);
+
+    linearized_tree.sibling.resize(location_map.size());
+    std::fill(linearized_tree.sibling.begin(), linearized_tree.sibling.end(), -1);
+
+    for(auto const & location_it: location_map)
+    {
+        auto const & record = location_it.first;
+        auto const & location = location_it.second;
+        if(!record->children.empty())
+        {
+            linearized_tree.child[location] =
+                location_map.at(record->children.begin()->second.get());
+        }
+        else
+        {
+            linearized_tree.child[location] = -1;
+        }
+
+        auto const sibling_it = sibling_map.find(record);
+        if(sibling_it != sibling_map.end())
+        {
+            linearized_tree.sibling[location] =
+                location_map.at(sibling_it->second);
+        }
+        else
+        {
+            linearized_tree.sibling[location] = -1;
+        }
+    }
+
+    return linearized_tree;
+}
+
+std::vector<std::streampos>
+BasicDirectoryCreator
+::_get_relative_offsets(std::vector<Record::Pointer> const & records) const
+{
+    // Create an in-memory stream to compute the position of the start of the
+    // records
+    std::ostringstream stream;
+
+    // PS3.10, 8.6: The DICOMDIR File shall use the Explicit VR Little Endian
+    // Transfer Syntax
+    Writer const writer(
+        stream, registry::ExplicitVRLittleEndian, this->item_encoding);
+
+    std::vector<std::streampos> relative_offsets;
+
+    std::streampos offset = 0;
+
+    for(auto const & record: records)
+    {
+        relative_offsets.push_back(stream.tellp()+offset);
+
+        // Item tag: 4 bytes
+        // Item length: 4 bytes
+        offset += 8;
+
+        writer.write_data_set(record->data_set);
+
+        if(this->item_encoding == Writer::ItemEncoding::UndefinedLength)
+        {
+            // Item Delimitation Item tag: 4 bytes
+            // Item Delimitation Item length: 4 bytes
+            offset += 8;
+        }
+    }
+
+    return relative_offsets;
+}
+
+void
+BasicDirectoryCreator
+::_write(
+    LinearizedTree const & linearized_tree,
+    std::vector<std::streampos> const & relative_offsets) const
+{
+    DataSet meta_information;
+    meta_information.add(
+        registry::FileMetaInformationVersion, Value::Binary({0x00, 0x01}));
+    meta_information.add(
+        registry::MediaStorageSOPClassUID,
+        { registry::MediaStorageDirectoryStorage });
+    meta_information.add(
+        registry::MediaStorageSOPInstanceUID, { generate_uid() });
+    meta_information.add(
+        registry::TransferSyntaxUID, { registry::ExplicitVRLittleEndian });
+    meta_information.add(
+        registry::ImplementationClassUID, { implementation_class_uid });
+    meta_information.add(
+        registry::ImplementationVersionName,
+        { "DCMTK++ " DCMTKPP_STRINGIFY(DCMTKPP_MAJOR_VERSION) });
+
+    DataSet basic_directory;
+
+    // File-Set Identification Module (PS3.3 F.3.2.1)
+    basic_directory.add(registry::FileSetID, { "" });
+    // Don't include user comments yet.
+    // registry::FileSetDescriptorFileID;
+    // registry::SpecificCharacterSetOfFileSetDescriptorFile;
+    // Directory Information Module (PS3.3 F.3.2.2)
+    basic_directory.add(
+        registry::OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity,
+        { 0 });
+    basic_directory.add(
+        registry::OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity,
+        { 0 });
+    basic_directory.add(registry::FileSetConsistencyFlag, { 0 });
+
+    std::ostringstream buffer;
+    Writer buffer_writer(
+        buffer, meta_information.as_string(registry::TransferSyntaxUID)[0],
+        this->item_encoding);
+    buffer_writer.write_data_set(meta_information);
+    buffer_writer.write_data_set(basic_directory);
+
+    // Preamble + prefix + data + Directory Record Sequence (tag + VR + reserved + VL)
+    auto const start_of_directory_records = 128+4+buffer.tellp()+4+2+2+4;
+    std::vector<std::streampos> absolute_offsets(relative_offsets.size());
+    std::transform(
+        relative_offsets.begin(), relative_offsets.end(), absolute_offsets.begin(),
+        [&](std::streampos offset) { return offset+start_of_directory_records; });
+
+    basic_directory.as_int(
+        registry::OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity)[0] =
+            *(absolute_offsets.begin());
+
+    int last_top_level = 0;
+    while(linearized_tree.sibling[last_top_level] != -1)
+    {
+        last_top_level = linearized_tree.sibling[last_top_level];
+    }
+    basic_directory.as_int(
+        registry::OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity)[0] =
+            absolute_offsets[last_top_level];
+
+    Value::DataSets record_sequence;
+    for(int record_index=0; record_index<linearized_tree.records.size(); ++record_index)
+    {
+        auto & record = linearized_tree.records[record_index];
+        auto & item = record->data_set;
+
+        auto const sibling = linearized_tree.sibling[record_index];
+        if(sibling != -1)
+        {
+            item.as_int(
+                registry::OffsetOfTheNextDirectoryRecord)[0] =
+                    absolute_offsets[sibling];
+        }
+
+        auto const child = linearized_tree.child[record_index];
+        if(child != -1)
+        {
+            item.as_int(
+                registry::OffsetOfReferencedLowerLevelDirectoryEntity)[0] =
+                    absolute_offsets[child];
+        }
+
+        record_sequence.push_back(item);
+    }
+    basic_directory.add(registry::DirectoryRecordSequence, record_sequence);
+
+    boost::filesystem::ofstream file(
+        boost::filesystem::path(root)/"DICOMDIR",
+        std::ofstream::out | std::ofstream::binary);
+    Writer file_writer(
+        file, buffer_writer.byte_ordering, buffer_writer.explicit_vr,
+        buffer_writer.item_encoding, buffer_writer.use_group_length);
+
+    // File preamble
+    for(unsigned int i=0; i<128; ++i)
+    {
+        file.put(0);
+        if(!file)
+        {
+            throw Exception("Could not write to stream");
+        }
+    }
+
+    // DICOM prefix
+    std::string const prefix("DICM");
+    file.write(&prefix[0], prefix.size());
+    if(!file)
+    {
+        throw Exception("Could not write to stream");
+    }
+
+    file_writer.write_data_set(meta_information);
+    file_writer.write_data_set(basic_directory);
+}
+
+}
diff --git a/src/dcmtkpp/BasicDirectoryCreator.h b/src/dcmtkpp/BasicDirectoryCreator.h
new file mode 100644
index 0000000..c441665
--- /dev/null
+++ b/src/dcmtkpp/BasicDirectoryCreator.h
@@ -0,0 +1,113 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#ifndef _8836a563_24f6_4afb_89ba_377d49ce9f5d
+#define _8836a563_24f6_4afb_89ba_377d49ce9f5d
+
+#include <map>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "dcmtkpp/DataSet.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/Writer.h"
+
+namespace dcmtkpp
+{
+
+/// @brief Write a Basic Directory (i.e. DICOMDIR) object to the disk.
+class BasicDirectoryCreator
+{
+public:
+    typedef std::pair<Tag, int> RecordKey;
+
+    /// @brief Default record keys, classified by record type.
+    static std::map<std::string, std::vector<RecordKey>> const default_record_keys;
+
+    /**
+     * @brief Root of the DICOM files and location of the output DICOMDIR file.
+     *
+     * The concatenation of root and each file, as well as of root and
+     * "DICOMDIR" must be a valid path.
+     */
+    std::string root;
+
+    /**
+     * @brief Path to the DICOM files, relative to root.
+     *
+     * The concatenation of root and each file must be a valid path.
+     */
+    std::vector<std::string> files;
+
+    /// @brief User-defined record keys, classified by record type.
+    std::map<std::string, std::vector<RecordKey>> extra_record_keys;
+
+    /// @brief Encoding of sequence items, defaults to Writer::ItemEncoding::ExplicitLength.
+    Writer::ItemEncoding item_encoding;
+
+    BasicDirectoryCreator(
+        std::string const & root="",
+        std::vector<std::string> const & files=std::vector<std::string>(),
+        std::map<std::string, std::vector<RecordKey>> const & extra_record_keys=
+            std::map<std::string, std::vector<RecordKey>>(),
+        Writer::ItemEncoding item_encoding=Writer::ItemEncoding::ExplicitLength
+        );
+
+    void operator()() const;
+
+private:
+    struct Record
+    {
+        typedef std::shared_ptr<Record> Pointer;
+        DataSet data_set;
+        std::map<std::string, Record::Pointer> children;
+    };
+
+    struct LinearizedTree
+    {
+        std::vector<Record::Pointer> records;
+        std::vector<long> sibling;
+        std::vector<long> child;
+    };
+
+    typedef std::map<std::string, Record::Pointer> RecordMap;
+
+    /// @brief Create a hierarchy of records from the files.
+    std::map<std::string, Record::Pointer> _create_records() const;
+
+    /// @brief Find a given record or insert a new one and return it.
+    Record & _find_record(RecordMap & records, std::string const & key) const;
+
+    /// @brief Create a default record.
+    void _fill_record(
+        DataSet const & data_set, Record & record,
+        std::string const & type) const;
+
+    /// @brief Update the record content from a data set.
+    void _update_record(
+        DataSet const & data_set, Record & record,
+        std::vector<RecordKey> const & keys) const;
+
+    /// @brief Return a linearized version of the record hierarchy.
+    LinearizedTree _linearize_records(RecordMap const & record_tree) const;
+
+    /// @brief Compute the offsets of the records relative to the first record.
+    std::vector<std::streampos> _get_relative_offsets(
+        std::vector<Record::Pointer> const & records) const;
+
+    /// @brief Write the DICOMDIR.
+    void _write(
+        LinearizedTree const & linearized_tree,
+        std::vector<std::streampos> const & relative_offsets) const;
+};
+
+}
+
+#endif // _8836a563_24f6_4afb_89ba_377d49ce9f5d
diff --git a/src/dcmtkpp/CStoreRequest.h b/src/dcmtkpp/CStoreRequest.h
index 169e126..e0dacc3 100644
--- a/src/dcmtkpp/CStoreRequest.h
+++ b/src/dcmtkpp/CStoreRequest.h
@@ -11,9 +11,6 @@
 
 #include <string>
 
-#include <dcmtk/config/osconfig.h>
-#include <dcmtk/ofstd/oftypes.h>
-
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/registry.h"
 #include "dcmtkpp/Request.h"
diff --git a/src/dcmtkpp/DataSet.cpp b/src/dcmtkpp/DataSet.cpp
index 120462e..82f70f8 100644
--- a/src/dcmtkpp/DataSet.cpp
+++ b/src/dcmtkpp/DataSet.cpp
@@ -14,11 +14,6 @@
 #include <string>
 #include <vector>
 
-#include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcdicent.h>
-#include <dcmtk/dcmdata/dcdict.h>
-#include <dcmtk/dcmdata/dctagkey.h>
-
 #include "dcmtkpp/Exception.h"
 #include "dcmtkpp/Tag.h"
 #include "dcmtkpp/VR.h"
diff --git a/src/dcmtkpp/ElementsDictionary.cpp b/src/dcmtkpp/ElementsDictionary.cpp
new file mode 100644
index 0000000..6ee89c5
--- /dev/null
+++ b/src/dcmtkpp/ElementsDictionary.cpp
@@ -0,0 +1,25 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include "dcmtkpp/ElementsDictionary.h"
+
+#include <string>
+
+namespace dcmtkpp
+{
+
+ElementsDictionaryEntry
+::ElementsDictionaryEntry(
+    std::string const & name, std::string const & keyword,
+    std::string const & vr, std::string const & vm)
+: name(name), keyword(keyword), vr(vr), vm(vm)
+{
+    // Nothing else
+}
+
+}
diff --git a/src/dcmtkpp/ElementsDictionary.h b/src/dcmtkpp/ElementsDictionary.h
new file mode 100644
index 0000000..0589f14
--- /dev/null
+++ b/src/dcmtkpp/ElementsDictionary.h
@@ -0,0 +1,39 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#ifndef _f4b88e07_d515_41be_ad1b_37899ec6451e
+#define _f4b88e07_d515_41be_ad1b_37899ec6451e
+
+#include <map>
+#include <string>
+
+#include <dcmtkpp/Tag.h>
+
+namespace dcmtkpp
+{
+
+/**
+ * @brief Entry in a dictionary of DICOM elements.
+ */
+struct ElementsDictionaryEntry
+{
+    std::string name;
+    std::string keyword;
+    std::string vr;
+    std::string vm;
+
+    ElementsDictionaryEntry(
+        std::string const & name, std::string const & keyword,
+        std::string const & vr, std::string const & vm);
+};
+
+typedef std::map<Tag, ElementsDictionaryEntry> ElementsDictionary;
+
+}
+
+#endif // _f4b88e07_d515_41be_ad1b_37899ec6451e
diff --git a/src/dcmtkpp/Reader.cpp b/src/dcmtkpp/Reader.cpp
new file mode 100644
index 0000000..836c928
--- /dev/null
+++ b/src/dcmtkpp/Reader.cpp
@@ -0,0 +1,601 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include "dcmtkpp/Reader.h"
+
+#include <algorithm>
+#include <cstdint>
+#include <endian.h>
+#include <functional>
+#include <istream>
+#include <sstream>
+#include <string>
+#include <utility>
+
+#include "dcmtkpp/DataSet.h"
+#include "dcmtkpp/Element.h"
+#include "dcmtkpp/Exception.h"
+#include "dcmtkpp/registry.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/Value.h"
+#include "dcmtkpp/VR.h"
+#include "dcmtkpp/VRFinder.h"
+
+#define dcmtkpp_read_binary(type, value, stream, byte_ordering, size) \
+type value; \
+{ \
+    uint##size##_t raw; \
+    stream.read(reinterpret_cast<char*>(&raw), sizeof(raw)); \
+    if(!stream) \
+    { \
+        throw Exception("Could not read from stream"); \
+    } \
+    if(byte_ordering == LITTLE_ENDIAN) \
+    { \
+        raw = le##size##toh(raw); \
+    } \
+    else if(byte_ordering == BIG_ENDIAN) \
+    { \
+        raw = be##size##toh(raw); \
+    } \
+    else \
+    { \
+        throw Exception("Unknown endianness"); \
+    } \
+    value = *reinterpret_cast<type*>(&raw);\
+}
+
+std::string read_string(std::istream & stream, unsigned int size)
+{
+    std::string value(size, '\0');
+    stream.read(&value[0], value.size());
+    if(!stream)
+    {
+        throw dcmtkpp::Exception("Cannot read string");
+    }
+    return value;
+}
+
+namespace dcmtkpp
+{
+
+Reader
+::Reader(
+    std::istream & stream, std::string const & transfer_syntax,
+    bool keep_group_length)
+: stream(stream), transfer_syntax(transfer_syntax),
+    byte_ordering(
+        (transfer_syntax==registry::ExplicitVRBigEndian_Retired)?
+        BIG_ENDIAN:LITTLE_ENDIAN),
+    explicit_vr(transfer_syntax!=registry::ImplicitVRLittleEndian),
+    keep_group_length(keep_group_length)
+{
+    // Nothing else
+}
+
+DataSet
+Reader
+::read_data_set(std::function<bool(Tag const &)> halt_condition) const
+{
+    DataSet data_set;
+
+    bool done = (this->stream.peek() == EOF);
+    while(!done)
+    {
+        Tag const tag = this->read_tag();
+
+        if(halt_condition(tag))
+        {
+            done = true;
+            this->stream.seekg(-4, std::ios::cur);
+            break;
+        }
+        else
+        {
+            Element element = this->read_element(tag, data_set);
+
+            if(this->keep_group_length || tag.element != 0)
+            {
+                data_set.add(tag, element);
+            }
+        }
+
+        done = (this->stream.peek() == EOF);
+    }
+
+    return data_set;
+}
+
+Tag
+Reader
+::read_tag() const
+{
+    dcmtkpp_read_binary(uint16_t, group, this->stream, this->byte_ordering, 16);
+    dcmtkpp_read_binary(uint16_t, element, this->stream, this->byte_ordering, 16);
+    return Tag(group, element);
+}
+
+Element
+Reader
+::read_element(Tag const & tag, DataSet const & data_set) const
+{
+    VR vr;
+    if(this->explicit_vr)
+    {
+        vr = as_vr(read_string(this->stream, 2));
+    }
+    else
+    {
+        VRFinder const vr_finder;
+        vr = vr_finder(tag, data_set, this->transfer_syntax);
+    }
+
+    Value value;
+
+    if(vr == VR::IS || vr == VR::SL || vr == VR::SS ||
+        vr == VR::UL || vr == VR::US)
+    {
+        value = Value(Value::Integers());
+    }
+    else if(vr == VR::DS || vr == VR::FD || vr == VR::FL)
+    {
+        value = Value(Value::Reals());
+    }
+    else if(vr == VR::AE || vr == VR::AS || vr == VR::AT || vr == VR::CS ||
+        vr == VR::DA || vr == VR::DS || vr == VR::DT || vr == VR::LO ||
+        vr == VR::LT || vr == VR::PN || vr == VR::SH || vr == VR::ST ||
+        vr == VR::TM || vr == VR::UC || vr == VR::UI || vr == VR::UR ||
+        vr == VR::UT)
+    {
+        value = Value(Value::Strings());
+    }
+    else if(vr == VR::SQ)
+    {
+        value = Value(Value::DataSets());
+    }
+    else if(vr == VR::OB || vr == VR::OF || vr == VR::OW || vr == VR::UN)
+    {
+        value = Value(Value::Binary());
+    }
+    else
+    {
+        throw Exception("Cannot create value for VR " + as_string(vr));
+    }
+
+    Visitor visitor(
+        this->stream, vr, this->transfer_syntax, this->byte_ordering,
+        this->explicit_vr, this->keep_group_length);
+    apply_visitor(visitor, value);
+
+    return Element(value, vr);
+}
+
+std::pair<DataSet, DataSet>
+Reader
+::read_file(std::istream & stream, bool keep_group_length)
+{
+    // File preamble
+    stream.ignore(128);
+    if(!stream)
+    {
+        throw Exception("Cannot read preamble");
+    }
+
+    // DICOM prefix
+    std::string const prefix = read_string(stream, 4);
+    if(prefix != "DICM")
+    {
+        throw Exception("Unexpected prefix: \""+prefix+"\"");
+    }
+
+    // Read meta information
+    Reader meta_information_reader(
+        stream, registry::ExplicitVRLittleEndian, keep_group_length);
+    auto const meta_information = meta_information_reader.read_data_set(
+        [](Tag const & tag) { return (tag.group != 0x0002); });
+
+    if(!meta_information.has(registry::TransferSyntaxUID))
+    {
+        throw Exception("Missing Transfer Syntax UID");
+    }
+    if(!meta_information.is_string(registry::TransferSyntaxUID))
+    {
+        throw Exception("Transfer Syntax UID is not a string");
+    }
+    if(meta_information.as_string(registry::TransferSyntaxUID).size()<1)
+    {
+        throw Exception("Empty Transfer Syntax UID");
+    }
+
+    Reader data_set_reader(
+        stream, meta_information.as_string(registry::TransferSyntaxUID)[0],
+        keep_group_length);
+    auto const data_set = data_set_reader.read_data_set();
+
+    return std::pair<DataSet, DataSet>(meta_information, data_set);
+}
+
+Reader::Visitor
+::Visitor(
+    std::istream & stream, VR vr, std::string const & transfer_syntax,
+    int byte_ordering, bool explicit_vr, bool keep_group_length)
+: stream(stream), vr(vr), transfer_syntax(transfer_syntax),
+    byte_ordering(byte_ordering), explicit_vr(explicit_vr),
+    keep_group_length(keep_group_length)
+{
+    // Nothing else
+}
+
+Reader::Visitor::result_type
+Reader::Visitor
+::operator()(Value::Integers & value) const
+{
+    auto const vl = this->read_length();
+
+    if(this->vr == VR::IS)
+    {
+        auto const string = read_string(this->stream, vl);
+        if(!string.empty())
+        {
+            auto const strings = this->split_strings(string);
+
+            value.resize(strings.size());
+            std::transform(
+                strings.begin(), strings.end(), value.begin(),
+                [](std::string const & s) { return std::stoll(s); });
+        }
+    }
+    else
+    {
+        uint32_t items = 0;
+        if(this->vr == VR::SL || this->vr == VR::UL)
+        {
+            items = vl/4;
+        }
+        else if(this->vr == VR::AT || this->vr == VR::SS || this->vr == VR::US)
+        {
+            items = vl/2;
+        }
+        else
+        {
+            throw Exception("Cannot read integers from "+as_string(this->vr));
+        }
+
+        value.resize(items);
+        for(unsigned int i=0; i<items; ++i)
+        {
+            if(this->vr == VR::SL)
+            {
+                dcmtkpp_read_binary(
+                    int32_t, item, this->stream, this->byte_ordering, 32);
+                value[i] = item;
+            }
+            else if(this->vr == VR::SS)
+            {
+                dcmtkpp_read_binary(
+                    int16_t, item, this->stream, this->byte_ordering, 16);
+                value[i] = item;
+            }
+            else if(this->vr == VR::UL)
+            {
+                dcmtkpp_read_binary(
+                    uint32_t, item, this->stream, this->byte_ordering, 32);
+                value[i] = item;
+            }
+            else if(this->vr == VR::AT || this->vr == VR::US)
+            {
+                dcmtkpp_read_binary(
+                    uint16_t, item, this->stream, this->byte_ordering, 16);
+                value[i] = item;
+            }
+        }
+    }
+}
+
+Reader::Visitor::result_type
+Reader::Visitor
+::operator()(Value::Reals & value) const
+{
+    auto const vl = this->read_length();
+
+    if(this->vr == VR::DS)
+    {
+        auto const string = read_string(this->stream, vl);
+        if(!string.empty())
+        {
+            auto const strings = this->split_strings(string);
+            value.resize(strings.size());
+            std::transform(
+                strings.begin(), strings.end(), value.begin(),
+                [](std::string const & s) { return std::stod(s); });
+        }
+    }
+    else
+    {
+        uint32_t items = 0;
+        if(this->vr == VR::FD)
+        {
+            items = vl/8;
+        }
+        else if(this->vr == VR::FL)
+        {
+            items = vl/4;
+        }
+        else
+        {
+            throw Exception("Cannot read reals from "+as_string(this->vr));
+        }
+
+        value.resize(items);
+        for(unsigned int i=0; i<items; ++i)
+        {
+            if(this->vr == VR::FD)
+            {
+                dcmtkpp_read_binary(
+                    double, item, this->stream, this->byte_ordering, 64);
+                value[i] = item;
+            }
+            else if(this->vr == VR::FL)
+            {
+                dcmtkpp_read_binary(
+                    float, item, this->stream, this->byte_ordering, 32);
+                value[i] = item;
+            }
+        }
+    }
+}
+
+Reader::Visitor::result_type
+Reader::Visitor
+::operator()(Value::Strings & value) const
+{
+    if(this->vr == VR::AT)
+    {
+        Value::Integers integers;
+        this->operator()(integers);
+
+        if(integers.size()%2 != 0)
+        {
+            throw Exception("Cannot read AT from odd-sized array");
+        }
+        for(unsigned int i=0; i<integers.size(); i+=2)
+        {
+            Tag const tag(integers[i], integers[i+1]);
+            value.push_back(std::string(tag));
+        }
+    }
+    else
+    {
+        auto const vl = this->read_length();
+        auto const string = read_string(this->stream, vl);
+        if(this->vr == VR::LT || this->vr == VR::ST || this->vr == VR::UT)
+        {
+            value = { string };
+        }
+        else
+        {
+            value = this->split_strings(string);
+        }
+    }
+}
+
+Reader::Visitor::result_type
+Reader::Visitor
+::operator()(Value::DataSets & value) const
+{
+    auto const vl = this->read_length();
+
+    if(vl != 0xffffffff)
+    {
+        // Explicit length sequence
+        std::string const data = read_string(this->stream, vl);
+        std::istringstream sequence_stream(data);
+        Reader const sequence_reader(
+            sequence_stream, this->transfer_syntax, this->keep_group_length);
+
+        bool done = (sequence_stream.peek() == EOF);
+        while(!done)
+        {
+            auto const tag = sequence_reader.read_tag();
+            if(tag == registry::Item)
+            {
+                value.push_back(this->read_item(sequence_stream));
+            }
+            else
+            {
+                throw Exception("Expected Item, got: "+std::string(tag));
+            }
+
+            done = (sequence_stream.peek() == EOF);
+        }
+    }
+    else
+    {
+        // Undefined length sequence
+        Reader const sequence_reader(
+            this->stream, this->transfer_syntax, this->keep_group_length);
+
+        bool done = false;
+        while(!done)
+        {
+            auto const tag = sequence_reader.read_tag();
+            if(tag == registry::Item)
+            {
+                value.push_back(this->read_item(this->stream));
+            }
+            else if(tag == registry::SequenceDelimitationItem)
+            {
+                done = true;
+                dcmtkpp_read_binary(
+                    uint32_t, unused, this->stream, this->byte_ordering, 32);
+            }
+            else
+            {
+                throw Exception("Expected SequenceDelimitationItem, got: "+std::string(tag));
+            }
+        }
+    }
+}
+
+Reader::Visitor::result_type
+Reader::Visitor
+::operator()(Value::Binary & value) const
+{
+    auto const vl = this->read_length();
+
+    if(this->vr == VR::OB)
+    {
+        value.resize(vl);
+        this->stream.read(reinterpret_cast<char*>(&value[0]), value.size());
+    }
+    else if(this->vr == VR::OF)
+    {
+        if(vl%4 != 0)
+        {
+            throw Exception("Cannot read OF for odd-sized array");
+        }
+
+        value.resize(vl);
+        for(unsigned int i=0; i<value.size(); i+=4)
+        {
+            dcmtkpp_read_binary(
+                float, item, this->stream, this->byte_ordering, 32);
+            *reinterpret_cast<float*>(&value[i]) = item;
+        }
+    }
+    else if(this->vr == VR::OW)
+    {
+        if(vl%2 != 0)
+        {
+            throw Exception("Cannot read OW for odd-sized array");
+        }
+
+        value.resize(vl);
+        for(unsigned int i=0; i<value.size(); i+=2)
+        {
+            dcmtkpp_read_binary(
+                uint16_t, item, this->stream, this->byte_ordering, 16);
+            *reinterpret_cast<uint16_t*>(&value[i]) = item;
+        }
+    }
+    else
+    {
+        throw Exception("Cannot read "+as_string(this->vr)+" as binary");
+    }
+}
+
+uint32_t
+Reader::Visitor
+::read_length() const
+{
+    uint32_t length;
+    if(this->explicit_vr)
+    {
+        if(vr == VR::OB || vr == VR::OW || vr == VR::OF || vr == VR::SQ ||
+           vr == VR::UC || vr == VR::UR || vr == VR::UT || vr == VR::UN)
+        {
+            dcmtkpp_read_binary(
+                uint16_t, reserved, this->stream, this->byte_ordering, 16);
+            dcmtkpp_read_binary(
+                uint32_t, vl, this->stream, this->byte_ordering, 32);
+            length = vl;
+        }
+        else
+        {
+            dcmtkpp_read_binary(
+                uint16_t, vl, this->stream, this->byte_ordering, 16);
+            length = vl;
+        }
+    }
+    else
+    {
+        dcmtkpp_read_binary(
+            uint32_t, vl, this->stream, this->byte_ordering, 32);
+        length = vl;
+    }
+
+    return length;
+}
+
+Value::Strings
+Reader::Visitor
+::split_strings(std::string const & string) const
+{
+    unsigned int const items_count =
+        1+std::count(string.begin(), string.end(), '\\');
+    std::vector<std::string> value(items_count);
+
+    std::string::size_type begin = 0;
+    unsigned int index=0;
+    while(begin != string.size())
+    {
+        auto const end = string.find('\\', begin);
+        auto const item = string.substr(
+            begin, (end==std::string::npos)?end:(end-begin));
+
+        value[index] = item;
+        ++index;
+
+        begin = (end==std::string::npos)?string.size():(end+1);
+    }
+
+    if(!value.empty())
+    {
+        // Remove padding
+        static std::string const padding={ '\0', ' ' };
+        auto & last_item = value[value.size()-1];
+        auto const last_char = last_item.find_last_not_of(padding);
+        if(last_char != std::string::npos)
+        {
+            last_item = last_item.substr(0, last_char+1);
+        }
+    }
+
+    return value;
+}
+
+DataSet
+Reader::Visitor
+::read_item(std::istream & specific_stream) const
+{
+    dcmtkpp_read_binary(
+        uint32_t, item_length, specific_stream, this->byte_ordering, 32);
+
+    DataSet item;
+    if(item_length != 0xffffffff)
+    {
+        // Explicit length item
+        std::string const data = read_string(specific_stream, item_length);
+        std::istringstream item_stream(data);
+        Reader const item_reader(
+            item_stream, this->transfer_syntax, this->keep_group_length);
+        item = item_reader.read_data_set();
+    }
+    else
+    {
+        // Undefined length item
+        Reader const item_reader(
+            specific_stream, this->transfer_syntax, this->keep_group_length);
+        item = item_reader.read_data_set(
+            [](Tag const & tag) { return tag == registry::ItemDelimitationItem; });
+
+        auto const tag = item_reader.read_tag();
+        if(tag != registry::ItemDelimitationItem)
+        {
+            throw Exception("Unexpected tag: "+std::string(tag));
+        }
+        dcmtkpp_read_binary(
+            uint32_t, unused, specific_stream, this->byte_ordering, 32);
+    }
+
+    return item;
+}
+
+}
+
+#undef dcmtkpp_read_binary
diff --git a/src/dcmtkpp/Reader.h b/src/dcmtkpp/Reader.h
new file mode 100644
index 0000000..7a47275
--- /dev/null
+++ b/src/dcmtkpp/Reader.h
@@ -0,0 +1,105 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#ifndef _aa2965aa_e891_4713_9c90_e8eacd2944ea
+#define _aa2965aa_e891_4713_9c90_e8eacd2944ea
+
+#include <functional>
+#include <istream>
+#include <string>
+#include <utility>
+
+#include "dcmtkpp/DataSet.h"
+#include "dcmtkpp/Element.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/Value.h"
+#include "dcmtkpp/VR.h"
+
+namespace dcmtkpp
+{
+
+/// @brief Read DICOM objects from a stream.
+class Reader
+{
+public:
+    /// @brief Input stream.
+    std::istream & stream;
+
+    /// @brief Transfer syntax used to read the file.
+    std::string transfer_syntax;
+
+    /// @brief Endianness (LITTLE_ENDIAN or BIG_ENDIAN).
+    int byte_ordering;
+
+    /// @brief Explicit-ness of the Value Representations.
+    bool explicit_vr;
+
+    /// @brief Flag to keep or discard group length tags.
+    bool keep_group_length;
+
+    /**
+     * @brief Build a reader, derive byte ordering and explicit-ness of VR
+     * from transfer syntax.
+     */
+    Reader(
+        std::istream & stream, std::string const & transfer_syntax,
+        bool keep_group_length=false);
+
+    /// @brief Read a data set.
+    DataSet read_data_set(
+        std::function<bool(Tag const &)> halt_condition = [](Tag const &) { return false;}) const;
+
+    /// @brief Read a tag.
+    Tag read_tag() const;
+
+    /**
+     * @brief Read an element (VR and value), try to guess the VR from the tag,
+     * partially read data set, and transfer syntax for implicit VR transfer
+     * syntaxes.
+     */
+    Element read_element(
+        Tag const & tag=Tag(0xffff,0xffff),
+        DataSet const & data_set=DataSet()) const;
+
+    static std::pair<DataSet, DataSet> read_file(
+        std::istream & stream,
+        bool keep_group_length=false);
+
+private:
+    struct Visitor
+    {
+        typedef void result_type;
+
+        std::istream & stream;
+        VR vr;
+
+        std::string transfer_syntax;
+        int byte_ordering;
+        bool explicit_vr;
+        bool keep_group_length;
+
+        Visitor(
+            std::istream & stream, VR vr, std::string const & transfer_syntax,
+            int byte_ordering, bool explicit_vr, bool keep_group_length);
+
+        result_type operator()(Value::Integers & value) const;
+        result_type operator()(Value::Reals & value) const;
+        result_type operator()(Value::Strings & value) const;
+        result_type operator()(Value::DataSets & value) const;
+        result_type operator()(Value::Binary & value) const;
+
+        uint32_t read_length() const;
+
+        Value::Strings split_strings(std::string const & string) const;
+        DataSet read_item(std::istream & specific_stream) const;
+    };
+};
+
+}
+
+#endif // _aa2965aa_e891_4713_9c90_e8eacd2944ea
diff --git a/src/dcmtkpp/SCU.cpp b/src/dcmtkpp/SCU.cpp
index f455768..9110c2e 100644
--- a/src/dcmtkpp/SCU.cpp
+++ b/src/dcmtkpp/SCU.cpp
@@ -16,6 +16,7 @@
 #include "dcmtkpp/CEchoRequest.h"
 #include "dcmtkpp/CEchoResponse.h"
 #include "dcmtkpp/Message.h"
+#include "dcmtkpp/registry.h"
 
 namespace dcmtkpp
 {
@@ -53,7 +54,7 @@ SCU
 {
     Uint16 const message_id = this->_association->get_association()->nextMsgID++;
     
-    CEchoRequest const request(message_id, UID_VerificationSOPClass);
+    CEchoRequest const request(message_id, registry::VerificationSOPClass);
     this->_send(request, request.get_affected_sop_class_uid());
     
     CEchoResponse const response = this->_receive<CEchoResponse>();
diff --git a/src/dcmtkpp/ServiceRole.cpp b/src/dcmtkpp/ServiceRole.cpp
index 41cc102..d2a076b 100644
--- a/src/dcmtkpp/ServiceRole.cpp
+++ b/src/dcmtkpp/ServiceRole.cpp
@@ -11,20 +11,14 @@
 #include <unistd.h>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcdatset.h>
-#include <dcmtk/dcmdata/dcistrmb.h>
-#include <dcmtk/dcmdata/dcostrmb.h>
-#include <dcmtk/dcmdata/dctagkey.h>
-#include <dcmtk/dcmdata/dcwcache.h>
-#include <dcmtk/dcmdata/dcxfer.h>
 #include <dcmtk/dcmnet/assoc.h>
 #include <dcmtk/dcmnet/dimse.h>
 
-#include "dcmtkpp/conversion.h"
 #include "dcmtkpp/DataSet.h"
-#include "dcmtkpp/ElementAccessor.h"
 #include "dcmtkpp/Exception.h"
+#include "dcmtkpp/Reader.h"
 #include "dcmtkpp/registry.h"
+#include "dcmtkpp/Writer.h"
 
 namespace dcmtkpp
 {
@@ -122,27 +116,19 @@ ServiceRole
 {
     T_ASC_PresentationContextID const presentation_context = 
         this->_find_presentation_context(abstract_syntax);
-    
-    DcmDataset * command_set = dynamic_cast<DcmDataset*>(
-        convert(message.get_command_set()));
 
     this->_send(
-        command_set,
-        presentation_context, EXS_LittleEndianImplicit, 
+        message.get_command_set(),
+        presentation_context, registry::ImplicitVRLittleEndian,
         DUL_COMMANDPDV, NULL, NULL);
     if(message.has_data_set() && !message.get_data_set().empty())
     {
-        DcmDataset * data_set = dynamic_cast<DcmDataset*>(
-            convert(message.get_data_set()));
         // FIXME: transfer syntax
         this->_send(
-            data_set,
-            presentation_context, EXS_LittleEndianImplicit, 
+            message.get_data_set(),
+            presentation_context, registry::ImplicitVRLittleEndian,
             DUL_DATASETPDV, callback, callback_data);
-        delete data_set;
     }
-
-    delete command_set;
 }
 
 Message
@@ -150,26 +136,24 @@ ServiceRole
 ::_receive(ProgressCallback callback, void* callback_data) const
 {
     // Receive command set
-    std::pair<DcmDataset, DUL_DATAPDV> const command =
-        this->_receive_dataset(callback, callback_data);
+    auto const command = this->_receive_dataset(callback, callback_data);
     if(command.second != DUL_COMMANDPDV)
     {
         throw Exception("Did not receive command set");
     }
-    DataSet const command_set = convert(const_cast<DcmDataset*>(&command.first));
+    DataSet const & command_set = command.first;
     
     // Receive potential data set
     DataSet data_set;
     bool has_data_set;
     if(command_set.as_int(registry::CommandDataSetType, 0) != DIMSE_DATASET_NULL)
     {
-        std::pair<DcmDataset, DUL_DATAPDV> const data =
-            this->_receive_dataset(callback, callback_data);
+        auto const data = this->_receive_dataset(callback, callback_data);
         if(data.second != DUL_DATASETPDV)
         {
             throw Exception("Did not receive data set");
         }
-        data_set = convert(const_cast<DcmDataset*>(&data.first));
+        data_set = data.first;
         has_data_set = true;
     }
     else
@@ -180,11 +164,11 @@ ServiceRole
     return has_data_set?Message(command_set, data_set):Message(command_set);
 }
 
-OFCondition
+void
 ServiceRole
 ::_send(
-    DcmDataset *obj, T_ASC_PresentationContextID presID,
-    E_TransferSyntax xferSyntax, DUL_DATAPDV pdvType,
+    DataSet const & obj, T_ASC_PresentationContextID presID,
+    std::string const & transfer_syntax, DUL_DATAPDV pdvType,
     ProgressCallback callback, void *callbackContext) const
     /*
      * This function sends all information which is included in a DcmDataset object over
@@ -201,8 +185,13 @@ ServiceRole
      *   callbackContext - []
      */
 {
-    OFBool written = OFFalse;
-    DcmWriteCache wcache;
+    bool const use_group_length = (pdvType == DUL_COMMANDPDV);
+    std::stringstream stream;
+    Writer writer(
+        stream, transfer_syntax, Writer::ItemEncoding::ExplicitLength,
+        use_group_length);
+    writer.write_data_set(obj);
+    std::string const data = stream.str();
 
     /* we may wish to restrict output PDU size */
     /* max PDV size is max PDU size minus 12 bytes PDU/PDV header */
@@ -212,153 +201,57 @@ ServiceRole
         bufLen = dcmMaxOutgoingPDUSize.get() - 12;
     }
 
-    /* on the basis of the association's buffer, create a buffer variable that we can write to */
-    DcmOutputBufferStream outBuf(
-        this->_association->get_association()->sendPDVBuffer, bufLen);
-
-    /* prepare all elements in the DcmDataset variable for transfer */
-    obj->transferInit();
-
-    /* groupLength_encoding specifies what will be done concerning
-     * group length tags
-     */
-    E_GrpLenEncoding groupLength_encoding = g_dimse_send_groupLength_encoding;
-    /* Mind that commands must always include group length (0000,0000) and */
-    /* that commands do not contain sequences, yet */
-    if (pdvType == DUL_COMMANDPDV)
-    {
-        groupLength_encoding = EGL_withGL;
-    }
-
-    /* sequenceType_encoding specifies how sequences will be handled */
-    E_EncodingType const sequenceType_encoding = g_dimse_send_sequenceType_encoding;
-
-    /* start a loop: in each iteration information from the DcmDataset object (i.e. infor- */
-    /* mation which shall be sent) will be set in the buffer (we need more than one itera- */
-    /* tion if there is more information than the buffer can take at a time), a PDV object */
-    /* with the buffer's data will be created and assigned to a list, and finally the */
-    /* list's information will be sent over the network to the other DICOM application. */
-    OFBool last = OFFalse;
-    Uint32 bytesTransmitted = 0;
-    while (!last)
+    bool done = false;
+    unsigned long bytesTransmitted=0;
+    while(!done)
     {
-        /* write data values which are contained in the DcmDataSet variable to the above created */
-        /* buffer. Mind the transfer syntax, the sequence type encoding, the group length encoding */
-        /* and remove all padding data elements. Depending on whether all information has been written */
-        /* to the buffer, update the variable that determines the end of the while loop. (Note that */
-        /* DcmDataset stores information about what of its content has already been sent to the buffer.) */
-        if (! written)
-        {
-            OFCondition const econd =
-                obj->write(outBuf, xferSyntax, sequenceType_encoding, &wcache,
-                groupLength_encoding, EPD_withoutPadding);
-            if (econd == EC_Normal)                   /* all contents have been written to the buffer */
-            {
-                written = OFTrue;
-            }
-            else if (econd == EC_StreamNotifyClient)  /* no more space in buffer, _not_ all elements have been written to it */
-            {
-                // nothing to do
-            }
-            else                                      /* some error has occurred */
-            {
-                //DCMNET_WARN(DIMSE_warn_str(assoc) << "writeBlock Failed (" << econd.text() << ")");
-                return DIMSE_SENDFAILED;
-            }
-        }
-
-        if (written)
+        std::string const buffer = data.substr(bytesTransmitted, bufLen);
+
+        /* count the bytes and the amount of PDVs which were transmitted */
+        bytesTransmitted += buffer.size();
+        done = (bytesTransmitted>=data.size());
+
+        /* initialize a DUL_PDV variable with the buffer's data */
+        DUL_PDV pdv;
+        pdv.fragmentLength = buffer.size();
+        pdv.presentationContextID = presID;
+        pdv.pdvType = pdvType;
+        pdv.lastPDV = done;
+        pdv.data = reinterpret_cast<void*>(const_cast<char*>(&buffer[0]));
+
+        /* append this PDV to a PDV list structure, set the counter variable */
+        /* to 1 since this structure contains only 1 element */
+        DUL_PDVLIST pdvList;
+        pdvList.count = 1;
+        pdvList.pdv = &pdv;
+
+        /* send information over the network to the other DICOM application */
+        OFCondition const dulCond = DUL_WritePDVs(
+            &this->_association->get_association()->DULassociation, &pdvList);
+        if (dulCond.bad())
         {
-            outBuf.flush(); // flush stream including embedded compression codec.
+            throw Exception(
+                makeDcmnetSubCondition(
+                    DIMSEC_SENDFAILED, OF_error, "DIMSE Failed to send message",
+                    dulCond));
         }
 
-        /* get buffer and its length, assign to local variable */
-        void *fullBuf = NULL;
-        offile_off_t rtnLength;
-        outBuf.flushBuffer(fullBuf, rtnLength);
-
-        last = written && outBuf.isFlushed();
-
-        /* if the buffer is not empty, do something with its contents */
-        if (rtnLength > 0)
+        /* execute callback function to indicate progress */
+        if(callback)
         {
-            /* rtnLength could be odd */
-            if (rtnLength & 1)
-            {
-                /* this should only happen if we use a stream compressed transfer
-                 * syntax and then only at the very end of the stream. Everything
-                 * else is a failure.
-                 */
-                if (!last)
-                {
-                    return makeDcmnetCondition(
-                        DIMSEC_SENDFAILED, OF_error,
-                        "DIMSE Failed to send message: odd block length encountered");
-                }
-
-                /* since the block size is always even, block size must be larger
-                 * than rtnLength, so we can safely add a pad byte (and hope that
-                 * the pad byte will not confuse the receiver's decompressor).
-                 */
-                unsigned char *cbuf = (unsigned char *)fullBuf;
-                cbuf[rtnLength++] = 0; // add zero pad byte
-            }
-
-            /* initialize a DUL_PDV variable with the buffer's data */
-            DUL_PDV pdv;
-            pdv.fragmentLength = OFstatic_cast(unsigned long, rtnLength);
-            pdv.presentationContextID = presID;
-            pdv.pdvType = pdvType;
-            pdv.lastPDV = last;
-            pdv.data = fullBuf;
-
-            /* append this PDV to a PDV list structure, set the counter variable */
-            /* to 1 since this structure contains only 1 element */
-            DUL_PDVLIST pdvList;
-            pdvList.count = 1;
-            pdvList.pdv = &pdv;
-
-            /* send information over the network to the other DICOM application */
-            OFCondition const dulCond = DUL_WritePDVs(
-                &this->_association->get_association()->DULassociation,
-                &pdvList);
-            if (dulCond.bad())
-            {
-                return makeDcmnetSubCondition(DIMSEC_SENDFAILED, OF_error, "DIMSE Failed to send message", dulCond);
-            }
-
-            /* count the bytes and the amount of PDVs which were transmitted */
-            bytesTransmitted += OFstatic_cast(Uint32, rtnLength);
-
-            /* execute callback function to indicate progress */
-            if(callback)
-            {
-                callback(callbackContext, bytesTransmitted);
-            }
+            callback(callbackContext, bytesTransmitted);
         }
     }
-
-    /* indicate the end of the transfer */
-    obj->transferEnd();
-
-    return EC_Normal;
 }
 
 
-std::pair<DcmDataset, DUL_DATAPDV>
+std::pair<DataSet, DUL_DATAPDV>
 ServiceRole::_receive_dataset(
     ProgressCallback callback, void *callbackContext) const
 {
-    DcmDataset dataset;
-    dataset.transferInit();
-    DcmInputBufferStream buffer;
-    if(!buffer.good())
-    {
-        throw Exception(
-            makeDcmnetCondition(
-                DIMSEC_PARSEFAILED, OF_error,
-                "DIMSE: receiveCommand: Failed to initialize cmdBuf"));
-    }
+    DataSet data_set;
+
+    std::stringstream stream;
 
     /* start a loop in which we want to read a DIMSE command from the incoming socket stream. */
     /* Since the command could stretch over more than one PDU, the use of a loop is mandatory. */
@@ -368,9 +261,6 @@ ServiceRole::_receive_dataset(
     T_ASC_PresentationContextID pid = 0;
     while(!last)
     {
-        /* make the stream remember any unread bytes */
-        buffer.releaseBuffer();
-
         DUL_PDV const pdv = this->_read_next_pdv();
 
         /* if this is the first loop iteration, get the presentation context ID
@@ -384,13 +274,10 @@ ServiceRole::_receive_dataset(
         }
         else if (pdv.presentationContextID != pid)
         {
-            char buf1[256];
-            sprintf(buf1, "DIMSE: Different PresIDs inside Command Set: %d != %d", pid, pdv.presentationContextID);
-            OFCondition subCond = makeDcmnetCondition(DIMSEC_INVALIDPRESENTATIONCONTEXTID, OF_error, buf1);
-            throw Exception(
-                makeDcmnetSubCondition(
-                    DIMSEC_RECEIVEFAILED, OF_error,
-                    "DIMSE Failed to receive message", subCond));
+            std::ostringstream message;
+            message << "Different presentation IDs inside Command Set: "
+                    << pid << " != " << pdv.presentationContextID;
+            throw Exception(message.str());
         }
 
         /* check if the fragment length of the current PDV is odd. This should */
@@ -399,38 +286,26 @@ ServiceRole::_receive_dataset(
         if ((pdv.fragmentLength % 2) != 0)
         {
             /* This should NEVER happen.  See Part 7, Annex F. */
-            char buf2[256];
-            sprintf(buf2, "DIMSE: Odd Fragment Length: %lu", pdv.fragmentLength);
-            throw Exception(
-                makeDcmnetCondition(DIMSEC_RECEIVEFAILED, OF_error, buf2));
+            std::ostringstream message;
+            message << "Odd fragment length: " << pdv.fragmentLength;
+            throw Exception(message.str());
         }
 
         /* if information is contained the PDVs fragment, we want to insert
          * this information into the buffer
          */
-        if (pdv.fragmentLength > 0)
-        {
-            buffer.setBuffer(pdv.data, pdv.fragmentLength);
-        }
-
-        /* if this fragment contains the last fragment of the DIMSE command,
-         * set the end of the stream
-         */
-        if (pdv.lastPDV)
-        {
-            buffer.setEos();
-        }
+        stream.write(reinterpret_cast<char *>(pdv.data), pdv.fragmentLength);
 
-        E_TransferSyntax transfer_syntax;
-        E_GrpLenEncoding group_length_encoding;
+        std::string transfer_syntax;
+        bool keep_group_length;
         if(pdv.pdvType == DUL_COMMANDPDV)
         {
             /* DIMSE commands are always specified in the little endian implicit
              * transfer syntax. Additionally, we want to remove group length
              * tags.
              */
-            transfer_syntax = EXS_LittleEndianImplicit;
-            group_length_encoding = EGL_withoutGL;
+            transfer_syntax = registry::ImplicitVRLittleEndian;
+            keep_group_length = false;
         }
         else if(pdv.pdvType == DUL_DATASETPDV)
         {
@@ -441,87 +316,20 @@ ServiceRole::_receive_dataset(
                     this->_association->get_association()->params, pid, &pc);
             if (cond.bad())
             {
-                throw Exception(makeDcmnetSubCondition(
-                    DIMSEC_RECEIVEFAILED, OF_error,
-                    "DIMSE Failed to receive message", cond));
+                throw Exception("No valid presentation context");
             }
 
             /* determine the transfer syntax which is specified in the presentation context */
-            std::string const ts = pc.acceptedTransferSyntax;
-
-            /* create a DcmXfer object on the basis of the transfer syntax which was determined above */
-            DcmXfer xfer(ts.c_str());
-
-            /* check if the transfer syntax is supported by dcmtk */
-            transfer_syntax = xfer.getXfer();
-            switch (transfer_syntax)
-            {
-                case EXS_LittleEndianImplicit:
-                case EXS_LittleEndianExplicit:
-                case EXS_BigEndianExplicit:
-                case EXS_JPEGProcess1TransferSyntax:
-                case EXS_JPEGProcess2_4TransferSyntax:
-                case EXS_JPEGProcess3_5TransferSyntax:
-                case EXS_JPEGProcess6_8TransferSyntax:
-                case EXS_JPEGProcess7_9TransferSyntax:
-                case EXS_JPEGProcess10_12TransferSyntax:
-                case EXS_JPEGProcess11_13TransferSyntax:
-                case EXS_JPEGProcess14TransferSyntax:
-                case EXS_JPEGProcess15TransferSyntax:
-                case EXS_JPEGProcess16_18TransferSyntax:
-                case EXS_JPEGProcess17_19TransferSyntax:
-                case EXS_JPEGProcess20_22TransferSyntax:
-                case EXS_JPEGProcess21_23TransferSyntax:
-                case EXS_JPEGProcess24_26TransferSyntax:
-                case EXS_JPEGProcess25_27TransferSyntax:
-                case EXS_JPEGProcess28TransferSyntax:
-                case EXS_JPEGProcess29TransferSyntax:
-                case EXS_JPEGProcess14SV1TransferSyntax:
-                case EXS_RLELossless:
-                case EXS_JPEGLSLossless:
-                case EXS_JPEGLSLossy:
-                case EXS_JPEG2000LosslessOnly:
-                case EXS_JPEG2000:
-                case EXS_MPEG2MainProfileAtMainLevel:
-                case EXS_MPEG2MainProfileAtHighLevel:
-                case EXS_JPEG2000MulticomponentLosslessOnly:
-                case EXS_JPEG2000Multicomponent:
-        #ifdef WITH_ZLIB
-                case EXS_DeflatedLittleEndianExplicit:
-        #endif
-                    /* OK, these can be supported */
-                    break;
-                default:
-                /* all other transfer syntaxes are not supported; hence, set the error indicator variable */
-                {
-                    char buf[256];
-                    sprintf(
-                        buf, "DIMSE Unsupported transfer syntax: %s",
-                        ts.c_str());
-                    OFCondition subCond = makeDcmnetCondition(
-                        DIMSEC_UNSUPPORTEDTRANSFERSYNTAX, OF_error, buf);
-                    throw Exception(makeDcmnetSubCondition(
-                        DIMSEC_RECEIVEFAILED, OF_error,
-                        "DIMSE Failed to receive message", subCond));
-                }
-                break;
-            }
-            group_length_encoding = EGL_noChange;
+            transfer_syntax = pc.acceptedTransferSyntax;
+            keep_group_length = true;
         }
         else
         {
             throw Exception("Unkown PDV type");
         }
 
-        OFCondition const econd = dataset.read(
-            buffer, transfer_syntax, group_length_encoding);
-        if (econd != EC_Normal && econd != EC_StreamNotifyClient)
-        {
-            throw Exception(
-                makeDcmnetSubCondition(
-                    DIMSEC_RECEIVEFAILED, OF_error,
-                    "DIMSE: receiveCommand: cmdSet->read() Failed", econd));
-        }
+        Reader reader(stream, transfer_syntax, keep_group_length);
+        data_set = reader.read_data_set();
 
         /* update the following variables which will be evaluated at the beginning of each loop iteration. */
         last = pdv.lastPDV;
@@ -533,9 +341,7 @@ ServiceRole::_receive_dataset(
         pdvCount++;
     }
 
-    dataset.transferEnd();
-
-    return std::make_pair(dataset, type);
+    return std::make_pair(data_set, type);
 }
 
 DUL_PDV
diff --git a/src/dcmtkpp/ServiceRole.h b/src/dcmtkpp/ServiceRole.h
index ec4fc93..0c9b25b 100644
--- a/src/dcmtkpp/ServiceRole.h
+++ b/src/dcmtkpp/ServiceRole.h
@@ -13,7 +13,6 @@
 #include <utility>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcdatset.h>
 #include <dcmtk/dcmnet/assoc.h>
 
 #include "dcmtkpp/Association.h"
@@ -94,12 +93,12 @@ protected:
     TMessage _receive(ProgressCallback callback=NULL, void* callback_data=NULL) const;
 
 private:
-    OFCondition _send(
-        DcmDataset *obj, T_ASC_PresentationContextID presID,
-        E_TransferSyntax xferSyntax, DUL_DATAPDV pdvType,
+    void _send(
+        DataSet const & obj, T_ASC_PresentationContextID presID,
+        std::string const & transfer_syntax, DUL_DATAPDV pdvType,
         ProgressCallback callback, void *callbackContext) const;
 
-    std::pair<DcmDataset, DUL_DATAPDV> _receive_dataset(
+    std::pair<DataSet, DUL_DATAPDV> _receive_dataset(
         ProgressCallback callback, void *callbackContext) const;
     
     DUL_PDV _read_next_pdv() const;
diff --git a/src/dcmtkpp/ServiceRole.txx b/src/dcmtkpp/ServiceRole.txx
index 8e8ccca..32dc73f 100644
--- a/src/dcmtkpp/ServiceRole.txx
+++ b/src/dcmtkpp/ServiceRole.txx
@@ -15,7 +15,6 @@
 #include <utility>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcdatset.h>
 #include <dcmtk/dcmnet/assoc.h>
 
 #include "dcmtkpp/Association.h"
diff --git a/src/dcmtkpp/StoreSCU.cpp b/src/dcmtkpp/StoreSCU.cpp
index 3df3abe..b086831 100644
--- a/src/dcmtkpp/StoreSCU.cpp
+++ b/src/dcmtkpp/StoreSCU.cpp
@@ -13,9 +13,6 @@
 #include <string>
 #include <vector>
 
-#include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
-
 #include "dcmtkpp/CStoreRequest.h"
 #include "dcmtkpp/CStoreResponse.h"
 #include "dcmtkpp/Exception.h"
@@ -36,122 +33,15 @@ StoreSCU
 {
     auto const & sop_class_uid = dataset.as_string(registry::SOPClassUID, 0);
     
-    // From dcuid.h
-    std::vector<std::string> const storage = {
-        UID_RETIRED_StoredPrintStorage,
-        UID_RETIRED_HardcopyGrayscaleImageStorage,
-        UID_RETIRED_HardcopyColorImageStorage,
-        UID_ComputedRadiographyImageStorage,
-        UID_DigitalXRayImageStorageForPresentation,
-        UID_DigitalXRayImageStorageForProcessing,
-        UID_DigitalMammographyXRayImageStorageForPresentation,
-        UID_DigitalMammographyXRayImageStorageForProcessing,
-        UID_DigitalIntraOralXRayImageStorageForPresentation,
-        UID_DigitalIntraOralXRayImageStorageForProcessing,
-        UID_CTImageStorage,
-        UID_EnhancedCTImageStorage,
-        UID_RETIRED_UltrasoundMultiframeImageStorage,
-        UID_UltrasoundMultiframeImageStorage,
-        UID_MRImageStorage,
-        UID_EnhancedMRImageStorage,
-        UID_MRSpectroscopyStorage,
-        UID_EnhancedMRColorImageStorage,
-        UID_RETIRED_NuclearMedicineImageStorage,
-        UID_RETIRED_UltrasoundImageStorage,
-        UID_UltrasoundImageStorage,
-        UID_EnhancedUSVolumeStorage,
-        UID_SecondaryCaptureImageStorage,
-        UID_MultiframeSingleBitSecondaryCaptureImageStorage,
-        UID_MultiframeGrayscaleByteSecondaryCaptureImageStorage,
-        UID_MultiframeGrayscaleWordSecondaryCaptureImageStorage,
-        UID_MultiframeTrueColorSecondaryCaptureImageStorage,
-        UID_RETIRED_StandaloneOverlayStorage,
-        UID_RETIRED_StandaloneCurveStorage,
-        UID_TwelveLeadECGWaveformStorage,
-        UID_GeneralECGWaveformStorage,
-        UID_AmbulatoryECGWaveformStorage,
-        UID_HemodynamicWaveformStorage,
-        UID_CardiacElectrophysiologyWaveformStorage,
-        UID_BasicVoiceAudioWaveformStorage,
-        UID_GeneralAudioWaveformStorage,
-        UID_ArterialPulseWaveformStorage,
-        UID_RespiratoryWaveformStorage,
-        UID_RETIRED_StandaloneModalityLUTStorage,
-        UID_RETIRED_StandaloneVOILUTStorage,
-        UID_GrayscaleSoftcopyPresentationStateStorage,
-        UID_ColorSoftcopyPresentationStateStorage,
-        UID_PseudoColorSoftcopyPresentationStateStorage,
-        UID_BlendingSoftcopyPresentationStateStorage,
-        UID_XAXRFGrayscaleSoftcopyPresentationStateStorage,
-        UID_XRayAngiographicImageStorage,
-        UID_EnhancedXAImageStorage,
-        UID_XRayRadiofluoroscopicImageStorage,
-        UID_EnhancedXRFImageStorage,
-        UID_XRay3DAngiographicImageStorage,
-        UID_XRay3DCraniofacialImageStorage,
-        UID_BreastTomosynthesisImageStorage,
-        UID_RETIRED_XRayAngiographicBiPlaneImageStorage,
-        UID_NuclearMedicineImageStorage,
-        UID_RawDataStorage,
-        UID_SpatialRegistrationStorage,
-        UID_SpatialFiducialsStorage,
-        UID_DeformableSpatialRegistrationStorage,
-        UID_SegmentationStorage,
-        UID_SurfaceSegmentationStorage,
-        UID_RealWorldValueMappingStorage,
-        UID_RETIRED_VLImageStorage,
-        UID_VLEndoscopicImageStorage,
-        UID_VideoEndoscopicImageStorage,
-        UID_VLMicroscopicImageStorage,
-        UID_VideoMicroscopicImageStorage,
-        UID_VLSlideCoordinatesMicroscopicImageStorage,
-        UID_VLPhotographicImageStorage,
-        UID_VideoPhotographicImageStorage,
-        UID_OphthalmicPhotography8BitImageStorage,
-        UID_OphthalmicPhotography16BitImageStorage,
-        UID_StereometricRelationshipStorage,
-        UID_OphthalmicTomographyImageStorage,
-        UID_VLWholeSlideMicroscopyImageStorage,
-        UID_RETIRED_VLMultiFrameImageStorage,
-        UID_LensometryMeasurementsStorage,
-        UID_AutorefractionMeasurementsStorage,
-        UID_KeratometryMeasurementsStorage,
-        UID_SubjectiveRefractionMeasurementsStorage,
-        UID_VisualAcuityMeasurementsStorage,
-        UID_SpectaclePrescriptionReportStorage,
-        UID_OphthalmicAxialMeasurementsStorage,
-        UID_IntraocularLensCalculationsStorage,
-        UID_MacularGridThicknessAndVolumeReportStorage,
-        UID_OphthalmicVisualFieldStaticPerimetryMeasurementsStorage,
-        UID_BasicTextSRStorage,
-        UID_EnhancedSRStorage,
-        UID_ComprehensiveSRStorage,
-        UID_ProcedureLogStorage,
-        UID_MammographyCADSRStorage,
-        UID_KeyObjectSelectionDocumentStorage,
-        UID_ChestCADSRStorage,
-        UID_XRayRadiationDoseSRStorage,
-        UID_ColonCADSRStorage,
-        UID_ImplantationPlanSRDocumentStorage,
-        UID_EncapsulatedPDFStorage,
-        UID_EncapsulatedCDAStorage,
-        UID_PositronEmissionTomographyImageStorage,
-        UID_RETIRED_StandalonePETCurveStorage,
-        UID_EnhancedPETImageStorage,
-        UID_BasicStructuredDisplayStorage,
-        UID_RTImageStorage,
-        UID_RTDoseStorage,
-        UID_RTStructureSetStorage,
-        UID_RTBeamsTreatmentRecordStorage,
-        UID_RTPlanStorage,
-        UID_RTBrachyTreatmentRecordStorage,
-        UID_RTTreatmentSummaryRecordStorage,
-        UID_RTIonPlanStorage,
-        UID_RTIonBeamsTreatmentRecordStorage,
-        UID_GenericImplantTemplateStorage,
-        UID_ImplantAssemblyTemplateStorage,
-        UID_ImplantTemplateGroupStorage
-    };
+    std::vector<std::string> storage;
+    for(auto const & uids_it: registry::uids_dictionary)
+    {
+        auto const & name = uids_it.second.name;
+        if(name.find("Storage") != std::string::npos)
+        {
+            storage.push_back(uids_it.first);
+        }
+    }
 
     if(std::find(storage.begin(), storage.end(), sop_class_uid) != storage.end())
     {
diff --git a/src/dcmtkpp/Tag.cpp b/src/dcmtkpp/Tag.cpp
index c142a52..8211fb5 100644
--- a/src/dcmtkpp/Tag.cpp
+++ b/src/dcmtkpp/Tag.cpp
@@ -13,12 +13,8 @@
 #include <sstream>
 #include <string>
 
-#include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcdicent.h>
-#include <dcmtk/dcmdata/dcdict.h>
-#include <dcmtk/dcmdata/dctagkey.h>
-
 #include "dcmtkpp/Exception.h"
+#include "dcmtkpp/registry.h"
 
 namespace dcmtkpp
 {
@@ -60,14 +56,13 @@ std::string
 Tag
 ::get_name() const
 {
-    DcmTagKey const tag(this->group, this->element);
-    DcmDictEntry const * entry = dcmDataDict.rdlock().findEntry(tag, NULL);
-    if(entry == NULL)
+    auto const dictionary_it = registry::public_dictionary.find(*this);
+    if(dictionary_it == registry::public_dictionary.end())
     {
-        throw Exception("No such element");
+        throw Exception("No such element: "+std::string(*this));
     }
 
-    return entry->getTagName();
+    return dictionary_it->second.keyword;
 }
 
 bool
@@ -120,8 +115,17 @@ void
 Tag
 ::_from_string(std::string const & string)
 {
-    DcmDictEntry const * entry = dcmDataDict.rdlock().findEntry(string.c_str());
-    if(entry == NULL)
+    ElementsDictionary::const_iterator it = registry::public_dictionary.begin();
+    while(it != registry::public_dictionary.end())
+    {
+        if(it->second.keyword == string)
+        {
+            break;
+        }
+        ++it;
+    }
+
+    if(it == registry::public_dictionary.end())
     {
         // Try with string form of numeric tag
         uint16_t group;
@@ -164,9 +168,9 @@ Tag
     }
     else
     {
-        DcmTagKey const tag = entry->getKey();
-        this->group = tag.getGroup();
-        this->element = tag.getElement();
+        auto const & tag = it->first;
+        this->group = tag.group;
+        this->element = tag.element;
     }
 }
 
diff --git a/src/dcmtkpp/UIDsDictionary.cpp b/src/dcmtkpp/UIDsDictionary.cpp
new file mode 100644
index 0000000..35f4559
--- /dev/null
+++ b/src/dcmtkpp/UIDsDictionary.cpp
@@ -0,0 +1,26 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include "dcmtkpp/UIDsDictionary.h"
+
+#include <map>
+#include <string>
+
+namespace dcmtkpp
+{
+
+UIDsDictionaryEntry
+::UIDsDictionaryEntry(
+        std::string const & name, std::string const & keyword,
+        std::string const & type)
+: name(name), keyword(keyword), type(type)
+{
+    // Nothing else.
+}
+
+}
diff --git a/src/dcmtkpp/UIDsDictionary.h b/src/dcmtkpp/UIDsDictionary.h
new file mode 100644
index 0000000..2ffe188
--- /dev/null
+++ b/src/dcmtkpp/UIDsDictionary.h
@@ -0,0 +1,36 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#ifndef _7b126e41_bd4d_443f_8873_d2fec52b1019
+#define _7b126e41_bd4d_443f_8873_d2fec52b1019
+
+#include <map>
+#include <string>
+
+namespace dcmtkpp
+{
+
+/**
+ * @brief Entry in a dictionary of DICOM UIDs.
+ */
+struct UIDsDictionaryEntry
+{
+    std::string name;
+    std::string keyword;
+    std::string type;
+
+    UIDsDictionaryEntry(
+        std::string const & name, std::string const & keyword,
+        std::string const & type);
+};
+
+typedef std::map<std::string, UIDsDictionaryEntry> UIDsDictionary;
+
+}
+
+#endif // _7b126e41_bd4d_443f_8873_d2fec52b1019
diff --git a/src/dcmtkpp/VR.cpp b/src/dcmtkpp/VR.cpp
index 05b2a7f..69bd5dd 100644
--- a/src/dcmtkpp/VR.cpp
+++ b/src/dcmtkpp/VR.cpp
@@ -4,12 +4,8 @@
 #include <stdexcept>
 #include <string>
 
-#include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcdicent.h>
-#include <dcmtk/dcmdata/dcdict.h>
-#include <dcmtk/dcmdata/dctagkey.h>
-
 #include "dcmtkpp/Exception.h"
+#include "dcmtkpp/registry.h"
 #include "dcmtkpp/Tag.h"
 
 // Anonymous namespace, should not be publicly accessed
@@ -109,14 +105,13 @@ VR as_vr(std::string const vr)
 
 VR as_vr(Tag const & tag)
 {
-    DcmTagKey const dcmtk_tag(tag.group, tag.element);
-    DcmDictEntry const * entry = dcmDataDict.rdlock().findEntry(dcmtk_tag, NULL);
-    if(entry == NULL)
+    auto const dictionary_it = registry::public_dictionary.find(tag);
+    if(dictionary_it == registry::public_dictionary.end())
     {
-        throw Exception("No such element");
+        throw Exception("No such element: "+std::string(tag));
     }
 
-    VR const vr(as_vr(std::string(entry->getVR().getValidVRName())));
+    VR const vr(as_vr(std::string(dictionary_it->second.vr)));
 
     return vr;
 }
diff --git a/src/dcmtkpp/VRFinder.cpp b/src/dcmtkpp/VRFinder.cpp
new file mode 100644
index 0000000..060a7fa
--- /dev/null
+++ b/src/dcmtkpp/VRFinder.cpp
@@ -0,0 +1,198 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include "dcmtkpp/VRFinder.h"
+
+#include <functional>
+#include <string>
+#include <vector>
+
+#include "dcmtkpp/DataSet.h"
+#include "dcmtkpp/Exception.h"
+#include "dcmtkpp/registry.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/VR.h"
+
+namespace dcmtkpp
+{
+
+std::vector<VRFinder::Finder> const
+VRFinder
+::default_finders=VRFinder::_get_default_finders();
+
+VRFinder
+::VRFinder()
+: finders()
+{
+    // Nothing else
+}
+
+VR
+VRFinder::operator()(
+    Tag const & tag, DataSet const & data_set,
+    std::string const & transfer_syntax) const
+{
+    VR vr = VR::UNKNOWN;
+
+    for(auto const & finder: this->finders)
+    {
+        try
+        {
+            vr = finder(tag, data_set, transfer_syntax);
+            break;
+        }
+        catch(Exception &)
+        {
+            // Ignore the error, try the next one
+        }
+    }
+
+    if(vr == VR::UNKNOWN)
+    {
+        for(auto const & finder: VRFinder::default_finders)
+        {
+            try
+            {
+                vr = finder(tag, data_set, transfer_syntax);
+                break;
+            }
+            catch(Exception &)
+            {
+                // Ignore the error, try the next one
+            }
+        }
+    }
+
+    if(vr == VR::UNKNOWN)
+    {
+        throw Exception("Could not find a VR for "+std::string(tag));
+    }
+
+    return vr;
+}
+
+VR
+VRFinder
+::public_dictionary(
+    Tag const & tag, DataSet const &, std::string const &)
+{
+    auto const it = registry::public_dictionary.find(tag);
+    if(it == registry::public_dictionary.end())
+    {
+        throw Exception("Element " + std::string(tag) + " is not in the public dictionary");
+    }
+    return as_vr(it->second.vr);
+}
+
+VR
+VRFinder
+::group_length(
+    Tag const & tag, DataSet const &, std::string const &)
+{
+    if(tag.element == 0)
+    {
+        return VR::UL;
+    }
+    else
+    {
+        throw Exception("Not a group length tag");
+    }
+}
+
+VR
+VRFinder
+::private_tag(
+    Tag const & tag, DataSet const &, std::string const &)
+{
+    if(tag.group %2 == 1)
+    {
+        return VR::UN;
+    }
+    else
+    {
+        throw Exception("Not a private tag");
+    }
+}
+
+VR
+VRFinder
+::implicit_vr_little_endian(
+    Tag const & tag, DataSet const & data_set,
+    std::string const & transfer_syntax)
+{
+    if(transfer_syntax == registry::ImplicitVRLittleEndian)
+    {
+        // PS3.5, A.1 (c)
+        if(tag == registry::PixelData)
+        {
+            return VR::OW;
+        }
+        else if((tag.group<<8) == 0x60 and tag.element == 0x3000)
+        {
+            return VR::OW;
+        }
+        else if(tag == registry::WaveformData)
+        {
+            return VR::OW;
+        }
+        else if(tag == registry::RedPaletteColorLookupTableData ||
+            tag == registry::GreenPaletteColorLookupTableData ||
+            tag == registry::BluePaletteColorLookupTableData ||
+            tag == registry::AlphaPaletteColorLookupTableData)
+        {
+            return VR::OW;
+        }
+        // {Red,Green,Blue,Alpha}PaletteColorLookupTableDescriptor
+        else if(tag == registry::SegmentedRedPaletteColorLookupTableData ||
+            tag == registry::SegmentedGreenPaletteColorLookupTableData ||
+            tag == registry::SegmentedBluePaletteColorLookupTableData)
+        {
+            return VR::OW;
+        }
+        // LUTData
+        // LUTDescriptor
+        else if(tag == registry::BlendingLookupTableData)
+        {
+            return VR::OW;
+        }
+        else if(tag == registry::VertexPointIndexList ||
+            tag == registry::EdgePointIndexList ||
+            tag == registry::TrianglePointIndexList ||
+            tag == registry::PrimitivePointIndexList)
+        {
+            return VR::OW;
+        }
+        else if(tag == registry::SmallestImagePixelValue ||
+            tag == registry::LargestImagePixelValue ||
+            tag == registry::SmallestPixelValueInSeries ||
+            tag == registry::LargestPixelValueInSeries ||
+            tag == registry::PixelPaddingValue)
+        {
+            return VR::US;
+        }
+        else
+        {
+            throw Exception("Unknown tag");
+        }
+    }
+    else
+    {
+        throw Exception("Unknown transfer syntax");
+    }
+}
+
+std::vector<VRFinder::Finder>
+VRFinder
+::_get_default_finders()
+{
+    return {
+        group_length, private_tag, implicit_vr_little_endian,
+        public_dictionary };
+}
+
+}
diff --git a/src/dcmtkpp/VRFinder.h b/src/dcmtkpp/VRFinder.h
new file mode 100644
index 0000000..ebaa3d7
--- /dev/null
+++ b/src/dcmtkpp/VRFinder.h
@@ -0,0 +1,78 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#ifndef _b7afd80f_327e_4d9a_b0fa_88c565add7b3
+#define _b7afd80f_327e_4d9a_b0fa_88c565add7b3
+
+#include <functional>
+#include <string>
+#include <vector>
+
+#include "dcmtkpp/DataSet.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/VR.h"
+
+namespace dcmtkpp
+{
+
+/// @brief Find the VR of elements in an implicit VR data set.
+class VRFinder
+{
+public:
+    /**
+     * @brief Prototype of finder functions.
+     *
+     * Finder functions must raise an exception if they are not applicable.
+     */
+    typedef
+        std::function<VR(Tag const &, DataSet const &, std::string const &)>
+        Finder;
+
+    /// @brief Default finder functions.
+    static std::vector<Finder> const default_finders;
+
+    /// @brief User-defined finder functions, empty by default.
+    std::vector<Finder> finders;
+
+    /// @brief Constructor.
+    VRFinder();
+
+    /**
+     * @brief Return a VR for the given tag, partially-constructed data set and
+     * transfer-syntax. If no VR can be found, raise an exception.
+     *
+     * The user-defined finders are tried first, then the default_finders.
+     */
+    VR operator()(
+        Tag const & tag, DataSet const & data_set,
+        std::string const & transfer_syntax) const;
+
+    /// @brief Return the VR from the public dictionary.
+    static VR public_dictionary(
+        Tag const & tag, DataSet const &, std::string const &);
+
+    /// @brief Return the VR of group-length (gggg,0000) elements.
+    static VR group_length(
+        Tag const & tag, DataSet const &, std::string const &);
+
+    /// @brief Return a default VR (UN) for private tags.
+    static VR private_tag(
+        Tag const & tag, DataSet const &, std::string const &);
+
+    /// @brief Return the VR of elements defined in PS3.5, A.1 (c).
+    static VR implicit_vr_little_endian(
+        Tag const & tag, DataSet const & data_set,
+        std::string const & transfer_syntax);
+
+private:
+    static std::vector<Finder> _get_default_finders();
+};
+
+}
+
+#endif // _b7afd80f_327e_4d9a_b0fa_88c565add7b3
diff --git a/src/dcmtkpp/Value.cpp b/src/dcmtkpp/Value.cpp
index 6bac089..725b219 100644
--- a/src/dcmtkpp/Value.cpp
+++ b/src/dcmtkpp/Value.cpp
@@ -104,6 +104,13 @@ Value
     return this->_type;
 }
 
+bool
+Value
+::empty() const
+{
+    return (this->_type == Type::Empty);
+}
+
 #define DECLARE_CONST_ACCESSOR(type, name) \
 Value::type const & \
 Value \
diff --git a/src/dcmtkpp/Value.h b/src/dcmtkpp/Value.h
index 5e7c1ed..40964cc 100644
--- a/src/dcmtkpp/Value.h
+++ b/src/dcmtkpp/Value.h
@@ -93,6 +93,9 @@ public:
     /// @brief Return the type store in the value.
     Type get_type() const;
 
+    /// @brief Test whether the value is empty.
+    bool empty() const;
+
     /**
      * @brief Return the integers contained in the value.
      *
@@ -186,6 +189,13 @@ template<typename TVisitor>
 typename TVisitor::result_type
 apply_visitor(TVisitor const & visitor, Value const & value);
 
+/**
+ * @brief Visitor of values.
+ */
+template<typename TVisitor>
+typename TVisitor::result_type
+apply_visitor(TVisitor const & visitor, Value & value);
+
 }
 
 #include "dcmtkpp/Value.txx"
diff --git a/src/dcmtkpp/Value.txx b/src/dcmtkpp/Value.txx
index 55745c8..c1a7bcd 100644
--- a/src/dcmtkpp/Value.txx
+++ b/src/dcmtkpp/Value.txx
@@ -49,6 +49,40 @@ apply_visitor(TVisitor const & visitor, Value const & value)
     }
 }
 
+template<typename TVisitor>
+typename TVisitor::result_type
+apply_visitor(TVisitor const & visitor, Value & value)
+{
+    if(value.get_type() == Value::Type::Empty)
+    {
+        throw Exception("Empty value");
+    }
+    else if(value.get_type() == Value::Type::Integers)
+    {
+        return visitor(value.as_integers());
+    }
+    else if(value.get_type() == Value::Type::Reals)
+    {
+        return visitor(value.as_reals());
+    }
+    else if(value.get_type() == Value::Type::Strings)
+    {
+        return visitor(value.as_strings());
+    }
+    else if(value.get_type() == Value::Type::DataSets)
+    {
+        return visitor(value.as_data_sets());
+    }
+    else if(value.get_type() == Value::Type::Binary)
+    {
+        return visitor(value.as_binary());
+    }
+    else
+    {
+        throw Exception("Unknown value type");
+    }
+}
+
 }
 
 #endif // _de64b8e1_4116_41f8_a085_dabfdc6c63c3
diff --git a/src/dcmtkpp/Writer.cpp b/src/dcmtkpp/Writer.cpp
new file mode 100644
index 0000000..9e70ad6
--- /dev/null
+++ b/src/dcmtkpp/Writer.cpp
@@ -0,0 +1,547 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include "dcmtkpp/Writer.h"
+
+#include <cstdint>
+#include <endian.h>
+#include <map>
+#include <ostream>
+#include <sstream>
+#include <string>
+
+#include "dcmtkpp/DataSet.h"
+#include "dcmtkpp/Element.h"
+#include "dcmtkpp/Exception.h"
+#include "dcmtkpp/registry.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/uid.h"
+#include "dcmtkpp/VR.h"
+
+#define dcmtkpp_write_binary(value, stream, byte_ordering, size) \
+{ \
+    auto const copy = value; \
+    uint##size##_t raw = *reinterpret_cast<uint##size##_t const *>(&copy); \
+    if(byte_ordering == LITTLE_ENDIAN) \
+    { \
+        raw = htole##size(raw); \
+    } \
+    else if(byte_ordering == BIG_ENDIAN) \
+    { \
+        raw = htobe##size(raw); \
+    } \
+    else \
+    { \
+        throw Exception("Unknown endianness"); \
+    } \
+    stream.write(reinterpret_cast<char const*>(&raw), sizeof(raw)); \
+    if(!stream) \
+    { \
+        throw Exception("Could not write to stream"); \
+    } \
+}
+
+namespace dcmtkpp
+{
+
+Writer
+::Writer(
+    std::ostream & stream,
+    int byte_ordering, bool explicit_vr, ItemEncoding item_encoding,
+    bool use_group_length)
+: stream(stream), byte_ordering(byte_ordering), explicit_vr(explicit_vr),
+    item_encoding(item_encoding), use_group_length(use_group_length)
+{
+    // Nothing else
+}
+
+Writer
+::Writer(
+    std::ostream & stream,
+    std::string const & transfer_syntax,
+    ItemEncoding item_encoding, bool use_group_length)
+: stream(stream),
+    byte_ordering(
+        (transfer_syntax==registry::ExplicitVRBigEndian_Retired)?
+        BIG_ENDIAN:LITTLE_ENDIAN),
+    explicit_vr(transfer_syntax!=registry::ImplicitVRLittleEndian),
+    item_encoding(item_encoding), use_group_length(use_group_length)
+{
+    // Nothing else
+}
+
+void
+Writer
+::write_data_set(DataSet const & data_set) const
+{
+    // Build a map of the different group in order to handle
+    // Group Length elements
+    std::map<uint16_t, std::vector<Tag>> groups;
+    for(auto const & item: data_set)
+    {
+        auto const & tag = item.first;
+        groups[tag.group].push_back(tag);
+    }
+
+    for(auto const & groups_it: groups)
+    {
+        std::ostringstream group_stream;
+        Writer group_writer(
+            group_stream, this->byte_ordering, this->explicit_vr,
+            this->item_encoding, this->use_group_length);
+
+        for(auto const & tag: groups_it.second)
+        {
+            group_writer.write_tag(tag);
+            group_writer.write_element(data_set[tag]);
+        }
+
+        // Write group length if necessary
+        // Mandatory for group 0: PS3.7, 9.3, 10.3, and E.1
+        // Mandatory for group 2: PS3.10, 7.1
+        // Forbidden for groups 4 and 6?
+        auto const write_group_length = (
+            groups_it.first == 0 || groups_it.first == 2 ||
+            (this->use_group_length && groups_it.first != 4 && groups_it.first != 6));
+        if(write_group_length)
+        {
+            // Group length: (gggg,0000) UL Type=3 VM=1
+            this->write_tag(Tag(groups_it.first, 0));
+            this->write_element(
+                Element(Value::Integers({group_stream.tellp()}), VR::UL));
+        }
+
+        // Write group data to main stream
+        std::string const group_data = group_stream.str();
+        this->stream.write(&group_data[0], group_data.size());
+        if(!this->stream)
+        {
+            throw Exception("Could not write to stream");
+        }
+    }
+}
+
+void
+Writer
+::write_tag(Tag const & tag) const
+{
+    dcmtkpp_write_binary(tag.group, this->stream, this->byte_ordering, 16);
+    dcmtkpp_write_binary(tag.element, this->stream, this->byte_ordering, 16);
+}
+
+void
+Writer
+::write_element(Element const & element) const
+{
+    auto const vr = element.vr;
+
+    // Write VR
+    if(this->explicit_vr)
+    {
+        this->stream << as_string(vr);
+        if(!this->stream)
+        {
+            throw Exception("Could not write to stream");
+        }
+    }
+
+    // Write value to a sub-stream
+    std::ostringstream value_stream;
+    if(!element.get_value().empty())
+    {
+        Visitor const visitor(
+            value_stream, vr, this->byte_ordering, this->explicit_vr,
+            this->item_encoding, this->use_group_length);
+        apply_visitor(visitor, element.get_value());
+    }
+
+    // Write VL
+    if(this->explicit_vr)
+    {
+        if(vr == VR::OB || vr == VR::OW || vr == VR::OF || vr == VR::SQ ||
+           vr == VR::UC || vr == VR::UR || vr == VR::UT || vr == VR::UN)
+        {
+            dcmtkpp_write_binary(uint16_t(0), this->stream, this->byte_ordering, 16);
+
+            uint32_t vl;
+            if(vr == VR::SQ &&
+                this->item_encoding == ItemEncoding::UndefinedLength)
+            {
+                vl = 0xffffffff;
+            }
+            else
+            {
+               vl = value_stream.tellp();
+            }
+            dcmtkpp_write_binary(vl, this->stream, this->byte_ordering, 32);
+        }
+        else
+        {
+            dcmtkpp_write_binary(uint16_t(value_stream.tellp()), this->stream, this->byte_ordering, 16);
+        }
+    }
+    else
+    {
+        dcmtkpp_write_binary(uint32_t(value_stream.tellp()), this->stream, this->byte_ordering, 32);
+    }
+
+    this->stream.write(value_stream.str().c_str(), value_stream.tellp());
+    if(!this->stream)
+    {
+        throw Exception("Could not write to stream");
+    }
+}
+
+void
+Writer
+::write_file(
+    DataSet const &data_set , std::ostream & stream,
+    std::string const & transfer_syntax, ItemEncoding item_encoding,
+    bool use_group_length)
+{
+    // Build File Meta Information, PS3.10, 7.1
+    DataSet meta_information;
+    meta_information.add(
+        registry::FileMetaInformationVersion, Value::Binary({0x00, 0x01}));
+
+    if(!data_set.has(registry::SOPClassUID))
+    {
+        throw Exception("Missing SOP Class UID");
+    }
+    if(!data_set.is_string(registry::SOPClassUID))
+    {
+        throw Exception("SOP Class UID is not a string");
+    }
+    if(data_set.as_string(registry::SOPClassUID).size()<1)
+    {
+        throw Exception("Empty SOP Class UID");
+    }
+
+    meta_information.add(
+        registry::MediaStorageSOPClassUID,
+        data_set.as_string(registry::SOPClassUID));
+
+    if(!data_set.has(registry::SOPInstanceUID))
+    {
+        throw Exception("Missing SOP Instance UID");
+    }
+    if(!data_set.is_string(registry::SOPInstanceUID))
+    {
+        throw Exception("SOP Instance UID is not a string");
+    }
+    if(data_set.as_string(registry::SOPInstanceUID).size()<1)
+    {
+        throw Exception("Empty SOP Instance UID");
+    }
+
+    meta_information.add(registry::MediaStorageSOPInstanceUID,
+        data_set.as_string(registry::SOPInstanceUID));
+
+    meta_information.add(registry::TransferSyntaxUID, {transfer_syntax});
+    meta_information.add(
+        registry::ImplementationClassUID, {implementation_class_uid});
+    meta_information.add(
+        registry::ImplementationVersionName,
+        { "DCMTK++ " DCMTKPP_STRINGIFY(DCMTKPP_MAJOR_VERSION) });
+
+    // SourceApplicationEntityTitle
+    // SendingApplicationEntityTitle
+    // ReceivingApplicationEntityTitle
+
+    // File preamble
+    for(unsigned int i=0; i<128; ++i)
+    {
+        stream.put(0);
+        if(!stream)
+        {
+            throw Exception("Could not write to stream");
+        }
+    }
+
+    // DICOM prefix
+    std::string const prefix("DICM");
+    stream.write(&prefix[0], prefix.size());
+    if(!stream)
+    {
+        throw Exception("Could not write to stream");
+    }
+
+    // File Meta Information
+    // PS3.10, 7.1: Except for the 128 byte preamble and the 4 byte prefix, the
+    // File Meta Information shall be encoded using the Explicit VR
+    // Little Endian Transfer Syntax
+    Writer meta_information_writer(
+        stream, registry::ExplicitVRLittleEndian, item_encoding, use_group_length);
+    meta_information_writer.write_data_set(meta_information);
+
+    // Data Set
+    Writer data_set_writer(
+        stream, transfer_syntax, item_encoding, use_group_length);
+    data_set_writer.write_data_set(data_set);
+}
+
+Writer::Visitor
+::Visitor(
+    std::ostream & stream, VR vr,
+    int byte_ordering, bool explicit_vr, Writer::ItemEncoding item_encoding,
+    bool use_group_length)
+: stream(stream), vr(vr), byte_ordering(byte_ordering), explicit_vr(explicit_vr),
+    item_encoding(item_encoding), use_group_length(use_group_length)
+{
+    // Nothing else
+}
+
+Writer::Visitor::result_type
+Writer::Visitor
+::operator()(Value::Integers const & value) const
+{
+    if(this->vr == VR::IS)
+    {
+        this->write_strings(value, ' ');
+    }
+    else if(this->vr == VR::SL)
+    {
+        for(auto item: value)
+        {
+            dcmtkpp_write_binary(
+                int32_t(item), this->stream, this->byte_ordering, 32);
+        }
+    }
+    else if(this->vr == VR::SS)
+    {
+        for(auto item: value)
+        {
+            dcmtkpp_write_binary(
+                int16_t(item), this->stream, this->byte_ordering, 16);
+        }
+    }
+    else if(this->vr == VR::UL)
+    {
+        for(auto item: value)
+        {
+            dcmtkpp_write_binary(
+                uint32_t(item), this->stream, this->byte_ordering, 32);
+        }
+    }
+    else if(this->vr == VR::AT || this->vr == VR::US)
+    {
+        for(auto item: value)
+        {
+            dcmtkpp_write_binary(
+                uint16_t(item), this->stream, this->byte_ordering, 16);
+        }
+    }
+    else
+    {
+        throw Exception("Cannot write " + as_string(this->vr) + " as integers");
+    }
+}
+
+Writer::Visitor::result_type
+Writer::Visitor
+::operator()(Value::Reals const & value) const
+{
+    if(this->vr == VR::DS)
+    {
+        this->write_strings(value, ' ');
+    }
+    else if(this->vr == VR::FD)
+    {
+        for(auto const & item: value)
+        {
+            dcmtkpp_write_binary(
+                double(item), this->stream, this->byte_ordering, 64);
+        }
+    }
+    else if(this->vr == VR::FL)
+    {
+        for(auto const & item: value)
+        {
+            dcmtkpp_write_binary(
+                float(item), this->stream, this->byte_ordering, 32);
+        }
+    }
+    else
+    {
+        throw Exception("Cannot write " + as_string(this->vr) + " as reals");
+    }
+}
+
+Writer::Visitor::result_type
+Writer::Visitor
+::operator()(Value::Strings const & value) const
+{
+    if(this->vr == VR::AT)
+    {
+        Value::Integers integers;
+        for(auto const & string: value)
+        {
+            Tag const tag(string);
+            integers.push_back(tag.group);
+            integers.push_back(tag.element);
+        }
+        this->operator()(integers);
+    }
+    else
+    {
+        this->write_strings(value, (this->vr == VR::UI)?'\0':' ');
+    }
+}
+
+Writer::Visitor::result_type
+Writer::Visitor
+::operator()(Value::DataSets const & value) const
+{
+    // Write all items to a sub-stream
+    std::ostringstream sequence_stream;
+    Writer sequence_writer(
+        sequence_stream, this->byte_ordering, this->explicit_vr,
+        this->item_encoding, this->use_group_length);
+
+    for(auto const & item: value)
+    {
+        // Write item to a sub-stream
+        std::ostringstream item_stream;
+        Writer item_writer(
+            item_stream, this->byte_ordering, this->explicit_vr,
+            this->item_encoding, this->use_group_length);
+        item_writer.write_data_set(item);
+
+        // Beginning of item
+        sequence_writer.write_tag(registry::Item);
+
+        // Item length
+        uint32_t item_length;
+        if(this->item_encoding == ItemEncoding::ExplicitLength)
+        {
+            item_length = item_stream.tellp();
+        }
+        else
+        {
+            item_length = 0xffffffff;
+        }
+        dcmtkpp_write_binary(item_length, sequence_stream, this->byte_ordering, 32);
+
+        // Data set
+        sequence_stream.write(item_stream.str().c_str(), item_stream.tellp());
+        if(!sequence_stream)
+        {
+            throw Exception("Could not write to stream");
+        }
+
+        // End of item
+        if(this->item_encoding == ItemEncoding::UndefinedLength)
+        {
+            sequence_writer.write_tag(registry::ItemDelimitationItem);
+            dcmtkpp_write_binary(uint32_t(0), sequence_stream, this->byte_ordering, 32);
+        }
+    }
+
+    // End of sequence
+    if(this->item_encoding == ItemEncoding::UndefinedLength)
+    {
+        sequence_writer.write_tag(registry::SequenceDelimitationItem);
+        dcmtkpp_write_binary(uint32_t(0), sequence_stream, this->byte_ordering, 32);
+    }
+
+    this->stream.write(sequence_stream.str().c_str(), sequence_stream.tellp());
+    if(!this->stream)
+    {
+        throw Exception("Could not write to stream");
+    }
+}
+
+Writer::Visitor::result_type
+Writer::Visitor
+::operator()(Value::Binary const & value) const
+{
+    if(this->vr == VR::OB || this->vr == VR::UN)
+    {
+        this->stream.write(reinterpret_cast<char const*>(&value[0]), value.size());
+    }
+    else if(this->vr == VR::OW)
+    {
+        if(value.size()%2 != 0)
+        {
+            throw Exception("Value cannot be written as OW");
+        }
+        for(int i=0; i<value.size(); i+=2)
+        {
+            uint16_t item = *reinterpret_cast<uint16_t const *>(&value[i]);
+            dcmtkpp_write_binary(item, this->stream, this->byte_ordering, 16);
+        }
+    }
+    else if(this->vr == VR::OF)
+    {
+        if(value.size()%4 != 0)
+        {
+            throw Exception("Value cannot be written as OF");
+        }
+        for(int i=0; i<value.size(); i+=4)
+        {
+            uint32_t item = *reinterpret_cast<uint32_t const *>(&value[i]);
+            dcmtkpp_write_binary(item, this->stream, this->byte_ordering, 32);
+        }
+    }
+    else
+    {
+        throw Exception("Cannot write "+as_string(this->vr)+" as binary");
+    }
+
+    if(!this->stream)
+    {
+        throw Exception("Could not write to stream");
+    }
+
+    if(value.size()%2 == 1)
+    {
+        this->stream.put('\0');
+    }
+}
+
+template<typename T>
+void
+Writer::Visitor
+::write_strings(T const & sequence, char padding) const
+{
+    auto const stream_begin = this->stream.tellp();
+
+    auto last_element_it = --sequence.end();
+    for(auto it = sequence.begin(); it!= sequence.end(); ++it)
+    {
+        this->stream << *it;
+        if(!this->stream)
+        {
+            throw Exception("Could not write to stream");
+        }
+
+        if(it != last_element_it)
+        {
+            this->stream << "\\";
+            if(!this->stream)
+            {
+                throw Exception("Could not write to stream");
+            }
+        }
+    }
+
+    auto const stream_end = this->stream.tellp();
+
+    if((stream_end-stream_begin)%2 == 1)
+    {
+        this->stream.put(padding);
+        if(!this->stream)
+        {
+            throw Exception("Could not write to stream");
+        }
+    }
+}
+
+}
+
+#undef dcmtkpp_write_binary
diff --git a/src/dcmtkpp/Writer.h b/src/dcmtkpp/Writer.h
new file mode 100644
index 0000000..09fee4f
--- /dev/null
+++ b/src/dcmtkpp/Writer.h
@@ -0,0 +1,112 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#ifndef _ca5c06d2_04f9_4009_9e98_5607e1060379
+#define _ca5c06d2_04f9_4009_9e98_5607e1060379
+
+#include <ostream>
+#include <string>
+
+#include "dcmtkpp/DataSet.h"
+#include "dcmtkpp/Element.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/Value.h"
+#include "dcmtkpp/VR.h"
+
+namespace dcmtkpp
+{
+
+/// @brief Write DICOM objects to a stream.
+class Writer
+{
+public:
+    /// @brief Encodings of sequence items.
+    enum class ItemEncoding
+    {
+        ExplicitLength,
+        UndefinedLength
+    };
+
+    /// @brief Output stream.
+    std::ostream & stream;
+
+    /// @brief Endianness (LITTLE_ENDIAN or BIG_ENDIAN).
+    int byte_ordering;
+    /// @brief Explicit-ness of the Value Representations.
+    bool explicit_vr;
+    /// @brief Encoding of sequence items.
+    ItemEncoding item_encoding;
+    /// @brief Presence of group length elements.
+    bool use_group_length;
+
+    /// @brief Build a writer.
+    Writer(
+        std::ostream & stream,
+        int byte_ordering, bool explicit_vr,
+        ItemEncoding item_encoding=ItemEncoding::ExplicitLength,
+        bool use_group_length=false);
+
+    /**
+     * @brief Build a writer, derive byte ordering and explicit-ness of VR
+     * from transfer syntax.
+     */
+    Writer(
+        std::ostream & stream,
+        std::string const & transfer_syntax,
+        ItemEncoding item_encoding=ItemEncoding::ExplicitLength,
+        bool use_group_length=false);
+
+    /// @brief Write a data set.
+    void write_data_set(DataSet const & data_set) const;
+
+    /// @brief Write a tag.
+    void write_tag(Tag const & tag) const;
+
+    /// @brief Write an element (VR, VL and value).
+    void write_element(Element const & element) const;
+
+    /// @brief Write a file (meta-information and data set).
+    static void write_file(
+        DataSet const &data_set, std::ostream & stream,
+        std::string const & transfer_syntax,
+        ItemEncoding item_encoding=ItemEncoding::ExplicitLength,
+        bool use_group_length=false);
+
+private:
+
+    struct Visitor
+    {
+        typedef void result_type;
+
+        std::ostream & stream;
+        VR vr;
+
+        int byte_ordering;
+        bool explicit_vr;
+        ItemEncoding item_encoding;
+        bool use_group_length;
+
+        Visitor(
+            std::ostream & stream, VR vr,
+            int byte_ordering, bool explicit_vr, ItemEncoding item_encoding,
+            bool use_group_length);
+
+        result_type operator()(Value::Integers const & value) const;
+        result_type operator()(Value::Reals const & value) const;
+        result_type operator()(Value::Strings const & value) const;
+        result_type operator()(Value::DataSets const & value) const;
+        result_type operator()(Value::Binary const & value) const;
+
+        template<typename T>
+        void write_strings(T const & sequence, char padding) const;
+    };
+};
+
+}
+
+#endif // _ca5c06d2_04f9_4009_9e98_5607e1060379
diff --git a/src/dcmtkpp/conversion.cpp b/src/dcmtkpp/conversion.cpp
index d1da178..bd57e4e 100644
--- a/src/dcmtkpp/conversion.cpp
+++ b/src/dcmtkpp/conversion.cpp
@@ -51,7 +51,7 @@ DcmEVR convert(VR vr)
     else if(vr == VR::UT) { return EVR_UT; }
     else
     {
-        throw Exception("Unknown VR");
+        throw Exception("Unknown VR: "+as_string(vr));
     }
 }
 
@@ -86,7 +86,7 @@ VR convert(DcmEVR evr)
     else if(evr == EVR_UT) { return VR::UT; }
     else
     {
-        throw Exception("Unknown VR");
+        throw Exception("Unknown VR: "+std::string(DcmVR(evr).getVRName()));
     }
 }
 
@@ -214,7 +214,14 @@ DcmElement * convert(const Tag & tag, Element const & source)
             convert(source, static_cast<DcmOtherByteOtherWord*>(destination));
         }
     }
-    // OF
+    else if(source.vr == VR::OF)
+    {
+        destination = new DcmOtherFloat(destination_tag);
+        if(!source.empty())
+        {
+            convert(source, static_cast<DcmOtherFloat*>(destination));
+        }
+    }
     else if (source.vr == VR::PN)
     {
         destination = new DcmPersonName(destination_tag);
@@ -246,7 +253,7 @@ DcmElement * convert(const Tag & tag, Element const & source)
         {
             for(auto const & source_item: source.as_data_set())
             {
-                DcmItem * destination_item = convert(source_item);
+                DcmItem * destination_item = convert(source_item, false);
                 sequence->append(destination_item);
             }
         }
@@ -311,7 +318,7 @@ DcmElement * convert(const Tag & tag, Element const & source)
     }
     else
     {
-        throw Exception("Unknown VR");
+        throw Exception("Unknown VR: "+as_string(source.vr));
     }
 
     return destination;
@@ -416,7 +423,7 @@ Element convert(DcmElement * source)
     }
     else
     {
-        throw Exception("Unknown VR");
+        throw Exception("Unknown VR: "+std::string(DcmVR(source_vr).getVRName()));
     }
 
     return destination;
@@ -450,17 +457,46 @@ void convert(Element const & source, DcmOtherByteOtherWord * destination)
 void convert(Element const & source, DcmOtherFloat * destination)
 {
     auto const & value = source.as_binary();
+
+    if(value.size()%4 != 0)
+    {
+        throw Exception("Cannot convert OF from odd-sized array");
+    }
+
+    for(unsigned int i=0; i<value.size()/4; ++i)
+    {
+        float const f = *reinterpret_cast<float const *>(&value[i*4]);
+        destination->putFloat32(f, i);
+    }
 }
 
-DcmItem * convert(DataSet const & source)
+DcmItem * convert(DataSet const & source, bool as_data_set)
 {
-    DcmDataset * destination = new DcmDataset();
+    DcmItem * destination = as_data_set?(new DcmDataset()):(new DcmItem());
 
     for(auto const & iterator: source)
     {
-        auto const destination_element = convert(
-            iterator.first, iterator.second);
-        destination->insert(destination_element);
+        if(iterator.second.vr == VR::SQ)
+        {
+            if(iterator.second.empty())
+            {
+                destination->insertEmptyElement(DcmTag(convert(iterator.first), convert(iterator.second.vr)));
+            }
+            else
+            {
+                for(auto const & source_item: iterator.second.as_data_set())
+                {
+                    DcmItem* item = convert(source_item, false);
+                    destination->insertSequenceItem(DcmTag(convert(iterator.first), convert(iterator.second.vr)), item);
+                }
+            }
+        }
+        else
+        {
+            auto const destination_element = convert(
+                iterator.first, iterator.second);
+            destination->insert(destination_element);
+        }
     }
 
     return destination;
diff --git a/src/dcmtkpp/conversion.h b/src/dcmtkpp/conversion.h
index b39bf9a..e10e485 100644
--- a/src/dcmtkpp/conversion.h
+++ b/src/dcmtkpp/conversion.h
@@ -50,17 +50,20 @@ void convert(
     Element const & source, DcmElement * destination,
     TSourceType const & (Element::*getter)() const);
 
-/// @brief Low-level element converver.
+/// @brief Low-level element converter.
 void convert(Element const & source, DcmOtherByteOtherWord * destination);
 
 /// @brief Low-level element converter.
+void convert(Element const & source, DcmOtherFloat * destination);
+
+/// @brief Low-level element converter.
 template<typename TSourceType, typename TDestinationType>
 void convert(
     DcmElement * source, Element & destination,
     TDestinationType & (Element::*getter)());
 
-/// @brief Convert a dcmtkpp::DataSet to a DcmDataset.
-DcmItem * convert(DataSet const & source);
+/// @brief Convert a dcmtkpp::DataSet to a DcmDataset or a DcmItem.
+DcmItem * convert(DataSet const & source, bool as_data_set=true);
 
 /// @brief Convert a DcmDataset to a dcmtkpp::DataSet.
 DataSet convert(DcmItem * source);
diff --git a/src/dcmtkpp/registry.cpp b/src/dcmtkpp/registry.cpp
new file mode 100644
index 0000000..ee40214
--- /dev/null
+++ b/src/dcmtkpp/registry.cpp
@@ -0,0 +1,8174 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include <stdint.h>
+
+#include "dcmtkpp/registry.h"
+
+#include "dcmtkpp/ElementsDictionary.h"
+#include "dcmtkpp/Tag.h"
+#include "dcmtkpp/VR.h"
+#include "dcmtkpp/UIDsDictionary.h"
+
+namespace dcmtkpp
+{
+
+namespace registry
+{
+
+struct RawElementsDictionaryEntry
+{
+    uint16_t group;
+    uint16_t element;
+    char const * name;
+    char const * keyword;
+    char const * vr;
+    char const * vm;
+};
+
+ElementsDictionary create_public_dictionary()
+{
+
+    RawElementsDictionaryEntry raw_entries[] = {
+        { 0x0000, 0x0000,
+          "Command Group Length", "CommandGroupLength",  "UL", "1" },
+        { 0x0000, 0x0002,
+          "Affected SOP Class UID", "AffectedSOPClassUID",  "UI", "1" },
+        { 0x0000, 0x0003,
+          "Requested SOP Class UID", "RequestedSOPClassUID",  "UI", "1" },
+        { 0x0000, 0x0100,
+          "Command Field", "CommandField",  "US", "1" },
+        { 0x0000, 0x0110,
+          "Message ID", "MessageID",  "US", "1" },
+        { 0x0000, 0x0120,
+          "Message ID Being Responded To", "MessageIDBeingRespondedTo",  "US", "1" },
+        { 0x0000, 0x0600,
+          "Move Destination", "MoveDestination",  "AE", "1" },
+        { 0x0000, 0x0700,
+          "Priority", "Priority",  "US", "1" },
+        { 0x0000, 0x0800,
+          "Command Data Set Type", "CommandDataSetType",  "US", "1" },
+        { 0x0000, 0x0900,
+          "Status", "Status",  "US", "1" },
+        { 0x0000, 0x0901,
+          "Offending Element", "OffendingElement",  "AT", "1-n" },
+        { 0x0000, 0x0902,
+          "Error Comment", "ErrorComment",  "LO", "1" },
+        { 0x0000, 0x0903,
+          "Error ID", "ErrorID",  "US", "1" },
+        { 0x0000, 0x1000,
+          "Affected SOP Instance UID", "AffectedSOPInstanceUID",  "UI", "1" },
+        { 0x0000, 0x1001,
+          "Requested SOP Instance UID", "RequestedSOPInstanceUID",  "UI", "1" },
+        { 0x0000, 0x1002,
+          "Event Type ID", "EventTypeID",  "US", "1" },
+        { 0x0000, 0x1005,
+          "Attribute Identifier List", "AttributeIdentifierList",  "AT", "1-n" },
+        { 0x0000, 0x1008,
+          "Action Type ID", "ActionTypeID",  "US", "1" },
+        { 0x0000, 0x1020,
+          "Number of Remaining Sub-operations", "NumberOfRemainingSuboperations",  "US", "1" },
+        { 0x0000, 0x1021,
+          "Number of Completed Sub-operations", "NumberOfCompletedSuboperations",  "US", "1" },
+        { 0x0000, 0x1022,
+          "Number of Failed Sub-operations", "NumberOfFailedSuboperations",  "US", "1" },
+        { 0x0000, 0x1023,
+          "Number of Warning Sub-operations", "NumberOfWarningSuboperations",  "US", "1" },
+        { 0x0000, 0x1030,
+          "Move Originator Application Entity Title", "MoveOriginatorApplicationEntityTitle",  "AE", "1" },
+        { 0x0000, 0x1031,
+          "Move Originator Message ID", "MoveOriginatorMessageID",  "US", "1" },
+        { 0x0002, 0x0000,
+          "File Meta Information Group Length", "FileMetaInformationGroupLength",  "UL", "1" },
+        { 0x0002, 0x0001,
+          "File Meta Information Version", "FileMetaInformationVersion",  "OB", "1" },
+        { 0x0002, 0x0002,
+          "Media Storage SOP Class UID", "MediaStorageSOPClassUID",  "UI", "1" },
+        { 0x0002, 0x0003,
+          "Media Storage SOP Instance UID", "MediaStorageSOPInstanceUID",  "UI", "1" },
+        { 0x0002, 0x0010,
+          "Transfer Syntax UID", "TransferSyntaxUID",  "UI", "1" },
+        { 0x0002, 0x0012,
+          "Implementation Class UID", "ImplementationClassUID",  "UI", "1" },
+        { 0x0002, 0x0013,
+          "Implementation Version Name", "ImplementationVersionName",  "SH", "1" },
+        { 0x0002, 0x0016,
+          "Source Application Entity Title", "SourceApplicationEntityTitle",  "AE", "1" },
+        { 0x0002, 0x0017,
+          "Sending Application Entity Title", "SendingApplicationEntityTitle",  "AE", "1" },
+        { 0x0002, 0x0018,
+          "Receiving Application Entity Title", "ReceivingApplicationEntityTitle",  "AE", "1" },
+        { 0x0002, 0x0100,
+          "Private Information Creator UID", "PrivateInformationCreatorUID",  "UI", "1" },
+        { 0x0002, 0x0102,
+          "Private Information", "PrivateInformation",  "OB", "1" },
+        { 0x0004, 0x1130,
+          "File-set ID", "FileSetID",  "CS", "1" },
+        { 0x0004, 0x1141,
+          "File-set Descriptor File ID", "FileSetDescriptorFileID",  "CS", "1-8" },
+        { 0x0004, 0x1142,
+          "Specific Character Set of File-set Descriptor File", "SpecificCharacterSetOfFileSetDescriptorFile",  "CS", "1" },
+        { 0x0004, 0x1200,
+          "Offset of the First Directory Record of the Root Directory Entity", "OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity",  "UL", "1" },
+        { 0x0004, 0x1202,
+          "Offset of the Last Directory Record of the Root Directory Entity", "OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity",  "UL", "1" },
+        { 0x0004, 0x1212,
+          "File-set Consistency Flag", "FileSetConsistencyFlag",  "US", "1" },
+        { 0x0004, 0x1220,
+          "Directory Record Sequence", "DirectoryRecordSequence",  "SQ", "1" },
+        { 0x0004, 0x1400,
+          "Offset of the Next Directory Record", "OffsetOfTheNextDirectoryRecord",  "UL", "1" },
+        { 0x0004, 0x1410,
+          "Record In-use Flag", "RecordInUseFlag",  "US", "1" },
+        { 0x0004, 0x1420,
+          "Offset of Referenced Lower-Level Directory Entity", "OffsetOfReferencedLowerLevelDirectoryEntity",  "UL", "1" },
+        { 0x0004, 0x1430,
+          "Directory Record Type", "DirectoryRecordType",  "CS", "1" },
+        { 0x0004, 0x1432,
+          "Private Record UID", "PrivateRecordUID",  "UI", "1" },
+        { 0x0004, 0x1500,
+          "Referenced File ID", "ReferencedFileID",  "CS", "1-8" },
+        { 0x0004, 0x1504,
+          "MRDR Directory Record Offset", "MRDRDirectoryRecordOffset",  "UL", "1" },
+        { 0x0004, 0x1510,
+          "Referenced SOP Class UID in File", "ReferencedSOPClassUIDInFile",  "UI", "1" },
+        { 0x0004, 0x1511,
+          "Referenced SOP Instance UID in File", "ReferencedSOPInstanceUIDInFile",  "UI", "1" },
+        { 0x0004, 0x1512,
+          "Referenced Transfer Syntax UID in File", "ReferencedTransferSyntaxUIDInFile",  "UI", "1" },
+        { 0x0004, 0x151a,
+          "Referenced Related General SOP Class UID in File", "ReferencedRelatedGeneralSOPClassUIDInFile",  "UI", "1-n" },
+        { 0x0004, 0x1600,
+          "Number of References", "NumberOfReferences",  "UL", "1" },
+        { 0x0008, 0x0001,
+          "Length to End", "LengthToEnd",  "UL", "1" },
+        { 0x0008, 0x0005,
+          "Specific Character Set", "SpecificCharacterSet",  "CS", "1-n" },
+        { 0x0008, 0x0006,
+          "Language Code Sequence", "LanguageCodeSequence",  "SQ", "1" },
+        { 0x0008, 0x0008,
+          "Image Type", "ImageType",  "CS", "2-n" },
+        { 0x0008, 0x0010,
+          "Recognition Code", "RecognitionCode",  "SH", "1" },
+        { 0x0008, 0x0012,
+          "Instance Creation Date", "InstanceCreationDate",  "DA", "1" },
+        { 0x0008, 0x0013,
+          "Instance Creation Time", "InstanceCreationTime",  "TM", "1" },
+        { 0x0008, 0x0014,
+          "Instance Creator UID", "InstanceCreatorUID",  "UI", "1" },
+        { 0x0008, 0x0015,
+          "Instance Coercion DateTime", "InstanceCoercionDateTime",  "DT", "1" },
+        { 0x0008, 0x0016,
+          "SOP Class UID", "SOPClassUID",  "UI", "1" },
+        { 0x0008, 0x0018,
+          "SOP Instance UID", "SOPInstanceUID",  "UI", "1" },
+        { 0x0008, 0x001a,
+          "Related General SOP Class UID", "RelatedGeneralSOPClassUID",  "UI", "1-n" },
+        { 0x0008, 0x001b,
+          "Original Specialized SOP Class UID", "OriginalSpecializedSOPClassUID",  "UI", "1" },
+        { 0x0008, 0x0020,
+          "Study Date", "StudyDate",  "DA", "1" },
+        { 0x0008, 0x0021,
+          "Series Date", "SeriesDate",  "DA", "1" },
+        { 0x0008, 0x0022,
+          "Acquisition Date", "AcquisitionDate",  "DA", "1" },
+        { 0x0008, 0x0023,
+          "Content Date", "ContentDate",  "DA", "1" },
+        { 0x0008, 0x0024,
+          "Overlay Date", "OverlayDate",  "DA", "1" },
+        { 0x0008, 0x0025,
+          "Curve Date", "CurveDate",  "DA", "1" },
+        { 0x0008, 0x002a,
+          "Acquisition DateTime", "AcquisitionDateTime",  "DT", "1" },
+        { 0x0008, 0x0030,
+          "Study Time", "StudyTime",  "TM", "1" },
+        { 0x0008, 0x0031,
+          "Series Time", "SeriesTime",  "TM", "1" },
+        { 0x0008, 0x0032,
+          "Acquisition Time", "AcquisitionTime",  "TM", "1" },
+        { 0x0008, 0x0033,
+          "Content Time", "ContentTime",  "TM", "1" },
+        { 0x0008, 0x0034,
+          "Overlay Time", "OverlayTime",  "TM", "1" },
+        { 0x0008, 0x0035,
+          "Curve Time", "CurveTime",  "TM", "1" },
+        { 0x0008, 0x0040,
+          "Data Set Type", "DataSetType",  "US", "1" },
+        { 0x0008, 0x0041,
+          "Data Set Subtype", "DataSetSubtype",  "LO", "1" },
+        { 0x0008, 0x0042,
+          "Nuclear Medicine Series Type", "NuclearMedicineSeriesType",  "CS", "1" },
+        { 0x0008, 0x0050,
+          "Accession Number", "AccessionNumber",  "SH", "1" },
+        { 0x0008, 0x0051,
+          "Issuer of Accession Number Sequence", "IssuerOfAccessionNumberSequence",  "SQ", "1" },
+        { 0x0008, 0x0052,
+          "Query/Retrieve Level", "QueryRetrieveLevel",  "CS", "1" },
+        { 0x0008, 0x0053,
+          "Query/Retrieve View", "QueryRetrieveView",  "CS", "1" },
+        { 0x0008, 0x0054,
+          "Retrieve AE Title", "RetrieveAETitle",  "AE", "1-n" },
+        { 0x0008, 0x0056,
+          "Instance Availability", "InstanceAvailability",  "CS", "1" },
+        { 0x0008, 0x0058,
+          "Failed SOP Instance UID List", "FailedSOPInstanceUIDList",  "UI", "1-n" },
+        { 0x0008, 0x0060,
+          "Modality", "Modality",  "CS", "1" },
+        { 0x0008, 0x0061,
+          "Modalities in Study", "ModalitiesInStudy",  "CS", "1-n" },
+        { 0x0008, 0x0062,
+          "SOP Classes in Study", "SOPClassesInStudy",  "UI", "1-n" },
+        { 0x0008, 0x0064,
+          "Conversion Type", "ConversionType",  "CS", "1" },
+        { 0x0008, 0x0068,
+          "Presentation Intent Type", "PresentationIntentType",  "CS", "1" },
+        { 0x0008, 0x0070,
+          "Manufacturer", "Manufacturer",  "LO", "1" },
+        { 0x0008, 0x0080,
+          "Institution Name", "InstitutionName",  "LO", "1" },
+        { 0x0008, 0x0081,
+          "Institution Address", "InstitutionAddress",  "ST", "1" },
+        { 0x0008, 0x0082,
+          "Institution Code Sequence", "InstitutionCodeSequence",  "SQ", "1" },
+        { 0x0008, 0x0090,
+          "Referring Physician's Name", "ReferringPhysicianName",  "PN", "1" },
+        { 0x0008, 0x0092,
+          "Referring Physician's Address", "ReferringPhysicianAddress",  "ST", "1" },
+        { 0x0008, 0x0094,
+          "Referring Physician's Telephone Numbers", "ReferringPhysicianTelephoneNumbers",  "SH", "1-n" },
+        { 0x0008, 0x0096,
+          "Referring Physician Identification Sequence", "ReferringPhysicianIdentificationSequence",  "SQ", "1" },
+        { 0x0008, 0x009c,
+          "Consulting Physician's Name", "ConsultingPhysicianName",  "PN", "1-n" },
+        { 0x0008, 0x009d,
+          "Consulting Physician Identification Sequence", "ConsultingPhysicianIdentificationSequence",  "SQ", "1" },
+        { 0x0008, 0x0100,
+          "Code Value", "CodeValue",  "SH", "1" },
+        { 0x0008, 0x0101,
+          "Extended Code Value", "ExtendedCodeValue",  "LO", "1" },
+        { 0x0008, 0x0102,
+          "Coding Scheme Designator", "CodingSchemeDesignator",  "SH", "1" },
+        { 0x0008, 0x0103,
+          "Coding Scheme Version", "CodingSchemeVersion",  "SH", "1" },
+        { 0x0008, 0x0104,
+          "Code Meaning", "CodeMeaning",  "LO", "1" },
+        { 0x0008, 0x0105,
+          "Mapping Resource", "MappingResource",  "CS", "1" },
+        { 0x0008, 0x0106,
+          "Context Group Version", "ContextGroupVersion",  "DT", "1" },
+        { 0x0008, 0x0107,
+          "Context Group Local Version", "ContextGroupLocalVersion",  "DT", "1" },
+        { 0x0008, 0x0108,
+          "Extended Code Meaning", "ExtendedCodeMeaning",  "LT", "1" },
+        { 0x0008, 0x010b,
+          "Context Group Extension Flag", "ContextGroupExtensionFlag",  "CS", "1" },
+        { 0x0008, 0x010c,
+          "Coding Scheme UID", "CodingSchemeUID",  "UI", "1" },
+        { 0x0008, 0x010d,
+          "Context Group Extension Creator UID", "ContextGroupExtensionCreatorUID",  "UI", "1" },
+        { 0x0008, 0x010f,
+          "Context Identifier", "ContextIdentifier",  "CS", "1" },
+        { 0x0008, 0x0110,
+          "Coding Scheme Identification Sequence", "CodingSchemeIdentificationSequence",  "SQ", "1" },
+        { 0x0008, 0x0112,
+          "Coding Scheme Registry", "CodingSchemeRegistry",  "LO", "1" },
+        { 0x0008, 0x0114,
+          "Coding Scheme External ID", "CodingSchemeExternalID",  "ST", "1" },
+        { 0x0008, 0x0115,
+          "Coding Scheme Name", "CodingSchemeName",  "ST", "1" },
+        { 0x0008, 0x0116,
+          "Coding Scheme Responsible Organization", "CodingSchemeResponsibleOrganization",  "ST", "1" },
+        { 0x0008, 0x0117,
+          "Context UID", "ContextUID",  "UI", "1" },
+        { 0x0008, 0x0118,
+          "Mapping Resource UID", "MappingResourceUID",  "UI", "1" },
+        { 0x0008, 0x0119,
+          "Long Code Value", "LongCodeValue",  "UC", "1" },
+        { 0x0008, 0x0120,
+          "URN Code Value", "URNCodeValue",  "UR", "1" },
+        { 0x0008, 0x0121,
+          "Equivalent Code Sequence", "EquivalentCodeSequence",  "SQ", "1" },
+        { 0x0008, 0x0201,
+          "Timezone Offset From UTC", "TimezoneOffsetFromUTC",  "SH", "1" },
+        { 0x0008, 0x0300,
+          "Private Data Element Characteristics Sequence", "PrivateDataElementCharacteristicsSequence",  "SQ", "1" },
+        { 0x0008, 0x0301,
+          "Private Group Reference", "PrivateGroupReference",  "US", "1" },
+        { 0x0008, 0x0302,
+          "Private Creator Reference", "PrivateCreatorReference",  "LO", "1" },
+        { 0x0008, 0x0303,
+          "Block Identifying Information Status", "BlockIdentifyingInformationStatus",  "CS", "1" },
+        { 0x0008, 0x0304,
+          "Nonidentifying Private Elements", "NonidentifyingPrivateElements",  "US", "1-n" },
+        { 0x0008, 0x0306,
+          "Identifying Private Elements", "IdentifyingPrivateElements",  "US", "1-n" },
+        { 0x0008, 0x0305,
+          "Deidentification Action Sequence", "DeidentificationActionSequence",  "SQ", "1" },
+        { 0x0008, 0x0307,
+          "Deidentification Action", "DeidentificationAction",  "CS", "1" },
+        { 0x0008, 0x1000,
+          "Network ID", "NetworkID",  "AE", "1" },
+        { 0x0008, 0x1010,
+          "Station Name", "StationName",  "SH", "1" },
+        { 0x0008, 0x1030,
+          "Study Description", "StudyDescription",  "LO", "1" },
+        { 0x0008, 0x1032,
+          "Procedure Code Sequence", "ProcedureCodeSequence",  "SQ", "1" },
+        { 0x0008, 0x103e,
+          "Series Description", "SeriesDescription",  "LO", "1" },
+        { 0x0008, 0x103f,
+          "Series Description Code Sequence", "SeriesDescriptionCodeSequence",  "SQ", "1" },
+        { 0x0008, 0x1040,
+          "Institutional Department Name", "InstitutionalDepartmentName",  "LO", "1" },
+        { 0x0008, 0x1048,
+          "Physician(s) of Record", "PhysiciansOfRecord",  "PN", "1-n" },
+        { 0x0008, 0x1049,
+          "Physician(s) of Record Identification Sequence", "PhysiciansOfRecordIdentificationSequence",  "SQ", "1" },
+        { 0x0008, 0x1050,
+          "Performing Physician's Name", "PerformingPhysicianName",  "PN", "1-n" },
+        { 0x0008, 0x1052,
+          "Performing Physician Identification Sequence", "PerformingPhysicianIdentificationSequence",  "SQ", "1" },
+        { 0x0008, 0x1060,
+          "Name of Physician(s) Reading Study", "NameOfPhysiciansReadingStudy",  "PN", "1-n" },
+        { 0x0008, 0x1062,
+          "Physician(s) Reading Study Identification Sequence", "PhysiciansReadingStudyIdentificationSequence",  "SQ", "1" },
+        { 0x0008, 0x1070,
+          "Operators' Name", "OperatorsName",  "PN", "1-n" },
+        { 0x0008, 0x1072,
+          "Operator Identification Sequence", "OperatorIdentificationSequence",  "SQ", "1" },
+        { 0x0008, 0x1080,
+          "Admitting Diagnoses Description", "AdmittingDiagnosesDescription",  "LO", "1-n" },
+        { 0x0008, 0x1084,
+          "Admitting Diagnoses Code Sequence", "AdmittingDiagnosesCodeSequence",  "SQ", "1" },
+        { 0x0008, 0x1090,
+          "Manufacturer's Model Name", "ManufacturerModelName",  "LO", "1" },
+        { 0x0008, 0x1100,
+          "Referenced Results Sequence", "ReferencedResultsSequence",  "SQ", "1" },
+        { 0x0008, 0x1110,
+          "Referenced Study Sequence", "ReferencedStudySequence",  "SQ", "1" },
+        { 0x0008, 0x1111,
+          "Referenced Performed Procedure Step Sequence", "ReferencedPerformedProcedureStepSequence",  "SQ", "1" },
+        { 0x0008, 0x1115,
+          "Referenced Series Sequence", "ReferencedSeriesSequence",  "SQ", "1" },
+        { 0x0008, 0x1120,
+          "Referenced Patient Sequence", "ReferencedPatientSequence",  "SQ", "1" },
+        { 0x0008, 0x1125,
+          "Referenced Visit Sequence", "ReferencedVisitSequence",  "SQ", "1" },
+        { 0x0008, 0x1130,
+          "Referenced Overlay Sequence", "ReferencedOverlaySequence",  "SQ", "1" },
+        { 0x0008, 0x1134,
+          "Referenced Stereometric Instance Sequence", "ReferencedStereometricInstanceSequence",  "SQ", "1" },
+        { 0x0008, 0x113a,
+          "Referenced Waveform Sequence", "ReferencedWaveformSequence",  "SQ", "1" },
+        { 0x0008, 0x1140,
+          "Referenced Image Sequence", "ReferencedImageSequence",  "SQ", "1" },
+        { 0x0008, 0x1145,
+          "Referenced Curve Sequence", "ReferencedCurveSequence",  "SQ", "1" },
+        { 0x0008, 0x114a,
+          "Referenced Instance Sequence", "ReferencedInstanceSequence",  "SQ", "1" },
+        { 0x0008, 0x114b,
+          "Referenced Real World Value Mapping Instance Sequence", "ReferencedRealWorldValueMappingInstanceSequence",  "SQ", "1" },
+        { 0x0008, 0x1150,
+          "Referenced SOP Class UID", "ReferencedSOPClassUID",  "UI", "1" },
+        { 0x0008, 0x1155,
+          "Referenced SOP Instance UID", "ReferencedSOPInstanceUID",  "UI", "1" },
+        { 0x0008, 0x115a,
+          "SOP Classes Supported", "SOPClassesSupported",  "UI", "1-n" },
+        { 0x0008, 0x1160,
+          "Referenced Frame Number", "ReferencedFrameNumber",  "IS", "1-n" },
+        { 0x0008, 0x1161,
+          "Simple Frame List", "SimpleFrameList",  "UL", "1-n" },
+        { 0x0008, 0x1162,
+          "Calculated Frame List", "CalculatedFrameList",  "UL", "3-3n" },
+        { 0x0008, 0x1163,
+          "Time Range", "TimeRange",  "FD", "2" },
+        { 0x0008, 0x1164,
+          "Frame Extraction Sequence", "FrameExtractionSequence",  "SQ", "1" },
+        { 0x0008, 0x1167,
+          "Multi-frame Source SOP Instance UID", "MultiFrameSourceSOPInstanceUID",  "UI", "1" },
+        { 0x0008, 0x1190,
+          "Retrieve URL", "RetrieveURL",  "UR", "1" },
+        { 0x0008, 0x1195,
+          "Transaction UID", "TransactionUID",  "UI", "1" },
+        { 0x0008, 0x1196,
+          "Warning Reason", "WarningReason",  "US", "1" },
+        { 0x0008, 0x1197,
+          "Failure Reason", "FailureReason",  "US", "1" },
+        { 0x0008, 0x1198,
+          "Failed SOP Sequence", "FailedSOPSequence",  "SQ", "1" },
+        { 0x0008, 0x1199,
+          "Referenced SOP Sequence", "ReferencedSOPSequence",  "SQ", "1" },
+        { 0x0008, 0x1200,
+          "Studies Containing Other Referenced Instances Sequence", "StudiesContainingOtherReferencedInstancesSequence",  "SQ", "1" },
+        { 0x0008, 0x1250,
+          "Related Series Sequence", "RelatedSeriesSequence",  "SQ", "1" },
+        { 0x0008, 0x2110,
+          "Lossy Image Compression (Retired)", "LossyImageCompressionRetired",  "CS", "1" },
+        { 0x0008, 0x2111,
+          "Derivation Description", "DerivationDescription",  "ST", "1" },
+        { 0x0008, 0x2112,
+          "Source Image Sequence", "SourceImageSequence",  "SQ", "1" },
+        { 0x0008, 0x2120,
+          "Stage Name", "StageName",  "SH", "1" },
+        { 0x0008, 0x2122,
+          "Stage Number", "StageNumber",  "IS", "1" },
+        { 0x0008, 0x2124,
+          "Number of Stages", "NumberOfStages",  "IS", "1" },
+        { 0x0008, 0x2127,
+          "View Name", "ViewName",  "SH", "1" },
+        { 0x0008, 0x2128,
+          "View Number", "ViewNumber",  "IS", "1" },
+        { 0x0008, 0x2129,
+          "Number of Event Timers", "NumberOfEventTimers",  "IS", "1" },
+        { 0x0008, 0x212a,
+          "Number of Views in Stage", "NumberOfViewsInStage",  "IS", "1" },
+        { 0x0008, 0x2130,
+          "Event Elapsed Time(s)", "EventElapsedTimes",  "DS", "1-n" },
+        { 0x0008, 0x2132,
+          "Event Timer Name(s)", "EventTimerNames",  "LO", "1-n" },
+        { 0x0008, 0x2133,
+          "Event Timer Sequence", "EventTimerSequence",  "SQ", "1" },
+        { 0x0008, 0x2134,
+          "Event Time Offset", "EventTimeOffset",  "FD", "1" },
+        { 0x0008, 0x2135,
+          "Event Code Sequence", "EventCodeSequence",  "SQ", "1" },
+        { 0x0008, 0x2142,
+          "Start Trim", "StartTrim",  "IS", "1" },
+        { 0x0008, 0x2143,
+          "Stop Trim", "StopTrim",  "IS", "1" },
+        { 0x0008, 0x2144,
+          "Recommended Display Frame Rate", "RecommendedDisplayFrameRate",  "IS", "1" },
+        { 0x0008, 0x2200,
+          "Transducer Position", "TransducerPosition",  "CS", "1" },
+        { 0x0008, 0x2204,
+          "Transducer Orientation", "TransducerOrientation",  "CS", "1" },
+        { 0x0008, 0x2208,
+          "Anatomic Structure", "AnatomicStructure",  "CS", "1" },
+        { 0x0008, 0x2218,
+          "Anatomic Region Sequence", "AnatomicRegionSequence",  "SQ", "1" },
+        { 0x0008, 0x2220,
+          "Anatomic Region Modifier Sequence", "AnatomicRegionModifierSequence",  "SQ", "1" },
+        { 0x0008, 0x2228,
+          "Primary Anatomic Structure Sequence", "PrimaryAnatomicStructureSequence",  "SQ", "1" },
+        { 0x0008, 0x2229,
+          "Anatomic Structure, Space or Region Sequence", "AnatomicStructureSpaceOrRegionSequence",  "SQ", "1" },
+        { 0x0008, 0x2230,
+          "Primary Anatomic Structure Modifier Sequence", "PrimaryAnatomicStructureModifierSequence",  "SQ", "1" },
+        { 0x0008, 0x2240,
+          "Transducer Position Sequence", "TransducerPositionSequence",  "SQ", "1" },
+        { 0x0008, 0x2242,
+          "Transducer Position Modifier Sequence", "TransducerPositionModifierSequence",  "SQ", "1" },
+        { 0x0008, 0x2244,
+          "Transducer Orientation Sequence", "TransducerOrientationSequence",  "SQ", "1" },
+        { 0x0008, 0x2246,
+          "Transducer Orientation Modifier Sequence", "TransducerOrientationModifierSequence",  "SQ", "1" },
+        { 0x0008, 0x2251,
+          "Anatomic Structure Space Or Region Code Sequence (Trial)", "AnatomicStructureSpaceOrRegionCodeSequenceTrial",  "SQ", "1" },
+        { 0x0008, 0x2253,
+          "Anatomic Portal Of Entrance Code Sequence (Trial)", "AnatomicPortalOfEntranceCodeSequenceTrial",  "SQ", "1" },
+        { 0x0008, 0x2255,
+          "Anatomic Approach Direction Code Sequence (Trial)", "AnatomicApproachDirectionCodeSequenceTrial",  "SQ", "1" },
+        { 0x0008, 0x2256,
+          "Anatomic Perspective Description (Trial)", "AnatomicPerspectiveDescriptionTrial",  "ST", "1" },
+        { 0x0008, 0x2257,
+          "Anatomic Perspective Code Sequence (Trial)", "AnatomicPerspectiveCodeSequenceTrial",  "SQ", "1" },
+        { 0x0008, 0x2258,
+          "Anatomic Location Of Examining Instrument Description (Trial)", "AnatomicLocationOfExaminingInstrumentDescriptionTrial",  "ST", "1" },
+        { 0x0008, 0x2259,
+          "Anatomic Location Of Examining Instrument Code Sequence (Trial)", "AnatomicLocationOfExaminingInstrumentCodeSequenceTrial",  "SQ", "1" },
+        { 0x0008, 0x225a,
+          "Anatomic Structure Space Or Region Modifier Code Sequence (Trial)", "AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial",  "SQ", "1" },
+        { 0x0008, 0x225c,
+          "On Axis Background Anatomic Structure Code Sequence (Trial)", "OnAxisBackgroundAnatomicStructureCodeSequenceTrial",  "SQ", "1" },
+        { 0x0008, 0x3001,
+          "Alternate Representation Sequence", "AlternateRepresentationSequence",  "SQ", "1" },
+        { 0x0008, 0x3010,
+          "Irradiation Event UID", "IrradiationEventUID",  "UI", "1-n" },
+        { 0x0008, 0x3011,
+          "Source Irradiation Event Sequence", "SourceIrradiationEventSequence",  "SQ", "1" },
+        { 0x0008, 0x3012,
+          "Radiopharmaceutical Administration Event UID", "RadiopharmaceuticalAdministrationEventUID",  "UI", "1" },
+        { 0x0008, 0x4000,
+          "Identifying Comments", "IdentifyingComments",  "LT", "1" },
+        { 0x0008, 0x9007,
+          "Frame Type", "FrameType",  "CS", "4" },
+        { 0x0008, 0x9092,
+          "Referenced Image Evidence Sequence", "ReferencedImageEvidenceSequence",  "SQ", "1" },
+        { 0x0008, 0x9121,
+          "Referenced Raw Data Sequence", "ReferencedRawDataSequence",  "SQ", "1" },
+        { 0x0008, 0x9123,
+          "Creator-Version UID", "CreatorVersionUID",  "UI", "1" },
+        { 0x0008, 0x9124,
+          "Derivation Image Sequence", "DerivationImageSequence",  "SQ", "1" },
+        { 0x0008, 0x9154,
+          "Source Image Evidence Sequence", "SourceImageEvidenceSequence",  "SQ", "1" },
+        { 0x0008, 0x9205,
+          "Pixel Presentation", "PixelPresentation",  "CS", "1" },
+        { 0x0008, 0x9206,
+          "Volumetric Properties", "VolumetricProperties",  "CS", "1" },
+        { 0x0008, 0x9207,
+          "Volume Based Calculation Technique", "VolumeBasedCalculationTechnique",  "CS", "1" },
+        { 0x0008, 0x9208,
+          "Complex Image Component", "ComplexImageComponent",  "CS", "1" },
+        { 0x0008, 0x9209,
+          "Acquisition Contrast", "AcquisitionContrast",  "CS", "1" },
+        { 0x0008, 0x9215,
+          "Derivation Code Sequence", "DerivationCodeSequence",  "SQ", "1" },
+        { 0x0008, 0x9237,
+          "Referenced Presentation State Sequence", "ReferencedPresentationStateSequence",  "SQ", "1" },
+        { 0x0008, 0x9410,
+          "Referenced Other Plane Sequence", "ReferencedOtherPlaneSequence",  "SQ", "1" },
+        { 0x0008, 0x9458,
+          "Frame Display Sequence", "FrameDisplaySequence",  "SQ", "1" },
+        { 0x0008, 0x9459,
+          "Recommended Display Frame Rate in Float", "RecommendedDisplayFrameRateInFloat",  "FL", "1" },
+        { 0x0008, 0x9460,
+          "Skip Frame Range Flag", "SkipFrameRangeFlag",  "CS", "1" },
+        { 0x0010, 0x0010,
+          "Patient's Name", "PatientName",  "PN", "1" },
+        { 0x0010, 0x0020,
+          "Patient ID", "PatientID",  "LO", "1" },
+        { 0x0010, 0x0021,
+          "Issuer of Patient ID", "IssuerOfPatientID",  "LO", "1" },
+        { 0x0010, 0x0022,
+          "Type of Patient ID", "TypeOfPatientID",  "CS", "1" },
+        { 0x0010, 0x0024,
+          "Issuer of Patient ID Qualifiers Sequence", "IssuerOfPatientIDQualifiersSequence",  "SQ", "1" },
+        { 0x0010, 0x0030,
+          "Patient's Birth Date", "PatientBirthDate",  "DA", "1" },
+        { 0x0010, 0x0032,
+          "Patient's Birth Time", "PatientBirthTime",  "TM", "1" },
+        { 0x0010, 0x0040,
+          "Patient's Sex", "PatientSex",  "CS", "1" },
+        { 0x0010, 0x0050,
+          "Patient's Insurance Plan Code Sequence", "PatientInsurancePlanCodeSequence",  "SQ", "1" },
+        { 0x0010, 0x0101,
+          "Patient's Primary Language Code Sequence", "PatientPrimaryLanguageCodeSequence",  "SQ", "1" },
+        { 0x0010, 0x0102,
+          "Patient's Primary Language Modifier Code Sequence", "PatientPrimaryLanguageModifierCodeSequence",  "SQ", "1" },
+        { 0x0010, 0x0200,
+          "Quality Control Subject", "QualityControlSubject",  "CS", "1" },
+        { 0x0010, 0x0201,
+          "Quality Control Subject Type Code Sequence", "QualityControlSubjectTypeCodeSequence",  "SQ", "1" },
+        { 0x0010, 0x1000,
+          "Other Patient IDs", "OtherPatientIDs",  "LO", "1-n" },
+        { 0x0010, 0x1001,
+          "Other Patient Names", "OtherPatientNames",  "PN", "1-n" },
+        { 0x0010, 0x1002,
+          "Other Patient IDs Sequence", "OtherPatientIDsSequence",  "SQ", "1" },
+        { 0x0010, 0x1005,
+          "Patient's Birth Name", "PatientBirthName",  "PN", "1" },
+        { 0x0010, 0x1010,
+          "Patient's Age", "PatientAge",  "AS", "1" },
+        { 0x0010, 0x1020,
+          "Patient's Size", "PatientSize",  "DS", "1" },
+        { 0x0010, 0x1021,
+          "Patient's Size Code Sequence", "PatientSizeCodeSequence",  "SQ", "1" },
+        { 0x0010, 0x1030,
+          "Patient's Weight", "PatientWeight",  "DS", "1" },
+        { 0x0010, 0x1040,
+          "Patient's Address", "PatientAddress",  "LO", "1" },
+        { 0x0010, 0x1050,
+          "Insurance Plan Identification", "InsurancePlanIdentification",  "LO", "1-n" },
+        { 0x0010, 0x1060,
+          "Patient's Mother's Birth Name", "PatientMotherBirthName",  "PN", "1" },
+        { 0x0010, 0x1080,
+          "Military Rank", "MilitaryRank",  "LO", "1" },
+        { 0x0010, 0x1081,
+          "Branch of Service", "BranchOfService",  "LO", "1" },
+        { 0x0010, 0x1090,
+          "Medical Record Locator", "MedicalRecordLocator",  "LO", "1" },
+        { 0x0010, 0x1100,
+          "Referenced Patient Photo Sequence", "ReferencedPatientPhotoSequence",  "SQ", "1" },
+        { 0x0010, 0x2000,
+          "Medical Alerts", "MedicalAlerts",  "LO", "1-n" },
+        { 0x0010, 0x2110,
+          "Allergies", "Allergies",  "LO", "1-n" },
+        { 0x0010, 0x2150,
+          "Country of Residence", "CountryOfResidence",  "LO", "1" },
+        { 0x0010, 0x2152,
+          "Region of Residence", "RegionOfResidence",  "LO", "1" },
+        { 0x0010, 0x2154,
+          "Patient's Telephone Numbers", "PatientTelephoneNumbers",  "SH", "1-n" },
+        { 0x0010, 0x2155,
+          "Patient's Telecom Information", "PatientTelecomInformation",  "LT", "1" },
+        { 0x0010, 0x2160,
+          "Ethnic Group", "EthnicGroup",  "SH", "1" },
+        { 0x0010, 0x2180,
+          "Occupation", "Occupation",  "SH", "1" },
+        { 0x0010, 0x21a0,
+          "Smoking Status", "SmokingStatus",  "CS", "1" },
+        { 0x0010, 0x21b0,
+          "Additional Patient History", "AdditionalPatientHistory",  "LT", "1" },
+        { 0x0010, 0x21c0,
+          "Pregnancy Status", "PregnancyStatus",  "US", "1" },
+        { 0x0010, 0x21d0,
+          "Last Menstrual Date", "LastMenstrualDate",  "DA", "1" },
+        { 0x0010, 0x21f0,
+          "Patient's Religious Preference", "PatientReligiousPreference",  "LO", "1" },
+        { 0x0010, 0x2201,
+          "Patient Species Description", "PatientSpeciesDescription",  "LO", "1" },
+        { 0x0010, 0x2202,
+          "Patient Species Code Sequence", "PatientSpeciesCodeSequence",  "SQ", "1" },
+        { 0x0010, 0x2203,
+          "Patient's Sex Neutered", "PatientSexNeutered",  "CS", "1" },
+        { 0x0010, 0x2210,
+          "Anatomical Orientation Type", "AnatomicalOrientationType",  "CS", "1" },
+        { 0x0010, 0x2292,
+          "Patient Breed Description", "PatientBreedDescription",  "LO", "1" },
+        { 0x0010, 0x2293,
+          "Patient Breed Code Sequence", "PatientBreedCodeSequence",  "SQ", "1" },
+        { 0x0010, 0x2294,
+          "Breed Registration Sequence", "BreedRegistrationSequence",  "SQ", "1" },
+        { 0x0010, 0x2295,
+          "Breed Registration Number", "BreedRegistrationNumber",  "LO", "1" },
+        { 0x0010, 0x2296,
+          "Breed Registry Code Sequence", "BreedRegistryCodeSequence",  "SQ", "1" },
+        { 0x0010, 0x2297,
+          "Responsible Person", "ResponsiblePerson",  "PN", "1" },
+        { 0x0010, 0x2298,
+          "Responsible Person Role", "ResponsiblePersonRole",  "CS", "1" },
+        { 0x0010, 0x2299,
+          "Responsible Organization", "ResponsibleOrganization",  "LO", "1" },
+        { 0x0010, 0x4000,
+          "Patient Comments", "PatientComments",  "LT", "1" },
+        { 0x0010, 0x9431,
+          "Examined Body Thickness", "ExaminedBodyThickness",  "FL", "1" },
+        { 0x0012, 0x0010,
+          "Clinical Trial Sponsor Name", "ClinicalTrialSponsorName",  "LO", "1" },
+        { 0x0012, 0x0020,
+          "Clinical Trial Protocol ID", "ClinicalTrialProtocolID",  "LO", "1" },
+        { 0x0012, 0x0021,
+          "Clinical Trial Protocol Name", "ClinicalTrialProtocolName",  "LO", "1" },
+        { 0x0012, 0x0030,
+          "Clinical Trial Site ID", "ClinicalTrialSiteID",  "LO", "1" },
+        { 0x0012, 0x0031,
+          "Clinical Trial Site Name", "ClinicalTrialSiteName",  "LO", "1" },
+        { 0x0012, 0x0040,
+          "Clinical Trial Subject ID", "ClinicalTrialSubjectID",  "LO", "1" },
+        { 0x0012, 0x0042,
+          "Clinical Trial Subject Reading ID", "ClinicalTrialSubjectReadingID",  "LO", "1" },
+        { 0x0012, 0x0050,
+          "Clinical Trial Time Point ID", "ClinicalTrialTimePointID",  "LO", "1" },
+        { 0x0012, 0x0051,
+          "Clinical Trial Time Point Description", "ClinicalTrialTimePointDescription",  "ST", "1" },
+        { 0x0012, 0x0060,
+          "Clinical Trial Coordinating Center Name", "ClinicalTrialCoordinatingCenterName",  "LO", "1" },
+        { 0x0012, 0x0062,
+          "Patient Identity Removed", "PatientIdentityRemoved",  "CS", "1" },
+        { 0x0012, 0x0063,
+          "De-identification Method", "DeidentificationMethod",  "LO", "1-n" },
+        { 0x0012, 0x0064,
+          "De-identification Method Code Sequence", "DeidentificationMethodCodeSequence",  "SQ", "1" },
+        { 0x0012, 0x0071,
+          "Clinical Trial Series ID", "ClinicalTrialSeriesID",  "LO", "1" },
+        { 0x0012, 0x0072,
+          "Clinical Trial Series Description", "ClinicalTrialSeriesDescription",  "LO", "1" },
+        { 0x0012, 0x0081,
+          "Clinical Trial Protocol Ethics Committee Name", "ClinicalTrialProtocolEthicsCommitteeName",  "LO", "1" },
+        { 0x0012, 0x0082,
+          "Clinical Trial Protocol Ethics Committee Approval Number", "ClinicalTrialProtocolEthicsCommitteeApprovalNumber",  "LO", "1" },
+        { 0x0012, 0x0083,
+          "Consent for Clinical Trial Use Sequence", "ConsentForClinicalTrialUseSequence",  "SQ", "1" },
+        { 0x0012, 0x0084,
+          "Distribution Type", "DistributionType",  "CS", "1" },
+        { 0x0012, 0x0085,
+          "Consent for Distribution Flag", "ConsentForDistributionFlag",  "CS", "1" },
+        { 0x0014, 0x0023,
+          "CAD File Format", "CADFileFormat",  "ST", "1-n" },
+        { 0x0014, 0x0024,
+          "Component Reference System", "ComponentReferenceSystem",  "ST", "1-n" },
+        { 0x0014, 0x0025,
+          "Component Manufacturing Procedure", "ComponentManufacturingProcedure",  "ST", "1-n" },
+        { 0x0014, 0x0028,
+          "Component Manufacturer", "ComponentManufacturer",  "ST", "1-n" },
+        { 0x0014, 0x0030,
+          "Material Thickness", "MaterialThickness",  "DS", "1-n" },
+        { 0x0014, 0x0032,
+          "Material Pipe Diameter", "MaterialPipeDiameter",  "DS", "1-n" },
+        { 0x0014, 0x0034,
+          "Material Isolation Diameter", "MaterialIsolationDiameter",  "DS", "1-n" },
+        { 0x0014, 0x0042,
+          "Material Grade", "MaterialGrade",  "ST", "1-n" },
+        { 0x0014, 0x0044,
+          "Material Properties Description", "MaterialPropertiesDescription",  "ST", "1-n" },
+        { 0x0014, 0x0045,
+          "Material Properties File Format (Retired)", "MaterialPropertiesFileFormatRetired",  "ST", "1-n" },
+        { 0x0014, 0x0046,
+          "Material Notes", "MaterialNotes",  "LT", "1" },
+        { 0x0014, 0x0050,
+          "Component Shape", "ComponentShape",  "CS", "1" },
+        { 0x0014, 0x0052,
+          "Curvature Type", "CurvatureType",  "CS", "1" },
+        { 0x0014, 0x0054,
+          "Outer Diameter", "OuterDiameter",  "DS", "1" },
+        { 0x0014, 0x0056,
+          "Inner Diameter", "InnerDiameter",  "DS", "1" },
+        { 0x0014, 0x1010,
+          "Actual Environmental Conditions", "ActualEnvironmentalConditions",  "ST", "1" },
+        { 0x0014, 0x1020,
+          "Expiry Date", "ExpiryDate",  "DA", "1" },
+        { 0x0014, 0x1040,
+          "Environmental Conditions", "EnvironmentalConditions",  "ST", "1" },
+        { 0x0014, 0x2002,
+          "Evaluator Sequence", "EvaluatorSequence",  "SQ", "1" },
+        { 0x0014, 0x2004,
+          "Evaluator Number", "EvaluatorNumber",  "IS", "1" },
+        { 0x0014, 0x2006,
+          "Evaluator Name", "EvaluatorName",  "PN", "1" },
+        { 0x0014, 0x2008,
+          "Evaluation Attempt", "EvaluationAttempt",  "IS", "1" },
+        { 0x0014, 0x2012,
+          "Indication Sequence", "IndicationSequence",  "SQ", "1" },
+        { 0x0014, 0x2014,
+          "Indication Number", "IndicationNumber",  "IS", "1" },
+        { 0x0014, 0x2016,
+          "Indication Label", "IndicationLabel",  "SH", "1" },
+        { 0x0014, 0x2018,
+          "Indication Description", "IndicationDescription",  "ST", "1" },
+        { 0x0014, 0x201a,
+          "Indication Type", "IndicationType",  "CS", "1-n" },
+        { 0x0014, 0x201c,
+          "Indication Disposition", "IndicationDisposition",  "CS", "1" },
+        { 0x0014, 0x201e,
+          "Indication ROI Sequence", "IndicationROISequence",  "SQ", "1" },
+        { 0x0014, 0x2030,
+          "Indication Physical Property Sequence", "IndicationPhysicalPropertySequence",  "SQ", "1" },
+        { 0x0014, 0x2032,
+          "Property Label", "PropertyLabel",  "SH", "1" },
+        { 0x0014, 0x2202,
+          "Coordinate System Number of Axes", "CoordinateSystemNumberOfAxes",  "IS", "1" },
+        { 0x0014, 0x2204,
+          "Coordinate System Axes Sequence", "CoordinateSystemAxesSequence",  "SQ", "1" },
+        { 0x0014, 0x2206,
+          "Coordinate System Axis Description", "CoordinateSystemAxisDescription",  "ST", "1" },
+        { 0x0014, 0x2208,
+          "Coordinate System Data Set Mapping", "CoordinateSystemDataSetMapping",  "CS", "1" },
+        { 0x0014, 0x220a,
+          "Coordinate System Axis Number", "CoordinateSystemAxisNumber",  "IS", "1" },
+        { 0x0014, 0x220c,
+          "Coordinate System Axis Type", "CoordinateSystemAxisType",  "CS", "1" },
+        { 0x0014, 0x220e,
+          "Coordinate System Axis Units", "CoordinateSystemAxisUnits",  "CS", "1" },
+        { 0x0014, 0x2210,
+          "Coordinate System Axis Values", "CoordinateSystemAxisValues",  "OB", "1" },
+        { 0x0014, 0x2220,
+          "Coordinate System Transform Sequence", "CoordinateSystemTransformSequence",  "SQ", "1" },
+        { 0x0014, 0x2222,
+          "Transform Description", "TransformDescription",  "ST", "1" },
+        { 0x0014, 0x2224,
+          "Transform Number of Axes", "TransformNumberOfAxes",  "IS", "1" },
+        { 0x0014, 0x2226,
+          "Transform Order of Axes", "TransformOrderOfAxes",  "IS", "1-n" },
+        { 0x0014, 0x2228,
+          "Transformed Axis Units", "TransformedAxisUnits",  "CS", "1" },
+        { 0x0014, 0x222a,
+          "Coordinate System Transform Rotation and Scale Matrix", "CoordinateSystemTransformRotationAndScaleMatrix",  "DS", "1-n" },
+        { 0x0014, 0x222c,
+          "Coordinate System Transform Translation Matrix", "CoordinateSystemTransformTranslationMatrix",  "DS", "1-n" },
+        { 0x0014, 0x3011,
+          "Internal Detector Frame Time", "InternalDetectorFrameTime",  "DS", "1" },
+        { 0x0014, 0x3012,
+          "Number of Frames Integrated", "NumberOfFramesIntegrated",  "DS", "1" },
+        { 0x0014, 0x3020,
+          "Detector Temperature Sequence", "DetectorTemperatureSequence",  "SQ", "1" },
+        { 0x0014, 0x3022,
+          "Sensor Name", "SensorName",  "ST", "1" },
+        { 0x0014, 0x3024,
+          "Horizontal Offset of Sensor", "HorizontalOffsetOfSensor",  "DS", "1" },
+        { 0x0014, 0x3026,
+          "Vertical Offset of Sensor", "VerticalOffsetOfSensor",  "DS", "1" },
+        { 0x0014, 0x3028,
+          "Sensor Temperature", "SensorTemperature",  "DS", "1" },
+        { 0x0014, 0x3040,
+          "Dark Current Sequence", "DarkCurrentSequence",  "SQ", "1" },
+        { 0x0014, 0x3050,
+          "Dark Current Counts", "DarkCurrentCounts",  "OB or OW", "1" },
+        { 0x0014, 0x3060,
+          "Gain Correction Reference Sequence", "GainCorrectionReferenceSequence",  "SQ", "1" },
+        { 0x0014, 0x3070,
+          "Air Counts", "AirCounts",  "OB or OW", "1" },
+        { 0x0014, 0x3071,
+          "KV Used in Gain Calibration", "KVUsedInGainCalibration",  "DS", "1" },
+        { 0x0014, 0x3072,
+          "MA Used in Gain Calibration", "MAUsedInGainCalibration",  "DS", "1" },
+        { 0x0014, 0x3073,
+          "Number of Frames Used for Integration", "NumberOfFramesUsedForIntegration",  "DS", "1" },
+        { 0x0014, 0x3074,
+          "Filter Material Used in Gain Calibration", "FilterMaterialUsedInGainCalibration",  "LO", "1" },
+        { 0x0014, 0x3075,
+          "Filter Thickness Used in Gain Calibration", "FilterThicknessUsedInGainCalibration",  "DS", "1" },
+        { 0x0014, 0x3076,
+          "Date of Gain Calibration", "DateOfGainCalibration",  "DA", "1" },
+        { 0x0014, 0x3077,
+          "Time of Gain Calibration", "TimeOfGainCalibration",  "TM", "1" },
+        { 0x0014, 0x3080,
+          "Bad Pixel Image", "BadPixelImage",  "OB", "1" },
+        { 0x0014, 0x3099,
+          "Calibration Notes", "CalibrationNotes",  "LT", "1" },
+        { 0x0014, 0x4002,
+          "Pulser Equipment Sequence", "PulserEquipmentSequence",  "SQ", "1" },
+        { 0x0014, 0x4004,
+          "Pulser Type", "PulserType",  "CS", "1" },
+        { 0x0014, 0x4006,
+          "Pulser Notes", "PulserNotes",  "LT", "1" },
+        { 0x0014, 0x4008,
+          "Receiver Equipment Sequence", "ReceiverEquipmentSequence",  "SQ", "1" },
+        { 0x0014, 0x400a,
+          "Amplifier Type", "AmplifierType",  "CS", "1" },
+        { 0x0014, 0x400c,
+          "Receiver Notes", "ReceiverNotes",  "LT", "1" },
+        { 0x0014, 0x400e,
+          "Pre-Amplifier Equipment Sequence", "PreAmplifierEquipmentSequence",  "SQ", "1" },
+        { 0x0014, 0x400f,
+          "Pre-Amplifier Notes", "PreAmplifierNotes",  "LT", "1" },
+        { 0x0014, 0x4010,
+          "Transmit Transducer Sequence", "TransmitTransducerSequence",  "SQ", "1" },
+        { 0x0014, 0x4011,
+          "Receive Transducer Sequence", "ReceiveTransducerSequence",  "SQ", "1" },
+        { 0x0014, 0x4012,
+          "Number of Elements", "NumberOfElements",  "US", "1" },
+        { 0x0014, 0x4013,
+          "Element Shape", "ElementShape",  "CS", "1" },
+        { 0x0014, 0x4014,
+          "Element Dimension A", "ElementDimensionA",  "DS", "1" },
+        { 0x0014, 0x4015,
+          "Element Dimension B", "ElementDimensionB",  "DS", "1" },
+        { 0x0014, 0x4016,
+          "Element Pitch A", "ElementPitchA",  "DS", "1" },
+        { 0x0014, 0x4017,
+          "Measured Beam Dimension A", "MeasuredBeamDimensionA",  "DS", "1" },
+        { 0x0014, 0x4018,
+          "Measured Beam Dimension B", "MeasuredBeamDimensionB",  "DS", "1" },
+        { 0x0014, 0x4019,
+          "Location of Measured Beam Diameter", "LocationOfMeasuredBeamDiameter",  "DS", "1" },
+        { 0x0014, 0x401a,
+          "Nominal Frequency", "NominalFrequency",  "DS", "1" },
+        { 0x0014, 0x401b,
+          "Measured Center Frequency", "MeasuredCenterFrequency",  "DS", "1" },
+        { 0x0014, 0x401c,
+          "Measured Bandwidth", "MeasuredBandwidth",  "DS", "1" },
+        { 0x0014, 0x401d,
+          "Element Pitch B", "ElementPitchB",  "DS", "1" },
+        { 0x0014, 0x4020,
+          "Pulser Settings Sequence", "PulserSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x4022,
+          "Pulse Width", "PulseWidth",  "DS", "1" },
+        { 0x0014, 0x4024,
+          "Excitation Frequency", "ExcitationFrequency",  "DS", "1" },
+        { 0x0014, 0x4026,
+          "Modulation Type", "ModulationType",  "CS", "1" },
+        { 0x0014, 0x4028,
+          "Damping", "Damping",  "DS", "1" },
+        { 0x0014, 0x4030,
+          "Receiver Settings Sequence", "ReceiverSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x4031,
+          "Acquired Soundpath Length", "AcquiredSoundpathLength",  "DS", "1" },
+        { 0x0014, 0x4032,
+          "Acquisition Compression Type", "AcquisitionCompressionType",  "CS", "1" },
+        { 0x0014, 0x4033,
+          "Acquisition Sample Size", "AcquisitionSampleSize",  "IS", "1" },
+        { 0x0014, 0x4034,
+          "Rectifier Smoothing", "RectifierSmoothing",  "DS", "1" },
+        { 0x0014, 0x4035,
+          "DAC Sequence", "DACSequence",  "SQ", "1" },
+        { 0x0014, 0x4036,
+          "DAC Type", "DACType",  "CS", "1" },
+        { 0x0014, 0x4038,
+          "DAC Gain Points", "DACGainPoints",  "DS", "1-n" },
+        { 0x0014, 0x403a,
+          "DAC Time Points", "DACTimePoints",  "DS", "1-n" },
+        { 0x0014, 0x403c,
+          "DAC Amplitude", "DACAmplitude",  "DS", "1-n" },
+        { 0x0014, 0x4040,
+          "Pre-Amplifier Settings Sequence", "PreAmplifierSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x4050,
+          "Transmit Transducer Settings Sequence", "TransmitTransducerSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x4051,
+          "Receive Transducer Settings Sequence", "ReceiveTransducerSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x4052,
+          "Incident Angle", "IncidentAngle",  "DS", "1" },
+        { 0x0014, 0x4054,
+          "Coupling Technique", "CouplingTechnique",  "ST", "1" },
+        { 0x0014, 0x4056,
+          "Coupling Medium", "CouplingMedium",  "ST", "1" },
+        { 0x0014, 0x4057,
+          "Coupling Velocity", "CouplingVelocity",  "DS", "1" },
+        { 0x0014, 0x4058,
+          "Probe Center Location X", "ProbeCenterLocationX",  "DS", "1" },
+        { 0x0014, 0x4059,
+          "Probe Center Location Z", "ProbeCenterLocationZ",  "DS", "1" },
+        { 0x0014, 0x405a,
+          "Sound Path Length", "SoundPathLength",  "DS", "1" },
+        { 0x0014, 0x405c,
+          "Delay Law Identifier", "DelayLawIdentifier",  "ST", "1" },
+        { 0x0014, 0x4060,
+          "Gate Settings Sequence", "GateSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x4062,
+          "Gate Threshold", "GateThreshold",  "DS", "1" },
+        { 0x0014, 0x4064,
+          "Velocity of Sound", "VelocityOfSound",  "DS", "1" },
+        { 0x0014, 0x4070,
+          "Calibration Settings Sequence", "CalibrationSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x4072,
+          "Calibration Procedure", "CalibrationProcedure",  "ST", "1" },
+        { 0x0014, 0x4074,
+          "Procedure Version", "ProcedureVersion",  "SH", "1" },
+        { 0x0014, 0x4076,
+          "Procedure Creation Date", "ProcedureCreationDate",  "DA", "1" },
+        { 0x0014, 0x4078,
+          "Procedure Expiration Date", "ProcedureExpirationDate",  "DA", "1" },
+        { 0x0014, 0x407a,
+          "Procedure Last Modified Date", "ProcedureLastModifiedDate",  "DA", "1" },
+        { 0x0014, 0x407c,
+          "Calibration Time", "CalibrationTime",  "TM", "1-n" },
+        { 0x0014, 0x407e,
+          "Calibration Date", "CalibrationDate",  "DA", "1-n" },
+        { 0x0014, 0x4080,
+          "Probe Drive Equipment Sequence", "ProbeDriveEquipmentSequence",  "SQ", "1" },
+        { 0x0014, 0x4081,
+          "Drive Type", "DriveType",  "CS", "1" },
+        { 0x0014, 0x4082,
+          "Probe Drive Notes", "ProbeDriveNotes",  "LT", "1" },
+        { 0x0014, 0x4083,
+          "Drive Probe Sequence", "DriveProbeSequence",  "SQ", "1" },
+        { 0x0014, 0x4084,
+          "Probe Inductance", "ProbeInductance",  "DS", "1" },
+        { 0x0014, 0x4085,
+          "Probe Resistance", "ProbeResistance",  "DS", "1" },
+        { 0x0014, 0x4086,
+          "Receive Probe Sequence", "ReceiveProbeSequence",  "SQ", "1" },
+        { 0x0014, 0x4087,
+          "Probe Drive Settings Sequence", "ProbeDriveSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x4088,
+          "Bridge Resistors", "BridgeResistors",  "DS", "1" },
+        { 0x0014, 0x4089,
+          "Probe Orientation Angle", "ProbeOrientationAngle",  "DS", "1" },
+        { 0x0014, 0x408b,
+          "User Selected Gain Y", "UserSelectedGainY",  "DS", "1" },
+        { 0x0014, 0x408c,
+          "User Selected Phase", "UserSelectedPhase",  "DS", "1" },
+        { 0x0014, 0x408d,
+          "User Selected Offset X", "UserSelectedOffsetX",  "DS", "1" },
+        { 0x0014, 0x408e,
+          "User Selected Offset Y", "UserSelectedOffsetY",  "DS", "1" },
+        { 0x0014, 0x4091,
+          "Channel Settings Sequence", "ChannelSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x4092,
+          "Channel Threshold", "ChannelThreshold",  "DS", "1" },
+        { 0x0014, 0x409a,
+          "Scanner Settings Sequence", "ScannerSettingsSequence",  "SQ", "1" },
+        { 0x0014, 0x409b,
+          "Scan Procedure", "ScanProcedure",  "ST", "1" },
+        { 0x0014, 0x409c,
+          "Translation Rate X", "TranslationRateX",  "DS", "1" },
+        { 0x0014, 0x409d,
+          "Translation Rate Y", "TranslationRateY",  "DS", "1" },
+        { 0x0014, 0x409f,
+          "Channel Overlap", "ChannelOverlap",  "DS", "1" },
+        { 0x0014, 0x40a0,
+          "Image Quality Indicator Type", "ImageQualityIndicatorType",  "LO", "1" },
+        { 0x0014, 0x40a1,
+          "Image Quality Indicator Material", "ImageQualityIndicatorMaterial",  "LO", "1" },
+        { 0x0014, 0x40a2,
+          "Image Quality Indicator Size", "ImageQualityIndicatorSize",  "LO", "1" },
+        { 0x0014, 0x5002,
+          "LINAC Energy", "LINACEnergy",  "IS", "1" },
+        { 0x0014, 0x5004,
+          "LINAC Output", "LINACOutput",  "IS", "1" },
+        { 0x0014, 0x5100,
+          "Active Aperture", "ActiveAperture",  "US", "1" },
+        { 0x0014, 0x5101,
+          "Total Aperture", "TotalAperture",  "DS", "1" },
+        { 0x0014, 0x5102,
+          "Aperture Elevation", "ApertureElevation",  "DS", "1" },
+        { 0x0014, 0x5103,
+          "Main Lobe Angle", "MainLobeAngle",  "DS", "1" },
+        { 0x0014, 0x5104,
+          "Main Roof Angle", "MainRoofAngle",  "DS", "1" },
+        { 0x0014, 0x5105,
+          "Connector Type", "ConnectorType",  "CS", "1" },
+        { 0x0014, 0x5106,
+          "Wedge Model Number", "WedgeModelNumber",  "SH", "1" },
+        { 0x0014, 0x5107,
+          "Wedge Angle Float", "WedgeAngleFloat",  "DS", "1" },
+        { 0x0014, 0x5108,
+          "Wedge Roof Angle", "WedgeRoofAngle",  "DS", "1" },
+        { 0x0014, 0x5109,
+          "Wedge Element 1 Position", "WedgeElement1Position",  "CS", "1" },
+        { 0x0014, 0x510a,
+          "Wedge Material Velocity", "WedgeMaterialVelocity",  "DS", "1" },
+        { 0x0014, 0x510b,
+          "Wedge Material", "WedgeMaterial",  "SH", "1" },
+        { 0x0014, 0x510c,
+          "Wedge Offset Z", "WedgeOffsetZ",  "DS", "1" },
+        { 0x0014, 0x510d,
+          "Wedge Origin Offset X", "WedgeOriginOffsetX",  "DS", "1" },
+        { 0x0014, 0x510e,
+          "Wedge Time Delay", "WedgeTimeDelay",  "DS", "1" },
+        { 0x0014, 0x510f,
+          "Wedge Name", "WedgeName",  "SH", "1" },
+        { 0x0014, 0x5110,
+          "Wedge Manufacturer Name", "WedgeManufacturerName",  "SH", "1" },
+        { 0x0014, 0x5111,
+          "Wedge Description", "WedgeDescription",  "LO", "1" },
+        { 0x0014, 0x5112,
+          "Nominal Beam Angle", "NominalBeamAngle",  "DS", "1" },
+        { 0x0014, 0x5113,
+          "Wedge Offset X", "WedgeOffsetX",  "DS", "1" },
+        { 0x0014, 0x5114,
+          "Wedge Offset Y", "WedgeOffsetY",  "DS", "1" },
+        { 0x0014, 0x5115,
+          "Wedge Total Length", "WedgeTotalLength",  "DS", "1" },
+        { 0x0014, 0x5116,
+          "Wedge In Contact Length", "WedgeInContactLength",  "DS", "1" },
+        { 0x0014, 0x5117,
+          "Wedge Front Gap", "WedgeFrontGap",  "DS", "1" },
+        { 0x0014, 0x5118,
+          "Wedge Total Height", "WedgeTotalHeight",  "DS", "1" },
+        { 0x0014, 0x5119,
+          "Wedge Front Height", "WedgeFrontHeight",  "DS", "1" },
+        { 0x0014, 0x511a,
+          "Wedge Rear Height", "WedgeRearHeight",  "DS", "1" },
+        { 0x0014, 0x511b,
+          "Wedge Total Width", "WedgeTotalWidth",  "DS", "1" },
+        { 0x0014, 0x511c,
+          "Wedge In Contact Width", "WedgeInContactWidth",  "DS", "1" },
+        { 0x0014, 0x511d,
+          "Wedge Chamfer Height", "WedgeChamferHeight",  "DS", "1" },
+        { 0x0014, 0x511e,
+          "Wedge Curve", "WedgeCurve",  "CS", "1" },
+        { 0x0014, 0x511f,
+          "Radius Along the Wedge", "RadiusAlongWedge",  "DS", "1" },
+        { 0x0018, 0x0010,
+          "Contrast/Bolus Agent", "ContrastBolusAgent",  "LO", "1" },
+        { 0x0018, 0x0012,
+          "Contrast/Bolus Agent Sequence", "ContrastBolusAgentSequence",  "SQ", "1" },
+        { 0x0018, 0x0013,
+          "Contrast/Bolus T1 Relaxivity", "ContrastBolusT1Relaxivity",  "FL", "1" },
+        { 0x0018, 0x0014,
+          "Contrast/Bolus Administration Route Sequence", "ContrastBolusAdministrationRouteSequence",  "SQ", "1" },
+        { 0x0018, 0x0015,
+          "Body Part Examined", "BodyPartExamined",  "CS", "1" },
+        { 0x0018, 0x0020,
+          "Scanning Sequence", "ScanningSequence",  "CS", "1-n" },
+        { 0x0018, 0x0021,
+          "Sequence Variant", "SequenceVariant",  "CS", "1-n" },
+        { 0x0018, 0x0022,
+          "Scan Options", "ScanOptions",  "CS", "1-n" },
+        { 0x0018, 0x0023,
+          "MR Acquisition Type", "MRAcquisitionType",  "CS", "1" },
+        { 0x0018, 0x0024,
+          "Sequence Name", "SequenceName",  "SH", "1" },
+        { 0x0018, 0x0025,
+          "Angio Flag", "AngioFlag",  "CS", "1" },
+        { 0x0018, 0x0026,
+          "Intervention Drug Information Sequence", "InterventionDrugInformationSequence",  "SQ", "1" },
+        { 0x0018, 0x0027,
+          "Intervention Drug Stop Time", "InterventionDrugStopTime",  "TM", "1" },
+        { 0x0018, 0x0028,
+          "Intervention Drug Dose", "InterventionDrugDose",  "DS", "1" },
+        { 0x0018, 0x0029,
+          "Intervention Drug Code Sequence", "InterventionDrugCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x002a,
+          "Additional Drug Sequence", "AdditionalDrugSequence",  "SQ", "1" },
+        { 0x0018, 0x0030,
+          "Radionuclide", "Radionuclide",  "LO", "1-n" },
+        { 0x0018, 0x0031,
+          "Radiopharmaceutical", "Radiopharmaceutical",  "LO", "1" },
+        { 0x0018, 0x0032,
+          "Energy Window Centerline", "EnergyWindowCenterline",  "DS", "1" },
+        { 0x0018, 0x0033,
+          "Energy Window Total Width", "EnergyWindowTotalWidth",  "DS", "1-n" },
+        { 0x0018, 0x0034,
+          "Intervention Drug Name", "InterventionDrugName",  "LO", "1" },
+        { 0x0018, 0x0035,
+          "Intervention Drug Start Time", "InterventionDrugStartTime",  "TM", "1" },
+        { 0x0018, 0x0036,
+          "Intervention Sequence", "InterventionSequence",  "SQ", "1" },
+        { 0x0018, 0x0037,
+          "Therapy Type", "TherapyType",  "CS", "1" },
+        { 0x0018, 0x0038,
+          "Intervention Status", "InterventionStatus",  "CS", "1" },
+        { 0x0018, 0x0039,
+          "Therapy Description", "TherapyDescription",  "CS", "1" },
+        { 0x0018, 0x003a,
+          "Intervention Description", "InterventionDescription",  "ST", "1" },
+        { 0x0018, 0x0040,
+          "Cine Rate", "CineRate",  "IS", "1" },
+        { 0x0018, 0x0042,
+          "Initial Cine Run State", "InitialCineRunState",  "CS", "1" },
+        { 0x0018, 0x0050,
+          "Slice Thickness", "SliceThickness",  "DS", "1" },
+        { 0x0018, 0x0060,
+          "KVP", "KVP",  "DS", "1" },
+        { 0x0018, 0x0070,
+          "Counts Accumulated", "CountsAccumulated",  "IS", "1" },
+        { 0x0018, 0x0071,
+          "Acquisition Termination Condition", "AcquisitionTerminationCondition",  "CS", "1" },
+        { 0x0018, 0x0072,
+          "Effective Duration", "EffectiveDuration",  "DS", "1" },
+        { 0x0018, 0x0073,
+          "Acquisition Start Condition", "AcquisitionStartCondition",  "CS", "1" },
+        { 0x0018, 0x0074,
+          "Acquisition Start Condition Data", "AcquisitionStartConditionData",  "IS", "1" },
+        { 0x0018, 0x0075,
+          "Acquisition Termination Condition Data", "AcquisitionTerminationConditionData",  "IS", "1" },
+        { 0x0018, 0x0080,
+          "Repetition Time", "RepetitionTime",  "DS", "1" },
+        { 0x0018, 0x0081,
+          "Echo Time", "EchoTime",  "DS", "1" },
+        { 0x0018, 0x0082,
+          "Inversion Time", "InversionTime",  "DS", "1" },
+        { 0x0018, 0x0083,
+          "Number of Averages", "NumberOfAverages",  "DS", "1" },
+        { 0x0018, 0x0084,
+          "Imaging Frequency", "ImagingFrequency",  "DS", "1" },
+        { 0x0018, 0x0085,
+          "Imaged Nucleus", "ImagedNucleus",  "SH", "1" },
+        { 0x0018, 0x0086,
+          "Echo Number(s)", "EchoNumbers",  "IS", "1-n" },
+        { 0x0018, 0x0087,
+          "Magnetic Field Strength", "MagneticFieldStrength",  "DS", "1" },
+        { 0x0018, 0x0088,
+          "Spacing Between Slices", "SpacingBetweenSlices",  "DS", "1" },
+        { 0x0018, 0x0089,
+          "Number of Phase Encoding Steps", "NumberOfPhaseEncodingSteps",  "IS", "1" },
+        { 0x0018, 0x0090,
+          "Data Collection Diameter", "DataCollectionDiameter",  "DS", "1" },
+        { 0x0018, 0x0091,
+          "Echo Train Length", "EchoTrainLength",  "IS", "1" },
+        { 0x0018, 0x0093,
+          "Percent Sampling", "PercentSampling",  "DS", "1" },
+        { 0x0018, 0x0094,
+          "Percent Phase Field of View", "PercentPhaseFieldOfView",  "DS", "1" },
+        { 0x0018, 0x0095,
+          "Pixel Bandwidth", "PixelBandwidth",  "DS", "1" },
+        { 0x0018, 0x1000,
+          "Device Serial Number", "DeviceSerialNumber",  "LO", "1" },
+        { 0x0018, 0x1002,
+          "Device UID", "DeviceUID",  "UI", "1" },
+        { 0x0018, 0x1003,
+          "Device ID", "DeviceID",  "LO", "1" },
+        { 0x0018, 0x1004,
+          "Plate ID", "PlateID",  "LO", "1" },
+        { 0x0018, 0x1005,
+          "Generator ID", "GeneratorID",  "LO", "1" },
+        { 0x0018, 0x1006,
+          "Grid ID", "GridID",  "LO", "1" },
+        { 0x0018, 0x1007,
+          "Cassette ID", "CassetteID",  "LO", "1" },
+        { 0x0018, 0x1008,
+          "Gantry ID", "GantryID",  "LO", "1" },
+        { 0x0018, 0x1010,
+          "Secondary Capture Device ID", "SecondaryCaptureDeviceID",  "LO", "1" },
+        { 0x0018, 0x1011,
+          "Hardcopy Creation Device ID", "HardcopyCreationDeviceID",  "LO", "1" },
+        { 0x0018, 0x1012,
+          "Date of Secondary Capture", "DateOfSecondaryCapture",  "DA", "1" },
+        { 0x0018, 0x1014,
+          "Time of Secondary Capture", "TimeOfSecondaryCapture",  "TM", "1" },
+        { 0x0018, 0x1016,
+          "Secondary Capture Device Manufacturer", "SecondaryCaptureDeviceManufacturer",  "LO", "1" },
+        { 0x0018, 0x1017,
+          "Hardcopy Device Manufacturer", "HardcopyDeviceManufacturer",  "LO", "1" },
+        { 0x0018, 0x1018,
+          "Secondary Capture Device Manufacturer's Model Name", "SecondaryCaptureDeviceManufacturerModelName",  "LO", "1" },
+        { 0x0018, 0x1019,
+          "Secondary Capture Device Software Versions", "SecondaryCaptureDeviceSoftwareVersions",  "LO", "1-n" },
+        { 0x0018, 0x101a,
+          "Hardcopy Device Software Version", "HardcopyDeviceSoftwareVersion",  "LO", "1-n" },
+        { 0x0018, 0x101b,
+          "Hardcopy Device Manufacturer's Model Name", "HardcopyDeviceManufacturerModelName",  "LO", "1" },
+        { 0x0018, 0x1020,
+          "Software Version(s)", "SoftwareVersions",  "LO", "1-n" },
+        { 0x0018, 0x1022,
+          "Video Image Format Acquired", "VideoImageFormatAcquired",  "SH", "1" },
+        { 0x0018, 0x1023,
+          "Digital Image Format Acquired", "DigitalImageFormatAcquired",  "LO", "1" },
+        { 0x0018, 0x1030,
+          "Protocol Name", "ProtocolName",  "LO", "1" },
+        { 0x0018, 0x1040,
+          "Contrast/Bolus Route", "ContrastBolusRoute",  "LO", "1" },
+        { 0x0018, 0x1041,
+          "Contrast/Bolus Volume", "ContrastBolusVolume",  "DS", "1" },
+        { 0x0018, 0x1042,
+          "Contrast/Bolus Start Time", "ContrastBolusStartTime",  "TM", "1" },
+        { 0x0018, 0x1043,
+          "Contrast/Bolus Stop Time", "ContrastBolusStopTime",  "TM", "1" },
+        { 0x0018, 0x1044,
+          "Contrast/Bolus Total Dose", "ContrastBolusTotalDose",  "DS", "1" },
+        { 0x0018, 0x1045,
+          "Syringe Counts", "SyringeCounts",  "IS", "1" },
+        { 0x0018, 0x1046,
+          "Contrast Flow Rate", "ContrastFlowRate",  "DS", "1-n" },
+        { 0x0018, 0x1047,
+          "Contrast Flow Duration", "ContrastFlowDuration",  "DS", "1-n" },
+        { 0x0018, 0x1048,
+          "Contrast/Bolus Ingredient", "ContrastBolusIngredient",  "CS", "1" },
+        { 0x0018, 0x1049,
+          "Contrast/Bolus Ingredient Concentration", "ContrastBolusIngredientConcentration",  "DS", "1" },
+        { 0x0018, 0x1050,
+          "Spatial Resolution", "SpatialResolution",  "DS", "1" },
+        { 0x0018, 0x1060,
+          "Trigger Time", "TriggerTime",  "DS", "1" },
+        { 0x0018, 0x1061,
+          "Trigger Source or Type", "TriggerSourceOrType",  "LO", "1" },
+        { 0x0018, 0x1062,
+          "Nominal Interval", "NominalInterval",  "IS", "1" },
+        { 0x0018, 0x1063,
+          "Frame Time", "FrameTime",  "DS", "1" },
+        { 0x0018, 0x1064,
+          "Cardiac Framing Type", "CardiacFramingType",  "LO", "1" },
+        { 0x0018, 0x1065,
+          "Frame Time Vector", "FrameTimeVector",  "DS", "1-n" },
+        { 0x0018, 0x1066,
+          "Frame Delay", "FrameDelay",  "DS", "1" },
+        { 0x0018, 0x1067,
+          "Image Trigger Delay", "ImageTriggerDelay",  "DS", "1" },
+        { 0x0018, 0x1068,
+          "Multiplex Group Time Offset", "MultiplexGroupTimeOffset",  "DS", "1" },
+        { 0x0018, 0x1069,
+          "Trigger Time Offset", "TriggerTimeOffset",  "DS", "1" },
+        { 0x0018, 0x106a,
+          "Synchronization Trigger", "SynchronizationTrigger",  "CS", "1" },
+        { 0x0018, 0x106c,
+          "Synchronization Channel", "SynchronizationChannel",  "US", "2" },
+        { 0x0018, 0x106e,
+          "Trigger Sample Position", "TriggerSamplePosition",  "UL", "1" },
+        { 0x0018, 0x1070,
+          "Radiopharmaceutical Route", "RadiopharmaceuticalRoute",  "LO", "1" },
+        { 0x0018, 0x1071,
+          "Radiopharmaceutical Volume", "RadiopharmaceuticalVolume",  "DS", "1" },
+        { 0x0018, 0x1072,
+          "Radiopharmaceutical Start Time", "RadiopharmaceuticalStartTime",  "TM", "1" },
+        { 0x0018, 0x1073,
+          "Radiopharmaceutical Stop Time", "RadiopharmaceuticalStopTime",  "TM", "1" },
+        { 0x0018, 0x1074,
+          "Radionuclide Total Dose", "RadionuclideTotalDose",  "DS", "1" },
+        { 0x0018, 0x1075,
+          "Radionuclide Half Life", "RadionuclideHalfLife",  "DS", "1" },
+        { 0x0018, 0x1076,
+          "Radionuclide Positron Fraction", "RadionuclidePositronFraction",  "DS", "1" },
+        { 0x0018, 0x1077,
+          "Radiopharmaceutical Specific Activity", "RadiopharmaceuticalSpecificActivity",  "DS", "1" },
+        { 0x0018, 0x1078,
+          "Radiopharmaceutical Start DateTime", "RadiopharmaceuticalStartDateTime",  "DT", "1" },
+        { 0x0018, 0x1079,
+          "Radiopharmaceutical Stop DateTime", "RadiopharmaceuticalStopDateTime",  "DT", "1" },
+        { 0x0018, 0x1080,
+          "Beat Rejection Flag", "BeatRejectionFlag",  "CS", "1" },
+        { 0x0018, 0x1081,
+          "Low R-R Value", "LowRRValue",  "IS", "1" },
+        { 0x0018, 0x1082,
+          "High R-R Value", "HighRRValue",  "IS", "1" },
+        { 0x0018, 0x1083,
+          "Intervals Acquired", "IntervalsAcquired",  "IS", "1" },
+        { 0x0018, 0x1084,
+          "Intervals Rejected", "IntervalsRejected",  "IS", "1" },
+        { 0x0018, 0x1085,
+          "PVC Rejection", "PVCRejection",  "LO", "1" },
+        { 0x0018, 0x1086,
+          "Skip Beats", "SkipBeats",  "IS", "1" },
+        { 0x0018, 0x1088,
+          "Heart Rate", "HeartRate",  "IS", "1" },
+        { 0x0018, 0x1090,
+          "Cardiac Number of Images", "CardiacNumberOfImages",  "IS", "1" },
+        { 0x0018, 0x1094,
+          "Trigger Window", "TriggerWindow",  "IS", "1" },
+        { 0x0018, 0x1100,
+          "Reconstruction Diameter", "ReconstructionDiameter",  "DS", "1" },
+        { 0x0018, 0x1110,
+          "Distance Source to Detector", "DistanceSourceToDetector",  "DS", "1" },
+        { 0x0018, 0x1111,
+          "Distance Source to Patient", "DistanceSourceToPatient",  "DS", "1" },
+        { 0x0018, 0x1114,
+          "Estimated Radiographic Magnification Factor", "EstimatedRadiographicMagnificationFactor",  "DS", "1" },
+        { 0x0018, 0x1120,
+          "Gantry/Detector Tilt", "GantryDetectorTilt",  "DS", "1" },
+        { 0x0018, 0x1121,
+          "Gantry/Detector Slew", "GantryDetectorSlew",  "DS", "1" },
+        { 0x0018, 0x1130,
+          "Table Height", "TableHeight",  "DS", "1" },
+        { 0x0018, 0x1131,
+          "Table Traverse", "TableTraverse",  "DS", "1" },
+        { 0x0018, 0x1134,
+          "Table Motion", "TableMotion",  "CS", "1" },
+        { 0x0018, 0x1135,
+          "Table Vertical Increment", "TableVerticalIncrement",  "DS", "1-n" },
+        { 0x0018, 0x1136,
+          "Table Lateral Increment", "TableLateralIncrement",  "DS", "1-n" },
+        { 0x0018, 0x1137,
+          "Table Longitudinal Increment", "TableLongitudinalIncrement",  "DS", "1-n" },
+        { 0x0018, 0x1138,
+          "Table Angle", "TableAngle",  "DS", "1" },
+        { 0x0018, 0x113a,
+          "Table Type", "TableType",  "CS", "1" },
+        { 0x0018, 0x1140,
+          "Rotation Direction", "RotationDirection",  "CS", "1" },
+        { 0x0018, 0x1141,
+          "Angular Position", "AngularPosition",  "DS", "1" },
+        { 0x0018, 0x1142,
+          "Radial Position", "RadialPosition",  "DS", "1-n" },
+        { 0x0018, 0x1143,
+          "Scan Arc", "ScanArc",  "DS", "1" },
+        { 0x0018, 0x1144,
+          "Angular Step", "AngularStep",  "DS", "1" },
+        { 0x0018, 0x1145,
+          "Center of Rotation Offset", "CenterOfRotationOffset",  "DS", "1" },
+        { 0x0018, 0x1146,
+          "Rotation Offset", "RotationOffset",  "DS", "1-n" },
+        { 0x0018, 0x1147,
+          "Field of View Shape", "FieldOfViewShape",  "CS", "1" },
+        { 0x0018, 0x1149,
+          "Field of View Dimension(s)", "FieldOfViewDimensions",  "IS", "1-2" },
+        { 0x0018, 0x1150,
+          "Exposure Time", "ExposureTime",  "IS", "1" },
+        { 0x0018, 0x1151,
+          "X-Ray Tube Current", "XRayTubeCurrent",  "IS", "1" },
+        { 0x0018, 0x1152,
+          "Exposure", "Exposure",  "IS", "1" },
+        { 0x0018, 0x1153,
+          "Exposure in uAs", "ExposureInuAs",  "IS", "1" },
+        { 0x0018, 0x1154,
+          "Average Pulse Width", "AveragePulseWidth",  "DS", "1" },
+        { 0x0018, 0x1155,
+          "Radiation Setting", "RadiationSetting",  "CS", "1" },
+        { 0x0018, 0x1156,
+          "Rectification Type", "RectificationType",  "CS", "1" },
+        { 0x0018, 0x115a,
+          "Radiation Mode", "RadiationMode",  "CS", "1" },
+        { 0x0018, 0x115e,
+          "Image and Fluoroscopy Area Dose Product", "ImageAndFluoroscopyAreaDoseProduct",  "DS", "1" },
+        { 0x0018, 0x1160,
+          "Filter Type", "FilterType",  "SH", "1" },
+        { 0x0018, 0x1161,
+          "Type of Filters", "TypeOfFilters",  "LO", "1-n" },
+        { 0x0018, 0x1162,
+          "Intensifier Size", "IntensifierSize",  "DS", "1" },
+        { 0x0018, 0x1164,
+          "Imager Pixel Spacing", "ImagerPixelSpacing",  "DS", "2" },
+        { 0x0018, 0x1166,
+          "Grid", "Grid",  "CS", "1-n" },
+        { 0x0018, 0x1170,
+          "Generator Power", "GeneratorPower",  "IS", "1" },
+        { 0x0018, 0x1180,
+          "Collimator/grid Name", "CollimatorGridName",  "SH", "1" },
+        { 0x0018, 0x1181,
+          "Collimator Type", "CollimatorType",  "CS", "1" },
+        { 0x0018, 0x1182,
+          "Focal Distance", "FocalDistance",  "IS", "1-2" },
+        { 0x0018, 0x1183,
+          "X Focus Center", "XFocusCenter",  "DS", "1-2" },
+        { 0x0018, 0x1184,
+          "Y Focus Center", "YFocusCenter",  "DS", "1-2" },
+        { 0x0018, 0x1190,
+          "Focal Spot(s)", "FocalSpots",  "DS", "1-n" },
+        { 0x0018, 0x1191,
+          "Anode Target Material", "AnodeTargetMaterial",  "CS", "1" },
+        { 0x0018, 0x11a0,
+          "Body Part Thickness", "BodyPartThickness",  "DS", "1" },
+        { 0x0018, 0x11a2,
+          "Compression Force", "CompressionForce",  "DS", "1" },
+        { 0x0018, 0x11a4,
+          "Paddle Description", "PaddleDescription",  "LO", "1" },
+        { 0x0018, 0x1200,
+          "Date of Last Calibration", "DateOfLastCalibration",  "DA", "1-n" },
+        { 0x0018, 0x1201,
+          "Time of Last Calibration", "TimeOfLastCalibration",  "TM", "1-n" },
+        { 0x0018, 0x1202,
+          "DateTime of Last Calibration", "DateTimeOfLastCalibration",  "DT", "1" },
+        { 0x0018, 0x1210,
+          "Convolution Kernel", "ConvolutionKernel",  "SH", "1-n" },
+        { 0x0018, 0x1240,
+          "Upper/Lower Pixel Values", "UpperLowerPixelValues",  "IS", "1-n" },
+        { 0x0018, 0x1242,
+          "Actual Frame Duration", "ActualFrameDuration",  "IS", "1" },
+        { 0x0018, 0x1243,
+          "Count Rate", "CountRate",  "IS", "1" },
+        { 0x0018, 0x1244,
+          "Preferred Playback Sequencing", "PreferredPlaybackSequencing",  "US", "1" },
+        { 0x0018, 0x1250,
+          "Receive Coil Name", "ReceiveCoilName",  "SH", "1" },
+        { 0x0018, 0x1251,
+          "Transmit Coil Name", "TransmitCoilName",  "SH", "1" },
+        { 0x0018, 0x1260,
+          "Plate Type", "PlateType",  "SH", "1" },
+        { 0x0018, 0x1261,
+          "Phosphor Type", "PhosphorType",  "LO", "1" },
+        { 0x0018, 0x1300,
+          "Scan Velocity", "ScanVelocity",  "DS", "1" },
+        { 0x0018, 0x1301,
+          "Whole Body Technique", "WholeBodyTechnique",  "CS", "1-n" },
+        { 0x0018, 0x1302,
+          "Scan Length", "ScanLength",  "IS", "1" },
+        { 0x0018, 0x1310,
+          "Acquisition Matrix", "AcquisitionMatrix",  "US", "4" },
+        { 0x0018, 0x1312,
+          "In-plane Phase Encoding Direction", "InPlanePhaseEncodingDirection",  "CS", "1" },
+        { 0x0018, 0x1314,
+          "Flip Angle", "FlipAngle",  "DS", "1" },
+        { 0x0018, 0x1315,
+          "Variable Flip Angle Flag", "VariableFlipAngleFlag",  "CS", "1" },
+        { 0x0018, 0x1316,
+          "SAR", "SAR",  "DS", "1" },
+        { 0x0018, 0x1318,
+          "dB/dt", "dBdt",  "DS", "1" },
+        { 0x0018, 0x1400,
+          "Acquisition Device Processing Description", "AcquisitionDeviceProcessingDescription",  "LO", "1" },
+        { 0x0018, 0x1401,
+          "Acquisition Device Processing Code", "AcquisitionDeviceProcessingCode",  "LO", "1" },
+        { 0x0018, 0x1402,
+          "Cassette Orientation", "CassetteOrientation",  "CS", "1" },
+        { 0x0018, 0x1403,
+          "Cassette Size", "CassetteSize",  "CS", "1" },
+        { 0x0018, 0x1404,
+          "Exposures on Plate", "ExposuresOnPlate",  "US", "1" },
+        { 0x0018, 0x1405,
+          "Relative X-Ray Exposure", "RelativeXRayExposure",  "IS", "1" },
+        { 0x0018, 0x1411,
+          "Exposure Index", "ExposureIndex",  "DS", "1" },
+        { 0x0018, 0x1412,
+          "Target Exposure Index", "TargetExposureIndex",  "DS", "1" },
+        { 0x0018, 0x1413,
+          "Deviation Index", "DeviationIndex",  "DS", "1" },
+        { 0x0018, 0x1450,
+          "Column Angulation", "ColumnAngulation",  "DS", "1" },
+        { 0x0018, 0x1460,
+          "Tomo Layer Height", "TomoLayerHeight",  "DS", "1" },
+        { 0x0018, 0x1470,
+          "Tomo Angle", "TomoAngle",  "DS", "1" },
+        { 0x0018, 0x1480,
+          "Tomo Time", "TomoTime",  "DS", "1" },
+        { 0x0018, 0x1490,
+          "Tomo Type", "TomoType",  "CS", "1" },
+        { 0x0018, 0x1491,
+          "Tomo Class", "TomoClass",  "CS", "1" },
+        { 0x0018, 0x1495,
+          "Number of Tomosynthesis Source Images", "NumberOfTomosynthesisSourceImages",  "IS", "1" },
+        { 0x0018, 0x1500,
+          "Positioner Motion", "PositionerMotion",  "CS", "1" },
+        { 0x0018, 0x1508,
+          "Positioner Type", "PositionerType",  "CS", "1" },
+        { 0x0018, 0x1510,
+          "Positioner Primary Angle", "PositionerPrimaryAngle",  "DS", "1" },
+        { 0x0018, 0x1511,
+          "Positioner Secondary Angle", "PositionerSecondaryAngle",  "DS", "1" },
+        { 0x0018, 0x1520,
+          "Positioner Primary Angle Increment", "PositionerPrimaryAngleIncrement",  "DS", "1-n" },
+        { 0x0018, 0x1521,
+          "Positioner Secondary Angle Increment", "PositionerSecondaryAngleIncrement",  "DS", "1-n" },
+        { 0x0018, 0x1530,
+          "Detector Primary Angle", "DetectorPrimaryAngle",  "DS", "1" },
+        { 0x0018, 0x1531,
+          "Detector Secondary Angle", "DetectorSecondaryAngle",  "DS", "1" },
+        { 0x0018, 0x1600,
+          "Shutter Shape", "ShutterShape",  "CS", "1-3" },
+        { 0x0018, 0x1602,
+          "Shutter Left Vertical Edge", "ShutterLeftVerticalEdge",  "IS", "1" },
+        { 0x0018, 0x1604,
+          "Shutter Right Vertical Edge", "ShutterRightVerticalEdge",  "IS", "1" },
+        { 0x0018, 0x1606,
+          "Shutter Upper Horizontal Edge", "ShutterUpperHorizontalEdge",  "IS", "1" },
+        { 0x0018, 0x1608,
+          "Shutter Lower Horizontal Edge", "ShutterLowerHorizontalEdge",  "IS", "1" },
+        { 0x0018, 0x1610,
+          "Center of Circular Shutter", "CenterOfCircularShutter",  "IS", "2" },
+        { 0x0018, 0x1612,
+          "Radius of Circular Shutter", "RadiusOfCircularShutter",  "IS", "1" },
+        { 0x0018, 0x1620,
+          "Vertices of the Polygonal Shutter", "VerticesOfThePolygonalShutter",  "IS", "2-2n" },
+        { 0x0018, 0x1622,
+          "Shutter Presentation Value", "ShutterPresentationValue",  "US", "1" },
+        { 0x0018, 0x1623,
+          "Shutter Overlay Group", "ShutterOverlayGroup",  "US", "1" },
+        { 0x0018, 0x1624,
+          "Shutter Presentation Color CIELab Value", "ShutterPresentationColorCIELabValue",  "US", "3" },
+        { 0x0018, 0x1700,
+          "Collimator Shape", "CollimatorShape",  "CS", "1-3" },
+        { 0x0018, 0x1702,
+          "Collimator Left Vertical Edge", "CollimatorLeftVerticalEdge",  "IS", "1" },
+        { 0x0018, 0x1704,
+          "Collimator Right Vertical Edge", "CollimatorRightVerticalEdge",  "IS", "1" },
+        { 0x0018, 0x1706,
+          "Collimator Upper Horizontal Edge", "CollimatorUpperHorizontalEdge",  "IS", "1" },
+        { 0x0018, 0x1708,
+          "Collimator Lower Horizontal Edge", "CollimatorLowerHorizontalEdge",  "IS", "1" },
+        { 0x0018, 0x1710,
+          "Center of Circular Collimator", "CenterOfCircularCollimator",  "IS", "2" },
+        { 0x0018, 0x1712,
+          "Radius of Circular Collimator", "RadiusOfCircularCollimator",  "IS", "1" },
+        { 0x0018, 0x1720,
+          "Vertices of the Polygonal Collimator", "VerticesOfThePolygonalCollimator",  "IS", "2-2n" },
+        { 0x0018, 0x1800,
+          "Acquisition Time Synchronized", "AcquisitionTimeSynchronized",  "CS", "1" },
+        { 0x0018, 0x1801,
+          "Time Source", "TimeSource",  "SH", "1" },
+        { 0x0018, 0x1802,
+          "Time Distribution Protocol", "TimeDistributionProtocol",  "CS", "1" },
+        { 0x0018, 0x1803,
+          "NTP Source Address", "NTPSourceAddress",  "LO", "1" },
+        { 0x0018, 0x2001,
+          "Page Number Vector", "PageNumberVector",  "IS", "1-n" },
+        { 0x0018, 0x2002,
+          "Frame Label Vector", "FrameLabelVector",  "SH", "1-n" },
+        { 0x0018, 0x2003,
+          "Frame Primary Angle Vector", "FramePrimaryAngleVector",  "DS", "1-n" },
+        { 0x0018, 0x2004,
+          "Frame Secondary Angle Vector", "FrameSecondaryAngleVector",  "DS", "1-n" },
+        { 0x0018, 0x2005,
+          "Slice Location Vector", "SliceLocationVector",  "DS", "1-n" },
+        { 0x0018, 0x2006,
+          "Display Window Label Vector", "DisplayWindowLabelVector",  "SH", "1-n" },
+        { 0x0018, 0x2010,
+          "Nominal Scanned Pixel Spacing", "NominalScannedPixelSpacing",  "DS", "2" },
+        { 0x0018, 0x2020,
+          "Digitizing Device Transport Direction", "DigitizingDeviceTransportDirection",  "CS", "1" },
+        { 0x0018, 0x2030,
+          "Rotation of Scanned Film", "RotationOfScannedFilm",  "DS", "1" },
+        { 0x0018, 0x2041,
+          "Biopsy Target Sequence", "BiopsyTargetSequence",  "SQ", "1" },
+        { 0x0018, 0x2042,
+          "Target UID", "TargetUID",  "UI", "1" },
+        { 0x0018, 0x2043,
+          "Localizing Cursor Position", "LocalizingCursorPosition",  "FL", "2" },
+        { 0x0018, 0x2044,
+          "Calculated Target Position", "CalculatedTargetPosition",  "FL", "3" },
+        { 0x0018, 0x2045,
+          "Target Label", "TargetLabel",  "SH", "1" },
+        { 0x0018, 0x2046,
+          "Displayed Z Value", "DisplayedZValue",  "FL", "1" },
+        { 0x0018, 0x3100,
+          "IVUS Acquisition", "IVUSAcquisition",  "CS", "1" },
+        { 0x0018, 0x3101,
+          "IVUS Pullback Rate", "IVUSPullbackRate",  "DS", "1" },
+        { 0x0018, 0x3102,
+          "IVUS Gated Rate", "IVUSGatedRate",  "DS", "1" },
+        { 0x0018, 0x3103,
+          "IVUS Pullback Start Frame Number", "IVUSPullbackStartFrameNumber",  "IS", "1" },
+        { 0x0018, 0x3104,
+          "IVUS Pullback Stop Frame Number", "IVUSPullbackStopFrameNumber",  "IS", "1" },
+        { 0x0018, 0x3105,
+          "Lesion Number", "LesionNumber",  "IS", "1-n" },
+        { 0x0018, 0x4000,
+          "Acquisition Comments", "AcquisitionComments",  "LT", "1" },
+        { 0x0018, 0x5000,
+          "Output Power", "OutputPower",  "SH", "1-n" },
+        { 0x0018, 0x5010,
+          "Transducer Data", "TransducerData",  "LO", "1-n" },
+        { 0x0018, 0x5012,
+          "Focus Depth", "FocusDepth",  "DS", "1" },
+        { 0x0018, 0x5020,
+          "Processing Function", "ProcessingFunction",  "LO", "1" },
+        { 0x0018, 0x5021,
+          "Postprocessing Function", "PostprocessingFunction",  "LO", "1" },
+        { 0x0018, 0x5022,
+          "Mechanical Index", "MechanicalIndex",  "DS", "1" },
+        { 0x0018, 0x5024,
+          "Bone Thermal Index", "BoneThermalIndex",  "DS", "1" },
+        { 0x0018, 0x5026,
+          "Cranial Thermal Index", "CranialThermalIndex",  "DS", "1" },
+        { 0x0018, 0x5027,
+          "Soft Tissue Thermal Index", "SoftTissueThermalIndex",  "DS", "1" },
+        { 0x0018, 0x5028,
+          "Soft Tissue-focus Thermal Index", "SoftTissueFocusThermalIndex",  "DS", "1" },
+        { 0x0018, 0x5029,
+          "Soft Tissue-surface Thermal Index", "SoftTissueSurfaceThermalIndex",  "DS", "1" },
+        { 0x0018, 0x5030,
+          "Dynamic Range", "DynamicRange",  "DS", "1" },
+        { 0x0018, 0x5040,
+          "Total Gain", "TotalGain",  "DS", "1" },
+        { 0x0018, 0x5050,
+          "Depth of Scan Field", "DepthOfScanField",  "IS", "1" },
+        { 0x0018, 0x5100,
+          "Patient Position", "PatientPosition",  "CS", "1" },
+        { 0x0018, 0x5101,
+          "View Position", "ViewPosition",  "CS", "1" },
+        { 0x0018, 0x5104,
+          "Projection Eponymous Name Code Sequence", "ProjectionEponymousNameCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x5210,
+          "Image Transformation Matrix", "ImageTransformationMatrix",  "DS", "6" },
+        { 0x0018, 0x5212,
+          "Image Translation Vector", "ImageTranslationVector",  "DS", "3" },
+        { 0x0018, 0x6000,
+          "Sensitivity", "Sensitivity",  "DS", "1" },
+        { 0x0018, 0x6011,
+          "Sequence of Ultrasound Regions", "SequenceOfUltrasoundRegions",  "SQ", "1" },
+        { 0x0018, 0x6012,
+          "Region Spatial Format", "RegionSpatialFormat",  "US", "1" },
+        { 0x0018, 0x6014,
+          "Region Data Type", "RegionDataType",  "US", "1" },
+        { 0x0018, 0x6016,
+          "Region Flags", "RegionFlags",  "UL", "1" },
+        { 0x0018, 0x6018,
+          "Region Location Min X0", "RegionLocationMinX0",  "UL", "1" },
+        { 0x0018, 0x601a,
+          "Region Location Min Y0", "RegionLocationMinY0",  "UL", "1" },
+        { 0x0018, 0x601c,
+          "Region Location Max X1", "RegionLocationMaxX1",  "UL", "1" },
+        { 0x0018, 0x601e,
+          "Region Location Max Y1", "RegionLocationMaxY1",  "UL", "1" },
+        { 0x0018, 0x6020,
+          "Reference Pixel X0", "ReferencePixelX0",  "SL", "1" },
+        { 0x0018, 0x6022,
+          "Reference Pixel Y0", "ReferencePixelY0",  "SL", "1" },
+        { 0x0018, 0x6024,
+          "Physical Units X Direction", "PhysicalUnitsXDirection",  "US", "1" },
+        { 0x0018, 0x6026,
+          "Physical Units Y Direction", "PhysicalUnitsYDirection",  "US", "1" },
+        { 0x0018, 0x6028,
+          "Reference Pixel Physical Value X", "ReferencePixelPhysicalValueX",  "FD", "1" },
+        { 0x0018, 0x602a,
+          "Reference Pixel Physical Value Y", "ReferencePixelPhysicalValueY",  "FD", "1" },
+        { 0x0018, 0x602c,
+          "Physical Delta X", "PhysicalDeltaX",  "FD", "1" },
+        { 0x0018, 0x602e,
+          "Physical Delta Y", "PhysicalDeltaY",  "FD", "1" },
+        { 0x0018, 0x6030,
+          "Transducer Frequency", "TransducerFrequency",  "UL", "1" },
+        { 0x0018, 0x6031,
+          "Transducer Type", "TransducerType",  "CS", "1" },
+        { 0x0018, 0x6032,
+          "Pulse Repetition Frequency", "PulseRepetitionFrequency",  "UL", "1" },
+        { 0x0018, 0x6034,
+          "Doppler Correction Angle", "DopplerCorrectionAngle",  "FD", "1" },
+        { 0x0018, 0x6036,
+          "Steering Angle", "SteeringAngle",  "FD", "1" },
+        { 0x0018, 0x6038,
+          "Doppler Sample Volume X Position (Retired)", "DopplerSampleVolumeXPositionRetired",  "UL", "1" },
+        { 0x0018, 0x6039,
+          "Doppler Sample Volume X Position", "DopplerSampleVolumeXPosition",  "SL", "1" },
+        { 0x0018, 0x603a,
+          "Doppler Sample Volume Y Position (Retired)", "DopplerSampleVolumeYPositionRetired",  "UL", "1" },
+        { 0x0018, 0x603b,
+          "Doppler Sample Volume Y Position", "DopplerSampleVolumeYPosition",  "SL", "1" },
+        { 0x0018, 0x603c,
+          "TM-Line Position X0 (Retired)", "TMLinePositionX0Retired",  "UL", "1" },
+        { 0x0018, 0x603d,
+          "TM-Line Position X0", "TMLinePositionX0",  "SL", "1" },
+        { 0x0018, 0x603e,
+          "TM-Line Position Y0 (Retired)", "TMLinePositionY0Retired",  "UL", "1" },
+        { 0x0018, 0x603f,
+          "TM-Line Position Y0", "TMLinePositionY0",  "SL", "1" },
+        { 0x0018, 0x6040,
+          "TM-Line Position X1 (Retired)", "TMLinePositionX1Retired",  "UL", "1" },
+        { 0x0018, 0x6041,
+          "TM-Line Position X1", "TMLinePositionX1",  "SL", "1" },
+        { 0x0018, 0x6042,
+          "TM-Line Position Y1 (Retired)", "TMLinePositionY1Retired",  "UL", "1" },
+        { 0x0018, 0x6043,
+          "TM-Line Position Y1", "TMLinePositionY1",  "SL", "1" },
+        { 0x0018, 0x6044,
+          "Pixel Component Organization", "PixelComponentOrganization",  "US", "1" },
+        { 0x0018, 0x6046,
+          "Pixel Component Mask", "PixelComponentMask",  "UL", "1" },
+        { 0x0018, 0x6048,
+          "Pixel Component Range Start", "PixelComponentRangeStart",  "UL", "1" },
+        { 0x0018, 0x604a,
+          "Pixel Component Range Stop", "PixelComponentRangeStop",  "UL", "1" },
+        { 0x0018, 0x604c,
+          "Pixel Component Physical Units", "PixelComponentPhysicalUnits",  "US", "1" },
+        { 0x0018, 0x604e,
+          "Pixel Component Data Type", "PixelComponentDataType",  "US", "1" },
+        { 0x0018, 0x6050,
+          "Number of Table Break Points", "NumberOfTableBreakPoints",  "UL", "1" },
+        { 0x0018, 0x6052,
+          "Table of X Break Points", "TableOfXBreakPoints",  "UL", "1-n" },
+        { 0x0018, 0x6054,
+          "Table of Y Break Points", "TableOfYBreakPoints",  "FD", "1-n" },
+        { 0x0018, 0x6056,
+          "Number of Table Entries", "NumberOfTableEntries",  "UL", "1" },
+        { 0x0018, 0x6058,
+          "Table of Pixel Values", "TableOfPixelValues",  "UL", "1-n" },
+        { 0x0018, 0x605a,
+          "Table of Parameter Values", "TableOfParameterValues",  "FL", "1-n" },
+        { 0x0018, 0x6060,
+          "R Wave Time Vector", "RWaveTimeVector",  "FL", "1-n" },
+        { 0x0018, 0x7000,
+          "Detector Conditions Nominal Flag", "DetectorConditionsNominalFlag",  "CS", "1" },
+        { 0x0018, 0x7001,
+          "Detector Temperature", "DetectorTemperature",  "DS", "1" },
+        { 0x0018, 0x7004,
+          "Detector Type", "DetectorType",  "CS", "1" },
+        { 0x0018, 0x7005,
+          "Detector Configuration", "DetectorConfiguration",  "CS", "1" },
+        { 0x0018, 0x7006,
+          "Detector Description", "DetectorDescription",  "LT", "1" },
+        { 0x0018, 0x7008,
+          "Detector Mode", "DetectorMode",  "LT", "1" },
+        { 0x0018, 0x700a,
+          "Detector ID", "DetectorID",  "SH", "1" },
+        { 0x0018, 0x700c,
+          "Date of Last Detector Calibration", "DateOfLastDetectorCalibration",  "DA", "1" },
+        { 0x0018, 0x700e,
+          "Time of Last Detector Calibration", "TimeOfLastDetectorCalibration",  "TM", "1" },
+        { 0x0018, 0x7010,
+          "Exposures on Detector Since Last Calibration", "ExposuresOnDetectorSinceLastCalibration",  "IS", "1" },
+        { 0x0018, 0x7011,
+          "Exposures on Detector Since Manufactured", "ExposuresOnDetectorSinceManufactured",  "IS", "1" },
+        { 0x0018, 0x7012,
+          "Detector Time Since Last Exposure", "DetectorTimeSinceLastExposure",  "DS", "1" },
+        { 0x0018, 0x7014,
+          "Detector Active Time", "DetectorActiveTime",  "DS", "1" },
+        { 0x0018, 0x7016,
+          "Detector Activation Offset From Exposure", "DetectorActivationOffsetFromExposure",  "DS", "1" },
+        { 0x0018, 0x701a,
+          "Detector Binning", "DetectorBinning",  "DS", "2" },
+        { 0x0018, 0x7020,
+          "Detector Element Physical Size", "DetectorElementPhysicalSize",  "DS", "2" },
+        { 0x0018, 0x7022,
+          "Detector Element Spacing", "DetectorElementSpacing",  "DS", "2" },
+        { 0x0018, 0x7024,
+          "Detector Active Shape", "DetectorActiveShape",  "CS", "1" },
+        { 0x0018, 0x7026,
+          "Detector Active Dimension(s)", "DetectorActiveDimensions",  "DS", "1-2" },
+        { 0x0018, 0x7028,
+          "Detector Active Origin", "DetectorActiveOrigin",  "DS", "2" },
+        { 0x0018, 0x702a,
+          "Detector Manufacturer Name", "DetectorManufacturerName",  "LO", "1" },
+        { 0x0018, 0x702b,
+          "Detector Manufacturer's Model Name", "DetectorManufacturerModelName",  "LO", "1" },
+        { 0x0018, 0x7030,
+          "Field of View Origin", "FieldOfViewOrigin",  "DS", "2" },
+        { 0x0018, 0x7032,
+          "Field of View Rotation", "FieldOfViewRotation",  "DS", "1" },
+        { 0x0018, 0x7034,
+          "Field of View Horizontal Flip", "FieldOfViewHorizontalFlip",  "CS", "1" },
+        { 0x0018, 0x7036,
+          "Pixel Data Area Origin Relative To FOV", "PixelDataAreaOriginRelativeToFOV",  "FL", "2" },
+        { 0x0018, 0x7038,
+          "Pixel Data Area Rotation Angle Relative To FOV", "PixelDataAreaRotationAngleRelativeToFOV",  "FL", "1" },
+        { 0x0018, 0x7040,
+          "Grid Absorbing Material", "GridAbsorbingMaterial",  "LT", "1" },
+        { 0x0018, 0x7041,
+          "Grid Spacing Material", "GridSpacingMaterial",  "LT", "1" },
+        { 0x0018, 0x7042,
+          "Grid Thickness", "GridThickness",  "DS", "1" },
+        { 0x0018, 0x7044,
+          "Grid Pitch", "GridPitch",  "DS", "1" },
+        { 0x0018, 0x7046,
+          "Grid Aspect Ratio", "GridAspectRatio",  "IS", "2" },
+        { 0x0018, 0x7048,
+          "Grid Period", "GridPeriod",  "DS", "1" },
+        { 0x0018, 0x704c,
+          "Grid Focal Distance", "GridFocalDistance",  "DS", "1" },
+        { 0x0018, 0x7050,
+          "Filter Material", "FilterMaterial",  "CS", "1-n" },
+        { 0x0018, 0x7052,
+          "Filter Thickness Minimum", "FilterThicknessMinimum",  "DS", "1-n" },
+        { 0x0018, 0x7054,
+          "Filter Thickness Maximum", "FilterThicknessMaximum",  "DS", "1-n" },
+        { 0x0018, 0x7056,
+          "Filter Beam Path Length Minimum", "FilterBeamPathLengthMinimum",  "FL", "1-n" },
+        { 0x0018, 0x7058,
+          "Filter Beam Path Length Maximum", "FilterBeamPathLengthMaximum",  "FL", "1-n" },
+        { 0x0018, 0x7060,
+          "Exposure Control Mode", "ExposureControlMode",  "CS", "1" },
+        { 0x0018, 0x7062,
+          "Exposure Control Mode Description", "ExposureControlModeDescription",  "LT", "1" },
+        { 0x0018, 0x7064,
+          "Exposure Status", "ExposureStatus",  "CS", "1" },
+        { 0x0018, 0x7065,
+          "Phototimer Setting", "PhototimerSetting",  "DS", "1" },
+        { 0x0018, 0x8150,
+          "Exposure Time in uS", "ExposureTimeInuS",  "DS", "1" },
+        { 0x0018, 0x8151,
+          "X-Ray Tube Current in uA", "XRayTubeCurrentInuA",  "DS", "1" },
+        { 0x0018, 0x9004,
+          "Content Qualification", "ContentQualification",  "CS", "1" },
+        { 0x0018, 0x9005,
+          "Pulse Sequence Name", "PulseSequenceName",  "SH", "1" },
+        { 0x0018, 0x9006,
+          "MR Imaging Modifier Sequence", "MRImagingModifierSequence",  "SQ", "1" },
+        { 0x0018, 0x9008,
+          "Echo Pulse Sequence", "EchoPulseSequence",  "CS", "1" },
+        { 0x0018, 0x9009,
+          "Inversion Recovery", "InversionRecovery",  "CS", "1" },
+        { 0x0018, 0x9010,
+          "Flow Compensation", "FlowCompensation",  "CS", "1" },
+        { 0x0018, 0x9011,
+          "Multiple Spin Echo", "MultipleSpinEcho",  "CS", "1" },
+        { 0x0018, 0x9012,
+          "Multi-planar Excitation", "MultiPlanarExcitation",  "CS", "1" },
+        { 0x0018, 0x9014,
+          "Phase Contrast", "PhaseContrast",  "CS", "1" },
+        { 0x0018, 0x9015,
+          "Time of Flight Contrast", "TimeOfFlightContrast",  "CS", "1" },
+        { 0x0018, 0x9016,
+          "Spoiling", "Spoiling",  "CS", "1" },
+        { 0x0018, 0x9017,
+          "Steady State Pulse Sequence", "SteadyStatePulseSequence",  "CS", "1" },
+        { 0x0018, 0x9018,
+          "Echo Planar Pulse Sequence", "EchoPlanarPulseSequence",  "CS", "1" },
+        { 0x0018, 0x9019,
+          "Tag Angle First Axis", "TagAngleFirstAxis",  "FD", "1" },
+        { 0x0018, 0x9020,
+          "Magnetization Transfer", "MagnetizationTransfer",  "CS", "1" },
+        { 0x0018, 0x9021,
+          "T2 Preparation", "T2Preparation",  "CS", "1" },
+        { 0x0018, 0x9022,
+          "Blood Signal Nulling", "BloodSignalNulling",  "CS", "1" },
+        { 0x0018, 0x9024,
+          "Saturation Recovery", "SaturationRecovery",  "CS", "1" },
+        { 0x0018, 0x9025,
+          "Spectrally Selected Suppression", "SpectrallySelectedSuppression",  "CS", "1" },
+        { 0x0018, 0x9026,
+          "Spectrally Selected Excitation", "SpectrallySelectedExcitation",  "CS", "1" },
+        { 0x0018, 0x9027,
+          "Spatial Pre-saturation", "SpatialPresaturation",  "CS", "1" },
+        { 0x0018, 0x9028,
+          "Tagging", "Tagging",  "CS", "1" },
+        { 0x0018, 0x9029,
+          "Oversampling Phase", "OversamplingPhase",  "CS", "1" },
+        { 0x0018, 0x9030,
+          "Tag Spacing First Dimension", "TagSpacingFirstDimension",  "FD", "1" },
+        { 0x0018, 0x9032,
+          "Geometry of k-Space Traversal", "GeometryOfKSpaceTraversal",  "CS", "1" },
+        { 0x0018, 0x9033,
+          "Segmented k-Space Traversal", "SegmentedKSpaceTraversal",  "CS", "1" },
+        { 0x0018, 0x9034,
+          "Rectilinear Phase Encode Reordering", "RectilinearPhaseEncodeReordering",  "CS", "1" },
+        { 0x0018, 0x9035,
+          "Tag Thickness", "TagThickness",  "FD", "1" },
+        { 0x0018, 0x9036,
+          "Partial Fourier Direction", "PartialFourierDirection",  "CS", "1" },
+        { 0x0018, 0x9037,
+          "Cardiac Synchronization Technique", "CardiacSynchronizationTechnique",  "CS", "1" },
+        { 0x0018, 0x9041,
+          "Receive Coil Manufacturer Name", "ReceiveCoilManufacturerName",  "LO", "1" },
+        { 0x0018, 0x9042,
+          "MR Receive Coil Sequence", "MRReceiveCoilSequence",  "SQ", "1" },
+        { 0x0018, 0x9043,
+          "Receive Coil Type", "ReceiveCoilType",  "CS", "1" },
+        { 0x0018, 0x9044,
+          "Quadrature Receive Coil", "QuadratureReceiveCoil",  "CS", "1" },
+        { 0x0018, 0x9045,
+          "Multi-Coil Definition Sequence", "MultiCoilDefinitionSequence",  "SQ", "1" },
+        { 0x0018, 0x9046,
+          "Multi-Coil Configuration", "MultiCoilConfiguration",  "LO", "1" },
+        { 0x0018, 0x9047,
+          "Multi-Coil Element Name", "MultiCoilElementName",  "SH", "1" },
+        { 0x0018, 0x9048,
+          "Multi-Coil Element Used", "MultiCoilElementUsed",  "CS", "1" },
+        { 0x0018, 0x9049,
+          "MR Transmit Coil Sequence", "MRTransmitCoilSequence",  "SQ", "1" },
+        { 0x0018, 0x9050,
+          "Transmit Coil Manufacturer Name", "TransmitCoilManufacturerName",  "LO", "1" },
+        { 0x0018, 0x9051,
+          "Transmit Coil Type", "TransmitCoilType",  "CS", "1" },
+        { 0x0018, 0x9052,
+          "Spectral Width", "SpectralWidth",  "FD", "1-2" },
+        { 0x0018, 0x9053,
+          "Chemical Shift Reference", "ChemicalShiftReference",  "FD", "1-2" },
+        { 0x0018, 0x9054,
+          "Volume Localization Technique", "VolumeLocalizationTechnique",  "CS", "1" },
+        { 0x0018, 0x9058,
+          "MR Acquisition Frequency Encoding Steps", "MRAcquisitionFrequencyEncodingSteps",  "US", "1" },
+        { 0x0018, 0x9059,
+          "De-coupling", "Decoupling",  "CS", "1" },
+        { 0x0018, 0x9060,
+          "De-coupled Nucleus", "DecoupledNucleus",  "CS", "1-2" },
+        { 0x0018, 0x9061,
+          "De-coupling Frequency", "DecouplingFrequency",  "FD", "1-2" },
+        { 0x0018, 0x9062,
+          "De-coupling Method", "DecouplingMethod",  "CS", "1" },
+        { 0x0018, 0x9063,
+          "De-coupling Chemical Shift Reference", "DecouplingChemicalShiftReference",  "FD", "1-2" },
+        { 0x0018, 0x9064,
+          "k-space Filtering", "KSpaceFiltering",  "CS", "1" },
+        { 0x0018, 0x9065,
+          "Time Domain Filtering", "TimeDomainFiltering",  "CS", "1-2" },
+        { 0x0018, 0x9066,
+          "Number of Zero Fills", "NumberOfZeroFills",  "US", "1-2" },
+        { 0x0018, 0x9067,
+          "Baseline Correction", "BaselineCorrection",  "CS", "1" },
+        { 0x0018, 0x9069,
+          "Parallel Reduction Factor In-plane", "ParallelReductionFactorInPlane",  "FD", "1" },
+        { 0x0018, 0x9070,
+          "Cardiac R-R Interval Specified", "CardiacRRIntervalSpecified",  "FD", "1" },
+        { 0x0018, 0x9073,
+          "Acquisition Duration", "AcquisitionDuration",  "FD", "1" },
+        { 0x0018, 0x9074,
+          "Frame Acquisition DateTime", "FrameAcquisitionDateTime",  "DT", "1" },
+        { 0x0018, 0x9075,
+          "Diffusion Directionality", "DiffusionDirectionality",  "CS", "1" },
+        { 0x0018, 0x9076,
+          "Diffusion Gradient Direction Sequence", "DiffusionGradientDirectionSequence",  "SQ", "1" },
+        { 0x0018, 0x9077,
+          "Parallel Acquisition", "ParallelAcquisition",  "CS", "1" },
+        { 0x0018, 0x9078,
+          "Parallel Acquisition Technique", "ParallelAcquisitionTechnique",  "CS", "1" },
+        { 0x0018, 0x9079,
+          "Inversion Times", "InversionTimes",  "FD", "1-n" },
+        { 0x0018, 0x9080,
+          "Metabolite Map Description", "MetaboliteMapDescription",  "ST", "1" },
+        { 0x0018, 0x9081,
+          "Partial Fourier", "PartialFourier",  "CS", "1" },
+        { 0x0018, 0x9082,
+          "Effective Echo Time", "EffectiveEchoTime",  "FD", "1" },
+        { 0x0018, 0x9083,
+          "Metabolite Map Code Sequence", "MetaboliteMapCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x9084,
+          "Chemical Shift Sequence", "ChemicalShiftSequence",  "SQ", "1" },
+        { 0x0018, 0x9085,
+          "Cardiac Signal Source", "CardiacSignalSource",  "CS", "1" },
+        { 0x0018, 0x9087,
+          "Diffusion b-value", "DiffusionBValue",  "FD", "1" },
+        { 0x0018, 0x9089,
+          "Diffusion Gradient Orientation", "DiffusionGradientOrientation",  "FD", "3" },
+        { 0x0018, 0x9090,
+          "Velocity Encoding Direction", "VelocityEncodingDirection",  "FD", "3" },
+        { 0x0018, 0x9091,
+          "Velocity Encoding Minimum Value", "VelocityEncodingMinimumValue",  "FD", "1" },
+        { 0x0018, 0x9092,
+          "Velocity Encoding Acquisition Sequence", "VelocityEncodingAcquisitionSequence",  "SQ", "1" },
+        { 0x0018, 0x9093,
+          "Number of k-Space Trajectories", "NumberOfKSpaceTrajectories",  "US", "1" },
+        { 0x0018, 0x9094,
+          "Coverage of k-Space", "CoverageOfKSpace",  "CS", "1" },
+        { 0x0018, 0x9095,
+          "Spectroscopy Acquisition Phase Rows", "SpectroscopyAcquisitionPhaseRows",  "UL", "1" },
+        { 0x0018, 0x9096,
+          "Parallel Reduction Factor In-plane (Retired)", "ParallelReductionFactorInPlaneRetired",  "FD", "1" },
+        { 0x0018, 0x9098,
+          "Transmitter Frequency", "TransmitterFrequency",  "FD", "1-2" },
+        { 0x0018, 0x9100,
+          "Resonant Nucleus", "ResonantNucleus",  "CS", "1-2" },
+        { 0x0018, 0x9101,
+          "Frequency Correction", "FrequencyCorrection",  "CS", "1" },
+        { 0x0018, 0x9103,
+          "MR Spectroscopy FOV/Geometry Sequence", "MRSpectroscopyFOVGeometrySequence",  "SQ", "1" },
+        { 0x0018, 0x9104,
+          "Slab Thickness", "SlabThickness",  "FD", "1" },
+        { 0x0018, 0x9105,
+          "Slab Orientation", "SlabOrientation",  "FD", "3" },
+        { 0x0018, 0x9106,
+          "Mid Slab Position", "MidSlabPosition",  "FD", "3" },
+        { 0x0018, 0x9107,
+          "MR Spatial Saturation Sequence", "MRSpatialSaturationSequence",  "SQ", "1" },
+        { 0x0018, 0x9112,
+          "MR Timing and Related Parameters Sequence", "MRTimingAndRelatedParametersSequence",  "SQ", "1" },
+        { 0x0018, 0x9114,
+          "MR Echo Sequence", "MREchoSequence",  "SQ", "1" },
+        { 0x0018, 0x9115,
+          "MR Modifier Sequence", "MRModifierSequence",  "SQ", "1" },
+        { 0x0018, 0x9117,
+          "MR Diffusion Sequence", "MRDiffusionSequence",  "SQ", "1" },
+        { 0x0018, 0x9118,
+          "Cardiac Synchronization Sequence", "CardiacSynchronizationSequence",  "SQ", "1" },
+        { 0x0018, 0x9119,
+          "MR Averages Sequence", "MRAveragesSequence",  "SQ", "1" },
+        { 0x0018, 0x9125,
+          "MR FOV/Geometry Sequence", "MRFOVGeometrySequence",  "SQ", "1" },
+        { 0x0018, 0x9126,
+          "Volume Localization Sequence", "VolumeLocalizationSequence",  "SQ", "1" },
+        { 0x0018, 0x9127,
+          "Spectroscopy Acquisition Data Columns", "SpectroscopyAcquisitionDataColumns",  "UL", "1" },
+        { 0x0018, 0x9147,
+          "Diffusion Anisotropy Type", "DiffusionAnisotropyType",  "CS", "1" },
+        { 0x0018, 0x9151,
+          "Frame Reference DateTime", "FrameReferenceDateTime",  "DT", "1" },
+        { 0x0018, 0x9152,
+          "MR Metabolite Map Sequence", "MRMetaboliteMapSequence",  "SQ", "1" },
+        { 0x0018, 0x9155,
+          "Parallel Reduction Factor out-of-plane", "ParallelReductionFactorOutOfPlane",  "FD", "1" },
+        { 0x0018, 0x9159,
+          "Spectroscopy Acquisition Out-of-plane Phase Steps", "SpectroscopyAcquisitionOutOfPlanePhaseSteps",  "UL", "1" },
+        { 0x0018, 0x9166,
+          "Bulk Motion Status", "BulkMotionStatus",  "CS", "1" },
+        { 0x0018, 0x9168,
+          "Parallel Reduction Factor Second In-plane", "ParallelReductionFactorSecondInPlane",  "FD", "1" },
+        { 0x0018, 0x9169,
+          "Cardiac Beat Rejection Technique", "CardiacBeatRejectionTechnique",  "CS", "1" },
+        { 0x0018, 0x9170,
+          "Respiratory Motion Compensation Technique", "RespiratoryMotionCompensationTechnique",  "CS", "1" },
+        { 0x0018, 0x9171,
+          "Respiratory Signal Source", "RespiratorySignalSource",  "CS", "1" },
+        { 0x0018, 0x9172,
+          "Bulk Motion Compensation Technique", "BulkMotionCompensationTechnique",  "CS", "1" },
+        { 0x0018, 0x9173,
+          "Bulk Motion Signal Source", "BulkMotionSignalSource",  "CS", "1" },
+        { 0x0018, 0x9174,
+          "Applicable Safety Standard Agency", "ApplicableSafetyStandardAgency",  "CS", "1" },
+        { 0x0018, 0x9175,
+          "Applicable Safety Standard Description", "ApplicableSafetyStandardDescription",  "LO", "1" },
+        { 0x0018, 0x9176,
+          "Operating Mode Sequence", "OperatingModeSequence",  "SQ", "1" },
+        { 0x0018, 0x9177,
+          "Operating Mode Type", "OperatingModeType",  "CS", "1" },
+        { 0x0018, 0x9178,
+          "Operating Mode", "OperatingMode",  "CS", "1" },
+        { 0x0018, 0x9179,
+          "Specific Absorption Rate Definition", "SpecificAbsorptionRateDefinition",  "CS", "1" },
+        { 0x0018, 0x9180,
+          "Gradient Output Type", "GradientOutputType",  "CS", "1" },
+        { 0x0018, 0x9181,
+          "Specific Absorption Rate Value", "SpecificAbsorptionRateValue",  "FD", "1" },
+        { 0x0018, 0x9182,
+          "Gradient Output", "GradientOutput",  "FD", "1" },
+        { 0x0018, 0x9183,
+          "Flow Compensation Direction", "FlowCompensationDirection",  "CS", "1" },
+        { 0x0018, 0x9184,
+          "Tagging Delay", "TaggingDelay",  "FD", "1" },
+        { 0x0018, 0x9185,
+          "Respiratory Motion Compensation Technique Description", "RespiratoryMotionCompensationTechniqueDescription",  "ST", "1" },
+        { 0x0018, 0x9186,
+          "Respiratory Signal Source ID", "RespiratorySignalSourceID",  "SH", "1" },
+        { 0x0018, 0x9195,
+          "Chemical Shift Minimum Integration Limit in Hz", "ChemicalShiftMinimumIntegrationLimitInHz",  "FD", "1" },
+        { 0x0018, 0x9196,
+          "Chemical Shift Maximum Integration Limit in Hz", "ChemicalShiftMaximumIntegrationLimitInHz",  "FD", "1" },
+        { 0x0018, 0x9197,
+          "MR Velocity Encoding Sequence", "MRVelocityEncodingSequence",  "SQ", "1" },
+        { 0x0018, 0x9198,
+          "First Order Phase Correction", "FirstOrderPhaseCorrection",  "CS", "1" },
+        { 0x0018, 0x9199,
+          "Water Referenced Phase Correction", "WaterReferencedPhaseCorrection",  "CS", "1" },
+        { 0x0018, 0x9200,
+          "MR Spectroscopy Acquisition Type", "MRSpectroscopyAcquisitionType",  "CS", "1" },
+        { 0x0018, 0x9214,
+          "Respiratory Cycle Position", "RespiratoryCyclePosition",  "CS", "1" },
+        { 0x0018, 0x9217,
+          "Velocity Encoding Maximum Value", "VelocityEncodingMaximumValue",  "FD", "1" },
+        { 0x0018, 0x9218,
+          "Tag Spacing Second Dimension", "TagSpacingSecondDimension",  "FD", "1" },
+        { 0x0018, 0x9219,
+          "Tag Angle Second Axis", "TagAngleSecondAxis",  "SS", "1" },
+        { 0x0018, 0x9220,
+          "Frame Acquisition Duration", "FrameAcquisitionDuration",  "FD", "1" },
+        { 0x0018, 0x9226,
+          "MR Image Frame Type Sequence", "MRImageFrameTypeSequence",  "SQ", "1" },
+        { 0x0018, 0x9227,
+          "MR Spectroscopy Frame Type Sequence", "MRSpectroscopyFrameTypeSequence",  "SQ", "1" },
+        { 0x0018, 0x9231,
+          "MR Acquisition Phase Encoding Steps in-plane", "MRAcquisitionPhaseEncodingStepsInPlane",  "US", "1" },
+        { 0x0018, 0x9232,
+          "MR Acquisition Phase Encoding Steps out-of-plane", "MRAcquisitionPhaseEncodingStepsOutOfPlane",  "US", "1" },
+        { 0x0018, 0x9234,
+          "Spectroscopy Acquisition Phase Columns", "SpectroscopyAcquisitionPhaseColumns",  "UL", "1" },
+        { 0x0018, 0x9236,
+          "Cardiac Cycle Position", "CardiacCyclePosition",  "CS", "1" },
+        { 0x0018, 0x9239,
+          "Specific Absorption Rate Sequence", "SpecificAbsorptionRateSequence",  "SQ", "1" },
+        { 0x0018, 0x9240,
+          "RF Echo Train Length", "RFEchoTrainLength",  "US", "1" },
+        { 0x0018, 0x9241,
+          "Gradient Echo Train Length", "GradientEchoTrainLength",  "US", "1" },
+        { 0x0018, 0x9250,
+          "Arterial Spin Labeling Contrast", "ArterialSpinLabelingContrast",  "CS", "1" },
+        { 0x0018, 0x9251,
+          "MR Arterial Spin Labeling Sequence", "MRArterialSpinLabelingSequence",  "SQ", "1" },
+        { 0x0018, 0x9252,
+          "ASL Technique Description", "ASLTechniqueDescription",  "LO", "1" },
+        { 0x0018, 0x9253,
+          "ASL Slab Number", "ASLSlabNumber",  "US", "1" },
+        { 0x0018, 0x9254,
+          "ASL Slab Thickness", "ASLSlabThickness",  "FD", "1" },
+        { 0x0018, 0x9255,
+          "ASL Slab Orientation", "ASLSlabOrientation",  "FD", "3" },
+        { 0x0018, 0x9256,
+          "ASL Mid Slab Position", "ASLMidSlabPosition",  "FD", "3" },
+        { 0x0018, 0x9257,
+          "ASL Context", "ASLContext",  "CS", "1" },
+        { 0x0018, 0x9258,
+          "ASL Pulse Train Duration", "ASLPulseTrainDuration",  "UL", "1" },
+        { 0x0018, 0x9259,
+          "ASL Crusher Flag", "ASLCrusherFlag",  "CS", "1" },
+        { 0x0018, 0x925a,
+          "ASL Crusher Flow Limit", "ASLCrusherFlowLimit",  "FD", "1" },
+        { 0x0018, 0x925b,
+          "ASL Crusher Description", "ASLCrusherDescription",  "LO", "1" },
+        { 0x0018, 0x925c,
+          "ASL Bolus Cut-off Flag", "ASLBolusCutoffFlag",  "CS", "1" },
+        { 0x0018, 0x925d,
+          "ASL Bolus Cut-off Timing Sequence", "ASLBolusCutoffTimingSequence",  "SQ", "1" },
+        { 0x0018, 0x925e,
+          "ASL Bolus Cut-off Technique", "ASLBolusCutoffTechnique",  "LO", "1" },
+        { 0x0018, 0x925f,
+          "ASL Bolus Cut-off Delay Time", "ASLBolusCutoffDelayTime",  "UL", "1" },
+        { 0x0018, 0x9260,
+          "ASL Slab Sequence", "ASLSlabSequence",  "SQ", "1" },
+        { 0x0018, 0x9295,
+          "Chemical Shift Minimum Integration Limit in ppm", "ChemicalShiftMinimumIntegrationLimitInppm",  "FD", "1" },
+        { 0x0018, 0x9296,
+          "Chemical Shift Maximum Integration Limit in ppm", "ChemicalShiftMaximumIntegrationLimitInppm",  "FD", "1" },
+        { 0x0018, 0x9297,
+          "Water Reference Acquisition", "WaterReferenceAcquisition",  "CS", "1" },
+        { 0x0018, 0x9298,
+          "Echo Peak Position", "EchoPeakPosition",  "IS", "1" },
+        { 0x0018, 0x9301,
+          "CT Acquisition Type Sequence", "CTAcquisitionTypeSequence",  "SQ", "1" },
+        { 0x0018, 0x9302,
+          "Acquisition Type", "AcquisitionType",  "CS", "1" },
+        { 0x0018, 0x9303,
+          "Tube Angle", "TubeAngle",  "FD", "1" },
+        { 0x0018, 0x9304,
+          "CT Acquisition Details Sequence", "CTAcquisitionDetailsSequence",  "SQ", "1" },
+        { 0x0018, 0x9305,
+          "Revolution Time", "RevolutionTime",  "FD", "1" },
+        { 0x0018, 0x9306,
+          "Single Collimation Width", "SingleCollimationWidth",  "FD", "1" },
+        { 0x0018, 0x9307,
+          "Total Collimation Width", "TotalCollimationWidth",  "FD", "1" },
+        { 0x0018, 0x9308,
+          "CT Table Dynamics Sequence", "CTTableDynamicsSequence",  "SQ", "1" },
+        { 0x0018, 0x9309,
+          "Table Speed", "TableSpeed",  "FD", "1" },
+        { 0x0018, 0x9310,
+          "Table Feed per Rotation", "TableFeedPerRotation",  "FD", "1" },
+        { 0x0018, 0x9311,
+          "Spiral Pitch Factor", "SpiralPitchFactor",  "FD", "1" },
+        { 0x0018, 0x9312,
+          "CT Geometry Sequence", "CTGeometrySequence",  "SQ", "1" },
+        { 0x0018, 0x9313,
+          "Data Collection Center (Patient)", "DataCollectionCenterPatient",  "FD", "3" },
+        { 0x0018, 0x9314,
+          "CT Reconstruction Sequence", "CTReconstructionSequence",  "SQ", "1" },
+        { 0x0018, 0x9315,
+          "Reconstruction Algorithm", "ReconstructionAlgorithm",  "CS", "1" },
+        { 0x0018, 0x9316,
+          "Convolution Kernel Group", "ConvolutionKernelGroup",  "CS", "1" },
+        { 0x0018, 0x9317,
+          "Reconstruction Field of View", "ReconstructionFieldOfView",  "FD", "2" },
+        { 0x0018, 0x9318,
+          "Reconstruction Target Center (Patient)", "ReconstructionTargetCenterPatient",  "FD", "3" },
+        { 0x0018, 0x9319,
+          "Reconstruction Angle", "ReconstructionAngle",  "FD", "1" },
+        { 0x0018, 0x9320,
+          "Image Filter", "ImageFilter",  "SH", "1" },
+        { 0x0018, 0x9321,
+          "CT Exposure Sequence", "CTExposureSequence",  "SQ", "1" },
+        { 0x0018, 0x9322,
+          "Reconstruction Pixel Spacing", "ReconstructionPixelSpacing",  "FD", "2" },
+        { 0x0018, 0x9323,
+          "Exposure Modulation Type", "ExposureModulationType",  "CS", "1" },
+        { 0x0018, 0x9324,
+          "Estimated Dose Saving", "EstimatedDoseSaving",  "FD", "1" },
+        { 0x0018, 0x9325,
+          "CT X-Ray Details Sequence", "CTXRayDetailsSequence",  "SQ", "1" },
+        { 0x0018, 0x9326,
+          "CT Position Sequence", "CTPositionSequence",  "SQ", "1" },
+        { 0x0018, 0x9327,
+          "Table Position", "TablePosition",  "FD", "1" },
+        { 0x0018, 0x9328,
+          "Exposure Time in ms", "ExposureTimeInms",  "FD", "1" },
+        { 0x0018, 0x9329,
+          "CT Image Frame Type Sequence", "CTImageFrameTypeSequence",  "SQ", "1" },
+        { 0x0018, 0x9330,
+          "X-Ray Tube Current in mA", "XRayTubeCurrentInmA",  "FD", "1" },
+        { 0x0018, 0x9332,
+          "Exposure in mAs", "ExposureInmAs",  "FD", "1" },
+        { 0x0018, 0x9333,
+          "Constant Volume Flag", "ConstantVolumeFlag",  "CS", "1" },
+        { 0x0018, 0x9334,
+          "Fluoroscopy Flag", "FluoroscopyFlag",  "CS", "1" },
+        { 0x0018, 0x9335,
+          "Distance Source to Data Collection Center", "DistanceSourceToDataCollectionCenter",  "FD", "1" },
+        { 0x0018, 0x9337,
+          "Contrast/Bolus Agent Number", "ContrastBolusAgentNumber",  "US", "1" },
+        { 0x0018, 0x9338,
+          "Contrast/Bolus Ingredient Code Sequence", "ContrastBolusIngredientCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x9340,
+          "Contrast Administration Profile Sequence", "ContrastAdministrationProfileSequence",  "SQ", "1" },
+        { 0x0018, 0x9341,
+          "Contrast/Bolus Usage Sequence", "ContrastBolusUsageSequence",  "SQ", "1" },
+        { 0x0018, 0x9342,
+          "Contrast/Bolus Agent Administered", "ContrastBolusAgentAdministered",  "CS", "1" },
+        { 0x0018, 0x9343,
+          "Contrast/Bolus Agent Detected", "ContrastBolusAgentDetected",  "CS", "1" },
+        { 0x0018, 0x9344,
+          "Contrast/Bolus Agent Phase", "ContrastBolusAgentPhase",  "CS", "1" },
+        { 0x0018, 0x9345,
+          "CTDIvol", "CTDIvol",  "FD", "1" },
+        { 0x0018, 0x9346,
+          "CTDI Phantom Type Code Sequence", "CTDIPhantomTypeCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x9351,
+          "Calcium Scoring Mass Factor Patient", "CalciumScoringMassFactorPatient",  "FL", "1" },
+        { 0x0018, 0x9352,
+          "Calcium Scoring Mass Factor Device", "CalciumScoringMassFactorDevice",  "FL", "3" },
+        { 0x0018, 0x9353,
+          "Energy Weighting Factor", "EnergyWeightingFactor",  "FL", "1" },
+        { 0x0018, 0x9360,
+          "CT Additional X-Ray Source Sequence", "CTAdditionalXRaySourceSequence",  "SQ", "1" },
+        { 0x0018, 0x9401,
+          "Projection Pixel Calibration Sequence", "ProjectionPixelCalibrationSequence",  "SQ", "1" },
+        { 0x0018, 0x9402,
+          "Distance Source to Isocenter", "DistanceSourceToIsocenter",  "FL", "1" },
+        { 0x0018, 0x9403,
+          "Distance Object to Table Top", "DistanceObjectToTableTop",  "FL", "1" },
+        { 0x0018, 0x9404,
+          "Object Pixel Spacing in Center of Beam", "ObjectPixelSpacingInCenterOfBeam",  "FL", "2" },
+        { 0x0018, 0x9405,
+          "Positioner Position Sequence", "PositionerPositionSequence",  "SQ", "1" },
+        { 0x0018, 0x9406,
+          "Table Position Sequence", "TablePositionSequence",  "SQ", "1" },
+        { 0x0018, 0x9407,
+          "Collimator Shape Sequence", "CollimatorShapeSequence",  "SQ", "1" },
+        { 0x0018, 0x9410,
+          "Planes in Acquisition", "PlanesInAcquisition",  "CS", "1" },
+        { 0x0018, 0x9412,
+          "XA/XRF Frame Characteristics Sequence", "XAXRFFrameCharacteristicsSequence",  "SQ", "1" },
+        { 0x0018, 0x9417,
+          "Frame Acquisition Sequence", "FrameAcquisitionSequence",  "SQ", "1" },
+        { 0x0018, 0x9420,
+          "X-Ray Receptor Type", "XRayReceptorType",  "CS", "1" },
+        { 0x0018, 0x9423,
+          "Acquisition Protocol Name", "AcquisitionProtocolName",  "LO", "1" },
+        { 0x0018, 0x9424,
+          "Acquisition Protocol Description", "AcquisitionProtocolDescription",  "LT", "1" },
+        { 0x0018, 0x9425,
+          "Contrast/Bolus Ingredient Opaque", "ContrastBolusIngredientOpaque",  "CS", "1" },
+        { 0x0018, 0x9426,
+          "Distance Receptor Plane to Detector Housing", "DistanceReceptorPlaneToDetectorHousing",  "FL", "1" },
+        { 0x0018, 0x9427,
+          "Intensifier Active Shape", "IntensifierActiveShape",  "CS", "1" },
+        { 0x0018, 0x9428,
+          "Intensifier Active Dimension(s)", "IntensifierActiveDimensions",  "FL", "1-2" },
+        { 0x0018, 0x9429,
+          "Physical Detector Size", "PhysicalDetectorSize",  "FL", "2" },
+        { 0x0018, 0x9430,
+          "Position of Isocenter Projection", "PositionOfIsocenterProjection",  "FL", "2" },
+        { 0x0018, 0x9432,
+          "Field of View Sequence", "FieldOfViewSequence",  "SQ", "1" },
+        { 0x0018, 0x9433,
+          "Field of View Description", "FieldOfViewDescription",  "LO", "1" },
+        { 0x0018, 0x9434,
+          "Exposure Control Sensing Regions Sequence", "ExposureControlSensingRegionsSequence",  "SQ", "1" },
+        { 0x0018, 0x9435,
+          "Exposure Control Sensing Region Shape", "ExposureControlSensingRegionShape",  "CS", "1" },
+        { 0x0018, 0x9436,
+          "Exposure Control Sensing Region Left Vertical Edge", "ExposureControlSensingRegionLeftVerticalEdge",  "SS", "1" },
+        { 0x0018, 0x9437,
+          "Exposure Control Sensing Region Right Vertical Edge", "ExposureControlSensingRegionRightVerticalEdge",  "SS", "1" },
+        { 0x0018, 0x9438,
+          "Exposure Control Sensing Region Upper Horizontal Edge", "ExposureControlSensingRegionUpperHorizontalEdge",  "SS", "1" },
+        { 0x0018, 0x9439,
+          "Exposure Control Sensing Region Lower Horizontal Edge", "ExposureControlSensingRegionLowerHorizontalEdge",  "SS", "1" },
+        { 0x0018, 0x9440,
+          "Center of Circular Exposure Control Sensing Region", "CenterOfCircularExposureControlSensingRegion",  "SS", "2" },
+        { 0x0018, 0x9441,
+          "Radius of Circular Exposure Control Sensing Region", "RadiusOfCircularExposureControlSensingRegion",  "US", "1" },
+        { 0x0018, 0x9442,
+          "Vertices of the Polygonal Exposure Control Sensing Region", "VerticesOfThePolygonalExposureControlSensingRegion",  "SS", "2-n" },
+        { 0x0018, 0x9447,
+          "Column Angulation (Patient)", "ColumnAngulationPatient",  "FL", "1" },
+        { 0x0018, 0x9449,
+          "Beam Angle", "BeamAngle",  "FL", "1" },
+        { 0x0018, 0x9451,
+          "Frame Detector Parameters Sequence", "FrameDetectorParametersSequence",  "SQ", "1" },
+        { 0x0018, 0x9452,
+          "Calculated Anatomy Thickness", "CalculatedAnatomyThickness",  "FL", "1" },
+        { 0x0018, 0x9455,
+          "Calibration Sequence", "CalibrationSequence",  "SQ", "1" },
+        { 0x0018, 0x9456,
+          "Object Thickness Sequence", "ObjectThicknessSequence",  "SQ", "1" },
+        { 0x0018, 0x9457,
+          "Plane Identification", "PlaneIdentification",  "CS", "1" },
+        { 0x0018, 0x9461,
+          "Field of View Dimension(s) in Float", "FieldOfViewDimensionsInFloat",  "FL", "1-2" },
+        { 0x0018, 0x9462,
+          "Isocenter Reference System Sequence", "IsocenterReferenceSystemSequence",  "SQ", "1" },
+        { 0x0018, 0x9463,
+          "Positioner Isocenter Primary Angle", "PositionerIsocenterPrimaryAngle",  "FL", "1" },
+        { 0x0018, 0x9464,
+          "Positioner Isocenter Secondary Angle", "PositionerIsocenterSecondaryAngle",  "FL", "1" },
+        { 0x0018, 0x9465,
+          "Positioner Isocenter Detector Rotation Angle", "PositionerIsocenterDetectorRotationAngle",  "FL", "1" },
+        { 0x0018, 0x9466,
+          "Table X Position to Isocenter", "TableXPositionToIsocenter",  "FL", "1" },
+        { 0x0018, 0x9467,
+          "Table Y Position to Isocenter", "TableYPositionToIsocenter",  "FL", "1" },
+        { 0x0018, 0x9468,
+          "Table Z Position to Isocenter", "TableZPositionToIsocenter",  "FL", "1" },
+        { 0x0018, 0x9469,
+          "Table Horizontal Rotation Angle", "TableHorizontalRotationAngle",  "FL", "1" },
+        { 0x0018, 0x9470,
+          "Table Head Tilt Angle", "TableHeadTiltAngle",  "FL", "1" },
+        { 0x0018, 0x9471,
+          "Table Cradle Tilt Angle", "TableCradleTiltAngle",  "FL", "1" },
+        { 0x0018, 0x9472,
+          "Frame Display Shutter Sequence", "FrameDisplayShutterSequence",  "SQ", "1" },
+        { 0x0018, 0x9473,
+          "Acquired Image Area Dose Product", "AcquiredImageAreaDoseProduct",  "FL", "1" },
+        { 0x0018, 0x9474,
+          "C-arm Positioner Tabletop Relationship", "CArmPositionerTabletopRelationship",  "CS", "1" },
+        { 0x0018, 0x9476,
+          "X-Ray Geometry Sequence", "XRayGeometrySequence",  "SQ", "1" },
+        { 0x0018, 0x9477,
+          "Irradiation Event Identification Sequence", "IrradiationEventIdentificationSequence",  "SQ", "1" },
+        { 0x0018, 0x9504,
+          "X-Ray 3D Frame Type Sequence", "XRay3DFrameTypeSequence",  "SQ", "1" },
+        { 0x0018, 0x9506,
+          "Contributing Sources Sequence", "ContributingSourcesSequence",  "SQ", "1" },
+        { 0x0018, 0x9507,
+          "X-Ray 3D Acquisition Sequence", "XRay3DAcquisitionSequence",  "SQ", "1" },
+        { 0x0018, 0x9508,
+          "Primary Positioner Scan Arc", "PrimaryPositionerScanArc",  "FL", "1" },
+        { 0x0018, 0x9509,
+          "Secondary Positioner Scan Arc", "SecondaryPositionerScanArc",  "FL", "1" },
+        { 0x0018, 0x9510,
+          "Primary Positioner Scan Start Angle", "PrimaryPositionerScanStartAngle",  "FL", "1" },
+        { 0x0018, 0x9511,
+          "Secondary Positioner Scan Start Angle", "SecondaryPositionerScanStartAngle",  "FL", "1" },
+        { 0x0018, 0x9514,
+          "Primary Positioner Increment", "PrimaryPositionerIncrement",  "FL", "1" },
+        { 0x0018, 0x9515,
+          "Secondary Positioner Increment", "SecondaryPositionerIncrement",  "FL", "1" },
+        { 0x0018, 0x9516,
+          "Start Acquisition DateTime", "StartAcquisitionDateTime",  "DT", "1" },
+        { 0x0018, 0x9517,
+          "End Acquisition DateTime", "EndAcquisitionDateTime",  "DT", "1" },
+        { 0x0018, 0x9518,
+          "Primary Positioner Increment Sign", "PrimaryPositionerIncrementSign",  "SS", "1" },
+        { 0x0018, 0x9519,
+          "Secondary Positioner Increment Sign", "SecondaryPositionerIncrementSign",  "SS", "1" },
+        { 0x0018, 0x9524,
+          "Application Name", "ApplicationName",  "LO", "1" },
+        { 0x0018, 0x9525,
+          "Application Version", "ApplicationVersion",  "LO", "1" },
+        { 0x0018, 0x9526,
+          "Application Manufacturer", "ApplicationManufacturer",  "LO", "1" },
+        { 0x0018, 0x9527,
+          "Algorithm Type", "AlgorithmType",  "CS", "1" },
+        { 0x0018, 0x9528,
+          "Algorithm Description", "AlgorithmDescription",  "LO", "1" },
+        { 0x0018, 0x9530,
+          "X-Ray 3D Reconstruction Sequence", "XRay3DReconstructionSequence",  "SQ", "1" },
+        { 0x0018, 0x9531,
+          "Reconstruction Description", "ReconstructionDescription",  "LO", "1" },
+        { 0x0018, 0x9538,
+          "Per Projection Acquisition Sequence", "PerProjectionAcquisitionSequence",  "SQ", "1" },
+        { 0x0018, 0x9541,
+          "Detector Position Sequence", "DetectorPositionSequence",  "SQ", "1" },
+        { 0x0018, 0x9542,
+          "X-Ray Acquisition Dose Sequence", "XRayAcquisitionDoseSequence",  "SQ", "1" },
+        { 0x0018, 0x9543,
+          "X-Ray Source Isocenter Primary Angle", "XRaySourceIsocenterPrimaryAngle",  "FD", "1" },
+        { 0x0018, 0x9544,
+          "X-Ray Source Isocenter Secondary Angle", "XRaySourceIsocenterSecondaryAngle",  "FD", "1" },
+        { 0x0018, 0x9545,
+          "Breast Support Isocenter Primary Angle", "BreastSupportIsocenterPrimaryAngle",  "FD", "1" },
+        { 0x0018, 0x9546,
+          "Breast Support Isocenter Secondary Angle", "BreastSupportIsocenterSecondaryAngle",  "FD", "1" },
+        { 0x0018, 0x9547,
+          "Breast Support X Position to Isocenter", "BreastSupportXPositionToIsocenter",  "FD", "1" },
+        { 0x0018, 0x9548,
+          "Breast Support Y Position to Isocenter", "BreastSupportYPositionToIsocenter",  "FD", "1" },
+        { 0x0018, 0x9549,
+          "Breast Support Z Position to Isocenter", "BreastSupportZPositionToIsocenter",  "FD", "1" },
+        { 0x0018, 0x9550,
+          "Detector Isocenter Primary Angle", "DetectorIsocenterPrimaryAngle",  "FD", "1" },
+        { 0x0018, 0x9551,
+          "Detector Isocenter Secondary Angle", "DetectorIsocenterSecondaryAngle",  "FD", "1" },
+        { 0x0018, 0x9552,
+          "Detector X Position to Isocenter", "DetectorXPositionToIsocenter",  "FD", "1" },
+        { 0x0018, 0x9553,
+          "Detector Y Position to Isocenter", "DetectorYPositionToIsocenter",  "FD", "1" },
+        { 0x0018, 0x9554,
+          "Detector Z Position to Isocenter", "DetectorZPositionToIsocenter",  "FD", "1" },
+        { 0x0018, 0x9555,
+          "X-Ray Grid Sequence", "XRayGridSequence",  "SQ", "1" },
+        { 0x0018, 0x9556,
+          "X-Ray Filter Sequence", "XRayFilterSequence",  "SQ", "1" },
+        { 0x0018, 0x9557,
+          "Detector Active Area TLHC Position", "DetectorActiveAreaTLHCPosition",  "FD", "3" },
+        { 0x0018, 0x9558,
+          "Detector Active Area Orientation", "DetectorActiveAreaOrientation",  "FD", "6" },
+        { 0x0018, 0x9559,
+          "Positioner Primary Angle Direction", "PositionerPrimaryAngleDirection",  "CS", "1" },
+        { 0x0018, 0x9601,
+          "Diffusion b-matrix Sequence", "DiffusionBMatrixSequence",  "SQ", "1" },
+        { 0x0018, 0x9602,
+          "Diffusion b-value XX", "DiffusionBValueXX",  "FD", "1" },
+        { 0x0018, 0x9603,
+          "Diffusion b-value XY", "DiffusionBValueXY",  "FD", "1" },
+        { 0x0018, 0x9604,
+          "Diffusion b-value XZ", "DiffusionBValueXZ",  "FD", "1" },
+        { 0x0018, 0x9605,
+          "Diffusion b-value YY", "DiffusionBValueYY",  "FD", "1" },
+        { 0x0018, 0x9606,
+          "Diffusion b-value YZ", "DiffusionBValueYZ",  "FD", "1" },
+        { 0x0018, 0x9607,
+          "Diffusion b-value ZZ", "DiffusionBValueZZ",  "FD", "1" },
+        { 0x0018, 0x9701,
+          "Decay Correction DateTime", "DecayCorrectionDateTime",  "DT", "1" },
+        { 0x0018, 0x9715,
+          "Start Density Threshold", "StartDensityThreshold",  "FD", "1" },
+        { 0x0018, 0x9716,
+          "Start Relative Density Difference Threshold", "StartRelativeDensityDifferenceThreshold",  "FD", "1" },
+        { 0x0018, 0x9717,
+          "Start Cardiac Trigger Count Threshold", "StartCardiacTriggerCountThreshold",  "FD", "1" },
+        { 0x0018, 0x9718,
+          "Start Respiratory Trigger Count Threshold", "StartRespiratoryTriggerCountThreshold",  "FD", "1" },
+        { 0x0018, 0x9719,
+          "Termination Counts Threshold", "TerminationCountsThreshold",  "FD", "1" },
+        { 0x0018, 0x9720,
+          "Termination Density Threshold", "TerminationDensityThreshold",  "FD", "1" },
+        { 0x0018, 0x9721,
+          "Termination Relative Density Threshold", "TerminationRelativeDensityThreshold",  "FD", "1" },
+        { 0x0018, 0x9722,
+          "Termination Time Threshold", "TerminationTimeThreshold",  "FD", "1" },
+        { 0x0018, 0x9723,
+          "Termination Cardiac Trigger Count Threshold", "TerminationCardiacTriggerCountThreshold",  "FD", "1" },
+        { 0x0018, 0x9724,
+          "Termination Respiratory Trigger Count Threshold", "TerminationRespiratoryTriggerCountThreshold",  "FD", "1" },
+        { 0x0018, 0x9725,
+          "Detector Geometry", "DetectorGeometry",  "CS", "1" },
+        { 0x0018, 0x9726,
+          "Transverse Detector Separation", "TransverseDetectorSeparation",  "FD", "1" },
+        { 0x0018, 0x9727,
+          "Axial Detector Dimension", "AxialDetectorDimension",  "FD", "1" },
+        { 0x0018, 0x9729,
+          "Radiopharmaceutical Agent Number", "RadiopharmaceuticalAgentNumber",  "US", "1" },
+        { 0x0018, 0x9732,
+          "PET Frame Acquisition Sequence", "PETFrameAcquisitionSequence",  "SQ", "1" },
+        { 0x0018, 0x9733,
+          "PET Detector Motion Details Sequence", "PETDetectorMotionDetailsSequence",  "SQ", "1" },
+        { 0x0018, 0x9734,
+          "PET Table Dynamics Sequence", "PETTableDynamicsSequence",  "SQ", "1" },
+        { 0x0018, 0x9735,
+          "PET Position Sequence", "PETPositionSequence",  "SQ", "1" },
+        { 0x0018, 0x9736,
+          "PET Frame Correction Factors Sequence", "PETFrameCorrectionFactorsSequence",  "SQ", "1" },
+        { 0x0018, 0x9737,
+          "Radiopharmaceutical Usage Sequence", "RadiopharmaceuticalUsageSequence",  "SQ", "1" },
+        { 0x0018, 0x9738,
+          "Attenuation Correction Source", "AttenuationCorrectionSource",  "CS", "1" },
+        { 0x0018, 0x9739,
+          "Number of Iterations", "NumberOfIterations",  "US", "1" },
+        { 0x0018, 0x9740,
+          "Number of Subsets", "NumberOfSubsets",  "US", "1" },
+        { 0x0018, 0x9749,
+          "PET Reconstruction Sequence", "PETReconstructionSequence",  "SQ", "1" },
+        { 0x0018, 0x9751,
+          "PET Frame Type Sequence", "PETFrameTypeSequence",  "SQ", "1" },
+        { 0x0018, 0x9755,
+          "Time of Flight Information Used", "TimeOfFlightInformationUsed",  "CS", "1" },
+        { 0x0018, 0x9756,
+          "Reconstruction Type", "ReconstructionType",  "CS", "1" },
+        { 0x0018, 0x9758,
+          "Decay Corrected", "DecayCorrected",  "CS", "1" },
+        { 0x0018, 0x9759,
+          "Attenuation Corrected", "AttenuationCorrected",  "CS", "1" },
+        { 0x0018, 0x9760,
+          "Scatter Corrected", "ScatterCorrected",  "CS", "1" },
+        { 0x0018, 0x9761,
+          "Dead Time Corrected", "DeadTimeCorrected",  "CS", "1" },
+        { 0x0018, 0x9762,
+          "Gantry Motion Corrected", "GantryMotionCorrected",  "CS", "1" },
+        { 0x0018, 0x9763,
+          "Patient Motion Corrected", "PatientMotionCorrected",  "CS", "1" },
+        { 0x0018, 0x9764,
+          "Count Loss Normalization Corrected", "CountLossNormalizationCorrected",  "CS", "1" },
+        { 0x0018, 0x9765,
+          "Randoms Corrected", "RandomsCorrected",  "CS", "1" },
+        { 0x0018, 0x9766,
+          "Non-uniform Radial Sampling Corrected", "NonUniformRadialSamplingCorrected",  "CS", "1" },
+        { 0x0018, 0x9767,
+          "Sensitivity Calibrated", "SensitivityCalibrated",  "CS", "1" },
+        { 0x0018, 0x9768,
+          "Detector Normalization Correction", "DetectorNormalizationCorrection",  "CS", "1" },
+        { 0x0018, 0x9769,
+          "Iterative Reconstruction Method", "IterativeReconstructionMethod",  "CS", "1" },
+        { 0x0018, 0x9770,
+          "Attenuation Correction Temporal Relationship", "AttenuationCorrectionTemporalRelationship",  "CS", "1" },
+        { 0x0018, 0x9771,
+          "Patient Physiological State Sequence", "PatientPhysiologicalStateSequence",  "SQ", "1" },
+        { 0x0018, 0x9772,
+          "Patient Physiological State Code Sequence", "PatientPhysiologicalStateCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x9801,
+          "Depth(s) of Focus", "DepthsOfFocus",  "FD", "1-n" },
+        { 0x0018, 0x9803,
+          "Excluded Intervals Sequence", "ExcludedIntervalsSequence",  "SQ", "1" },
+        { 0x0018, 0x9804,
+          "Exclusion Start DateTime", "ExclusionStartDateTime",  "DT", "1" },
+        { 0x0018, 0x9805,
+          "Exclusion Duration", "ExclusionDuration",  "FD", "1" },
+        { 0x0018, 0x9806,
+          "US Image Description Sequence", "USImageDescriptionSequence",  "SQ", "1" },
+        { 0x0018, 0x9807,
+          "Image Data Type Sequence", "ImageDataTypeSequence",  "SQ", "1" },
+        { 0x0018, 0x9808,
+          "Data Type", "DataType",  "CS", "1" },
+        { 0x0018, 0x9809,
+          "Transducer Scan Pattern Code Sequence", "TransducerScanPatternCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x980b,
+          "Aliased Data Type", "AliasedDataType",  "CS", "1" },
+        { 0x0018, 0x980c,
+          "Position Measuring Device Used", "PositionMeasuringDeviceUsed",  "CS", "1" },
+        { 0x0018, 0x980d,
+          "Transducer Geometry Code Sequence", "TransducerGeometryCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x980e,
+          "Transducer Beam Steering Code Sequence", "TransducerBeamSteeringCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x980f,
+          "Transducer Application Code Sequence", "TransducerApplicationCodeSequence",  "SQ", "1" },
+        { 0x0018, 0x9810,
+          "Zero Velocity Pixel Value", "ZeroVelocityPixelValue",  "US or SS", "1" },
+        { 0x0018, 0xa001,
+          "Contributing Equipment Sequence", "ContributingEquipmentSequence",  "SQ", "1" },
+        { 0x0018, 0xa002,
+          "Contribution DateTime", "ContributionDateTime",  "DT", "1" },
+        { 0x0018, 0xa003,
+          "Contribution Description", "ContributionDescription",  "ST", "1" },
+        { 0x0020, 0x000d,
+          "Study Instance UID", "StudyInstanceUID",  "UI", "1" },
+        { 0x0020, 0x000e,
+          "Series Instance UID", "SeriesInstanceUID",  "UI", "1" },
+        { 0x0020, 0x0010,
+          "Study ID", "StudyID",  "SH", "1" },
+        { 0x0020, 0x0011,
+          "Series Number", "SeriesNumber",  "IS", "1" },
+        { 0x0020, 0x0012,
+          "Acquisition Number", "AcquisitionNumber",  "IS", "1" },
+        { 0x0020, 0x0013,
+          "Instance Number", "InstanceNumber",  "IS", "1" },
+        { 0x0020, 0x0014,
+          "Isotope Number", "IsotopeNumber",  "IS", "1" },
+        { 0x0020, 0x0015,
+          "Phase Number", "PhaseNumber",  "IS", "1" },
+        { 0x0020, 0x0016,
+          "Interval Number", "IntervalNumber",  "IS", "1" },
+        { 0x0020, 0x0017,
+          "Time Slot Number", "TimeSlotNumber",  "IS", "1" },
+        { 0x0020, 0x0018,
+          "Angle Number", "AngleNumber",  "IS", "1" },
+        { 0x0020, 0x0019,
+          "Item Number", "ItemNumber",  "IS", "1" },
+        { 0x0020, 0x0020,
+          "Patient Orientation", "PatientOrientation",  "CS", "2" },
+        { 0x0020, 0x0022,
+          "Overlay Number", "OverlayNumber",  "IS", "1" },
+        { 0x0020, 0x0024,
+          "Curve Number", "CurveNumber",  "IS", "1" },
+        { 0x0020, 0x0026,
+          "LUT Number", "LUTNumber",  "IS", "1" },
+        { 0x0020, 0x0030,
+          "Image Position", "ImagePosition",  "DS", "3" },
+        { 0x0020, 0x0032,
+          "Image Position (Patient)", "ImagePositionPatient",  "DS", "3" },
+        { 0x0020, 0x0035,
+          "Image Orientation", "ImageOrientation",  "DS", "6" },
+        { 0x0020, 0x0037,
+          "Image Orientation (Patient)", "ImageOrientationPatient",  "DS", "6" },
+        { 0x0020, 0x0050,
+          "Location", "Location",  "DS", "1" },
+        { 0x0020, 0x0052,
+          "Frame of Reference UID", "FrameOfReferenceUID",  "UI", "1" },
+        { 0x0020, 0x0060,
+          "Laterality", "Laterality",  "CS", "1" },
+        { 0x0020, 0x0062,
+          "Image Laterality", "ImageLaterality",  "CS", "1" },
+        { 0x0020, 0x0070,
+          "Image Geometry Type", "ImageGeometryType",  "LO", "1" },
+        { 0x0020, 0x0080,
+          "Masking Image", "MaskingImage",  "CS", "1-n" },
+        { 0x0020, 0x00aa,
+          "Report Number", "ReportNumber",  "IS", "1" },
+        { 0x0020, 0x0100,
+          "Temporal Position Identifier", "TemporalPositionIdentifier",  "IS", "1" },
+        { 0x0020, 0x0105,
+          "Number of Temporal Positions", "NumberOfTemporalPositions",  "IS", "1" },
+        { 0x0020, 0x0110,
+          "Temporal Resolution", "TemporalResolution",  "DS", "1" },
+        { 0x0020, 0x0200,
+          "Synchronization Frame of Reference UID", "SynchronizationFrameOfReferenceUID",  "UI", "1" },
+        { 0x0020, 0x0242,
+          "SOP Instance UID of Concatenation Source", "SOPInstanceUIDOfConcatenationSource",  "UI", "1" },
+        { 0x0020, 0x1000,
+          "Series in Study", "SeriesInStudy",  "IS", "1" },
+        { 0x0020, 0x1001,
+          "Acquisitions in Series", "AcquisitionsInSeries",  "IS", "1" },
+        { 0x0020, 0x1002,
+          "Images in Acquisition", "ImagesInAcquisition",  "IS", "1" },
+        { 0x0020, 0x1003,
+          "Images in Series", "ImagesInSeries",  "IS", "1" },
+        { 0x0020, 0x1004,
+          "Acquisitions in Study", "AcquisitionsInStudy",  "IS", "1" },
+        { 0x0020, 0x1005,
+          "Images in Study", "ImagesInStudy",  "IS", "1" },
+        { 0x0020, 0x1020,
+          "Reference", "Reference",  "LO", "1-n" },
+        { 0x0020, 0x1040,
+          "Position Reference Indicator", "PositionReferenceIndicator",  "LO", "1" },
+        { 0x0020, 0x1041,
+          "Slice Location", "SliceLocation",  "DS", "1" },
+        { 0x0020, 0x1070,
+          "Other Study Numbers", "OtherStudyNumbers",  "IS", "1-n" },
+        { 0x0020, 0x1200,
+          "Number of Patient Related Studies", "NumberOfPatientRelatedStudies",  "IS", "1" },
+        { 0x0020, 0x1202,
+          "Number of Patient Related Series", "NumberOfPatientRelatedSeries",  "IS", "1" },
+        { 0x0020, 0x1204,
+          "Number of Patient Related Instances", "NumberOfPatientRelatedInstances",  "IS", "1" },
+        { 0x0020, 0x1206,
+          "Number of Study Related Series", "NumberOfStudyRelatedSeries",  "IS", "1" },
+        { 0x0020, 0x1208,
+          "Number of Study Related Instances", "NumberOfStudyRelatedInstances",  "IS", "1" },
+        { 0x0020, 0x1209,
+          "Number of Series Related Instances", "NumberOfSeriesRelatedInstances",  "IS", "1" },
+        { 0x0020, 0x3401,
+          "Modifying Device ID", "ModifyingDeviceID",  "CS", "1" },
+        { 0x0020, 0x3402,
+          "Modified Image ID", "ModifiedImageID",  "CS", "1" },
+        { 0x0020, 0x3403,
+          "Modified Image Date", "ModifiedImageDate",  "DA", "1" },
+        { 0x0020, 0x3404,
+          "Modifying Device Manufacturer", "ModifyingDeviceManufacturer",  "LO", "1" },
+        { 0x0020, 0x3405,
+          "Modified Image Time", "ModifiedImageTime",  "TM", "1" },
+        { 0x0020, 0x3406,
+          "Modified Image Description", "ModifiedImageDescription",  "LO", "1" },
+        { 0x0020, 0x4000,
+          "Image Comments", "ImageComments",  "LT", "1" },
+        { 0x0020, 0x5000,
+          "Original Image Identification", "OriginalImageIdentification",  "AT", "1-n" },
+        { 0x0020, 0x5002,
+          "Original Image Identification Nomenclature", "OriginalImageIdentificationNomenclature",  "LO", "1-n" },
+        { 0x0020, 0x9056,
+          "Stack ID", "StackID",  "SH", "1" },
+        { 0x0020, 0x9057,
+          "In-Stack Position Number", "InStackPositionNumber",  "UL", "1" },
+        { 0x0020, 0x9071,
+          "Frame Anatomy Sequence", "FrameAnatomySequence",  "SQ", "1" },
+        { 0x0020, 0x9072,
+          "Frame Laterality", "FrameLaterality",  "CS", "1" },
+        { 0x0020, 0x9111,
+          "Frame Content Sequence", "FrameContentSequence",  "SQ", "1" },
+        { 0x0020, 0x9113,
+          "Plane Position Sequence", "PlanePositionSequence",  "SQ", "1" },
+        { 0x0020, 0x9116,
+          "Plane Orientation Sequence", "PlaneOrientationSequence",  "SQ", "1" },
+        { 0x0020, 0x9128,
+          "Temporal Position Index", "TemporalPositionIndex",  "UL", "1" },
+        { 0x0020, 0x9153,
+          "Nominal Cardiac Trigger Delay Time", "NominalCardiacTriggerDelayTime",  "FD", "1" },
+        { 0x0020, 0x9154,
+          "Nominal Cardiac Trigger Time Prior To R-Peak", "NominalCardiacTriggerTimePriorToRPeak",  "FL", "1" },
+        { 0x0020, 0x9155,
+          "Actual Cardiac Trigger Time Prior To R-Peak", "ActualCardiacTriggerTimePriorToRPeak",  "FL", "1" },
+        { 0x0020, 0x9156,
+          "Frame Acquisition Number", "FrameAcquisitionNumber",  "US", "1" },
+        { 0x0020, 0x9157,
+          "Dimension Index Values", "DimensionIndexValues",  "UL", "1-n" },
+        { 0x0020, 0x9158,
+          "Frame Comments", "FrameComments",  "LT", "1" },
+        { 0x0020, 0x9161,
+          "Concatenation UID", "ConcatenationUID",  "UI", "1" },
+        { 0x0020, 0x9162,
+          "In-concatenation Number", "InConcatenationNumber",  "US", "1" },
+        { 0x0020, 0x9163,
+          "In-concatenation Total Number", "InConcatenationTotalNumber",  "US", "1" },
+        { 0x0020, 0x9164,
+          "Dimension Organization UID", "DimensionOrganizationUID",  "UI", "1" },
+        { 0x0020, 0x9165,
+          "Dimension Index Pointer", "DimensionIndexPointer",  "AT", "1" },
+        { 0x0020, 0x9167,
+          "Functional Group Pointer", "FunctionalGroupPointer",  "AT", "1" },
+        { 0x0020, 0x9170,
+          "Unassigned Shared Converted Attributes Sequence", "UnassignedSharedConvertedAttributesSequence",  "SQ", "1" },
+        { 0x0020, 0x9171,
+          "Unassigned Per-Frame Converted Attributes Sequence", "UnassignedPerFrameConvertedAttributesSequence",  "SQ", "1" },
+        { 0x0020, 0x9172,
+          "Conversion Source Attributes Sequence", "ConversionSourceAttributesSequence",  "SQ", "1" },
+        { 0x0020, 0x9213,
+          "Dimension Index Private Creator", "DimensionIndexPrivateCreator",  "LO", "1" },
+        { 0x0020, 0x9221,
+          "Dimension Organization Sequence", "DimensionOrganizationSequence",  "SQ", "1" },
+        { 0x0020, 0x9222,
+          "Dimension Index Sequence", "DimensionIndexSequence",  "SQ", "1" },
+        { 0x0020, 0x9228,
+          "Concatenation Frame Offset Number", "ConcatenationFrameOffsetNumber",  "UL", "1" },
+        { 0x0020, 0x9238,
+          "Functional Group Private Creator", "FunctionalGroupPrivateCreator",  "LO", "1" },
+        { 0x0020, 0x9241,
+          "Nominal Percentage of Cardiac Phase", "NominalPercentageOfCardiacPhase",  "FL", "1" },
+        { 0x0020, 0x9245,
+          "Nominal Percentage of Respiratory Phase", "NominalPercentageOfRespiratoryPhase",  "FL", "1" },
+        { 0x0020, 0x9246,
+          "Starting Respiratory Amplitude", "StartingRespiratoryAmplitude",  "FL", "1" },
+        { 0x0020, 0x9247,
+          "Starting Respiratory Phase", "StartingRespiratoryPhase",  "CS", "1" },
+        { 0x0020, 0x9248,
+          "Ending Respiratory Amplitude", "EndingRespiratoryAmplitude",  "FL", "1" },
+        { 0x0020, 0x9249,
+          "Ending Respiratory Phase", "EndingRespiratoryPhase",  "CS", "1" },
+        { 0x0020, 0x9250,
+          "Respiratory Trigger Type", "RespiratoryTriggerType",  "CS", "1" },
+        { 0x0020, 0x9251,
+          "R-R Interval Time Nominal", "RRIntervalTimeNominal",  "FD", "1" },
+        { 0x0020, 0x9252,
+          "Actual Cardiac Trigger Delay Time", "ActualCardiacTriggerDelayTime",  "FD", "1" },
+        { 0x0020, 0x9253,
+          "Respiratory Synchronization Sequence", "RespiratorySynchronizationSequence",  "SQ", "1" },
+        { 0x0020, 0x9254,
+          "Respiratory Interval Time", "RespiratoryIntervalTime",  "FD", "1" },
+        { 0x0020, 0x9255,
+          "Nominal Respiratory Trigger Delay Time", "NominalRespiratoryTriggerDelayTime",  "FD", "1" },
+        { 0x0020, 0x9256,
+          "Respiratory Trigger Delay Threshold", "RespiratoryTriggerDelayThreshold",  "FD", "1" },
+        { 0x0020, 0x9257,
+          "Actual Respiratory Trigger Delay Time", "ActualRespiratoryTriggerDelayTime",  "FD", "1" },
+        { 0x0020, 0x9301,
+          "Image Position (Volume)", "ImagePositionVolume",  "FD", "3" },
+        { 0x0020, 0x9302,
+          "Image Orientation (Volume)", "ImageOrientationVolume",  "FD", "6" },
+        { 0x0020, 0x9307,
+          "Ultrasound Acquisition Geometry", "UltrasoundAcquisitionGeometry",  "CS", "1" },
+        { 0x0020, 0x9308,
+          "Apex Position", "ApexPosition",  "FD", "3" },
+        { 0x0020, 0x9309,
+          "Volume to Transducer Mapping Matrix", "VolumeToTransducerMappingMatrix",  "FD", "16" },
+        { 0x0020, 0x930a,
+          "Volume to Table Mapping Matrix", "VolumeToTableMappingMatrix",  "FD", "16" },
+        { 0x0020, 0x930b,
+          "Volume to Transducer Relationship", "VolumeToTransducerRelationship",  "CS", "1" },
+        { 0x0020, 0x930c,
+          "Patient Frame of Reference Source", "PatientFrameOfReferenceSource",  "CS", "1" },
+        { 0x0020, 0x930d,
+          "Temporal Position Time Offset", "TemporalPositionTimeOffset",  "FD", "1" },
+        { 0x0020, 0x930e,
+          "Plane Position (Volume) Sequence", "PlanePositionVolumeSequence",  "SQ", "1" },
+        { 0x0020, 0x930f,
+          "Plane Orientation (Volume) Sequence", "PlaneOrientationVolumeSequence",  "SQ", "1" },
+        { 0x0020, 0x9310,
+          "Temporal Position Sequence", "TemporalPositionSequence",  "SQ", "1" },
+        { 0x0020, 0x9311,
+          "Dimension Organization Type", "DimensionOrganizationType",  "CS", "1" },
+        { 0x0020, 0x9312,
+          "Volume Frame of Reference UID", "VolumeFrameOfReferenceUID",  "UI", "1" },
+        { 0x0020, 0x9313,
+          "Table Frame of Reference UID", "TableFrameOfReferenceUID",  "UI", "1" },
+        { 0x0020, 0x9421,
+          "Dimension Description Label", "DimensionDescriptionLabel",  "LO", "1" },
+        { 0x0020, 0x9450,
+          "Patient Orientation in Frame Sequence", "PatientOrientationInFrameSequence",  "SQ", "1" },
+        { 0x0020, 0x9453,
+          "Frame Label", "FrameLabel",  "LO", "1" },
+        { 0x0020, 0x9518,
+          "Acquisition Index", "AcquisitionIndex",  "US", "1-n" },
+        { 0x0020, 0x9529,
+          "Contributing SOP Instances Reference Sequence", "ContributingSOPInstancesReferenceSequence",  "SQ", "1" },
+        { 0x0020, 0x9536,
+          "Reconstruction Index", "ReconstructionIndex",  "US", "1" },
+        { 0x0022, 0x0001,
+          "Light Path Filter Pass-Through Wavelength", "LightPathFilterPassThroughWavelength",  "US", "1" },
+        { 0x0022, 0x0002,
+          "Light Path Filter Pass Band", "LightPathFilterPassBand",  "US", "2" },
+        { 0x0022, 0x0003,
+          "Image Path Filter Pass-Through Wavelength", "ImagePathFilterPassThroughWavelength",  "US", "1" },
+        { 0x0022, 0x0004,
+          "Image Path Filter Pass Band", "ImagePathFilterPassBand",  "US", "2" },
+        { 0x0022, 0x0005,
+          "Patient Eye Movement Commanded", "PatientEyeMovementCommanded",  "CS", "1" },
+        { 0x0022, 0x0006,
+          "Patient Eye Movement Command Code Sequence", "PatientEyeMovementCommandCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x0007,
+          "Spherical Lens Power", "SphericalLensPower",  "FL", "1" },
+        { 0x0022, 0x0008,
+          "Cylinder Lens Power", "CylinderLensPower",  "FL", "1" },
+        { 0x0022, 0x0009,
+          "Cylinder Axis", "CylinderAxis",  "FL", "1" },
+        { 0x0022, 0x000a,
+          "Emmetropic Magnification", "EmmetropicMagnification",  "FL", "1" },
+        { 0x0022, 0x000b,
+          "Intra Ocular Pressure", "IntraOcularPressure",  "FL", "1" },
+        { 0x0022, 0x000c,
+          "Horizontal Field of View", "HorizontalFieldOfView",  "FL", "1" },
+        { 0x0022, 0x000d,
+          "Pupil Dilated", "PupilDilated",  "CS", "1" },
+        { 0x0022, 0x000e,
+          "Degree of Dilation", "DegreeOfDilation",  "FL", "1" },
+        { 0x0022, 0x0010,
+          "Stereo Baseline Angle", "StereoBaselineAngle",  "FL", "1" },
+        { 0x0022, 0x0011,
+          "Stereo Baseline Displacement", "StereoBaselineDisplacement",  "FL", "1" },
+        { 0x0022, 0x0012,
+          "Stereo Horizontal Pixel Offset", "StereoHorizontalPixelOffset",  "FL", "1" },
+        { 0x0022, 0x0013,
+          "Stereo Vertical Pixel Offset", "StereoVerticalPixelOffset",  "FL", "1" },
+        { 0x0022, 0x0014,
+          "Stereo Rotation", "StereoRotation",  "FL", "1" },
+        { 0x0022, 0x0015,
+          "Acquisition Device Type Code Sequence", "AcquisitionDeviceTypeCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x0016,
+          "Illumination Type Code Sequence", "IlluminationTypeCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x0017,
+          "Light Path Filter Type Stack Code Sequence", "LightPathFilterTypeStackCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x0018,
+          "Image Path Filter Type Stack Code Sequence", "ImagePathFilterTypeStackCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x0019,
+          "Lenses Code Sequence", "LensesCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x001a,
+          "Channel Description Code Sequence", "ChannelDescriptionCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x001b,
+          "Refractive State Sequence", "RefractiveStateSequence",  "SQ", "1" },
+        { 0x0022, 0x001c,
+          "Mydriatic Agent Code Sequence", "MydriaticAgentCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x001d,
+          "Relative Image Position Code Sequence", "RelativeImagePositionCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x001e,
+          "Camera Angle of View", "CameraAngleOfView",  "FL", "1" },
+        { 0x0022, 0x0020,
+          "Stereo Pairs Sequence", "StereoPairsSequence",  "SQ", "1" },
+        { 0x0022, 0x0021,
+          "Left Image Sequence", "LeftImageSequence",  "SQ", "1" },
+        { 0x0022, 0x0022,
+          "Right Image Sequence", "RightImageSequence",  "SQ", "1" },
+        { 0x0022, 0x0028,
+          "Stereo Pairs Present", "StereoPairsPresent",  "CS", "1" },
+        { 0x0022, 0x0030,
+          "Axial Length of the Eye", "AxialLengthOfTheEye",  "FL", "1" },
+        { 0x0022, 0x0031,
+          "Ophthalmic Frame Location Sequence", "OphthalmicFrameLocationSequence",  "SQ", "1" },
+        { 0x0022, 0x0032,
+          "Reference Coordinates", "ReferenceCoordinates",  "FL", "2-2n" },
+        { 0x0022, 0x0035,
+          "Depth Spatial Resolution", "DepthSpatialResolution",  "FL", "1" },
+        { 0x0022, 0x0036,
+          "Maximum Depth Distortion", "MaximumDepthDistortion",  "FL", "1" },
+        { 0x0022, 0x0037,
+          "Along-scan Spatial Resolution", "AlongScanSpatialResolution",  "FL", "1" },
+        { 0x0022, 0x0038,
+          "Maximum Along-scan Distortion", "MaximumAlongScanDistortion",  "FL", "1" },
+        { 0x0022, 0x0039,
+          "Ophthalmic Image Orientation", "OphthalmicImageOrientation",  "CS", "1" },
+        { 0x0022, 0x0041,
+          "Depth of Transverse Image", "DepthOfTransverseImage",  "FL", "1" },
+        { 0x0022, 0x0042,
+          "Mydriatic Agent Concentration Units Sequence", "MydriaticAgentConcentrationUnitsSequence",  "SQ", "1" },
+        { 0x0022, 0x0048,
+          "Across-scan Spatial Resolution", "AcrossScanSpatialResolution",  "FL", "1" },
+        { 0x0022, 0x0049,
+          "Maximum Across-scan Distortion", "MaximumAcrossScanDistortion",  "FL", "1" },
+        { 0x0022, 0x004e,
+          "Mydriatic Agent Concentration", "MydriaticAgentConcentration",  "DS", "1" },
+        { 0x0022, 0x0055,
+          "Illumination Wave Length", "IlluminationWaveLength",  "FL", "1" },
+        { 0x0022, 0x0056,
+          "Illumination Power", "IlluminationPower",  "FL", "1" },
+        { 0x0022, 0x0057,
+          "Illumination Bandwidth", "IlluminationBandwidth",  "FL", "1" },
+        { 0x0022, 0x0058,
+          "Mydriatic Agent Sequence", "MydriaticAgentSequence",  "SQ", "1" },
+        { 0x0022, 0x1007,
+          "Ophthalmic Axial Measurements Right Eye Sequence", "OphthalmicAxialMeasurementsRightEyeSequence",  "SQ", "1" },
+        { 0x0022, 0x1008,
+          "Ophthalmic Axial Measurements Left Eye Sequence", "OphthalmicAxialMeasurementsLeftEyeSequence",  "SQ", "1" },
+        { 0x0022, 0x1009,
+          "Ophthalmic Axial Measurements Device Type", "OphthalmicAxialMeasurementsDeviceType",  "CS", "1" },
+        { 0x0022, 0x1010,
+          "Ophthalmic Axial Length Measurements Type", "OphthalmicAxialLengthMeasurementsType",  "CS", "1" },
+        { 0x0022, 0x1012,
+          "Ophthalmic Axial Length Sequence", "OphthalmicAxialLengthSequence",  "SQ", "1" },
+        { 0x0022, 0x1019,
+          "Ophthalmic Axial Length", "OphthalmicAxialLength",  "FL", "1" },
+        { 0x0022, 0x1024,
+          "Lens Status Code Sequence", "LensStatusCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1025,
+          "Vitreous Status Code Sequence", "VitreousStatusCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1028,
+          "IOL Formula Code Sequence", "IOLFormulaCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1029,
+          "IOL Formula Detail", "IOLFormulaDetail",  "LO", "1" },
+        { 0x0022, 0x1033,
+          "Keratometer Index", "KeratometerIndex",  "FL", "1" },
+        { 0x0022, 0x1035,
+          "Source of Ophthalmic Axial Length Code Sequence", "SourceOfOphthalmicAxialLengthCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1037,
+          "Target Refraction", "TargetRefraction",  "FL", "1" },
+        { 0x0022, 0x1039,
+          "Refractive Procedure Occurred", "RefractiveProcedureOccurred",  "CS", "1" },
+        { 0x0022, 0x1040,
+          "Refractive Surgery Type Code Sequence", "RefractiveSurgeryTypeCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1044,
+          "Ophthalmic Ultrasound Method Code Sequence", "OphthalmicUltrasoundMethodCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1050,
+          "Ophthalmic Axial Length Measurements Sequence", "OphthalmicAxialLengthMeasurementsSequence",  "SQ", "1" },
+        { 0x0022, 0x1053,
+          "IOL Power", "IOLPower",  "FL", "1" },
+        { 0x0022, 0x1054,
+          "Predicted Refractive Error", "PredictedRefractiveError",  "FL", "1" },
+        { 0x0022, 0x1059,
+          "Ophthalmic Axial Length Velocity", "OphthalmicAxialLengthVelocity",  "FL", "1" },
+        { 0x0022, 0x1065,
+          "Lens Status Description", "LensStatusDescription",  "LO", "1" },
+        { 0x0022, 0x1066,
+          "Vitreous Status Description", "VitreousStatusDescription",  "LO", "1" },
+        { 0x0022, 0x1090,
+          "IOL Power Sequence", "IOLPowerSequence",  "SQ", "1" },
+        { 0x0022, 0x1092,
+          "Lens Constant Sequence", "LensConstantSequence",  "SQ", "1" },
+        { 0x0022, 0x1093,
+          "IOL Manufacturer", "IOLManufacturer",  "LO", "1" },
+        { 0x0022, 0x1094,
+          "Lens Constant Description", "LensConstantDescription",  "LO", "1" },
+        { 0x0022, 0x1095,
+          "Implant Name", "ImplantName",  "LO", "1" },
+        { 0x0022, 0x1096,
+          "Keratometry Measurement Type Code Sequence", "KeratometryMeasurementTypeCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1097,
+          "Implant Part Number", "ImplantPartNumber",  "LO", "1" },
+        { 0x0022, 0x1100,
+          "Referenced Ophthalmic Axial Measurements Sequence", "ReferencedOphthalmicAxialMeasurementsSequence",  "SQ", "1" },
+        { 0x0022, 0x1101,
+          "Ophthalmic Axial Length Measurements Segment Name Code Sequence", "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1103,
+          "Refractive Error Before Refractive Surgery Code Sequence", "RefractiveErrorBeforeRefractiveSurgeryCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1121,
+          "IOL Power For Exact Emmetropia", "IOLPowerForExactEmmetropia",  "FL", "1" },
+        { 0x0022, 0x1122,
+          "IOL Power For Exact Target Refraction", "IOLPowerForExactTargetRefraction",  "FL", "1" },
+        { 0x0022, 0x1125,
+          "Anterior Chamber Depth Definition Code Sequence", "AnteriorChamberDepthDefinitionCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1127,
+          "Lens Thickness Sequence", "LensThicknessSequence",  "SQ", "1" },
+        { 0x0022, 0x1128,
+          "Anterior Chamber Depth Sequence", "AnteriorChamberDepthSequence",  "SQ", "1" },
+        { 0x0022, 0x1130,
+          "Lens Thickness", "LensThickness",  "FL", "1" },
+        { 0x0022, 0x1131,
+          "Anterior Chamber Depth", "AnteriorChamberDepth",  "FL", "1" },
+        { 0x0022, 0x1132,
+          "Source of Lens Thickness Data Code Sequence", "SourceOfLensThicknessDataCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1133,
+          "Source of Anterior Chamber Depth Data Code Sequence", "SourceOfAnteriorChamberDepthDataCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1134,
+          "Source of Refractive Measurements Sequence", "SourceOfRefractiveMeasurementsSequence",  "SQ", "1" },
+        { 0x0022, 0x1135,
+          "Source of Refractive Measurements Code Sequence", "SourceOfRefractiveMeasurementsCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1140,
+          "Ophthalmic Axial Length Measurement Modified", "OphthalmicAxialLengthMeasurementModified",  "CS", "1" },
+        { 0x0022, 0x1150,
+          "Ophthalmic Axial Length Data Source Code Sequence", "OphthalmicAxialLengthDataSourceCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1153,
+          "Ophthalmic Axial Length Acquisition Method Code Sequence", "OphthalmicAxialLengthAcquisitionMethodCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1155,
+          "Signal to Noise Ratio", "SignalToNoiseRatio",  "FL", "1" },
+        { 0x0022, 0x1159,
+          "Ophthalmic Axial Length Data Source Description", "OphthalmicAxialLengthDataSourceDescription",  "LO", "1" },
+        { 0x0022, 0x1210,
+          "Ophthalmic Axial Length Measurements Total Length Sequence", "OphthalmicAxialLengthMeasurementsTotalLengthSequence",  "SQ", "1" },
+        { 0x0022, 0x1211,
+          "Ophthalmic Axial Length Measurements Segmental Length Sequence", "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence",  "SQ", "1" },
+        { 0x0022, 0x1212,
+          "Ophthalmic Axial Length Measurements Length Summation Sequence", "OphthalmicAxialLengthMeasurementsLengthSummationSequence",  "SQ", "1" },
+        { 0x0022, 0x1220,
+          "Ultrasound Ophthalmic Axial Length Measurements Sequence", "UltrasoundOphthalmicAxialLengthMeasurementsSequence",  "SQ", "1" },
+        { 0x0022, 0x1225,
+          "Optical Ophthalmic Axial Length Measurements Sequence", "OpticalOphthalmicAxialLengthMeasurementsSequence",  "SQ", "1" },
+        { 0x0022, 0x1230,
+          "Ultrasound Selected Ophthalmic Axial Length Sequence", "UltrasoundSelectedOphthalmicAxialLengthSequence",  "SQ", "1" },
+        { 0x0022, 0x1250,
+          "Ophthalmic Axial Length Selection Method Code Sequence", "OphthalmicAxialLengthSelectionMethodCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1255,
+          "Optical Selected Ophthalmic Axial Length Sequence", "OpticalSelectedOphthalmicAxialLengthSequence",  "SQ", "1" },
+        { 0x0022, 0x1257,
+          "Selected Segmental Ophthalmic Axial Length Sequence", "SelectedSegmentalOphthalmicAxialLengthSequence",  "SQ", "1" },
+        { 0x0022, 0x1260,
+          "Selected Total Ophthalmic Axial Length Sequence", "SelectedTotalOphthalmicAxialLengthSequence",  "SQ", "1" },
+        { 0x0022, 0x1262,
+          "Ophthalmic Axial Length Quality Metric Sequence", "OphthalmicAxialLengthQualityMetricSequence",  "SQ", "1" },
+        { 0x0022, 0x1265,
+          "Ophthalmic Axial Length Quality Metric Type Code Sequence", "OphthalmicAxialLengthQualityMetricTypeCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1273,
+          "Ophthalmic Axial Length Quality Metric Type Description", "OphthalmicAxialLengthQualityMetricTypeDescription",  "LO", "1" },
+        { 0x0022, 0x1300,
+          "Intraocular Lens Calculations Right Eye Sequence", "IntraocularLensCalculationsRightEyeSequence",  "SQ", "1" },
+        { 0x0022, 0x1310,
+          "Intraocular Lens Calculations Left Eye Sequence", "IntraocularLensCalculationsLeftEyeSequence",  "SQ", "1" },
+        { 0x0022, 0x1330,
+          "Referenced Ophthalmic Axial Length Measurement QC Image Sequence", "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence",  "SQ", "1" },
+        { 0x0022, 0x1415,
+          "Ophthalmic Mapping Device Type", "OphthalmicMappingDeviceType",  "CS", "1" },
+        { 0x0022, 0x1420,
+          "Acquisition Method Code Sequence", "AcquisitionMethodCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1423,
+          "Acquisition Method Algorithm Sequence", "AcquisitionMethodAlgorithmSequence",  "SQ", "1" },
+        { 0x0022, 0x1436,
+          "Ophthalmic Thickness Map Type Code Sequence", "OphthalmicThicknessMapTypeCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1443,
+          "Ophthalmic Thickness Mapping Normals Sequence", "OphthalmicThicknessMappingNormalsSequence",  "SQ", "1" },
+        { 0x0022, 0x1445,
+          "Retinal Thickness Definition Code Sequence", "RetinalThicknessDefinitionCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1450,
+          "Pixel Value Mapping to Coded Concept Sequence", "PixelValueMappingToCodedConceptSequence",  "SQ", "1" },
+        { 0x0022, 0x1452,
+          "Mapped Pixel Value", "MappedPixelValue",  "US or SS", "1" },
+        { 0x0022, 0x1454,
+          "Pixel Value Mapping Explanation", "PixelValueMappingExplanation",  "LO", "1" },
+        { 0x0022, 0x1458,
+          "Ophthalmic Thickness Map Quality Threshold Sequence", "OphthalmicThicknessMapQualityThresholdSequence",  "SQ", "1" },
+        { 0x0022, 0x1460,
+          "Ophthalmic Thickness Map Threshold Quality Rating", "OphthalmicThicknessMapThresholdQualityRating",  "FL", "1" },
+        { 0x0022, 0x1463,
+          "Anatomic Structure Reference Point", "AnatomicStructureReferencePoint",  "FL", "2" },
+        { 0x0022, 0x1465,
+          "Registration to Localizer Sequence", "RegistrationToLocalizerSequence",  "SQ", "1" },
+        { 0x0022, 0x1466,
+          "Registered Localizer Units", "RegisteredLocalizerUnits",  "CS", "1" },
+        { 0x0022, 0x1467,
+          "Registered Localizer Top Left Hand Corner", "RegisteredLocalizerTopLeftHandCorner",  "FL", "2" },
+        { 0x0022, 0x1468,
+          "Registered Localizer Bottom Right Hand Corner", "RegisteredLocalizerBottomRightHandCorner",  "FL", "2" },
+        { 0x0022, 0x1470,
+          "Ophthalmic Thickness Map Quality Rating Sequence", "OphthalmicThicknessMapQualityRatingSequence",  "SQ", "1" },
+        { 0x0022, 0x1472,
+          "Relevant OPT Attributes Sequence", "RelevantOPTAttributesSequence",  "SQ", "1" },
+        { 0x0022, 0x1512,
+          "Transformation Method Code Sequence", "TransformationMethodCodeSequence",  "SQ", "1" },
+        { 0x0022, 0x1513,
+          "Transformation Algorithm Sequence", "TransformationAlgorithmSequence",  "SQ", "1" },
+        { 0x0022, 0x1515,
+          "Ophthalmic Axial Length Method", "OphthalmicAxialLengthMethod",  "CS", "1" },
+        { 0x0022, 0x1517,
+          "Ophthalmic FOV", "OphthalmicFOV",  "FL", "1" },
+        { 0x0022, 0x1518,
+          "Two Dimensional to Three Dimensional Map Sequence", "TwoDimensionalToThreeDimensionalMapSequence",  "SQ", "1" },
+        { 0x0022, 0x1525,
+          "Wide Field Ophthalmic Photography Quality Rating Sequence", "WideFieldOphthalmicPhotographyQualityRatingSequence",  "SQ", "1" },
+        { 0x0022, 0x1526,
+          "Wide Field Ophthalmic Photography Quality Threshold Sequence", "WideFieldOphthalmicPhotographyQualityThresholdSequence",  "SQ", "1" },
+        { 0x0022, 0x1527,
+          "Wide Field Ophthalmic Photography  Threshold Quality Rating", "WideFieldOphthalmicPhotographyThresholdQualityRating",  "FL", "1" },
+        { 0x0022, 0x1528,
+          "X Coordinates Center Pixel View Angle", "XCoordinatesCenterPixelViewAngle",  "FL", "1" },
+        { 0x0022, 0x1529,
+          "Y Coordinates Center Pixel View Angle", "YCoordinatesCenterPixelViewAngle",  "FL", "1" },
+        { 0x0022, 0x1530,
+          "Number of Map Points", "NumberOfMapPoints",  "UL", "1" },
+        { 0x0022, 0x1531,
+          "Two Dimensional to Three Dimensional Map Data", "TwoDimensionalToThreeDimensionalMapData",  "OF", "1" },
+        { 0x0024, 0x0010,
+          "Visual Field Horizontal Extent", "VisualFieldHorizontalExtent",  "FL", "1" },
+        { 0x0024, 0x0011,
+          "Visual Field Vertical Extent", "VisualFieldVerticalExtent",  "FL", "1" },
+        { 0x0024, 0x0012,
+          "Visual Field Shape", "VisualFieldShape",  "CS", "1" },
+        { 0x0024, 0x0016,
+          "Screening Test Mode Code Sequence", "ScreeningTestModeCodeSequence",  "SQ", "1" },
+        { 0x0024, 0x0018,
+          "Maximum Stimulus Luminance", "MaximumStimulusLuminance",  "FL", "1" },
+        { 0x0024, 0x0020,
+          "Background Luminance", "BackgroundLuminance",  "FL", "1" },
+        { 0x0024, 0x0021,
+          "Stimulus Color Code Sequence", "StimulusColorCodeSequence",  "SQ", "1" },
+        { 0x0024, 0x0024,
+          "Background Illumination Color Code Sequence", "BackgroundIlluminationColorCodeSequence",  "SQ", "1" },
+        { 0x0024, 0x0025,
+          "Stimulus Area", "StimulusArea",  "FL", "1" },
+        { 0x0024, 0x0028,
+          "Stimulus Presentation Time", "StimulusPresentationTime",  "FL", "1" },
+        { 0x0024, 0x0032,
+          "Fixation Sequence", "FixationSequence",  "SQ", "1" },
+        { 0x0024, 0x0033,
+          "Fixation Monitoring Code Sequence", "FixationMonitoringCodeSequence",  "SQ", "1" },
+        { 0x0024, 0x0034,
+          "Visual Field Catch Trial Sequence", "VisualFieldCatchTrialSequence",  "SQ", "1" },
+        { 0x0024, 0x0035,
+          "Fixation Checked Quantity", "FixationCheckedQuantity",  "US", "1" },
+        { 0x0024, 0x0036,
+          "Patient Not Properly Fixated Quantity", "PatientNotProperlyFixatedQuantity",  "US", "1" },
+        { 0x0024, 0x0037,
+          "Presented Visual Stimuli Data Flag", "PresentedVisualStimuliDataFlag",  "CS", "1" },
+        { 0x0024, 0x0038,
+          "Number of Visual Stimuli", "NumberOfVisualStimuli",  "US", "1" },
+        { 0x0024, 0x0039,
+          "Excessive Fixation Losses Data Flag", "ExcessiveFixationLossesDataFlag",  "CS", "1" },
+        { 0x0024, 0x0040,
+          "Excessive Fixation Losses", "ExcessiveFixationLosses",  "CS", "1" },
+        { 0x0024, 0x0042,
+          "Stimuli Retesting Quantity", "StimuliRetestingQuantity",  "US", "1" },
+        { 0x0024, 0x0044,
+          "Comments on Patient's Performance of Visual Field", "CommentsOnPatientPerformanceOfVisualField",  "LT", "1" },
+        { 0x0024, 0x0045,
+          "False Negatives Estimate Flag", "FalseNegativesEstimateFlag",  "CS", "1" },
+        { 0x0024, 0x0046,
+          "False Negatives Estimate", "FalseNegativesEstimate",  "FL", "1" },
+        { 0x0024, 0x0048,
+          "Negative Catch Trials Quantity", "NegativeCatchTrialsQuantity",  "US", "1" },
+        { 0x0024, 0x0050,
+          "False Negatives Quantity", "FalseNegativesQuantity",  "US", "1" },
+        { 0x0024, 0x0051,
+          "Excessive False Negatives Data Flag", "ExcessiveFalseNegativesDataFlag",  "CS", "1" },
+        { 0x0024, 0x0052,
+          "Excessive False Negatives", "ExcessiveFalseNegatives",  "CS", "1" },
+        { 0x0024, 0x0053,
+          "False Positives Estimate Flag", "FalsePositivesEstimateFlag",  "CS", "1" },
+        { 0x0024, 0x0054,
+          "False Positives Estimate", "FalsePositivesEstimate",  "FL", "1" },
+        { 0x0024, 0x0055,
+          "Catch Trials Data Flag", "CatchTrialsDataFlag",  "CS", "1" },
+        { 0x0024, 0x0056,
+          "Positive Catch Trials Quantity", "PositiveCatchTrialsQuantity",  "US", "1" },
+        { 0x0024, 0x0057,
+          "Test Point Normals Data Flag", "TestPointNormalsDataFlag",  "CS", "1" },
+        { 0x0024, 0x0058,
+          "Test Point Normals Sequence", "TestPointNormalsSequence",  "SQ", "1" },
+        { 0x0024, 0x0059,
+          "Global Deviation Probability Normals Flag", "GlobalDeviationProbabilityNormalsFlag",  "CS", "1" },
+        { 0x0024, 0x0060,
+          "False Positives Quantity", "FalsePositivesQuantity",  "US", "1" },
+        { 0x0024, 0x0061,
+          "Excessive False Positives Data Flag", "ExcessiveFalsePositivesDataFlag",  "CS", "1" },
+        { 0x0024, 0x0062,
+          "Excessive False Positives", "ExcessiveFalsePositives",  "CS", "1" },
+        { 0x0024, 0x0063,
+          "Visual Field Test Normals Flag", "VisualFieldTestNormalsFlag",  "CS", "1" },
+        { 0x0024, 0x0064,
+          "Results Normals Sequence", "ResultsNormalsSequence",  "SQ", "1" },
+        { 0x0024, 0x0065,
+          "Age Corrected Sensitivity Deviation Algorithm Sequence", "AgeCorrectedSensitivityDeviationAlgorithmSequence",  "SQ", "1" },
+        { 0x0024, 0x0066,
+          "Global Deviation From Normal", "GlobalDeviationFromNormal",  "FL", "1" },
+        { 0x0024, 0x0067,
+          "Generalized Defect Sensitivity Deviation Algorithm Sequence", "GeneralizedDefectSensitivityDeviationAlgorithmSequence",  "SQ", "1" },
+        { 0x0024, 0x0068,
+          "Localized Deviation From Normal", "LocalizedDeviationFromNormal",  "FL", "1" },
+        { 0x0024, 0x0069,
+          "Patient Reliability Indicator", "PatientReliabilityIndicator",  "LO", "1" },
+        { 0x0024, 0x0070,
+          "Visual Field Mean Sensitivity", "VisualFieldMeanSensitivity",  "FL", "1" },
+        { 0x0024, 0x0071,
+          "Global Deviation Probability", "GlobalDeviationProbability",  "FL", "1" },
+        { 0x0024, 0x0072,
+          "Local Deviation Probability Normals Flag", "LocalDeviationProbabilityNormalsFlag",  "CS", "1" },
+        { 0x0024, 0x0073,
+          "Localized Deviation Probability", "LocalizedDeviationProbability",  "FL", "1" },
+        { 0x0024, 0x0074,
+          "Short Term Fluctuation Calculated", "ShortTermFluctuationCalculated",  "CS", "1" },
+        { 0x0024, 0x0075,
+          "Short Term Fluctuation", "ShortTermFluctuation",  "FL", "1" },
+        { 0x0024, 0x0076,
+          "Short Term Fluctuation Probability Calculated", "ShortTermFluctuationProbabilityCalculated",  "CS", "1" },
+        { 0x0024, 0x0077,
+          "Short Term Fluctuation Probability", "ShortTermFluctuationProbability",  "FL", "1" },
+        { 0x0024, 0x0078,
+          "Corrected Localized Deviation From Normal Calculated", "CorrectedLocalizedDeviationFromNormalCalculated",  "CS", "1" },
+        { 0x0024, 0x0079,
+          "Corrected Localized Deviation From Normal", "CorrectedLocalizedDeviationFromNormal",  "FL", "1" },
+        { 0x0024, 0x0080,
+          "Corrected Localized Deviation From Normal Probability Calculated", "CorrectedLocalizedDeviationFromNormalProbabilityCalculated",  "CS", "1" },
+        { 0x0024, 0x0081,
+          "Corrected Localized Deviation From Normal Probability", "CorrectedLocalizedDeviationFromNormalProbability",  "FL", "1" },
+        { 0x0024, 0x0083,
+          "Global Deviation Probability Sequence", "GlobalDeviationProbabilitySequence",  "SQ", "1" },
+        { 0x0024, 0x0085,
+          "Localized Deviation Probability Sequence", "LocalizedDeviationProbabilitySequence",  "SQ", "1" },
+        { 0x0024, 0x0086,
+          "Foveal Sensitivity Measured", "FovealSensitivityMeasured",  "CS", "1" },
+        { 0x0024, 0x0087,
+          "Foveal Sensitivity", "FovealSensitivity",  "FL", "1" },
+        { 0x0024, 0x0088,
+          "Visual Field Test Duration", "VisualFieldTestDuration",  "FL", "1" },
+        { 0x0024, 0x0089,
+          "Visual Field Test Point Sequence", "VisualFieldTestPointSequence",  "SQ", "1" },
+        { 0x0024, 0x0090,
+          "Visual Field Test Point X-Coordinate", "VisualFieldTestPointXCoordinate",  "FL", "1" },
+        { 0x0024, 0x0091,
+          "Visual Field Test Point Y-Coordinate", "VisualFieldTestPointYCoordinate",  "FL", "1" },
+        { 0x0024, 0x0092,
+          "Age Corrected Sensitivity Deviation Value", "AgeCorrectedSensitivityDeviationValue",  "FL", "1" },
+        { 0x0024, 0x0093,
+          "Stimulus Results", "StimulusResults",  "CS", "1" },
+        { 0x0024, 0x0094,
+          "Sensitivity Value", "SensitivityValue",  "FL", "1" },
+        { 0x0024, 0x0095,
+          "Retest Stimulus Seen", "RetestStimulusSeen",  "CS", "1" },
+        { 0x0024, 0x0096,
+          "Retest Sensitivity Value", "RetestSensitivityValue",  "FL", "1" },
+        { 0x0024, 0x0097,
+          "Visual Field Test Point Normals Sequence", "VisualFieldTestPointNormalsSequence",  "SQ", "1" },
+        { 0x0024, 0x0098,
+          "Quantified Defect", "QuantifiedDefect",  "FL", "1" },
+        { 0x0024, 0x0100,
+          "Age Corrected Sensitivity Deviation Probability Value", "AgeCorrectedSensitivityDeviationProbabilityValue",  "FL", "1" },
+        { 0x0024, 0x0102,
+          "Generalized Defect Corrected Sensitivity Deviation Flag", "GeneralizedDefectCorrectedSensitivityDeviationFlag",  "CS", "1" },
+        { 0x0024, 0x0103,
+          "Generalized Defect Corrected Sensitivity Deviation Value", "GeneralizedDefectCorrectedSensitivityDeviationValue",  "FL", "1" },
+        { 0x0024, 0x0104,
+          "Generalized Defect Corrected Sensitivity Deviation Probability Value", "GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue",  "FL", "1" },
+        { 0x0024, 0x0105,
+          "Minimum Sensitivity Value", "MinimumSensitivityValue",  "FL", "1" },
+        { 0x0024, 0x0106,
+          "Blind Spot Localized", "BlindSpotLocalized",  "CS", "1" },
+        { 0x0024, 0x0107,
+          "Blind Spot X-Coordinate", "BlindSpotXCoordinate",  "FL", "1" },
+        { 0x0024, 0x0108,
+          "Blind Spot Y-Coordinate", "BlindSpotYCoordinate",  "FL", "1" },
+        { 0x0024, 0x0110,
+          "Visual Acuity Measurement Sequence", "VisualAcuityMeasurementSequence",  "SQ", "1" },
+        { 0x0024, 0x0112,
+          "Refractive Parameters Used on Patient Sequence", "RefractiveParametersUsedOnPatientSequence",  "SQ", "1" },
+        { 0x0024, 0x0113,
+          "Measurement Laterality", "MeasurementLaterality",  "CS", "1" },
+        { 0x0024, 0x0114,
+          "Ophthalmic Patient Clinical Information Left Eye Sequence", "OphthalmicPatientClinicalInformationLeftEyeSequence",  "SQ", "1" },
+        { 0x0024, 0x0115,
+          "Ophthalmic Patient Clinical Information Right Eye Sequence", "OphthalmicPatientClinicalInformationRightEyeSequence",  "SQ", "1" },
+        { 0x0024, 0x0117,
+          "Foveal Point Normative Data Flag", "FovealPointNormativeDataFlag",  "CS", "1" },
+        { 0x0024, 0x0118,
+          "Foveal Point Probability Value", "FovealPointProbabilityValue",  "FL", "1" },
+        { 0x0024, 0x0120,
+          "Screening Baseline Measured", "ScreeningBaselineMeasured",  "CS", "1" },
+        { 0x0024, 0x0122,
+          "Screening Baseline Measured Sequence", "ScreeningBaselineMeasuredSequence",  "SQ", "1" },
+        { 0x0024, 0x0124,
+          "Screening Baseline Type", "ScreeningBaselineType",  "CS", "1" },
+        { 0x0024, 0x0126,
+          "Screening Baseline Value", "ScreeningBaselineValue",  "FL", "1" },
+        { 0x0024, 0x0202,
+          "Algorithm Source", "AlgorithmSource",  "LO", "1" },
+        { 0x0024, 0x0306,
+          "Data Set Name", "DataSetName",  "LO", "1" },
+        { 0x0024, 0x0307,
+          "Data Set Version", "DataSetVersion",  "LO", "1" },
+        { 0x0024, 0x0308,
+          "Data Set Source", "DataSetSource",  "LO", "1" },
+        { 0x0024, 0x0309,
+          "Data Set Description", "DataSetDescription",  "LO", "1" },
+        { 0x0024, 0x0317,
+          "Visual Field Test Reliability Global Index Sequence", "VisualFieldTestReliabilityGlobalIndexSequence",  "SQ", "1" },
+        { 0x0024, 0x0320,
+          "Visual Field Global Results Index Sequence", "VisualFieldGlobalResultsIndexSequence",  "SQ", "1" },
+        { 0x0024, 0x0325,
+          "Data Observation Sequence", "DataObservationSequence",  "SQ", "1" },
+        { 0x0024, 0x0338,
+          "Index Normals Flag", "IndexNormalsFlag",  "CS", "1" },
+        { 0x0024, 0x0341,
+          "Index Probability", "IndexProbability",  "FL", "1" },
+        { 0x0024, 0x0344,
+          "Index Probability Sequence", "IndexProbabilitySequence",  "SQ", "1" },
+        { 0x0028, 0x0002,
+          "Samples per Pixel", "SamplesPerPixel",  "US", "1" },
+        { 0x0028, 0x0003,
+          "Samples per Pixel Used", "SamplesPerPixelUsed",  "US", "1" },
+        { 0x0028, 0x0004,
+          "Photometric Interpretation", "PhotometricInterpretation",  "CS", "1" },
+        { 0x0028, 0x0005,
+          "Image Dimensions", "ImageDimensions",  "US", "1" },
+        { 0x0028, 0x0006,
+          "Planar Configuration", "PlanarConfiguration",  "US", "1" },
+        { 0x0028, 0x0008,
+          "Number of Frames", "NumberOfFrames",  "IS", "1" },
+        { 0x0028, 0x0009,
+          "Frame Increment Pointer", "FrameIncrementPointer",  "AT", "1-n" },
+        { 0x0028, 0x000a,
+          "Frame Dimension Pointer", "FrameDimensionPointer",  "AT", "1-n" },
+        { 0x0028, 0x0010,
+          "Rows", "Rows",  "US", "1" },
+        { 0x0028, 0x0011,
+          "Columns", "Columns",  "US", "1" },
+        { 0x0028, 0x0012,
+          "Planes", "Planes",  "US", "1" },
+        { 0x0028, 0x0014,
+          "Ultrasound Color Data Present", "UltrasoundColorDataPresent",  "US", "1" },
+        { 0x0028, 0x0030,
+          "Pixel Spacing", "PixelSpacing",  "DS", "2" },
+        { 0x0028, 0x0031,
+          "Zoom Factor", "ZoomFactor",  "DS", "2" },
+        { 0x0028, 0x0032,
+          "Zoom Center", "ZoomCenter",  "DS", "2" },
+        { 0x0028, 0x0034,
+          "Pixel Aspect Ratio", "PixelAspectRatio",  "IS", "2" },
+        { 0x0028, 0x0040,
+          "Image Format", "ImageFormat",  "CS", "1" },
+        { 0x0028, 0x0050,
+          "Manipulated Image", "ManipulatedImage",  "LO", "1-n" },
+        { 0x0028, 0x0051,
+          "Corrected Image", "CorrectedImage",  "CS", "1-n" },
+        { 0x0028, 0x005f,
+          "Compression Recognition Code", "CompressionRecognitionCode",  "LO", "1" },
+        { 0x0028, 0x0060,
+          "Compression Code", "CompressionCode",  "CS", "1" },
+        { 0x0028, 0x0061,
+          "Compression Originator", "CompressionOriginator",  "SH", "1" },
+        { 0x0028, 0x0062,
+          "Compression Label", "CompressionLabel",  "LO", "1" },
+        { 0x0028, 0x0063,
+          "Compression Description", "CompressionDescription",  "SH", "1" },
+        { 0x0028, 0x0065,
+          "Compression Sequence", "CompressionSequence",  "CS", "1-n" },
+        { 0x0028, 0x0066,
+          "Compression Step Pointers", "CompressionStepPointers",  "AT", "1-n" },
+        { 0x0028, 0x0068,
+          "Repeat Interval", "RepeatInterval",  "US", "1" },
+        { 0x0028, 0x0069,
+          "Bits Grouped", "BitsGrouped",  "US", "1" },
+        { 0x0028, 0x0070,
+          "Perimeter Table", "PerimeterTable",  "US", "1-n" },
+        { 0x0028, 0x0071,
+          "Perimeter Value", "PerimeterValue",  "US or SS", "1" },
+        { 0x0028, 0x0080,
+          "Predictor Rows", "PredictorRows",  "US", "1" },
+        { 0x0028, 0x0081,
+          "Predictor Columns", "PredictorColumns",  "US", "1" },
+        { 0x0028, 0x0082,
+          "Predictor Constants", "PredictorConstants",  "US", "1-n" },
+        { 0x0028, 0x0090,
+          "Blocked Pixels", "BlockedPixels",  "CS", "1" },
+        { 0x0028, 0x0091,
+          "Block Rows", "BlockRows",  "US", "1" },
+        { 0x0028, 0x0092,
+          "Block Columns", "BlockColumns",  "US", "1" },
+        { 0x0028, 0x0093,
+          "Row Overlap", "RowOverlap",  "US", "1" },
+        { 0x0028, 0x0094,
+          "Column Overlap", "ColumnOverlap",  "US", "1" },
+        { 0x0028, 0x0100,
+          "Bits Allocated", "BitsAllocated",  "US", "1" },
+        { 0x0028, 0x0101,
+          "Bits Stored", "BitsStored",  "US", "1" },
+        { 0x0028, 0x0102,
+          "High Bit", "HighBit",  "US", "1" },
+        { 0x0028, 0x0103,
+          "Pixel Representation", "PixelRepresentation",  "US", "1" },
+        { 0x0028, 0x0104,
+          "Smallest Valid Pixel Value", "SmallestValidPixelValue",  "US or SS", "1" },
+        { 0x0028, 0x0105,
+          "Largest Valid Pixel Value", "LargestValidPixelValue",  "US or SS", "1" },
+        { 0x0028, 0x0106,
+          "Smallest Image Pixel Value", "SmallestImagePixelValue",  "US or SS", "1" },
+        { 0x0028, 0x0107,
+          "Largest Image Pixel Value", "LargestImagePixelValue",  "US or SS", "1" },
+        { 0x0028, 0x0108,
+          "Smallest Pixel Value in Series", "SmallestPixelValueInSeries",  "US or SS", "1" },
+        { 0x0028, 0x0109,
+          "Largest Pixel Value in Series", "LargestPixelValueInSeries",  "US or SS", "1" },
+        { 0x0028, 0x0110,
+          "Smallest Image Pixel Value in Plane", "SmallestImagePixelValueInPlane",  "US or SS", "1" },
+        { 0x0028, 0x0111,
+          "Largest Image Pixel Value in Plane", "LargestImagePixelValueInPlane",  "US or SS", "1" },
+        { 0x0028, 0x0120,
+          "Pixel Padding Value", "PixelPaddingValue",  "US or SS", "1" },
+        { 0x0028, 0x0121,
+          "Pixel Padding Range Limit", "PixelPaddingRangeLimit",  "US or SS", "1" },
+        { 0x0028, 0x0122,
+          "Float Pixel Padding Value", "FloatPixelPaddingValue",  "FL", "1" },
+        { 0x0028, 0x0123,
+          "Double Float Pixel Padding Value", "DoubleFloatPixelPaddingValue",  "FD", "1" },
+        { 0x0028, 0x0124,
+          "Float Pixel Padding Range Limit", "FloatPixelPaddingRangeLimit",  "FL", "1" },
+        { 0x0028, 0x0125,
+          "Double Float Pixel Padding Range Limit", "DoubleFloatPixelPaddingRangeLimit",  "FD", "1" },
+        { 0x0028, 0x0200,
+          "Image Location", "ImageLocation",  "US", "1" },
+        { 0x0028, 0x0300,
+          "Quality Control Image", "QualityControlImage",  "CS", "1" },
+        { 0x0028, 0x0301,
+          "Burned In Annotation", "BurnedInAnnotation",  "CS", "1" },
+        { 0x0028, 0x0302,
+          "Recognizable Visual Features", "RecognizableVisualFeatures",  "CS", "1" },
+        { 0x0028, 0x0303,
+          "Longitudinal Temporal Information Modified", "LongitudinalTemporalInformationModified",  "CS", "1" },
+        { 0x0028, 0x0304,
+          "Referenced Color Palette Instance UID", "ReferencedColorPaletteInstanceUID",  "UI", "1" },
+        { 0x0028, 0x0400,
+          "Transform Label", "TransformLabel",  "LO", "1" },
+        { 0x0028, 0x0401,
+          "Transform Version Number", "TransformVersionNumber",  "LO", "1" },
+        { 0x0028, 0x0402,
+          "Number of Transform Steps", "NumberOfTransformSteps",  "US", "1" },
+        { 0x0028, 0x0403,
+          "Sequence of Compressed Data", "SequenceOfCompressedData",  "LO", "1-n" },
+        { 0x0028, 0x0404,
+          "Details of Coefficients", "DetailsOfCoefficients",  "AT", "1-n" },
+        { 0x0028, 0x0700,
+          "DCT Label", "DCTLabel",  "LO", "1" },
+        { 0x0028, 0x0701,
+          "Data Block Description", "DataBlockDescription",  "CS", "1-n" },
+        { 0x0028, 0x0702,
+          "Data Block", "DataBlock",  "AT", "1-n" },
+        { 0x0028, 0x0710,
+          "Normalization Factor Format", "NormalizationFactorFormat",  "US", "1" },
+        { 0x0028, 0x0720,
+          "Zonal Map Number Format", "ZonalMapNumberFormat",  "US", "1" },
+        { 0x0028, 0x0721,
+          "Zonal Map Location", "ZonalMapLocation",  "AT", "1-n" },
+        { 0x0028, 0x0722,
+          "Zonal Map Format", "ZonalMapFormat",  "US", "1" },
+        { 0x0028, 0x0730,
+          "Adaptive Map Format", "AdaptiveMapFormat",  "US", "1" },
+        { 0x0028, 0x0740,
+          "Code Number Format", "CodeNumberFormat",  "US", "1" },
+        { 0x0028, 0x0a02,
+          "Pixel Spacing Calibration Type", "PixelSpacingCalibrationType",  "CS", "1" },
+        { 0x0028, 0x0a04,
+          "Pixel Spacing Calibration Description", "PixelSpacingCalibrationDescription",  "LO", "1" },
+        { 0x0028, 0x1040,
+          "Pixel Intensity Relationship", "PixelIntensityRelationship",  "CS", "1" },
+        { 0x0028, 0x1041,
+          "Pixel Intensity Relationship Sign", "PixelIntensityRelationshipSign",  "SS", "1" },
+        { 0x0028, 0x1050,
+          "Window Center", "WindowCenter",  "DS", "1-n" },
+        { 0x0028, 0x1051,
+          "Window Width", "WindowWidth",  "DS", "1-n" },
+        { 0x0028, 0x1052,
+          "Rescale Intercept", "RescaleIntercept",  "DS", "1" },
+        { 0x0028, 0x1053,
+          "Rescale Slope", "RescaleSlope",  "DS", "1" },
+        { 0x0028, 0x1054,
+          "Rescale Type", "RescaleType",  "LO", "1" },
+        { 0x0028, 0x1055,
+          "Window Center & Width Explanation", "WindowCenterWidthExplanation",  "LO", "1-n" },
+        { 0x0028, 0x1056,
+          "VOI LUT Function", "VOILUTFunction",  "CS", "1" },
+        { 0x0028, 0x1080,
+          "Gray Scale", "GrayScale",  "CS", "1" },
+        { 0x0028, 0x1090,
+          "Recommended Viewing Mode", "RecommendedViewingMode",  "CS", "1" },
+        { 0x0028, 0x1100,
+          "Gray Lookup Table Descriptor", "GrayLookupTableDescriptor",  "US or SS", "3" },
+        { 0x0028, 0x1101,
+          "Red Palette Color Lookup Table Descriptor", "RedPaletteColorLookupTableDescriptor",  "US or SS", "3" },
+        { 0x0028, 0x1102,
+          "Green Palette Color Lookup Table Descriptor", "GreenPaletteColorLookupTableDescriptor",  "US or SS", "3" },
+        { 0x0028, 0x1103,
+          "Blue Palette Color Lookup Table Descriptor", "BluePaletteColorLookupTableDescriptor",  "US or SS", "3" },
+        { 0x0028, 0x1104,
+          "Alpha Palette Color Lookup Table Descriptor", "AlphaPaletteColorLookupTableDescriptor",  "US", "3" },
+        { 0x0028, 0x1111,
+          "Large Red Palette Color Lookup Table Descriptor", "LargeRedPaletteColorLookupTableDescriptor",  "US or SS", "4" },
+        { 0x0028, 0x1112,
+          "Large Green Palette Color Lookup Table Descriptor", "LargeGreenPaletteColorLookupTableDescriptor",  "US or SS", "4" },
+        { 0x0028, 0x1113,
+          "Large Blue Palette Color Lookup Table Descriptor", "LargeBluePaletteColorLookupTableDescriptor",  "US or SS", "4" },
+        { 0x0028, 0x1199,
+          "Palette Color Lookup Table UID", "PaletteColorLookupTableUID",  "UI", "1" },
+        { 0x0028, 0x1200,
+          "Gray Lookup Table Data", "GrayLookupTableData",  "US or SS or OW", "1-n or 1" },
+        { 0x0028, 0x1201,
+          "Red Palette Color Lookup Table Data", "RedPaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1202,
+          "Green Palette Color Lookup Table Data", "GreenPaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1203,
+          "Blue Palette Color Lookup Table Data", "BluePaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1204,
+          "Alpha Palette Color Lookup Table Data", "AlphaPaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1211,
+          "Large Red Palette Color Lookup Table Data", "LargeRedPaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1212,
+          "Large Green Palette Color Lookup Table Data", "LargeGreenPaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1213,
+          "Large Blue Palette Color Lookup Table Data", "LargeBluePaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1214,
+          "Large Palette Color Lookup Table UID", "LargePaletteColorLookupTableUID",  "UI", "1" },
+        { 0x0028, 0x1221,
+          "Segmented Red Palette Color Lookup Table Data", "SegmentedRedPaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1222,
+          "Segmented Green Palette Color Lookup Table Data", "SegmentedGreenPaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1223,
+          "Segmented Blue Palette Color Lookup Table Data", "SegmentedBluePaletteColorLookupTableData",  "OW", "1" },
+        { 0x0028, 0x1300,
+          "Breast Implant Present", "BreastImplantPresent",  "CS", "1" },
+        { 0x0028, 0x1350,
+          "Partial View", "PartialView",  "CS", "1" },
+        { 0x0028, 0x1351,
+          "Partial View Description", "PartialViewDescription",  "ST", "1" },
+        { 0x0028, 0x1352,
+          "Partial View Code Sequence", "PartialViewCodeSequence",  "SQ", "1" },
+        { 0x0028, 0x135a,
+          "Spatial Locations Preserved", "SpatialLocationsPreserved",  "CS", "1" },
+        { 0x0028, 0x1401,
+          "Data Frame Assignment Sequence", "DataFrameAssignmentSequence",  "SQ", "1" },
+        { 0x0028, 0x1402,
+          "Data Path Assignment", "DataPathAssignment",  "CS", "1" },
+        { 0x0028, 0x1403,
+          "Bits Mapped to Color Lookup Table", "BitsMappedToColorLookupTable",  "US", "1" },
+        { 0x0028, 0x1404,
+          "Blending LUT 1 Sequence", "BlendingLUT1Sequence",  "SQ", "1" },
+        { 0x0028, 0x1405,
+          "Blending LUT 1 Transfer Function", "BlendingLUT1TransferFunction",  "CS", "1" },
+        { 0x0028, 0x1406,
+          "Blending Weight Constant", "BlendingWeightConstant",  "FD", "1" },
+        { 0x0028, 0x1407,
+          "Blending Lookup Table Descriptor", "BlendingLookupTableDescriptor",  "US", "3" },
+        { 0x0028, 0x1408,
+          "Blending Lookup Table Data", "BlendingLookupTableData",  "OW", "1" },
+        { 0x0028, 0x140b,
+          "Enhanced Palette Color Lookup Table Sequence", "EnhancedPaletteColorLookupTableSequence",  "SQ", "1" },
+        { 0x0028, 0x140c,
+          "Blending LUT 2 Sequence", "BlendingLUT2Sequence",  "SQ", "1" },
+        { 0x0028, 0x140d,
+          "Blending LUT 2 Transfer Function", "BlendingLUT2TransferFunction",  "CS", "1" },
+        { 0x0028, 0x140e,
+          "Data Path ID", "DataPathID",  "CS", "1" },
+        { 0x0028, 0x140f,
+          "RGB LUT Transfer Function", "RGBLUTTransferFunction",  "CS", "1" },
+        { 0x0028, 0x1410,
+          "Alpha LUT Transfer Function", "AlphaLUTTransferFunction",  "CS", "1" },
+        { 0x0028, 0x2000,
+          "ICC Profile", "ICCProfile",  "OB", "1" },
+        { 0x0028, 0x2110,
+          "Lossy Image Compression", "LossyImageCompression",  "CS", "1" },
+        { 0x0028, 0x2112,
+          "Lossy Image Compression Ratio", "LossyImageCompressionRatio",  "DS", "1-n" },
+        { 0x0028, 0x2114,
+          "Lossy Image Compression Method", "LossyImageCompressionMethod",  "CS", "1-n" },
+        { 0x0028, 0x3000,
+          "Modality LUT Sequence", "ModalityLUTSequence",  "SQ", "1" },
+        { 0x0028, 0x3002,
+          "LUT Descriptor", "LUTDescriptor",  "US or SS", "3" },
+        { 0x0028, 0x3003,
+          "LUT Explanation", "LUTExplanation",  "LO", "1" },
+        { 0x0028, 0x3004,
+          "Modality LUT Type", "ModalityLUTType",  "LO", "1" },
+        { 0x0028, 0x3006,
+          "LUT Data", "LUTData",  "US or OW", "1-n or 1" },
+        { 0x0028, 0x3010,
+          "VOI LUT Sequence", "VOILUTSequence",  "SQ", "1" },
+        { 0x0028, 0x3110,
+          "Softcopy VOI LUT Sequence", "SoftcopyVOILUTSequence",  "SQ", "1" },
+        { 0x0028, 0x4000,
+          "Image Presentation Comments", "ImagePresentationComments",  "LT", "1" },
+        { 0x0028, 0x5000,
+          "Bi-Plane Acquisition Sequence", "BiPlaneAcquisitionSequence",  "SQ", "1" },
+        { 0x0028, 0x6010,
+          "Representative Frame Number", "RepresentativeFrameNumber",  "US", "1" },
+        { 0x0028, 0x6020,
+          "Frame Numbers of Interest (FOI)", "FrameNumbersOfInterest",  "US", "1-n" },
+        { 0x0028, 0x6022,
+          "Frame of Interest Description", "FrameOfInterestDescription",  "LO", "1-n" },
+        { 0x0028, 0x6023,
+          "Frame of Interest Type", "FrameOfInterestType",  "CS", "1-n" },
+        { 0x0028, 0x6030,
+          "Mask Pointer(s)", "MaskPointers",  "US", "1-n" },
+        { 0x0028, 0x6040,
+          "R Wave Pointer", "RWavePointer",  "US", "1-n" },
+        { 0x0028, 0x6100,
+          "Mask Subtraction Sequence", "MaskSubtractionSequence",  "SQ", "1" },
+        { 0x0028, 0x6101,
+          "Mask Operation", "MaskOperation",  "CS", "1" },
+        { 0x0028, 0x6102,
+          "Applicable Frame Range", "ApplicableFrameRange",  "US", "2-2n" },
+        { 0x0028, 0x6110,
+          "Mask Frame Numbers", "MaskFrameNumbers",  "US", "1-n" },
+        { 0x0028, 0x6112,
+          "Contrast Frame Averaging", "ContrastFrameAveraging",  "US", "1" },
+        { 0x0028, 0x6114,
+          "Mask Sub-pixel Shift", "MaskSubPixelShift",  "FL", "2" },
+        { 0x0028, 0x6120,
+          "TID Offset", "TIDOffset",  "SS", "1" },
+        { 0x0028, 0x6190,
+          "Mask Operation Explanation", "MaskOperationExplanation",  "ST", "1" },
+        { 0x0028, 0x7000,
+          "Equipment Administrator Sequence", "EquipmentAdministratorSequence",  "SQ", "1" },
+        { 0x0028, 0x7001,
+          "Number of Display Subsystems", "NumberOfDisplaySubsystems",  "US", "1" },
+        { 0x0028, 0x7002,
+          "Current Configuration ID", "CurrentConfigurationID",  "US", "1" },
+        { 0x0028, 0x7003,
+          "Display Subsystem ID", "DisplaySubsystemID",  "US", "1" },
+        { 0x0028, 0x7004,
+          "Display Subsystem Name", "DisplaySubsystemName",  "SH", "1" },
+        { 0x0028, 0x7005,
+          "Display Subsystem Description", "DisplaySubsystemDescription",  "LO", "1" },
+        { 0x0028, 0x7006,
+          "System Status", "SystemStatus",  "CS", "1" },
+        { 0x0028, 0x7007,
+          "System Status Comment", "SystemStatusComment",  "LO", "1" },
+        { 0x0028, 0x7008,
+          "Target Luminance Characteristics Sequence", "TargetLuminanceCharacteristicsSequence",  "SQ", "1" },
+        { 0x0028, 0x7009,
+          "Luminance Characteristics ID", "LuminanceCharacteristicsID",  "US", "1" },
+        { 0x0028, 0x700a,
+          "Display Subsystem Configuration Sequence", "DisplaySubsystemConfigurationSequence",  "SQ", "1" },
+        { 0x0028, 0x700b,
+          "Configuration ID", "ConfigurationID",  "US", "1" },
+        { 0x0028, 0x700c,
+          "Configuration Name", "ConfigurationName",  "SH", "1" },
+        { 0x0028, 0x700d,
+          "Configuration Description", "ConfigurationDescription",  "LO", "1" },
+        { 0x0028, 0x700e,
+          "Referenced Target Luminance Characteristics ID", "ReferencedTargetLuminanceCharacteristicsID",  "US", "1" },
+        { 0x0028, 0x700f,
+          "QA Results Sequence", "QAResultsSequence",  "SQ", "1" },
+        { 0x0028, 0x7010,
+          "Display Subsystem QA Results Sequence", "DisplaySubsystemQAResultsSequence",  "SQ", "1" },
+        { 0x0028, 0x7011,
+          "Configuration QA Results Sequence", "ConfigurationQAResultsSequence",  "SQ", "1" },
+        { 0x0028, 0x7012,
+          "Measurement Equipment Sequence", "MeasurementEquipmentSequence",  "SQ", "1" },
+        { 0x0028, 0x7013,
+          "Measurement Functions", "MeasurementFunctions",  "CS", "1-n" },
+        { 0x0028, 0x7014,
+          "Measurement Equipment Type", "MeasurementEquipmentType",  "CS", "1" },
+        { 0x0028, 0x7015,
+          "Visual Evaluation Result Sequence", "VisualEvaluationResultSequence",  "SQ", "1" },
+        { 0x0028, 0x7016,
+          "Display Calibration Result Sequence", "DisplayCalibrationResultSequence",  "SQ", "1" },
+        { 0x0028, 0x7017,
+          "DDL Value", "DDLValue",  "US", "1" },
+        { 0x0028, 0x7018,
+          "CIExy White Point", "CIExyWhitePoint",  "FL", "2" },
+        { 0x0028, 0x7019,
+          "Display Function Type", "DisplayFunctionType",  "CS", "1" },
+        { 0x0028, 0x701a,
+          "Gamma Value", "GammaValue",  "FL", "1" },
+        { 0x0028, 0x701b,
+          "Number of Luminance Points", "NumberOfLuminancePoints",  "US", "1" },
+        { 0x0028, 0x701c,
+          "Luminance Response Sequence", "LuminanceResponseSequence",  "SQ", "1" },
+        { 0x0028, 0x701d,
+          "Target Minimum Luminance", "TargetMinimumLuminance",  "FL", "1" },
+        { 0x0028, 0x701e,
+          "Target Maximum Luminance", "TargetMaximumLuminance",  "FL", "1" },
+        { 0x0028, 0x701f,
+          "Luminance Value", "LuminanceValue",  "FL", "1" },
+        { 0x0028, 0x7020,
+          "Luminance Response Description", "LuminanceResponseDescription",  "LO", "1" },
+        { 0x0028, 0x7021,
+          "White Point Flag", "WhitePointFlag",  "CS", "1" },
+        { 0x0028, 0x7022,
+          "Display Device Type Code Sequence", "DisplayDeviceTypeCodeSequence",  "SQ", "1" },
+        { 0x0028, 0x7023,
+          "Display Subsystem Sequence", "DisplaySubsystemSequence",  "SQ", "1" },
+        { 0x0028, 0x7024,
+          "Luminance Result Sequence", "LuminanceResultSequence",  "SQ", "1" },
+        { 0x0028, 0x7025,
+          "Ambient Light Value Source", "AmbientLightValueSource",  "CS", "1" },
+        { 0x0028, 0x7026,
+          "Measured Characteristics", "MeasuredCharacteristics",  "CS", "1-n" },
+        { 0x0028, 0x7027,
+          "Luminance Uniformity Result Sequence", "LuminanceUniformityResultSequence",  "SQ", "1" },
+        { 0x0028, 0x7028,
+          "Visual Evaluation Test Sequence", "VisualEvaluationTestSequence",  "SQ", "1" },
+        { 0x0028, 0x7029,
+          "Test Result", "TestResult",  "CS", "1" },
+        { 0x0028, 0x702a,
+          "Test Result Comment", "TestResultComment",  "LO", "1" },
+        { 0x0028, 0x702b,
+          "Test Image Validation", "TestImageValidation",  "CS", "1" },
+        { 0x0028, 0x702c,
+          "Test Pattern Code Sequence", "TestPatternCodeSequence",  "SQ", "1" },
+        { 0x0028, 0x702d,
+          "Measurement Pattern Code Sequence", "MeasurementPatternCodeSequence",  "SQ", "1" },
+        { 0x0028, 0x702e,
+          "Visual Evaluation Method Code Sequence", "VisualEvaluationMethodCodeSequence",  "SQ", "1" },
+        { 0x0028, 0x7fe0,
+          "Pixel Data Provider URL", "PixelDataProviderURL",  "UR", "1" },
+        { 0x0028, 0x9001,
+          "Data Point Rows", "DataPointRows",  "UL", "1" },
+        { 0x0028, 0x9002,
+          "Data Point Columns", "DataPointColumns",  "UL", "1" },
+        { 0x0028, 0x9003,
+          "Signal Domain Columns", "SignalDomainColumns",  "CS", "1" },
+        { 0x0028, 0x9099,
+          "Largest Monochrome Pixel Value", "LargestMonochromePixelValue",  "US", "1" },
+        { 0x0028, 0x9108,
+          "Data Representation", "DataRepresentation",  "CS", "1" },
+        { 0x0028, 0x9110,
+          "Pixel Measures Sequence", "PixelMeasuresSequence",  "SQ", "1" },
+        { 0x0028, 0x9132,
+          "Frame VOI LUT Sequence", "FrameVOILUTSequence",  "SQ", "1" },
+        { 0x0028, 0x9145,
+          "Pixel Value Transformation Sequence", "PixelValueTransformationSequence",  "SQ", "1" },
+        { 0x0028, 0x9235,
+          "Signal Domain Rows", "SignalDomainRows",  "CS", "1" },
+        { 0x0028, 0x9411,
+          "Display Filter Percentage", "DisplayFilterPercentage",  "FL", "1" },
+        { 0x0028, 0x9415,
+          "Frame Pixel Shift Sequence", "FramePixelShiftSequence",  "SQ", "1" },
+        { 0x0028, 0x9416,
+          "Subtraction Item ID", "SubtractionItemID",  "US", "1" },
+        { 0x0028, 0x9422,
+          "Pixel Intensity Relationship LUT Sequence", "PixelIntensityRelationshipLUTSequence",  "SQ", "1" },
+        { 0x0028, 0x9443,
+          "Frame Pixel Data Properties Sequence", "FramePixelDataPropertiesSequence",  "SQ", "1" },
+        { 0x0028, 0x9444,
+          "Geometrical Properties", "GeometricalProperties",  "CS", "1" },
+        { 0x0028, 0x9445,
+          "Geometric Maximum Distortion", "GeometricMaximumDistortion",  "FL", "1" },
+        { 0x0028, 0x9446,
+          "Image Processing Applied", "ImageProcessingApplied",  "CS", "1-n" },
+        { 0x0028, 0x9454,
+          "Mask Selection Mode", "MaskSelectionMode",  "CS", "1" },
+        { 0x0028, 0x9474,
+          "LUT Function", "LUTFunction",  "CS", "1" },
+        { 0x0028, 0x9478,
+          "Mask Visibility Percentage", "MaskVisibilityPercentage",  "FL", "1" },
+        { 0x0028, 0x9501,
+          "Pixel Shift Sequence", "PixelShiftSequence",  "SQ", "1" },
+        { 0x0028, 0x9502,
+          "Region Pixel Shift Sequence", "RegionPixelShiftSequence",  "SQ", "1" },
+        { 0x0028, 0x9503,
+          "Vertices of the Region", "VerticesOfTheRegion",  "SS", "2-2n" },
+        { 0x0028, 0x9505,
+          "Multi-frame Presentation Sequence", "MultiFramePresentationSequence",  "SQ", "1" },
+        { 0x0028, 0x9506,
+          "Pixel Shift Frame Range", "PixelShiftFrameRange",  "US", "2-2n" },
+        { 0x0028, 0x9507,
+          "LUT Frame Range", "LUTFrameRange",  "US", "2-2n" },
+        { 0x0028, 0x9520,
+          "Image to Equipment Mapping Matrix", "ImageToEquipmentMappingMatrix",  "DS", "16" },
+        { 0x0028, 0x9537,
+          "Equipment Coordinate System Identification", "EquipmentCoordinateSystemIdentification",  "CS", "1" },
+        { 0x0032, 0x000a,
+          "Study Status ID", "StudyStatusID",  "CS", "1" },
+        { 0x0032, 0x000c,
+          "Study Priority ID", "StudyPriorityID",  "CS", "1" },
+        { 0x0032, 0x0012,
+          "Study ID Issuer", "StudyIDIssuer",  "LO", "1" },
+        { 0x0032, 0x0032,
+          "Study Verified Date", "StudyVerifiedDate",  "DA", "1" },
+        { 0x0032, 0x0033,
+          "Study Verified Time", "StudyVerifiedTime",  "TM", "1" },
+        { 0x0032, 0x0034,
+          "Study Read Date", "StudyReadDate",  "DA", "1" },
+        { 0x0032, 0x0035,
+          "Study Read Time", "StudyReadTime",  "TM", "1" },
+        { 0x0032, 0x1000,
+          "Scheduled Study Start Date", "ScheduledStudyStartDate",  "DA", "1" },
+        { 0x0032, 0x1001,
+          "Scheduled Study Start Time", "ScheduledStudyStartTime",  "TM", "1" },
+        { 0x0032, 0x1010,
+          "Scheduled Study Stop Date", "ScheduledStudyStopDate",  "DA", "1" },
+        { 0x0032, 0x1011,
+          "Scheduled Study Stop Time", "ScheduledStudyStopTime",  "TM", "1" },
+        { 0x0032, 0x1020,
+          "Scheduled Study Location", "ScheduledStudyLocation",  "LO", "1" },
+        { 0x0032, 0x1021,
+          "Scheduled Study Location AE Title", "ScheduledStudyLocationAETitle",  "AE", "1-n" },
+        { 0x0032, 0x1030,
+          "Reason for Study", "ReasonForStudy",  "LO", "1" },
+        { 0x0032, 0x1031,
+          "Requesting Physician Identification Sequence", "RequestingPhysicianIdentificationSequence",  "SQ", "1" },
+        { 0x0032, 0x1032,
+          "Requesting Physician", "RequestingPhysician",  "PN", "1" },
+        { 0x0032, 0x1033,
+          "Requesting Service", "RequestingService",  "LO", "1" },
+        { 0x0032, 0x1034,
+          "Requesting Service Code Sequence", "RequestingServiceCodeSequence",  "SQ", "1" },
+        { 0x0032, 0x1040,
+          "Study Arrival Date", "StudyArrivalDate",  "DA", "1" },
+        { 0x0032, 0x1041,
+          "Study Arrival Time", "StudyArrivalTime",  "TM", "1" },
+        { 0x0032, 0x1050,
+          "Study Completion Date", "StudyCompletionDate",  "DA", "1" },
+        { 0x0032, 0x1051,
+          "Study Completion Time", "StudyCompletionTime",  "TM", "1" },
+        { 0x0032, 0x1055,
+          "Study Component Status ID", "StudyComponentStatusID",  "CS", "1" },
+        { 0x0032, 0x1060,
+          "Requested Procedure Description", "RequestedProcedureDescription",  "LO", "1" },
+        { 0x0032, 0x1064,
+          "Requested Procedure Code Sequence", "RequestedProcedureCodeSequence",  "SQ", "1" },
+        { 0x0032, 0x1070,
+          "Requested Contrast Agent", "RequestedContrastAgent",  "LO", "1" },
+        { 0x0032, 0x4000,
+          "Study Comments", "StudyComments",  "LT", "1" },
+        { 0x0038, 0x0004,
+          "Referenced Patient Alias Sequence", "ReferencedPatientAliasSequence",  "SQ", "1" },
+        { 0x0038, 0x0008,
+          "Visit Status ID", "VisitStatusID",  "CS", "1" },
+        { 0x0038, 0x0010,
+          "Admission ID", "AdmissionID",  "LO", "1" },
+        { 0x0038, 0x0011,
+          "Issuer of Admission ID", "IssuerOfAdmissionID",  "LO", "1" },
+        { 0x0038, 0x0014,
+          "Issuer of Admission ID Sequence", "IssuerOfAdmissionIDSequence",  "SQ", "1" },
+        { 0x0038, 0x0016,
+          "Route of Admissions", "RouteOfAdmissions",  "LO", "1" },
+        { 0x0038, 0x001a,
+          "Scheduled Admission Date", "ScheduledAdmissionDate",  "DA", "1" },
+        { 0x0038, 0x001b,
+          "Scheduled Admission Time", "ScheduledAdmissionTime",  "TM", "1" },
+        { 0x0038, 0x001c,
+          "Scheduled Discharge Date", "ScheduledDischargeDate",  "DA", "1" },
+        { 0x0038, 0x001d,
+          "Scheduled Discharge Time", "ScheduledDischargeTime",  "TM", "1" },
+        { 0x0038, 0x001e,
+          "Scheduled Patient Institution Residence", "ScheduledPatientInstitutionResidence",  "LO", "1" },
+        { 0x0038, 0x0020,
+          "Admitting Date", "AdmittingDate",  "DA", "1" },
+        { 0x0038, 0x0021,
+          "Admitting Time", "AdmittingTime",  "TM", "1" },
+        { 0x0038, 0x0030,
+          "Discharge Date", "DischargeDate",  "DA", "1" },
+        { 0x0038, 0x0032,
+          "Discharge Time", "DischargeTime",  "TM", "1" },
+        { 0x0038, 0x0040,
+          "Discharge Diagnosis Description", "DischargeDiagnosisDescription",  "LO", "1" },
+        { 0x0038, 0x0044,
+          "Discharge Diagnosis Code Sequence", "DischargeDiagnosisCodeSequence",  "SQ", "1" },
+        { 0x0038, 0x0050,
+          "Special Needs", "SpecialNeeds",  "LO", "1" },
+        { 0x0038, 0x0060,
+          "Service Episode ID", "ServiceEpisodeID",  "LO", "1" },
+        { 0x0038, 0x0061,
+          "Issuer of Service Episode ID", "IssuerOfServiceEpisodeID",  "LO", "1" },
+        { 0x0038, 0x0062,
+          "Service Episode Description", "ServiceEpisodeDescription",  "LO", "1" },
+        { 0x0038, 0x0064,
+          "Issuer of Service Episode ID Sequence", "IssuerOfServiceEpisodeIDSequence",  "SQ", "1" },
+        { 0x0038, 0x0100,
+          "Pertinent Documents Sequence", "PertinentDocumentsSequence",  "SQ", "1" },
+        { 0x0038, 0x0101,
+          "Pertinent Resources Sequence", "PertinentResourcesSequence",  "SQ", "1" },
+        { 0x0038, 0x0102,
+          "Resource Description", "ResourceDescription",  "LO", "1" },
+        { 0x0038, 0x0300,
+          "Current Patient Location", "CurrentPatientLocation",  "LO", "1" },
+        { 0x0038, 0x0400,
+          "Patient's Institution Residence", "PatientInstitutionResidence",  "LO", "1" },
+        { 0x0038, 0x0500,
+          "Patient State", "PatientState",  "LO", "1" },
+        { 0x0038, 0x0502,
+          "Patient Clinical Trial Participation Sequence", "PatientClinicalTrialParticipationSequence",  "SQ", "1" },
+        { 0x0038, 0x4000,
+          "Visit Comments", "VisitComments",  "LT", "1" },
+        { 0x003a, 0x0004,
+          "Waveform Originality", "WaveformOriginality",  "CS", "1" },
+        { 0x003a, 0x0005,
+          "Number of Waveform Channels", "NumberOfWaveformChannels",  "US", "1" },
+        { 0x003a, 0x0010,
+          "Number of Waveform Samples", "NumberOfWaveformSamples",  "UL", "1" },
+        { 0x003a, 0x001a,
+          "Sampling Frequency", "SamplingFrequency",  "DS", "1" },
+        { 0x003a, 0x0020,
+          "Multiplex Group Label", "MultiplexGroupLabel",  "SH", "1" },
+        { 0x003a, 0x0200,
+          "Channel Definition Sequence", "ChannelDefinitionSequence",  "SQ", "1" },
+        { 0x003a, 0x0202,
+          "Waveform Channel Number", "WaveformChannelNumber",  "IS", "1" },
+        { 0x003a, 0x0203,
+          "Channel Label", "ChannelLabel",  "SH", "1" },
+        { 0x003a, 0x0205,
+          "Channel Status", "ChannelStatus",  "CS", "1-n" },
+        { 0x003a, 0x0208,
+          "Channel Source Sequence", "ChannelSourceSequence",  "SQ", "1" },
+        { 0x003a, 0x0209,
+          "Channel Source Modifiers Sequence", "ChannelSourceModifiersSequence",  "SQ", "1" },
+        { 0x003a, 0x020a,
+          "Source Waveform Sequence", "SourceWaveformSequence",  "SQ", "1" },
+        { 0x003a, 0x020c,
+          "Channel Derivation Description", "ChannelDerivationDescription",  "LO", "1" },
+        { 0x003a, 0x0210,
+          "Channel Sensitivity", "ChannelSensitivity",  "DS", "1" },
+        { 0x003a, 0x0211,
+          "Channel Sensitivity Units Sequence", "ChannelSensitivityUnitsSequence",  "SQ", "1" },
+        { 0x003a, 0x0212,
+          "Channel Sensitivity Correction Factor", "ChannelSensitivityCorrectionFactor",  "DS", "1" },
+        { 0x003a, 0x0213,
+          "Channel Baseline", "ChannelBaseline",  "DS", "1" },
+        { 0x003a, 0x0214,
+          "Channel Time Skew", "ChannelTimeSkew",  "DS", "1" },
+        { 0x003a, 0x0215,
+          "Channel Sample Skew", "ChannelSampleSkew",  "DS", "1" },
+        { 0x003a, 0x0218,
+          "Channel Offset", "ChannelOffset",  "DS", "1" },
+        { 0x003a, 0x021a,
+          "Waveform Bits Stored", "WaveformBitsStored",  "US", "1" },
+        { 0x003a, 0x0220,
+          "Filter Low Frequency", "FilterLowFrequency",  "DS", "1" },
+        { 0x003a, 0x0221,
+          "Filter High Frequency", "FilterHighFrequency",  "DS", "1" },
+        { 0x003a, 0x0222,
+          "Notch Filter Frequency", "NotchFilterFrequency",  "DS", "1" },
+        { 0x003a, 0x0223,
+          "Notch Filter Bandwidth", "NotchFilterBandwidth",  "DS", "1" },
+        { 0x003a, 0x0230,
+          "Waveform Data Display Scale", "WaveformDataDisplayScale",  "FL", "1" },
+        { 0x003a, 0x0231,
+          "Waveform Display Background CIELab Value", "WaveformDisplayBackgroundCIELabValue",  "US", "3" },
+        { 0x003a, 0x0240,
+          "Waveform Presentation Group Sequence", "WaveformPresentationGroupSequence",  "SQ", "1" },
+        { 0x003a, 0x0241,
+          "Presentation Group Number", "PresentationGroupNumber",  "US", "1" },
+        { 0x003a, 0x0242,
+          "Channel Display Sequence", "ChannelDisplaySequence",  "SQ", "1" },
+        { 0x003a, 0x0244,
+          "Channel Recommended Display CIELab Value", "ChannelRecommendedDisplayCIELabValue",  "US", "3" },
+        { 0x003a, 0x0245,
+          "Channel Position", "ChannelPosition",  "FL", "1" },
+        { 0x003a, 0x0246,
+          "Display Shading Flag", "DisplayShadingFlag",  "CS", "1" },
+        { 0x003a, 0x0247,
+          "Fractional Channel Display Scale", "FractionalChannelDisplayScale",  "FL", "1" },
+        { 0x003a, 0x0248,
+          "Absolute Channel Display Scale", "AbsoluteChannelDisplayScale",  "FL", "1" },
+        { 0x003a, 0x0300,
+          "Multiplexed Audio Channels Description Code Sequence", "MultiplexedAudioChannelsDescriptionCodeSequence",  "SQ", "1" },
+        { 0x003a, 0x0301,
+          "Channel Identification Code", "ChannelIdentificationCode",  "IS", "1" },
+        { 0x003a, 0x0302,
+          "Channel Mode", "ChannelMode",  "CS", "1" },
+        { 0x0040, 0x0001,
+          "Scheduled Station AE Title", "ScheduledStationAETitle",  "AE", "1-n" },
+        { 0x0040, 0x0002,
+          "Scheduled Procedure Step Start Date", "ScheduledProcedureStepStartDate",  "DA", "1" },
+        { 0x0040, 0x0003,
+          "Scheduled Procedure Step Start Time", "ScheduledProcedureStepStartTime",  "TM", "1" },
+        { 0x0040, 0x0004,
+          "Scheduled Procedure Step End Date", "ScheduledProcedureStepEndDate",  "DA", "1" },
+        { 0x0040, 0x0005,
+          "Scheduled Procedure Step End Time", "ScheduledProcedureStepEndTime",  "TM", "1" },
+        { 0x0040, 0x0006,
+          "Scheduled Performing Physician's Name", "ScheduledPerformingPhysicianName",  "PN", "1" },
+        { 0x0040, 0x0007,
+          "Scheduled Procedure Step Description", "ScheduledProcedureStepDescription",  "LO", "1" },
+        { 0x0040, 0x0008,
+          "Scheduled Protocol Code Sequence", "ScheduledProtocolCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x0009,
+          "Scheduled Procedure Step ID", "ScheduledProcedureStepID",  "SH", "1" },
+        { 0x0040, 0x000a,
+          "Stage Code Sequence", "StageCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x000b,
+          "Scheduled Performing Physician Identification Sequence", "ScheduledPerformingPhysicianIdentificationSequence",  "SQ", "1" },
+        { 0x0040, 0x0010,
+          "Scheduled Station Name", "ScheduledStationName",  "SH", "1-n" },
+        { 0x0040, 0x0011,
+          "Scheduled Procedure Step Location", "ScheduledProcedureStepLocation",  "SH", "1" },
+        { 0x0040, 0x0012,
+          "Pre-Medication", "PreMedication",  "LO", "1" },
+        { 0x0040, 0x0020,
+          "Scheduled Procedure Step Status", "ScheduledProcedureStepStatus",  "CS", "1" },
+        { 0x0040, 0x0026,
+          "Order Placer Identifier Sequence", "OrderPlacerIdentifierSequence",  "SQ", "1" },
+        { 0x0040, 0x0027,
+          "Order Filler Identifier Sequence", "OrderFillerIdentifierSequence",  "SQ", "1" },
+        { 0x0040, 0x0031,
+          "Local Namespace Entity ID", "LocalNamespaceEntityID",  "UT", "1" },
+        { 0x0040, 0x0032,
+          "Universal Entity ID", "UniversalEntityID",  "UT", "1" },
+        { 0x0040, 0x0033,
+          "Universal Entity ID Type", "UniversalEntityIDType",  "CS", "1" },
+        { 0x0040, 0x0035,
+          "Identifier Type Code", "IdentifierTypeCode",  "CS", "1" },
+        { 0x0040, 0x0036,
+          "Assigning Facility Sequence", "AssigningFacilitySequence",  "SQ", "1" },
+        { 0x0040, 0x0039,
+          "Assigning Jurisdiction Code Sequence", "AssigningJurisdictionCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x003a,
+          "Assigning Agency or Department Code Sequence", "AssigningAgencyOrDepartmentCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x0100,
+          "Scheduled Procedure Step Sequence", "ScheduledProcedureStepSequence",  "SQ", "1" },
+        { 0x0040, 0x0220,
+          "Referenced Non-Image Composite SOP Instance Sequence", "ReferencedNonImageCompositeSOPInstanceSequence",  "SQ", "1" },
+        { 0x0040, 0x0241,
+          "Performed Station AE Title", "PerformedStationAETitle",  "AE", "1" },
+        { 0x0040, 0x0242,
+          "Performed Station Name", "PerformedStationName",  "SH", "1" },
+        { 0x0040, 0x0243,
+          "Performed Location", "PerformedLocation",  "SH", "1" },
+        { 0x0040, 0x0244,
+          "Performed Procedure Step Start Date", "PerformedProcedureStepStartDate",  "DA", "1" },
+        { 0x0040, 0x0245,
+          "Performed Procedure Step Start Time", "PerformedProcedureStepStartTime",  "TM", "1" },
+        { 0x0040, 0x0250,
+          "Performed Procedure Step End Date", "PerformedProcedureStepEndDate",  "DA", "1" },
+        { 0x0040, 0x0251,
+          "Performed Procedure Step End Time", "PerformedProcedureStepEndTime",  "TM", "1" },
+        { 0x0040, 0x0252,
+          "Performed Procedure Step Status", "PerformedProcedureStepStatus",  "CS", "1" },
+        { 0x0040, 0x0253,
+          "Performed Procedure Step ID", "PerformedProcedureStepID",  "SH", "1" },
+        { 0x0040, 0x0254,
+          "Performed Procedure Step Description", "PerformedProcedureStepDescription",  "LO", "1" },
+        { 0x0040, 0x0255,
+          "Performed Procedure Type Description", "PerformedProcedureTypeDescription",  "LO", "1" },
+        { 0x0040, 0x0260,
+          "Performed Protocol Code Sequence", "PerformedProtocolCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x0261,
+          "Performed Protocol Type", "PerformedProtocolType",  "CS", "1" },
+        { 0x0040, 0x0270,
+          "Scheduled Step Attributes Sequence", "ScheduledStepAttributesSequence",  "SQ", "1" },
+        { 0x0040, 0x0275,
+          "Request Attributes Sequence", "RequestAttributesSequence",  "SQ", "1" },
+        { 0x0040, 0x0280,
+          "Comments on the Performed Procedure Step", "CommentsOnThePerformedProcedureStep",  "ST", "1" },
+        { 0x0040, 0x0281,
+          "Performed Procedure Step Discontinuation Reason Code Sequence", "PerformedProcedureStepDiscontinuationReasonCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x0293,
+          "Quantity Sequence", "QuantitySequence",  "SQ", "1" },
+        { 0x0040, 0x0294,
+          "Quantity", "Quantity",  "DS", "1" },
+        { 0x0040, 0x0295,
+          "Measuring Units Sequence", "MeasuringUnitsSequence",  "SQ", "1" },
+        { 0x0040, 0x0296,
+          "Billing Item Sequence", "BillingItemSequence",  "SQ", "1" },
+        { 0x0040, 0x0300,
+          "Total Time of Fluoroscopy", "TotalTimeOfFluoroscopy",  "US", "1" },
+        { 0x0040, 0x0301,
+          "Total Number of Exposures", "TotalNumberOfExposures",  "US", "1" },
+        { 0x0040, 0x0302,
+          "Entrance Dose", "EntranceDose",  "US", "1" },
+        { 0x0040, 0x0303,
+          "Exposed Area", "ExposedArea",  "US", "1-2" },
+        { 0x0040, 0x0306,
+          "Distance Source to Entrance", "DistanceSourceToEntrance",  "DS", "1" },
+        { 0x0040, 0x0307,
+          "Distance Source to Support", "DistanceSourceToSupport",  "DS", "1" },
+        { 0x0040, 0x030e,
+          "Exposure Dose Sequence", "ExposureDoseSequence",  "SQ", "1" },
+        { 0x0040, 0x0310,
+          "Comments on Radiation Dose", "CommentsOnRadiationDose",  "ST", "1" },
+        { 0x0040, 0x0312,
+          "X-Ray Output", "XRayOutput",  "DS", "1" },
+        { 0x0040, 0x0314,
+          "Half Value Layer", "HalfValueLayer",  "DS", "1" },
+        { 0x0040, 0x0316,
+          "Organ Dose", "OrganDose",  "DS", "1" },
+        { 0x0040, 0x0318,
+          "Organ Exposed", "OrganExposed",  "CS", "1" },
+        { 0x0040, 0x0320,
+          "Billing Procedure Step Sequence", "BillingProcedureStepSequence",  "SQ", "1" },
+        { 0x0040, 0x0321,
+          "Film Consumption Sequence", "FilmConsumptionSequence",  "SQ", "1" },
+        { 0x0040, 0x0324,
+          "Billing Supplies and Devices Sequence", "BillingSuppliesAndDevicesSequence",  "SQ", "1" },
+        { 0x0040, 0x0330,
+          "Referenced Procedure Step Sequence", "ReferencedProcedureStepSequence",  "SQ", "1" },
+        { 0x0040, 0x0340,
+          "Performed Series Sequence", "PerformedSeriesSequence",  "SQ", "1" },
+        { 0x0040, 0x0400,
+          "Comments on the Scheduled Procedure Step", "CommentsOnTheScheduledProcedureStep",  "LT", "1" },
+        { 0x0040, 0x0440,
+          "Protocol Context Sequence", "ProtocolContextSequence",  "SQ", "1" },
+        { 0x0040, 0x0441,
+          "Content Item Modifier Sequence", "ContentItemModifierSequence",  "SQ", "1" },
+        { 0x0040, 0x0500,
+          "Scheduled Specimen Sequence", "ScheduledSpecimenSequence",  "SQ", "1" },
+        { 0x0040, 0x050a,
+          "Specimen Accession Number", "SpecimenAccessionNumber",  "LO", "1" },
+        { 0x0040, 0x0512,
+          "Container Identifier", "ContainerIdentifier",  "LO", "1" },
+        { 0x0040, 0x0513,
+          "Issuer of the Container Identifier Sequence", "IssuerOfTheContainerIdentifierSequence",  "SQ", "1" },
+        { 0x0040, 0x0515,
+          "Alternate Container Identifier Sequence", "AlternateContainerIdentifierSequence",  "SQ", "1" },
+        { 0x0040, 0x0518,
+          "Container Type Code Sequence", "ContainerTypeCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x051a,
+          "Container Description", "ContainerDescription",  "LO", "1" },
+        { 0x0040, 0x0520,
+          "Container Component Sequence", "ContainerComponentSequence",  "SQ", "1" },
+        { 0x0040, 0x0550,
+          "Specimen Sequence", "SpecimenSequence",  "SQ", "1" },
+        { 0x0040, 0x0551,
+          "Specimen Identifier", "SpecimenIdentifier",  "LO", "1" },
+        { 0x0040, 0x0552,
+          "Specimen Description Sequence (Trial)", "SpecimenDescriptionSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0x0553,
+          "Specimen Description (Trial)", "SpecimenDescriptionTrial",  "ST", "1" },
+        { 0x0040, 0x0554,
+          "Specimen UID", "SpecimenUID",  "UI", "1" },
+        { 0x0040, 0x0555,
+          "Acquisition Context Sequence", "AcquisitionContextSequence",  "SQ", "1" },
+        { 0x0040, 0x0556,
+          "Acquisition Context Description", "AcquisitionContextDescription",  "ST", "1" },
+        { 0x0040, 0x059a,
+          "Specimen Type Code Sequence", "SpecimenTypeCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x0560,
+          "Specimen Description Sequence", "SpecimenDescriptionSequence",  "SQ", "1" },
+        { 0x0040, 0x0562,
+          "Issuer of the Specimen Identifier Sequence", "IssuerOfTheSpecimenIdentifierSequence",  "SQ", "1" },
+        { 0x0040, 0x0600,
+          "Specimen Short Description", "SpecimenShortDescription",  "LO", "1" },
+        { 0x0040, 0x0602,
+          "Specimen Detailed Description", "SpecimenDetailedDescription",  "UT", "1" },
+        { 0x0040, 0x0610,
+          "Specimen Preparation Sequence", "SpecimenPreparationSequence",  "SQ", "1" },
+        { 0x0040, 0x0612,
+          "Specimen Preparation Step Content Item Sequence", "SpecimenPreparationStepContentItemSequence",  "SQ", "1" },
+        { 0x0040, 0x0620,
+          "Specimen Localization Content Item Sequence", "SpecimenLocalizationContentItemSequence",  "SQ", "1" },
+        { 0x0040, 0x06fa,
+          "Slide Identifier", "SlideIdentifier",  "LO", "1" },
+        { 0x0040, 0x071a,
+          "Image Center Point Coordinates Sequence", "ImageCenterPointCoordinatesSequence",  "SQ", "1" },
+        { 0x0040, 0x072a,
+          "X Offset in Slide Coordinate System", "XOffsetInSlideCoordinateSystem",  "DS", "1" },
+        { 0x0040, 0x073a,
+          "Y Offset in Slide Coordinate System", "YOffsetInSlideCoordinateSystem",  "DS", "1" },
+        { 0x0040, 0x074a,
+          "Z Offset in Slide Coordinate System", "ZOffsetInSlideCoordinateSystem",  "DS", "1" },
+        { 0x0040, 0x08d8,
+          "Pixel Spacing Sequence", "PixelSpacingSequence",  "SQ", "1" },
+        { 0x0040, 0x08da,
+          "Coordinate System Axis Code Sequence", "CoordinateSystemAxisCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x08ea,
+          "Measurement Units Code Sequence", "MeasurementUnitsCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x09f8,
+          "Vital Stain Code Sequence (Trial)", "VitalStainCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0x1001,
+          "Requested Procedure ID", "RequestedProcedureID",  "SH", "1" },
+        { 0x0040, 0x1002,
+          "Reason for the Requested Procedure", "ReasonForTheRequestedProcedure",  "LO", "1" },
+        { 0x0040, 0x1003,
+          "Requested Procedure Priority", "RequestedProcedurePriority",  "SH", "1" },
+        { 0x0040, 0x1004,
+          "Patient Transport Arrangements", "PatientTransportArrangements",  "LO", "1" },
+        { 0x0040, 0x1005,
+          "Requested Procedure Location", "RequestedProcedureLocation",  "LO", "1" },
+        { 0x0040, 0x1006,
+          "Placer Order Number / Procedure", "PlacerOrderNumberProcedure",  "SH", "1" },
+        { 0x0040, 0x1007,
+          "Filler Order Number / Procedure", "FillerOrderNumberProcedure",  "SH", "1" },
+        { 0x0040, 0x1008,
+          "Confidentiality Code", "ConfidentialityCode",  "LO", "1" },
+        { 0x0040, 0x1009,
+          "Reporting Priority", "ReportingPriority",  "SH", "1" },
+        { 0x0040, 0x100a,
+          "Reason for Requested Procedure Code Sequence", "ReasonForRequestedProcedureCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x1010,
+          "Names of Intended Recipients of Results", "NamesOfIntendedRecipientsOfResults",  "PN", "1-n" },
+        { 0x0040, 0x1011,
+          "Intended Recipients of Results Identification Sequence", "IntendedRecipientsOfResultsIdentificationSequence",  "SQ", "1" },
+        { 0x0040, 0x1012,
+          "Reason For Performed Procedure Code Sequence", "ReasonForPerformedProcedureCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x1060,
+          "Requested Procedure Description (Trial)", "RequestedProcedureDescriptionTrial",  "LO", "1" },
+        { 0x0040, 0x1101,
+          "Person Identification Code Sequence", "PersonIdentificationCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x1102,
+          "Person's Address", "PersonAddress",  "ST", "1" },
+        { 0x0040, 0x1103,
+          "Person's Telephone Numbers", "PersonTelephoneNumbers",  "LO", "1-n" },
+        { 0x0040, 0x1104,
+          "Person's Telecom Information", "PersonTelecomInformation",  "LT", "1" },
+        { 0x0040, 0x1400,
+          "Requested Procedure Comments", "RequestedProcedureComments",  "LT", "1" },
+        { 0x0040, 0x2001,
+          "Reason for the Imaging Service Request", "ReasonForTheImagingServiceRequest",  "LO", "1" },
+        { 0x0040, 0x2004,
+          "Issue Date of Imaging Service Request", "IssueDateOfImagingServiceRequest",  "DA", "1" },
+        { 0x0040, 0x2005,
+          "Issue Time of Imaging Service Request", "IssueTimeOfImagingServiceRequest",  "TM", "1" },
+        { 0x0040, 0x2006,
+          "Placer Order Number / Imaging Service Request (Retired)", "PlacerOrderNumberImagingServiceRequestRetired",  "SH", "1" },
+        { 0x0040, 0x2007,
+          "Filler Order Number / Imaging Service Request (Retired)", "FillerOrderNumberImagingServiceRequestRetired",  "SH", "1" },
+        { 0x0040, 0x2008,
+          "Order Entered By", "OrderEnteredBy",  "PN", "1" },
+        { 0x0040, 0x2009,
+          "Order Enterer's Location", "OrderEntererLocation",  "SH", "1" },
+        { 0x0040, 0x2010,
+          "Order Callback Phone Number", "OrderCallbackPhoneNumber",  "SH", "1" },
+        { 0x0040, 0x2011,
+          "Order Callback Telecom Information", "OrderCallbackTelecomInformation",  "LT", "1" },
+        { 0x0040, 0x2016,
+          "Placer Order Number / Imaging Service Request", "PlacerOrderNumberImagingServiceRequest",  "LO", "1" },
+        { 0x0040, 0x2017,
+          "Filler Order Number / Imaging Service Request", "FillerOrderNumberImagingServiceRequest",  "LO", "1" },
+        { 0x0040, 0x2400,
+          "Imaging Service Request Comments", "ImagingServiceRequestComments",  "LT", "1" },
+        { 0x0040, 0x3001,
+          "Confidentiality Constraint on Patient Data Description", "ConfidentialityConstraintOnPatientDataDescription",  "LO", "1" },
+        { 0x0040, 0x4001,
+          "General Purpose Scheduled Procedure Step Status", "GeneralPurposeScheduledProcedureStepStatus",  "CS", "1" },
+        { 0x0040, 0x4002,
+          "General Purpose Performed Procedure Step Status", "GeneralPurposePerformedProcedureStepStatus",  "CS", "1" },
+        { 0x0040, 0x4003,
+          "General Purpose Scheduled Procedure Step Priority", "GeneralPurposeScheduledProcedureStepPriority",  "CS", "1" },
+        { 0x0040, 0x4004,
+          "Scheduled Processing Applications Code Sequence", "ScheduledProcessingApplicationsCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4005,
+          "Scheduled Procedure Step Start DateTime", "ScheduledProcedureStepStartDateTime",  "DT", "1" },
+        { 0x0040, 0x4006,
+          "Multiple Copies Flag", "MultipleCopiesFlag",  "CS", "1" },
+        { 0x0040, 0x4007,
+          "Performed Processing Applications Code Sequence", "PerformedProcessingApplicationsCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4009,
+          "Human Performer Code Sequence", "HumanPerformerCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4010,
+          "Scheduled Procedure Step Modification DateTime", "ScheduledProcedureStepModificationDateTime",  "DT", "1" },
+        { 0x0040, 0x4011,
+          "Expected Completion DateTime", "ExpectedCompletionDateTime",  "DT", "1" },
+        { 0x0040, 0x4015,
+          "Resulting General Purpose Performed Procedure Steps Sequence", "ResultingGeneralPurposePerformedProcedureStepsSequence",  "SQ", "1" },
+        { 0x0040, 0x4016,
+          "Referenced General Purpose Scheduled Procedure Step Sequence", "ReferencedGeneralPurposeScheduledProcedureStepSequence",  "SQ", "1" },
+        { 0x0040, 0x4018,
+          "Scheduled Workitem Code Sequence", "ScheduledWorkitemCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4019,
+          "Performed Workitem Code Sequence", "PerformedWorkitemCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4020,
+          "Input Availability Flag", "InputAvailabilityFlag",  "CS", "1" },
+        { 0x0040, 0x4021,
+          "Input Information Sequence", "InputInformationSequence",  "SQ", "1" },
+        { 0x0040, 0x4022,
+          "Relevant Information Sequence", "RelevantInformationSequence",  "SQ", "1" },
+        { 0x0040, 0x4023,
+          "Referenced General Purpose Scheduled Procedure Step Transaction UID", "ReferencedGeneralPurposeScheduledProcedureStepTransactionUID",  "UI", "1" },
+        { 0x0040, 0x4025,
+          "Scheduled Station Name Code Sequence", "ScheduledStationNameCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4026,
+          "Scheduled Station Class Code Sequence", "ScheduledStationClassCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4027,
+          "Scheduled Station Geographic Location Code Sequence", "ScheduledStationGeographicLocationCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4028,
+          "Performed Station Name Code Sequence", "PerformedStationNameCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4029,
+          "Performed Station Class Code Sequence", "PerformedStationClassCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4030,
+          "Performed Station Geographic Location Code Sequence", "PerformedStationGeographicLocationCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4031,
+          "Requested Subsequent Workitem Code Sequence", "RequestedSubsequentWorkitemCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4032,
+          "Non-DICOM Output Code Sequence", "NonDICOMOutputCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x4033,
+          "Output Information Sequence", "OutputInformationSequence",  "SQ", "1" },
+        { 0x0040, 0x4034,
+          "Scheduled Human Performers Sequence", "ScheduledHumanPerformersSequence",  "SQ", "1" },
+        { 0x0040, 0x4035,
+          "Actual Human Performers Sequence", "ActualHumanPerformersSequence",  "SQ", "1" },
+        { 0x0040, 0x4036,
+          "Human Performer's Organization", "HumanPerformerOrganization",  "LO", "1" },
+        { 0x0040, 0x4037,
+          "Human Performer's Name", "HumanPerformerName",  "PN", "1" },
+        { 0x0040, 0x4040,
+          "Raw Data Handling", "RawDataHandling",  "CS", "1" },
+        { 0x0040, 0x4041,
+          "Input Readiness State", "InputReadinessState",  "CS", "1" },
+        { 0x0040, 0x4050,
+          "Performed Procedure Step Start DateTime", "PerformedProcedureStepStartDateTime",  "DT", "1" },
+        { 0x0040, 0x4051,
+          "Performed Procedure Step End DateTime", "PerformedProcedureStepEndDateTime",  "DT", "1" },
+        { 0x0040, 0x4052,
+          "Procedure Step Cancellation DateTime", "ProcedureStepCancellationDateTime",  "DT", "1" },
+        { 0x0040, 0x8302,
+          "Entrance Dose in mGy", "EntranceDoseInmGy",  "DS", "1" },
+        { 0x0040, 0x9092,
+          "Parametric Map Frame Type Sequence", "ParametricMapFrameTypeSequence",  "SQ", "1" },
+        { 0x0040, 0x9094,
+          "Referenced Image Real World Value Mapping Sequence", "ReferencedImageRealWorldValueMappingSequence",  "SQ", "1" },
+        { 0x0040, 0x9096,
+          "Real World Value Mapping Sequence", "RealWorldValueMappingSequence",  "SQ", "1" },
+        { 0x0040, 0x9098,
+          "Pixel Value Mapping Code Sequence", "PixelValueMappingCodeSequence",  "SQ", "1" },
+        { 0x0040, 0x9210,
+          "LUT Label", "LUTLabel",  "SH", "1" },
+        { 0x0040, 0x9211,
+          "Real World Value Last Value Mapped", "RealWorldValueLastValueMapped",  "US or SS", "1" },
+        { 0x0040, 0x9212,
+          "Real World Value LUT Data", "RealWorldValueLUTData",  "FD", "1-n" },
+        { 0x0040, 0x9216,
+          "Real World Value First Value Mapped", "RealWorldValueFirstValueMapped",  "US or SS", "1" },
+        { 0x0040, 0x9220,
+          "Quantity Definition Sequence", "QuantityDefinitionSequence",  "SQ", "1" },
+        { 0x0040, 0x9224,
+          "Real World Value Intercept", "RealWorldValueIntercept",  "FD", "1" },
+        { 0x0040, 0x9225,
+          "Real World Value Slope", "RealWorldValueSlope",  "FD", "1" },
+        { 0x0040, 0xa007,
+          "Findings Flag (Trial)", "FindingsFlagTrial",  "CS", "1" },
+        { 0x0040, 0xa010,
+          "Relationship Type", "RelationshipType",  "CS", "1" },
+        { 0x0040, 0xa020,
+          "Findings Sequence (Trial)", "FindingsSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa021,
+          "Findings Group UID (Trial)", "FindingsGroupUIDTrial",  "UI", "1" },
+        { 0x0040, 0xa022,
+          "Referenced Findings Group UID (Trial)", "ReferencedFindingsGroupUIDTrial",  "UI", "1" },
+        { 0x0040, 0xa023,
+          "Findings Group Recording Date (Trial)", "FindingsGroupRecordingDateTrial",  "DA", "1" },
+        { 0x0040, 0xa024,
+          "Findings Group Recording Time (Trial)", "FindingsGroupRecordingTimeTrial",  "TM", "1" },
+        { 0x0040, 0xa026,
+          "Findings Source Category Code Sequence (Trial)", "FindingsSourceCategoryCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa027,
+          "Verifying Organization", "VerifyingOrganization",  "LO", "1" },
+        { 0x0040, 0xa028,
+          "Documenting Organization Identifier Code Sequence (Trial)", "DocumentingOrganizationIdentifierCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa030,
+          "Verification DateTime", "VerificationDateTime",  "DT", "1" },
+        { 0x0040, 0xa032,
+          "Observation DateTime", "ObservationDateTime",  "DT", "1" },
+        { 0x0040, 0xa040,
+          "Value Type", "ValueType",  "CS", "1" },
+        { 0x0040, 0xa043,
+          "Concept Name Code Sequence", "ConceptNameCodeSequence",  "SQ", "1" },
+        { 0x0040, 0xa047,
+          "Measurement Precision Description (Trial)", "MeasurementPrecisionDescriptionTrial",  "LO", "1" },
+        { 0x0040, 0xa050,
+          "Continuity Of Content", "ContinuityOfContent",  "CS", "1" },
+        { 0x0040, 0xa057,
+          "Urgency or Priority Alerts (Trial)", "UrgencyOrPriorityAlertsTrial",  "CS", "1-n" },
+        { 0x0040, 0xa060,
+          "Sequencing Indicator (Trial)", "SequencingIndicatorTrial",  "LO", "1" },
+        { 0x0040, 0xa066,
+          "Document Identifier Code Sequence (Trial)", "DocumentIdentifierCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa067,
+          "Document Author (Trial)", "DocumentAuthorTrial",  "PN", "1" },
+        { 0x0040, 0xa068,
+          "Document Author Identifier Code Sequence (Trial)", "DocumentAuthorIdentifierCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa070,
+          "Identifier Code Sequence (Trial)", "IdentifierCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa073,
+          "Verifying Observer Sequence", "VerifyingObserverSequence",  "SQ", "1" },
+        { 0x0040, 0xa074,
+          "Object Binary Identifier (Trial)", "ObjectBinaryIdentifierTrial",  "OB", "1" },
+        { 0x0040, 0xa075,
+          "Verifying Observer Name", "VerifyingObserverName",  "PN", "1" },
+        { 0x0040, 0xa076,
+          "Documenting Observer Identifier Code Sequence (Trial)", "DocumentingObserverIdentifierCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa078,
+          "Author Observer Sequence", "AuthorObserverSequence",  "SQ", "1" },
+        { 0x0040, 0xa07a,
+          "Participant Sequence", "ParticipantSequence",  "SQ", "1" },
+        { 0x0040, 0xa07c,
+          "Custodial Organization Sequence", "CustodialOrganizationSequence",  "SQ", "1" },
+        { 0x0040, 0xa080,
+          "Participation Type", "ParticipationType",  "CS", "1" },
+        { 0x0040, 0xa082,
+          "Participation DateTime", "ParticipationDateTime",  "DT", "1" },
+        { 0x0040, 0xa084,
+          "Observer Type", "ObserverType",  "CS", "1" },
+        { 0x0040, 0xa085,
+          "Procedure Identifier Code Sequence (Trial)", "ProcedureIdentifierCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa088,
+          "Verifying Observer Identification Code Sequence", "VerifyingObserverIdentificationCodeSequence",  "SQ", "1" },
+        { 0x0040, 0xa089,
+          "Object Directory Binary Identifier (Trial)", "ObjectDirectoryBinaryIdentifierTrial",  "OB", "1" },
+        { 0x0040, 0xa090,
+          "Equivalent CDA Document Sequence", "EquivalentCDADocumentSequence",  "SQ", "1" },
+        { 0x0040, 0xa0b0,
+          "Referenced Waveform Channels", "ReferencedWaveformChannels",  "US", "2-2n" },
+        { 0x0040, 0xa110,
+          "Date of Document or Verbal Transaction (Trial)", "DateOfDocumentOrVerbalTransactionTrial",  "DA", "1" },
+        { 0x0040, 0xa112,
+          "Time of Document Creation or Verbal Transaction (Trial)", "TimeOfDocumentCreationOrVerbalTransactionTrial",  "TM", "1" },
+        { 0x0040, 0xa120,
+          "DateTime", "DateTime",  "DT", "1" },
+        { 0x0040, 0xa121,
+          "Date", "Date",  "DA", "1" },
+        { 0x0040, 0xa122,
+          "Time", "Time",  "TM", "1" },
+        { 0x0040, 0xa123,
+          "Person Name", "PersonName",  "PN", "1" },
+        { 0x0040, 0xa124,
+          "UID", "UID",  "UI", "1" },
+        { 0x0040, 0xa125,
+          "Report Status ID (Trial)", "ReportStatusIDTrial",  "CS", "2" },
+        { 0x0040, 0xa130,
+          "Temporal Range Type", "TemporalRangeType",  "CS", "1" },
+        { 0x0040, 0xa132,
+          "Referenced Sample Positions", "ReferencedSamplePositions",  "UL", "1-n" },
+        { 0x0040, 0xa136,
+          "Referenced Frame Numbers", "ReferencedFrameNumbers",  "US", "1-n" },
+        { 0x0040, 0xa138,
+          "Referenced Time Offsets", "ReferencedTimeOffsets",  "DS", "1-n" },
+        { 0x0040, 0xa13a,
+          "Referenced DateTime", "ReferencedDateTime",  "DT", "1-n" },
+        { 0x0040, 0xa160,
+          "Text Value", "TextValue",  "UT", "1" },
+        { 0x0040, 0xa161,
+          "Floating Point Value", "FloatingPointValue",  "FD", "1-n" },
+        { 0x0040, 0xa162,
+          "Rational Numerator Value", "RationalNumeratorValue",  "SL", "1-n" },
+        { 0x0040, 0xa163,
+          "Rational Denominator Value", "RationalDenominatorValue",  "UL", "1-n" },
+        { 0x0040, 0xa167,
+          "Observation Category Code Sequence (Trial)", "ObservationCategoryCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa168,
+          "Concept Code Sequence", "ConceptCodeSequence",  "SQ", "1" },
+        { 0x0040, 0xa16a,
+          "Bibliographic Citation (Trial)", "BibliographicCitationTrial",  "ST", "1" },
+        { 0x0040, 0xa170,
+          "Purpose of Reference Code Sequence", "PurposeOfReferenceCodeSequence",  "SQ", "1" },
+        { 0x0040, 0xa171,
+          "Observation UID", "ObservationUID",  "UI", "1" },
+        { 0x0040, 0xa172,
+          "Referenced Observation UID (Trial)", "ReferencedObservationUIDTrial",  "UI", "1" },
+        { 0x0040, 0xa173,
+          "Referenced Observation Class (Trial)", "ReferencedObservationClassTrial",  "CS", "1" },
+        { 0x0040, 0xa174,
+          "Referenced Object Observation Class (Trial)", "ReferencedObjectObservationClassTrial",  "CS", "1" },
+        { 0x0040, 0xa180,
+          "Annotation Group Number", "AnnotationGroupNumber",  "US", "1" },
+        { 0x0040, 0xa192,
+          "Observation Date (Trial)", "ObservationDateTrial",  "DA", "1" },
+        { 0x0040, 0xa193,
+          "Observation Time (Trial)", "ObservationTimeTrial",  "TM", "1" },
+        { 0x0040, 0xa194,
+          "Measurement Automation (Trial)", "MeasurementAutomationTrial",  "CS", "1" },
+        { 0x0040, 0xa195,
+          "Modifier Code Sequence", "ModifierCodeSequence",  "SQ", "1" },
+        { 0x0040, 0xa224,
+          "Identification Description (Trial)", "IdentificationDescriptionTrial",  "ST", "1" },
+        { 0x0040, 0xa290,
+          "Coordinates Set Geometric Type (Trial)", "CoordinatesSetGeometricTypeTrial",  "CS", "1" },
+        { 0x0040, 0xa296,
+          "Algorithm Code Sequence (Trial)", "AlgorithmCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa297,
+          "Algorithm Description (Trial)", "AlgorithmDescriptionTrial",  "ST", "1" },
+        { 0x0040, 0xa29a,
+          "Pixel Coordinates Set (Trial)", "PixelCoordinatesSetTrial",  "SL", "2-2n" },
+        { 0x0040, 0xa300,
+          "Measured Value Sequence", "MeasuredValueSequence",  "SQ", "1" },
+        { 0x0040, 0xa301,
+          "Numeric Value Qualifier Code Sequence", "NumericValueQualifierCodeSequence",  "SQ", "1" },
+        { 0x0040, 0xa307,
+          "Current Observer (Trial)", "CurrentObserverTrial",  "PN", "1" },
+        { 0x0040, 0xa30a,
+          "Numeric Value", "NumericValue",  "DS", "1-n" },
+        { 0x0040, 0xa313,
+          "Referenced Accession Sequence (Trial)", "ReferencedAccessionSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa33a,
+          "Report Status Comment (Trial)", "ReportStatusCommentTrial",  "ST", "1" },
+        { 0x0040, 0xa340,
+          "Procedure Context Sequence (Trial)", "ProcedureContextSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa352,
+          "Verbal Source (Trial)", "VerbalSourceTrial",  "PN", "1" },
+        { 0x0040, 0xa353,
+          "Address (Trial)", "AddressTrial",  "ST", "1" },
+        { 0x0040, 0xa354,
+          "Telephone Number (Trial)", "TelephoneNumberTrial",  "LO", "1" },
+        { 0x0040, 0xa358,
+          "Verbal Source Identifier Code Sequence (Trial)", "VerbalSourceIdentifierCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa360,
+          "Predecessor Documents Sequence", "PredecessorDocumentsSequence",  "SQ", "1" },
+        { 0x0040, 0xa370,
+          "Referenced Request Sequence", "ReferencedRequestSequence",  "SQ", "1" },
+        { 0x0040, 0xa372,
+          "Performed Procedure Code Sequence", "PerformedProcedureCodeSequence",  "SQ", "1" },
+        { 0x0040, 0xa375,
+          "Current Requested Procedure Evidence Sequence", "CurrentRequestedProcedureEvidenceSequence",  "SQ", "1" },
+        { 0x0040, 0xa380,
+          "Report Detail Sequence (Trial)", "ReportDetailSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa385,
+          "Pertinent Other Evidence Sequence", "PertinentOtherEvidenceSequence",  "SQ", "1" },
+        { 0x0040, 0xa390,
+          "HL7 Structured Document Reference Sequence", "HL7StructuredDocumentReferenceSequence",  "SQ", "1" },
+        { 0x0040, 0xa402,
+          "Observation Subject UID (Trial)", "ObservationSubjectUIDTrial",  "UI", "1" },
+        { 0x0040, 0xa403,
+          "Observation Subject Class (Trial)", "ObservationSubjectClassTrial",  "CS", "1" },
+        { 0x0040, 0xa404,
+          "Observation Subject Type Code Sequence (Trial)", "ObservationSubjectTypeCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa491,
+          "Completion Flag", "CompletionFlag",  "CS", "1" },
+        { 0x0040, 0xa492,
+          "Completion Flag Description", "CompletionFlagDescription",  "LO", "1" },
+        { 0x0040, 0xa493,
+          "Verification Flag", "VerificationFlag",  "CS", "1" },
+        { 0x0040, 0xa494,
+          "Archive Requested", "ArchiveRequested",  "CS", "1" },
+        { 0x0040, 0xa496,
+          "Preliminary Flag", "PreliminaryFlag",  "CS", "1" },
+        { 0x0040, 0xa504,
+          "Content Template Sequence", "ContentTemplateSequence",  "SQ", "1" },
+        { 0x0040, 0xa525,
+          "Identical Documents Sequence", "IdenticalDocumentsSequence",  "SQ", "1" },
+        { 0x0040, 0xa600,
+          "Observation Subject Context Flag (Trial)", "ObservationSubjectContextFlagTrial",  "CS", "1" },
+        { 0x0040, 0xa601,
+          "Observer Context Flag (Trial)", "ObserverContextFlagTrial",  "CS", "1" },
+        { 0x0040, 0xa603,
+          "Procedure Context Flag (Trial)", "ProcedureContextFlagTrial",  "CS", "1" },
+        { 0x0040, 0xa730,
+          "Content Sequence", "ContentSequence",  "SQ", "1" },
+        { 0x0040, 0xa731,
+          "Relationship Sequence (Trial)", "RelationshipSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa732,
+          "Relationship Type Code Sequence (Trial)", "RelationshipTypeCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa744,
+          "Language Code Sequence (Trial)", "LanguageCodeSequenceTrial",  "SQ", "1" },
+        { 0x0040, 0xa992,
+          "Uniform Resource Locator (Trial)", "UniformResourceLocatorTrial",  "ST", "1" },
+        { 0x0040, 0xb020,
+          "Waveform Annotation Sequence", "WaveformAnnotationSequence",  "SQ", "1" },
+        { 0x0040, 0xdb00,
+          "Template Identifier", "TemplateIdentifier",  "CS", "1" },
+        { 0x0040, 0xdb06,
+          "Template Version", "TemplateVersion",  "DT", "1" },
+        { 0x0040, 0xdb07,
+          "Template Local Version", "TemplateLocalVersion",  "DT", "1" },
+        { 0x0040, 0xdb0b,
+          "Template Extension Flag", "TemplateExtensionFlag",  "CS", "1" },
+        { 0x0040, 0xdb0c,
+          "Template Extension Organization UID", "TemplateExtensionOrganizationUID",  "UI", "1" },
+        { 0x0040, 0xdb0d,
+          "Template Extension Creator UID", "TemplateExtensionCreatorUID",  "UI", "1" },
+        { 0x0040, 0xdb73,
+          "Referenced Content Item Identifier", "ReferencedContentItemIdentifier",  "UL", "1-n" },
+        { 0x0040, 0xe001,
+          "HL7 Instance Identifier", "HL7InstanceIdentifier",  "ST", "1" },
+        { 0x0040, 0xe004,
+          "HL7 Document Effective Time", "HL7DocumentEffectiveTime",  "DT", "1" },
+        { 0x0040, 0xe006,
+          "HL7 Document Type Code Sequence", "HL7DocumentTypeCodeSequence",  "SQ", "1" },
+        { 0x0040, 0xe008,
+          "Document Class Code Sequence", "DocumentClassCodeSequence",  "SQ", "1" },
+        { 0x0040, 0xe010,
+          "Retrieve URI", "RetrieveURI",  "UR", "1" },
+        { 0x0040, 0xe011,
+          "Retrieve Location UID", "RetrieveLocationUID",  "UI", "1" },
+        { 0x0040, 0xe020,
+          "Type of Instances", "TypeOfInstances",  "CS", "1" },
+        { 0x0040, 0xe021,
+          "DICOM Retrieval Sequence", "DICOMRetrievalSequence",  "SQ", "1" },
+        { 0x0040, 0xe022,
+          "DICOM Media Retrieval Sequence", "DICOMMediaRetrievalSequence",  "SQ", "1" },
+        { 0x0040, 0xe023,
+          "WADO Retrieval Sequence", "WADORetrievalSequence",  "SQ", "1" },
+        { 0x0040, 0xe024,
+          "XDS Retrieval Sequence", "XDSRetrievalSequence",  "SQ", "1" },
+        { 0x0040, 0xe025,
+          "WADO-RS Retrieval Sequence", "WADORSRetrievalSequence",  "SQ", "1" },
+        { 0x0040, 0xe030,
+          "Repository Unique ID", "RepositoryUniqueID",  "UI", "1" },
+        { 0x0040, 0xe031,
+          "Home Community ID", "HomeCommunityID",  "UI", "1" },
+        { 0x0042, 0x0010,
+          "Document Title", "DocumentTitle",  "ST", "1" },
+        { 0x0042, 0x0011,
+          "Encapsulated Document", "EncapsulatedDocument",  "OB", "1" },
+        { 0x0042, 0x0012,
+          "MIME Type of Encapsulated Document", "MIMETypeOfEncapsulatedDocument",  "LO", "1" },
+        { 0x0042, 0x0013,
+          "Source Instance Sequence", "SourceInstanceSequence",  "SQ", "1" },
+        { 0x0042, 0x0014,
+          "List of MIME Types", "ListOfMIMETypes",  "LO", "1-n" },
+        { 0x0044, 0x0001,
+          "Product Package Identifier", "ProductPackageIdentifier",  "ST", "1" },
+        { 0x0044, 0x0002,
+          "Substance Administration Approval", "SubstanceAdministrationApproval",  "CS", "1" },
+        { 0x0044, 0x0003,
+          "Approval Status Further Description", "ApprovalStatusFurtherDescription",  "LT", "1" },
+        { 0x0044, 0x0004,
+          "Approval Status DateTime", "ApprovalStatusDateTime",  "DT", "1" },
+        { 0x0044, 0x0007,
+          "Product Type Code Sequence", "ProductTypeCodeSequence",  "SQ", "1" },
+        { 0x0044, 0x0008,
+          "Product Name", "ProductName",  "LO", "1-n" },
+        { 0x0044, 0x0009,
+          "Product Description", "ProductDescription",  "LT", "1" },
+        { 0x0044, 0x000a,
+          "Product Lot Identifier", "ProductLotIdentifier",  "LO", "1" },
+        { 0x0044, 0x000b,
+          "Product Expiration DateTime", "ProductExpirationDateTime",  "DT", "1" },
+        { 0x0044, 0x0010,
+          "Substance Administration DateTime", "SubstanceAdministrationDateTime",  "DT", "1" },
+        { 0x0044, 0x0011,
+          "Substance Administration Notes", "SubstanceAdministrationNotes",  "LO", "1" },
+        { 0x0044, 0x0012,
+          "Substance Administration Device ID", "SubstanceAdministrationDeviceID",  "LO", "1" },
+        { 0x0044, 0x0013,
+          "Product Parameter Sequence", "ProductParameterSequence",  "SQ", "1" },
+        { 0x0044, 0x0019,
+          "Substance Administration Parameter Sequence", "SubstanceAdministrationParameterSequence",  "SQ", "1" },
+        { 0x0046, 0x0012,
+          "Lens Description", "LensDescription",  "LO", "1" },
+        { 0x0046, 0x0014,
+          "Right Lens Sequence", "RightLensSequence",  "SQ", "1" },
+        { 0x0046, 0x0015,
+          "Left Lens Sequence", "LeftLensSequence",  "SQ", "1" },
+        { 0x0046, 0x0016,
+          "Unspecified Laterality Lens Sequence", "UnspecifiedLateralityLensSequence",  "SQ", "1" },
+        { 0x0046, 0x0018,
+          "Cylinder Sequence", "CylinderSequence",  "SQ", "1" },
+        { 0x0046, 0x0028,
+          "Prism Sequence", "PrismSequence",  "SQ", "1" },
+        { 0x0046, 0x0030,
+          "Horizontal Prism Power", "HorizontalPrismPower",  "FD", "1" },
+        { 0x0046, 0x0032,
+          "Horizontal Prism Base", "HorizontalPrismBase",  "CS", "1" },
+        { 0x0046, 0x0034,
+          "Vertical Prism Power", "VerticalPrismPower",  "FD", "1" },
+        { 0x0046, 0x0036,
+          "Vertical Prism Base", "VerticalPrismBase",  "CS", "1" },
+        { 0x0046, 0x0038,
+          "Lens Segment Type", "LensSegmentType",  "CS", "1" },
+        { 0x0046, 0x0040,
+          "Optical Transmittance", "OpticalTransmittance",  "FD", "1" },
+        { 0x0046, 0x0042,
+          "Channel Width", "ChannelWidth",  "FD", "1" },
+        { 0x0046, 0x0044,
+          "Pupil Size", "PupilSize",  "FD", "1" },
+        { 0x0046, 0x0046,
+          "Corneal Size", "CornealSize",  "FD", "1" },
+        { 0x0046, 0x0050,
+          "Autorefraction Right Eye Sequence", "AutorefractionRightEyeSequence",  "SQ", "1" },
+        { 0x0046, 0x0052,
+          "Autorefraction Left Eye Sequence", "AutorefractionLeftEyeSequence",  "SQ", "1" },
+        { 0x0046, 0x0060,
+          "Distance Pupillary Distance", "DistancePupillaryDistance",  "FD", "1" },
+        { 0x0046, 0x0062,
+          "Near Pupillary Distance", "NearPupillaryDistance",  "FD", "1" },
+        { 0x0046, 0x0063,
+          "Intermediate Pupillary Distance", "IntermediatePupillaryDistance",  "FD", "1" },
+        { 0x0046, 0x0064,
+          "Other Pupillary Distance", "OtherPupillaryDistance",  "FD", "1" },
+        { 0x0046, 0x0070,
+          "Keratometry Right Eye Sequence", "KeratometryRightEyeSequence",  "SQ", "1" },
+        { 0x0046, 0x0071,
+          "Keratometry Left Eye Sequence", "KeratometryLeftEyeSequence",  "SQ", "1" },
+        { 0x0046, 0x0074,
+          "Steep Keratometric Axis Sequence", "SteepKeratometricAxisSequence",  "SQ", "1" },
+        { 0x0046, 0x0075,
+          "Radius of Curvature", "RadiusOfCurvature",  "FD", "1" },
+        { 0x0046, 0x0076,
+          "Keratometric Power", "KeratometricPower",  "FD", "1" },
+        { 0x0046, 0x0077,
+          "Keratometric Axis", "KeratometricAxis",  "FD", "1" },
+        { 0x0046, 0x0080,
+          "Flat Keratometric Axis Sequence", "FlatKeratometricAxisSequence",  "SQ", "1" },
+        { 0x0046, 0x0092,
+          "Background Color", "BackgroundColor",  "CS", "1" },
+        { 0x0046, 0x0094,
+          "Optotype", "Optotype",  "CS", "1" },
+        { 0x0046, 0x0095,
+          "Optotype Presentation", "OptotypePresentation",  "CS", "1" },
+        { 0x0046, 0x0097,
+          "Subjective Refraction Right Eye Sequence", "SubjectiveRefractionRightEyeSequence",  "SQ", "1" },
+        { 0x0046, 0x0098,
+          "Subjective Refraction Left Eye Sequence", "SubjectiveRefractionLeftEyeSequence",  "SQ", "1" },
+        { 0x0046, 0x0100,
+          "Add Near Sequence", "AddNearSequence",  "SQ", "1" },
+        { 0x0046, 0x0101,
+          "Add Intermediate Sequence", "AddIntermediateSequence",  "SQ", "1" },
+        { 0x0046, 0x0102,
+          "Add Other Sequence", "AddOtherSequence",  "SQ", "1" },
+        { 0x0046, 0x0104,
+          "Add Power", "AddPower",  "FD", "1" },
+        { 0x0046, 0x0106,
+          "Viewing Distance", "ViewingDistance",  "FD", "1" },
+        { 0x0046, 0x0121,
+          "Visual Acuity Type Code Sequence", "VisualAcuityTypeCodeSequence",  "SQ", "1" },
+        { 0x0046, 0x0122,
+          "Visual Acuity Right Eye Sequence", "VisualAcuityRightEyeSequence",  "SQ", "1" },
+        { 0x0046, 0x0123,
+          "Visual Acuity Left Eye Sequence", "VisualAcuityLeftEyeSequence",  "SQ", "1" },
+        { 0x0046, 0x0124,
+          "Visual Acuity Both Eyes Open Sequence", "VisualAcuityBothEyesOpenSequence",  "SQ", "1" },
+        { 0x0046, 0x0125,
+          "Viewing Distance Type", "ViewingDistanceType",  "CS", "1" },
+        { 0x0046, 0x0135,
+          "Visual Acuity Modifiers", "VisualAcuityModifiers",  "SS", "2" },
+        { 0x0046, 0x0137,
+          "Decimal Visual Acuity", "DecimalVisualAcuity",  "FD", "1" },
+        { 0x0046, 0x0139,
+          "Optotype Detailed Definition", "OptotypeDetailedDefinition",  "LO", "1" },
+        { 0x0046, 0x0145,
+          "Referenced Refractive Measurements Sequence", "ReferencedRefractiveMeasurementsSequence",  "SQ", "1" },
+        { 0x0046, 0x0146,
+          "Sphere Power", "SpherePower",  "FD", "1" },
+        { 0x0046, 0x0147,
+          "Cylinder Power", "CylinderPower",  "FD", "1" },
+        { 0x0046, 0x0201,
+          "Corneal Topography Surface", "CornealTopographySurface",  "CS", "1" },
+        { 0x0046, 0x0202,
+          "Corneal Vertex Location", "CornealVertexLocation",  "FL", "2" },
+        { 0x0046, 0x0203,
+          "Pupil Centroid X-Coordinate", "PupilCentroidXCoordinate",  "FL", "1" },
+        { 0x0046, 0x0204,
+          "Pupil Centroid Y-Coordinate", "PupilCentroidYCoordinate",  "FL", "1" },
+        { 0x0046, 0x0205,
+          "Equivalent Pupil Radius", "EquivalentPupilRadius",  "FL", "1" },
+        { 0x0046, 0x0207,
+          "Corneal Topography Map Type Code Sequence", "CornealTopographyMapTypeCodeSequence",  "SQ", "1" },
+        { 0x0046, 0x0208,
+          "Vertices of the Outline of Pupil", "VerticesOfTheOutlineOfPupil",  "IS", "2-2n" },
+        { 0x0046, 0x0210,
+          "Corneal Topography Mapping Normals Sequence", "CornealTopographyMappingNormalsSequence",  "SQ", "1" },
+        { 0x0046, 0x0211,
+          "Maximum Corneal Curvature Sequence", "MaximumCornealCurvatureSequence",  "SQ", "1" },
+        { 0x0046, 0x0212,
+          "Maximum Corneal Curvature", "MaximumCornealCurvature",  "FL", "1" },
+        { 0x0046, 0x0213,
+          "Maximum Corneal Curvature Location", "MaximumCornealCurvatureLocation",  "FL", "2" },
+        { 0x0046, 0x0215,
+          "Minimum Keratometric Sequence", "MinimumKeratometricSequence",  "SQ", "1" },
+        { 0x0046, 0x0218,
+          "Simulated Keratometric Cylinder Sequence", "SimulatedKeratometricCylinderSequence",  "SQ", "1" },
+        { 0x0046, 0x0220,
+          "Average Corneal Power", "AverageCornealPower",  "FL", "1" },
+        { 0x0046, 0x0224,
+          "Corneal I-S Value", "CornealISValue",  "FL", "1" },
+        { 0x0046, 0x0227,
+          "Analyzed Area", "AnalyzedArea",  "FL", "1" },
+        { 0x0046, 0x0230,
+          "Surface Regularity Index", "SurfaceRegularityIndex",  "FL", "1" },
+        { 0x0046, 0x0232,
+          "Surface Asymmetry Index", "SurfaceAsymmetryIndex",  "FL", "1" },
+        { 0x0046, 0x0234,
+          "Corneal Eccentricity Index", "CornealEccentricityIndex",  "FL", "1" },
+        { 0x0046, 0x0236,
+          "Keratoconus Prediction Index", "KeratoconusPredictionIndex",  "FL", "1" },
+        { 0x0046, 0x0238,
+          "Decimal Potential Visual Acuity", "DecimalPotentialVisualAcuity",  "FL", "1" },
+        { 0x0046, 0x0242,
+          "Corneal Topography Map Quality Evaluation", "CornealTopographyMapQualityEvaluation",  "CS", "1" },
+        { 0x0046, 0x0244,
+          "Source Image Corneal Processed Data Sequence", "SourceImageCornealProcessedDataSequence",  "SQ", "1" },
+        { 0x0046, 0x0247,
+          "Corneal Point Location", "CornealPointLocation",  "FL", "3" },
+        { 0x0046, 0x0248,
+          "Corneal Point Estimated", "CornealPointEstimated",  "CS", "1" },
+        { 0x0046, 0x0249,
+          "Axial Power", "AxialPower",  "FL", "1" },
+        { 0x0046, 0x0250,
+          "Tangential Power", "TangentialPower",  "FL", "1" },
+        { 0x0046, 0x0251,
+          "Refractive Power", "RefractivePower",  "FL", "1" },
+        { 0x0046, 0x0252,
+          "Relative Elevation", "RelativeElevation",  "FL", "1" },
+        { 0x0046, 0x0253,
+          "Corneal Wavefront", "CornealWavefront",  "FL", "1" },
+        { 0x0048, 0x0001,
+          "Imaged Volume Width", "ImagedVolumeWidth",  "FL", "1" },
+        { 0x0048, 0x0002,
+          "Imaged Volume Height", "ImagedVolumeHeight",  "FL", "1" },
+        { 0x0048, 0x0003,
+          "Imaged Volume Depth", "ImagedVolumeDepth",  "FL", "1" },
+        { 0x0048, 0x0006,
+          "Total Pixel Matrix Columns", "TotalPixelMatrixColumns",  "UL", "1" },
+        { 0x0048, 0x0007,
+          "Total Pixel Matrix Rows", "TotalPixelMatrixRows",  "UL", "1" },
+        { 0x0048, 0x0008,
+          "Total Pixel Matrix Origin Sequence", "TotalPixelMatrixOriginSequence",  "SQ", "1" },
+        { 0x0048, 0x0010,
+          "Specimen Label in Image", "SpecimenLabelInImage",  "CS", "1" },
+        { 0x0048, 0x0011,
+          "Focus Method", "FocusMethod",  "CS", "1" },
+        { 0x0048, 0x0012,
+          "Extended Depth of Field", "ExtendedDepthOfField",  "CS", "1" },
+        { 0x0048, 0x0013,
+          "Number of Focal Planes", "NumberOfFocalPlanes",  "US", "1" },
+        { 0x0048, 0x0014,
+          "Distance Between Focal Planes", "DistanceBetweenFocalPlanes",  "FL", "1" },
+        { 0x0048, 0x0015,
+          "Recommended Absent Pixel CIELab Value", "RecommendedAbsentPixelCIELabValue",  "US", "3" },
+        { 0x0048, 0x0100,
+          "Illuminator Type Code Sequence", "IlluminatorTypeCodeSequence",  "SQ", "1" },
+        { 0x0048, 0x0102,
+          "Image Orientation (Slide)", "ImageOrientationSlide",  "DS", "6" },
+        { 0x0048, 0x0105,
+          "Optical Path Sequence", "OpticalPathSequence",  "SQ", "1" },
+        { 0x0048, 0x0106,
+          "Optical Path Identifier", "OpticalPathIdentifier",  "SH", "1" },
+        { 0x0048, 0x0107,
+          "Optical Path Description", "OpticalPathDescription",  "ST", "1" },
+        { 0x0048, 0x0108,
+          "Illumination Color Code Sequence", "IlluminationColorCodeSequence",  "SQ", "1" },
+        { 0x0048, 0x0110,
+          "Specimen Reference Sequence", "SpecimenReferenceSequence",  "SQ", "1" },
+        { 0x0048, 0x0111,
+          "Condenser Lens Power", "CondenserLensPower",  "DS", "1" },
+        { 0x0048, 0x0112,
+          "Objective Lens Power", "ObjectiveLensPower",  "DS", "1" },
+        { 0x0048, 0x0113,
+          "Objective Lens Numerical Aperture", "ObjectiveLensNumericalAperture",  "DS", "1" },
+        { 0x0048, 0x0120,
+          "Palette Color Lookup Table Sequence", "PaletteColorLookupTableSequence",  "SQ", "1" },
+        { 0x0048, 0x0200,
+          "Referenced Image Navigation Sequence", "ReferencedImageNavigationSequence",  "SQ", "1" },
+        { 0x0048, 0x0201,
+          "Top Left Hand Corner of Localizer Area", "TopLeftHandCornerOfLocalizerArea",  "US", "2" },
+        { 0x0048, 0x0202,
+          "Bottom Right Hand Corner of Localizer Area", "BottomRightHandCornerOfLocalizerArea",  "US", "2" },
+        { 0x0048, 0x0207,
+          "Optical Path Identification Sequence", "OpticalPathIdentificationSequence",  "SQ", "1" },
+        { 0x0048, 0x021a,
+          "Plane Position (Slide) Sequence", "PlanePositionSlideSequence",  "SQ", "1" },
+        { 0x0048, 0x021e,
+          "Column Position In Total Image Pixel Matrix", "ColumnPositionInTotalImagePixelMatrix",  "SL", "1" },
+        { 0x0048, 0x021f,
+          "Row Position In Total Image Pixel Matrix", "RowPositionInTotalImagePixelMatrix",  "SL", "1" },
+        { 0x0048, 0x0301,
+          "Pixel Origin Interpretation", "PixelOriginInterpretation",  "CS", "1" },
+        { 0x0050, 0x0004,
+          "Calibration Image", "CalibrationImage",  "CS", "1" },
+        { 0x0050, 0x0010,
+          "Device Sequence", "DeviceSequence",  "SQ", "1" },
+        { 0x0050, 0x0012,
+          "Container Component Type Code Sequence", "ContainerComponentTypeCodeSequence",  "SQ", "1" },
+        { 0x0050, 0x0013,
+          "Container Component Thickness", "ContainerComponentThickness",  "FD", "1" },
+        { 0x0050, 0x0014,
+          "Device Length", "DeviceLength",  "DS", "1" },
+        { 0x0050, 0x0015,
+          "Container Component Width", "ContainerComponentWidth",  "FD", "1" },
+        { 0x0050, 0x0016,
+          "Device Diameter", "DeviceDiameter",  "DS", "1" },
+        { 0x0050, 0x0017,
+          "Device Diameter Units", "DeviceDiameterUnits",  "CS", "1" },
+        { 0x0050, 0x0018,
+          "Device Volume", "DeviceVolume",  "DS", "1" },
+        { 0x0050, 0x0019,
+          "Inter-Marker Distance", "InterMarkerDistance",  "DS", "1" },
+        { 0x0050, 0x001a,
+          "Container Component Material", "ContainerComponentMaterial",  "CS", "1" },
+        { 0x0050, 0x001b,
+          "Container Component ID", "ContainerComponentID",  "LO", "1" },
+        { 0x0050, 0x001c,
+          "Container Component Length", "ContainerComponentLength",  "FD", "1" },
+        { 0x0050, 0x001d,
+          "Container Component Diameter", "ContainerComponentDiameter",  "FD", "1" },
+        { 0x0050, 0x001e,
+          "Container Component Description", "ContainerComponentDescription",  "LO", "1" },
+        { 0x0050, 0x0020,
+          "Device Description", "DeviceDescription",  "LO", "1" },
+        { 0x0052, 0x0001,
+          "Contrast/Bolus Ingredient Percent by Volume", "ContrastBolusIngredientPercentByVolume",  "FL", "1" },
+        { 0x0052, 0x0002,
+          "OCT Focal Distance", "OCTFocalDistance",  "FD", "1" },
+        { 0x0052, 0x0003,
+          "Beam Spot Size", "BeamSpotSize",  "FD", "1" },
+        { 0x0052, 0x0004,
+          "Effective Refractive Index", "EffectiveRefractiveIndex",  "FD", "1" },
+        { 0x0052, 0x0006,
+          "OCT Acquisition Domain", "OCTAcquisitionDomain",  "CS", "1" },
+        { 0x0052, 0x0007,
+          "OCT Optical Center Wavelength", "OCTOpticalCenterWavelength",  "FD", "1" },
+        { 0x0052, 0x0008,
+          "Axial Resolution", "AxialResolution",  "FD", "1" },
+        { 0x0052, 0x0009,
+          "Ranging Depth", "RangingDepth",  "FD", "1" },
+        { 0x0052, 0x0011,
+          "A-line Rate", "ALineRate",  "FD", "1" },
+        { 0x0052, 0x0012,
+          "A-lines Per Frame", "ALinesPerFrame",  "US", "1" },
+        { 0x0052, 0x0013,
+          "Catheter Rotational Rate", "CatheterRotationalRate",  "FD", "1" },
+        { 0x0052, 0x0014,
+          "A-line Pixel Spacing", "ALinePixelSpacing",  "FD", "1" },
+        { 0x0052, 0x0016,
+          "Mode of Percutaneous Access Sequence", "ModeOfPercutaneousAccessSequence",  "SQ", "1" },
+        { 0x0052, 0x0025,
+          "Intravascular OCT Frame Type Sequence", "IntravascularOCTFrameTypeSequence",  "SQ", "1" },
+        { 0x0052, 0x0026,
+          "OCT Z Offset Applied", "OCTZOffsetApplied",  "CS", "1" },
+        { 0x0052, 0x0027,
+          "Intravascular Frame Content Sequence", "IntravascularFrameContentSequence",  "SQ", "1" },
+        { 0x0052, 0x0028,
+          "Intravascular Longitudinal Distance", "IntravascularLongitudinalDistance",  "FD", "1" },
+        { 0x0052, 0x0029,
+          "Intravascular OCT Frame Content Sequence", "IntravascularOCTFrameContentSequence",  "SQ", "1" },
+        { 0x0052, 0x0030,
+          "OCT Z Offset Correction", "OCTZOffsetCorrection",  "SS", "1" },
+        { 0x0052, 0x0031,
+          "Catheter Direction of Rotation", "CatheterDirectionOfRotation",  "CS", "1" },
+        { 0x0052, 0x0033,
+          "Seam Line Location", "SeamLineLocation",  "FD", "1" },
+        { 0x0052, 0x0034,
+          "First A-line Location", "FirstALineLocation",  "FD", "1" },
+        { 0x0052, 0x0036,
+          "Seam Line Index", "SeamLineIndex",  "US", "1" },
+        { 0x0052, 0x0038,
+          "Number of Padded A-lines", "NumberOfPaddedALines",  "US", "1" },
+        { 0x0052, 0x0039,
+          "Interpolation Type", "InterpolationType",  "CS", "1" },
+        { 0x0052, 0x003a,
+          "Refractive Index Applied", "RefractiveIndexApplied",  "CS", "1" },
+        { 0x0054, 0x0010,
+          "Energy Window Vector", "EnergyWindowVector",  "US", "1-n" },
+        { 0x0054, 0x0011,
+          "Number of Energy Windows", "NumberOfEnergyWindows",  "US", "1" },
+        { 0x0054, 0x0012,
+          "Energy Window Information Sequence", "EnergyWindowInformationSequence",  "SQ", "1" },
+        { 0x0054, 0x0013,
+          "Energy Window Range Sequence", "EnergyWindowRangeSequence",  "SQ", "1" },
+        { 0x0054, 0x0014,
+          "Energy Window Lower Limit", "EnergyWindowLowerLimit",  "DS", "1" },
+        { 0x0054, 0x0015,
+          "Energy Window Upper Limit", "EnergyWindowUpperLimit",  "DS", "1" },
+        { 0x0054, 0x0016,
+          "Radiopharmaceutical Information Sequence", "RadiopharmaceuticalInformationSequence",  "SQ", "1" },
+        { 0x0054, 0x0017,
+          "Residual Syringe Counts", "ResidualSyringeCounts",  "IS", "1" },
+        { 0x0054, 0x0018,
+          "Energy Window Name", "EnergyWindowName",  "SH", "1" },
+        { 0x0054, 0x0020,
+          "Detector Vector", "DetectorVector",  "US", "1-n" },
+        { 0x0054, 0x0021,
+          "Number of Detectors", "NumberOfDetectors",  "US", "1" },
+        { 0x0054, 0x0022,
+          "Detector Information Sequence", "DetectorInformationSequence",  "SQ", "1" },
+        { 0x0054, 0x0030,
+          "Phase Vector", "PhaseVector",  "US", "1-n" },
+        { 0x0054, 0x0031,
+          "Number of Phases", "NumberOfPhases",  "US", "1" },
+        { 0x0054, 0x0032,
+          "Phase Information Sequence", "PhaseInformationSequence",  "SQ", "1" },
+        { 0x0054, 0x0033,
+          "Number of Frames in Phase", "NumberOfFramesInPhase",  "US", "1" },
+        { 0x0054, 0x0036,
+          "Phase Delay", "PhaseDelay",  "IS", "1" },
+        { 0x0054, 0x0038,
+          "Pause Between Frames", "PauseBetweenFrames",  "IS", "1" },
+        { 0x0054, 0x0039,
+          "Phase Description", "PhaseDescription",  "CS", "1" },
+        { 0x0054, 0x0050,
+          "Rotation Vector", "RotationVector",  "US", "1-n" },
+        { 0x0054, 0x0051,
+          "Number of Rotations", "NumberOfRotations",  "US", "1" },
+        { 0x0054, 0x0052,
+          "Rotation Information Sequence", "RotationInformationSequence",  "SQ", "1" },
+        { 0x0054, 0x0053,
+          "Number of Frames in Rotation", "NumberOfFramesInRotation",  "US", "1" },
+        { 0x0054, 0x0060,
+          "R-R Interval Vector", "RRIntervalVector",  "US", "1-n" },
+        { 0x0054, 0x0061,
+          "Number of R-R Intervals", "NumberOfRRIntervals",  "US", "1" },
+        { 0x0054, 0x0062,
+          "Gated Information Sequence", "GatedInformationSequence",  "SQ", "1" },
+        { 0x0054, 0x0063,
+          "Data Information Sequence", "DataInformationSequence",  "SQ", "1" },
+        { 0x0054, 0x0070,
+          "Time Slot Vector", "TimeSlotVector",  "US", "1-n" },
+        { 0x0054, 0x0071,
+          "Number of Time Slots", "NumberOfTimeSlots",  "US", "1" },
+        { 0x0054, 0x0072,
+          "Time Slot Information Sequence", "TimeSlotInformationSequence",  "SQ", "1" },
+        { 0x0054, 0x0073,
+          "Time Slot Time", "TimeSlotTime",  "DS", "1" },
+        { 0x0054, 0x0080,
+          "Slice Vector", "SliceVector",  "US", "1-n" },
+        { 0x0054, 0x0081,
+          "Number of Slices", "NumberOfSlices",  "US", "1" },
+        { 0x0054, 0x0090,
+          "Angular View Vector", "AngularViewVector",  "US", "1-n" },
+        { 0x0054, 0x0100,
+          "Time Slice Vector", "TimeSliceVector",  "US", "1-n" },
+        { 0x0054, 0x0101,
+          "Number of Time Slices", "NumberOfTimeSlices",  "US", "1" },
+        { 0x0054, 0x0200,
+          "Start Angle", "StartAngle",  "DS", "1" },
+        { 0x0054, 0x0202,
+          "Type of Detector Motion", "TypeOfDetectorMotion",  "CS", "1" },
+        { 0x0054, 0x0210,
+          "Trigger Vector", "TriggerVector",  "IS", "1-n" },
+        { 0x0054, 0x0211,
+          "Number of Triggers in Phase", "NumberOfTriggersInPhase",  "US", "1" },
+        { 0x0054, 0x0220,
+          "View Code Sequence", "ViewCodeSequence",  "SQ", "1" },
+        { 0x0054, 0x0222,
+          "View Modifier Code Sequence", "ViewModifierCodeSequence",  "SQ", "1" },
+        { 0x0054, 0x0300,
+          "Radionuclide Code Sequence", "RadionuclideCodeSequence",  "SQ", "1" },
+        { 0x0054, 0x0302,
+          "Administration Route Code Sequence", "AdministrationRouteCodeSequence",  "SQ", "1" },
+        { 0x0054, 0x0304,
+          "Radiopharmaceutical Code Sequence", "RadiopharmaceuticalCodeSequence",  "SQ", "1" },
+        { 0x0054, 0x0306,
+          "Calibration Data Sequence", "CalibrationDataSequence",  "SQ", "1" },
+        { 0x0054, 0x0308,
+          "Energy Window Number", "EnergyWindowNumber",  "US", "1" },
+        { 0x0054, 0x0400,
+          "Image ID", "ImageID",  "SH", "1" },
+        { 0x0054, 0x0410,
+          "Patient Orientation Code Sequence", "PatientOrientationCodeSequence",  "SQ", "1" },
+        { 0x0054, 0x0412,
+          "Patient Orientation Modifier Code Sequence", "PatientOrientationModifierCodeSequence",  "SQ", "1" },
+        { 0x0054, 0x0414,
+          "Patient Gantry Relationship Code Sequence", "PatientGantryRelationshipCodeSequence",  "SQ", "1" },
+        { 0x0054, 0x0500,
+          "Slice Progression Direction", "SliceProgressionDirection",  "CS", "1" },
+        { 0x0054, 0x0501,
+          "Scan Progression Direction", "ScanProgressionDirection",  "CS", "1" },
+        { 0x0054, 0x1000,
+          "Series Type", "SeriesType",  "CS", "2" },
+        { 0x0054, 0x1001,
+          "Units", "Units",  "CS", "1" },
+        { 0x0054, 0x1002,
+          "Counts Source", "CountsSource",  "CS", "1" },
+        { 0x0054, 0x1004,
+          "Reprojection Method", "ReprojectionMethod",  "CS", "1" },
+        { 0x0054, 0x1006,
+          "SUV Type", "SUVType",  "CS", "1" },
+        { 0x0054, 0x1100,
+          "Randoms Correction Method", "RandomsCorrectionMethod",  "CS", "1" },
+        { 0x0054, 0x1101,
+          "Attenuation Correction Method", "AttenuationCorrectionMethod",  "LO", "1" },
+        { 0x0054, 0x1102,
+          "Decay Correction", "DecayCorrection",  "CS", "1" },
+        { 0x0054, 0x1103,
+          "Reconstruction Method", "ReconstructionMethod",  "LO", "1" },
+        { 0x0054, 0x1104,
+          "Detector Lines of Response Used", "DetectorLinesOfResponseUsed",  "LO", "1" },
+        { 0x0054, 0x1105,
+          "Scatter Correction Method", "ScatterCorrectionMethod",  "LO", "1" },
+        { 0x0054, 0x1200,
+          "Axial Acceptance", "AxialAcceptance",  "DS", "1" },
+        { 0x0054, 0x1201,
+          "Axial Mash", "AxialMash",  "IS", "2" },
+        { 0x0054, 0x1202,
+          "Transverse Mash", "TransverseMash",  "IS", "1" },
+        { 0x0054, 0x1203,
+          "Detector Element Size", "DetectorElementSize",  "DS", "2" },
+        { 0x0054, 0x1210,
+          "Coincidence Window Width", "CoincidenceWindowWidth",  "DS", "1" },
+        { 0x0054, 0x1220,
+          "Secondary Counts Type", "SecondaryCountsType",  "CS", "1-n" },
+        { 0x0054, 0x1300,
+          "Frame Reference Time", "FrameReferenceTime",  "DS", "1" },
+        { 0x0054, 0x1310,
+          "Primary (Prompts) Counts Accumulated", "PrimaryPromptsCountsAccumulated",  "IS", "1" },
+        { 0x0054, 0x1311,
+          "Secondary Counts Accumulated", "SecondaryCountsAccumulated",  "IS", "1-n" },
+        { 0x0054, 0x1320,
+          "Slice Sensitivity Factor", "SliceSensitivityFactor",  "DS", "1" },
+        { 0x0054, 0x1321,
+          "Decay Factor", "DecayFactor",  "DS", "1" },
+        { 0x0054, 0x1322,
+          "Dose Calibration Factor", "DoseCalibrationFactor",  "DS", "1" },
+        { 0x0054, 0x1323,
+          "Scatter Fraction Factor", "ScatterFractionFactor",  "DS", "1" },
+        { 0x0054, 0x1324,
+          "Dead Time Factor", "DeadTimeFactor",  "DS", "1" },
+        { 0x0054, 0x1330,
+          "Image Index", "ImageIndex",  "US", "1" },
+        { 0x0054, 0x1400,
+          "Counts Included", "CountsIncluded",  "CS", "1-n" },
+        { 0x0054, 0x1401,
+          "Dead Time Correction Flag", "DeadTimeCorrectionFlag",  "CS", "1" },
+        { 0x0060, 0x3000,
+          "Histogram Sequence", "HistogramSequence",  "SQ", "1" },
+        { 0x0060, 0x3002,
+          "Histogram Number of Bins", "HistogramNumberOfBins",  "US", "1" },
+        { 0x0060, 0x3004,
+          "Histogram First Bin Value", "HistogramFirstBinValue",  "US or SS", "1" },
+        { 0x0060, 0x3006,
+          "Histogram Last Bin Value", "HistogramLastBinValue",  "US or SS", "1" },
+        { 0x0060, 0x3008,
+          "Histogram Bin Width", "HistogramBinWidth",  "US", "1" },
+        { 0x0060, 0x3010,
+          "Histogram Explanation", "HistogramExplanation",  "LO", "1" },
+        { 0x0060, 0x3020,
+          "Histogram Data", "HistogramData",  "UL", "1-n" },
+        { 0x0062, 0x0001,
+          "Segmentation Type", "SegmentationType",  "CS", "1" },
+        { 0x0062, 0x0002,
+          "Segment Sequence", "SegmentSequence",  "SQ", "1" },
+        { 0x0062, 0x0003,
+          "Segmented Property Category Code Sequence", "SegmentedPropertyCategoryCodeSequence",  "SQ", "1" },
+        { 0x0062, 0x0004,
+          "Segment Number", "SegmentNumber",  "US", "1" },
+        { 0x0062, 0x0005,
+          "Segment Label", "SegmentLabel",  "LO", "1" },
+        { 0x0062, 0x0006,
+          "Segment Description", "SegmentDescription",  "ST", "1" },
+        { 0x0062, 0x0008,
+          "Segment Algorithm Type", "SegmentAlgorithmType",  "CS", "1" },
+        { 0x0062, 0x0009,
+          "Segment Algorithm Name", "SegmentAlgorithmName",  "LO", "1" },
+        { 0x0062, 0x000a,
+          "Segment Identification Sequence", "SegmentIdentificationSequence",  "SQ", "1" },
+        { 0x0062, 0x000b,
+          "Referenced Segment Number", "ReferencedSegmentNumber",  "US", "1-n" },
+        { 0x0062, 0x000c,
+          "Recommended Display Grayscale Value", "RecommendedDisplayGrayscaleValue",  "US", "1" },
+        { 0x0062, 0x000d,
+          "Recommended Display CIELab Value", "RecommendedDisplayCIELabValue",  "US", "3" },
+        { 0x0062, 0x000e,
+          "Maximum Fractional Value", "MaximumFractionalValue",  "US", "1" },
+        { 0x0062, 0x000f,
+          "Segmented Property Type Code Sequence", "SegmentedPropertyTypeCodeSequence",  "SQ", "1" },
+        { 0x0062, 0x0010,
+          "Segmentation Fractional Type", "SegmentationFractionalType",  "CS", "1" },
+        { 0x0062, 0x0011,
+          "Segmented Property Type Modifier Code Sequence", "SegmentedPropertyTypeModifierCodeSequence",  "SQ", "1" },
+        { 0x0062, 0x0012,
+          "Used Segments Sequence", "UsedSegmentsSequence",  "SQ", "1" },
+        { 0x0064, 0x0002,
+          "Deformable Registration Sequence", "DeformableRegistrationSequence",  "SQ", "1" },
+        { 0x0064, 0x0003,
+          "Source Frame of Reference UID", "SourceFrameOfReferenceUID",  "UI", "1" },
+        { 0x0064, 0x0005,
+          "Deformable Registration Grid Sequence", "DeformableRegistrationGridSequence",  "SQ", "1" },
+        { 0x0064, 0x0007,
+          "Grid Dimensions", "GridDimensions",  "UL", "3" },
+        { 0x0064, 0x0008,
+          "Grid Resolution", "GridResolution",  "FD", "3" },
+        { 0x0064, 0x0009,
+          "Vector Grid Data", "VectorGridData",  "OF", "1" },
+        { 0x0064, 0x000f,
+          "Pre Deformation Matrix Registration Sequence", "PreDeformationMatrixRegistrationSequence",  "SQ", "1" },
+        { 0x0064, 0x0010,
+          "Post Deformation Matrix Registration Sequence", "PostDeformationMatrixRegistrationSequence",  "SQ", "1" },
+        { 0x0066, 0x0001,
+          "Number of Surfaces", "NumberOfSurfaces",  "UL", "1" },
+        { 0x0066, 0x0002,
+          "Surface Sequence", "SurfaceSequence",  "SQ", "1" },
+        { 0x0066, 0x0003,
+          "Surface Number", "SurfaceNumber",  "UL", "1" },
+        { 0x0066, 0x0004,
+          "Surface Comments", "SurfaceComments",  "LT", "1" },
+        { 0x0066, 0x0009,
+          "Surface Processing", "SurfaceProcessing",  "CS", "1" },
+        { 0x0066, 0x000a,
+          "Surface Processing Ratio", "SurfaceProcessingRatio",  "FL", "1" },
+        { 0x0066, 0x000b,
+          "Surface Processing Description", "SurfaceProcessingDescription",  "LO", "1" },
+        { 0x0066, 0x000c,
+          "Recommended Presentation Opacity", "RecommendedPresentationOpacity",  "FL", "1" },
+        { 0x0066, 0x000d,
+          "Recommended Presentation Type", "RecommendedPresentationType",  "CS", "1" },
+        { 0x0066, 0x000e,
+          "Finite Volume", "FiniteVolume",  "CS", "1" },
+        { 0x0066, 0x0010,
+          "Manifold", "Manifold",  "CS", "1" },
+        { 0x0066, 0x0011,
+          "Surface Points Sequence", "SurfacePointsSequence",  "SQ", "1" },
+        { 0x0066, 0x0012,
+          "Surface Points Normals Sequence", "SurfacePointsNormalsSequence",  "SQ", "1" },
+        { 0x0066, 0x0013,
+          "Surface Mesh Primitives Sequence", "SurfaceMeshPrimitivesSequence",  "SQ", "1" },
+        { 0x0066, 0x0015,
+          "Number of Surface Points", "NumberOfSurfacePoints",  "UL", "1" },
+        { 0x0066, 0x0016,
+          "Point Coordinates Data", "PointCoordinatesData",  "OF", "1" },
+        { 0x0066, 0x0017,
+          "Point Position Accuracy", "PointPositionAccuracy",  "FL", "3" },
+        { 0x0066, 0x0018,
+          "Mean Point Distance", "MeanPointDistance",  "FL", "1" },
+        { 0x0066, 0x0019,
+          "Maximum Point Distance", "MaximumPointDistance",  "FL", "1" },
+        { 0x0066, 0x001a,
+          "Points Bounding Box Coordinates", "PointsBoundingBoxCoordinates",  "FL", "6" },
+        { 0x0066, 0x001b,
+          "Axis of Rotation", "AxisOfRotation",  "FL", "3" },
+        { 0x0066, 0x001c,
+          "Center of Rotation", "CenterOfRotation",  "FL", "3" },
+        { 0x0066, 0x001e,
+          "Number of Vectors", "NumberOfVectors",  "UL", "1" },
+        { 0x0066, 0x001f,
+          "Vector Dimensionality", "VectorDimensionality",  "US", "1" },
+        { 0x0066, 0x0020,
+          "Vector Accuracy", "VectorAccuracy",  "FL", "1-n" },
+        { 0x0066, 0x0021,
+          "Vector Coordinate Data", "VectorCoordinateData",  "OF", "1" },
+        { 0x0066, 0x0023,
+          "Triangle Point Index List", "TrianglePointIndexList",  "OW", "1" },
+        { 0x0066, 0x0024,
+          "Edge Point Index List", "EdgePointIndexList",  "OW", "1" },
+        { 0x0066, 0x0025,
+          "Vertex Point Index List", "VertexPointIndexList",  "OW", "1" },
+        { 0x0066, 0x0026,
+          "Triangle Strip Sequence", "TriangleStripSequence",  "SQ", "1" },
+        { 0x0066, 0x0027,
+          "Triangle Fan Sequence", "TriangleFanSequence",  "SQ", "1" },
+        { 0x0066, 0x0028,
+          "Line Sequence", "LineSequence",  "SQ", "1" },
+        { 0x0066, 0x0029,
+          "Primitive Point Index List", "PrimitivePointIndexList",  "OW", "1" },
+        { 0x0066, 0x002a,
+          "Surface Count", "SurfaceCount",  "UL", "1" },
+        { 0x0066, 0x002b,
+          "Referenced Surface Sequence", "ReferencedSurfaceSequence",  "SQ", "1" },
+        { 0x0066, 0x002c,
+          "Referenced Surface Number", "ReferencedSurfaceNumber",  "UL", "1" },
+        { 0x0066, 0x002d,
+          "Segment Surface Generation Algorithm Identification Sequence", "SegmentSurfaceGenerationAlgorithmIdentificationSequence",  "SQ", "1" },
+        { 0x0066, 0x002e,
+          "Segment Surface Source Instance Sequence", "SegmentSurfaceSourceInstanceSequence",  "SQ", "1" },
+        { 0x0066, 0x002f,
+          "Algorithm Family Code Sequence", "AlgorithmFamilyCodeSequence",  "SQ", "1" },
+        { 0x0066, 0x0030,
+          "Algorithm Name Code Sequence", "AlgorithmNameCodeSequence",  "SQ", "1" },
+        { 0x0066, 0x0031,
+          "Algorithm Version", "AlgorithmVersion",  "LO", "1" },
+        { 0x0066, 0x0032,
+          "Algorithm Parameters", "AlgorithmParameters",  "LT", "1" },
+        { 0x0066, 0x0034,
+          "Facet Sequence", "FacetSequence",  "SQ", "1" },
+        { 0x0066, 0x0035,
+          "Surface Processing Algorithm Identification Sequence", "SurfaceProcessingAlgorithmIdentificationSequence",  "SQ", "1" },
+        { 0x0066, 0x0036,
+          "Algorithm Name", "AlgorithmName",  "LO", "1" },
+        { 0x0066, 0x0037,
+          "Recommended Point Radius", "RecommendedPointRadius",  "FL", "1" },
+        { 0x0066, 0x0038,
+          "Recommended Line Thickness", "RecommendedLineThickness",  "FL", "1" },
+        { 0x0066, 0x0040,
+          "Long Primitive Point Index List", "LongPrimitivePointIndexList",  "UL", "1-n" },
+        { 0x0066, 0x0041,
+          "Long Triangle Point Index List", "LongTrianglePointIndexList",  "UL", "3-3n" },
+        { 0x0066, 0x0042,
+          "Long Edge Point Index List", "LongEdgePointIndexList",  "UL", "2-2n" },
+        { 0x0066, 0x0043,
+          "Long Vertex Point Index List", "LongVertexPointIndexList",  "UL", "1-n" },
+        { 0x0068, 0x6210,
+          "Implant Size", "ImplantSize",  "LO", "1" },
+        { 0x0068, 0x6221,
+          "Implant Template Version", "ImplantTemplateVersion",  "LO", "1" },
+        { 0x0068, 0x6222,
+          "Replaced Implant Template Sequence", "ReplacedImplantTemplateSequence",  "SQ", "1" },
+        { 0x0068, 0x6223,
+          "Implant Type", "ImplantType",  "CS", "1" },
+        { 0x0068, 0x6224,
+          "Derivation Implant Template Sequence", "DerivationImplantTemplateSequence",  "SQ", "1" },
+        { 0x0068, 0x6225,
+          "Original Implant Template Sequence", "OriginalImplantTemplateSequence",  "SQ", "1" },
+        { 0x0068, 0x6226,
+          "Effective DateTime", "EffectiveDateTime",  "DT", "1" },
+        { 0x0068, 0x6230,
+          "Implant Target Anatomy Sequence", "ImplantTargetAnatomySequence",  "SQ", "1" },
+        { 0x0068, 0x6260,
+          "Information From Manufacturer Sequence", "InformationFromManufacturerSequence",  "SQ", "1" },
+        { 0x0068, 0x6265,
+          "Notification From Manufacturer Sequence", "NotificationFromManufacturerSequence",  "SQ", "1" },
+        { 0x0068, 0x6270,
+          "Information Issue DateTime", "InformationIssueDateTime",  "DT", "1" },
+        { 0x0068, 0x6280,
+          "Information Summary", "InformationSummary",  "ST", "1" },
+        { 0x0068, 0x62a0,
+          "Implant Regulatory Disapproval Code Sequence", "ImplantRegulatoryDisapprovalCodeSequence",  "SQ", "1" },
+        { 0x0068, 0x62a5,
+          "Overall Template Spatial Tolerance", "OverallTemplateSpatialTolerance",  "FD", "1" },
+        { 0x0068, 0x62c0,
+          "HPGL Document Sequence", "HPGLDocumentSequence",  "SQ", "1" },
+        { 0x0068, 0x62d0,
+          "HPGL Document ID", "HPGLDocumentID",  "US", "1" },
+        { 0x0068, 0x62d5,
+          "HPGL Document Label", "HPGLDocumentLabel",  "LO", "1" },
+        { 0x0068, 0x62e0,
+          "View Orientation Code Sequence", "ViewOrientationCodeSequence",  "SQ", "1" },
+        { 0x0068, 0x62f0,
+          "View Orientation Modifier", "ViewOrientationModifier",  "FD", "9" },
+        { 0x0068, 0x62f2,
+          "HPGL Document Scaling", "HPGLDocumentScaling",  "FD", "1" },
+        { 0x0068, 0x6300,
+          "HPGL Document", "HPGLDocument",  "OB", "1" },
+        { 0x0068, 0x6310,
+          "HPGL Contour Pen Number", "HPGLContourPenNumber",  "US", "1" },
+        { 0x0068, 0x6320,
+          "HPGL Pen Sequence", "HPGLPenSequence",  "SQ", "1" },
+        { 0x0068, 0x6330,
+          "HPGL Pen Number", "HPGLPenNumber",  "US", "1" },
+        { 0x0068, 0x6340,
+          "HPGL Pen Label", "HPGLPenLabel",  "LO", "1" },
+        { 0x0068, 0x6345,
+          "HPGL Pen Description", "HPGLPenDescription",  "ST", "1" },
+        { 0x0068, 0x6346,
+          "Recommended Rotation Point", "RecommendedRotationPoint",  "FD", "2" },
+        { 0x0068, 0x6347,
+          "Bounding Rectangle", "BoundingRectangle",  "FD", "4" },
+        { 0x0068, 0x6350,
+          "Implant Template 3D Model Surface Number", "ImplantTemplate3DModelSurfaceNumber",  "US", "1-n" },
+        { 0x0068, 0x6360,
+          "Surface Model Description Sequence", "SurfaceModelDescriptionSequence",  "SQ", "1" },
+        { 0x0068, 0x6380,
+          "Surface Model Label", "SurfaceModelLabel",  "LO", "1" },
+        { 0x0068, 0x6390,
+          "Surface Model Scaling Factor", "SurfaceModelScalingFactor",  "FD", "1" },
+        { 0x0068, 0x63a0,
+          "Materials Code Sequence", "MaterialsCodeSequence",  "SQ", "1" },
+        { 0x0068, 0x63a4,
+          "Coating Materials Code Sequence", "CoatingMaterialsCodeSequence",  "SQ", "1" },
+        { 0x0068, 0x63a8,
+          "Implant Type Code Sequence", "ImplantTypeCodeSequence",  "SQ", "1" },
+        { 0x0068, 0x63ac,
+          "Fixation Method Code Sequence", "FixationMethodCodeSequence",  "SQ", "1" },
+        { 0x0068, 0x63b0,
+          "Mating Feature Sets Sequence", "MatingFeatureSetsSequence",  "SQ", "1" },
+        { 0x0068, 0x63c0,
+          "Mating Feature Set ID", "MatingFeatureSetID",  "US", "1" },
+        { 0x0068, 0x63d0,
+          "Mating Feature Set Label", "MatingFeatureSetLabel",  "LO", "1" },
+        { 0x0068, 0x63e0,
+          "Mating Feature Sequence", "MatingFeatureSequence",  "SQ", "1" },
+        { 0x0068, 0x63f0,
+          "Mating Feature ID", "MatingFeatureID",  "US", "1" },
+        { 0x0068, 0x6400,
+          "Mating Feature Degree of Freedom Sequence", "MatingFeatureDegreeOfFreedomSequence",  "SQ", "1" },
+        { 0x0068, 0x6410,
+          "Degree of Freedom ID", "DegreeOfFreedomID",  "US", "1" },
+        { 0x0068, 0x6420,
+          "Degree of Freedom Type", "DegreeOfFreedomType",  "CS", "1" },
+        { 0x0068, 0x6430,
+          "2D Mating Feature Coordinates Sequence", "TwoDMatingFeatureCoordinatesSequence",  "SQ", "1" },
+        { 0x0068, 0x6440,
+          "Referenced HPGL Document ID", "ReferencedHPGLDocumentID",  "US", "1" },
+        { 0x0068, 0x6450,
+          "2D Mating Point", "TwoDMatingPoint",  "FD", "2" },
+        { 0x0068, 0x6460,
+          "2D Mating Axes", "TwoDMatingAxes",  "FD", "4" },
+        { 0x0068, 0x6470,
+          "2D Degree of Freedom Sequence", "TwoDDegreeOfFreedomSequence",  "SQ", "1" },
+        { 0x0068, 0x6490,
+          "3D Degree of Freedom Axis", "ThreeDDegreeOfFreedomAxis",  "FD", "3" },
+        { 0x0068, 0x64a0,
+          "Range of Freedom", "RangeOfFreedom",  "FD", "2" },
+        { 0x0068, 0x64c0,
+          "3D Mating Point", "ThreeDMatingPoint",  "FD", "3" },
+        { 0x0068, 0x64d0,
+          "3D Mating Axes", "ThreeDMatingAxes",  "FD", "9" },
+        { 0x0068, 0x64f0,
+          "2D Degree of Freedom Axis", "TwoDDegreeOfFreedomAxis",  "FD", "3" },
+        { 0x0068, 0x6500,
+          "Planning Landmark Point Sequence", "PlanningLandmarkPointSequence",  "SQ", "1" },
+        { 0x0068, 0x6510,
+          "Planning Landmark Line Sequence", "PlanningLandmarkLineSequence",  "SQ", "1" },
+        { 0x0068, 0x6520,
+          "Planning Landmark Plane Sequence", "PlanningLandmarkPlaneSequence",  "SQ", "1" },
+        { 0x0068, 0x6530,
+          "Planning Landmark ID", "PlanningLandmarkID",  "US", "1" },
+        { 0x0068, 0x6540,
+          "Planning Landmark Description", "PlanningLandmarkDescription",  "LO", "1" },
+        { 0x0068, 0x6545,
+          "Planning Landmark Identification Code Sequence", "PlanningLandmarkIdentificationCodeSequence",  "SQ", "1" },
+        { 0x0068, 0x6550,
+          "2D Point Coordinates Sequence", "TwoDPointCoordinatesSequence",  "SQ", "1" },
+        { 0x0068, 0x6560,
+          "2D Point Coordinates", "TwoDPointCoordinates",  "FD", "2" },
+        { 0x0068, 0x6590,
+          "3D Point Coordinates", "ThreeDPointCoordinates",  "FD", "3" },
+        { 0x0068, 0x65a0,
+          "2D Line Coordinates Sequence", "TwoDLineCoordinatesSequence",  "SQ", "1" },
+        { 0x0068, 0x65b0,
+          "2D Line Coordinates", "TwoDLineCoordinates",  "FD", "4" },
+        { 0x0068, 0x65d0,
+          "3D Line Coordinates", "ThreeDLineCoordinates",  "FD", "6" },
+        { 0x0068, 0x65e0,
+          "2D Plane Coordinates Sequence", "TwoDPlaneCoordinatesSequence",  "SQ", "1" },
+        { 0x0068, 0x65f0,
+          "2D Plane Intersection", "TwoDPlaneIntersection",  "FD", "4" },
+        { 0x0068, 0x6610,
+          "3D Plane Origin", "ThreeDPlaneOrigin",  "FD", "3" },
+        { 0x0068, 0x6620,
+          "3D Plane Normal", "ThreeDPlaneNormal",  "FD", "3" },
+        { 0x0070, 0x0001,
+          "Graphic Annotation Sequence", "GraphicAnnotationSequence",  "SQ", "1" },
+        { 0x0070, 0x0002,
+          "Graphic Layer", "GraphicLayer",  "CS", "1" },
+        { 0x0070, 0x0003,
+          "Bounding Box Annotation Units", "BoundingBoxAnnotationUnits",  "CS", "1" },
+        { 0x0070, 0x0004,
+          "Anchor Point Annotation Units", "AnchorPointAnnotationUnits",  "CS", "1" },
+        { 0x0070, 0x0005,
+          "Graphic Annotation Units", "GraphicAnnotationUnits",  "CS", "1" },
+        { 0x0070, 0x0006,
+          "Unformatted Text Value", "UnformattedTextValue",  "ST", "1" },
+        { 0x0070, 0x0008,
+          "Text Object Sequence", "TextObjectSequence",  "SQ", "1" },
+        { 0x0070, 0x0009,
+          "Graphic Object Sequence", "GraphicObjectSequence",  "SQ", "1" },
+        { 0x0070, 0x0010,
+          "Bounding Box Top Left Hand Corner", "BoundingBoxTopLeftHandCorner",  "FL", "2" },
+        { 0x0070, 0x0011,
+          "Bounding Box Bottom Right Hand Corner", "BoundingBoxBottomRightHandCorner",  "FL", "2" },
+        { 0x0070, 0x0012,
+          "Bounding Box Text Horizontal Justification", "BoundingBoxTextHorizontalJustification",  "CS", "1" },
+        { 0x0070, 0x0014,
+          "Anchor Point", "AnchorPoint",  "FL", "2" },
+        { 0x0070, 0x0015,
+          "Anchor Point Visibility", "AnchorPointVisibility",  "CS", "1" },
+        { 0x0070, 0x0020,
+          "Graphic Dimensions", "GraphicDimensions",  "US", "1" },
+        { 0x0070, 0x0021,
+          "Number of Graphic Points", "NumberOfGraphicPoints",  "US", "1" },
+        { 0x0070, 0x0022,
+          "Graphic Data", "GraphicData",  "FL", "2-n" },
+        { 0x0070, 0x0023,
+          "Graphic Type", "GraphicType",  "CS", "1" },
+        { 0x0070, 0x0024,
+          "Graphic Filled", "GraphicFilled",  "CS", "1" },
+        { 0x0070, 0x0040,
+          "Image Rotation (Retired)", "ImageRotationRetired",  "IS", "1" },
+        { 0x0070, 0x0041,
+          "Image Horizontal Flip", "ImageHorizontalFlip",  "CS", "1" },
+        { 0x0070, 0x0042,
+          "Image Rotation", "ImageRotation",  "US", "1" },
+        { 0x0070, 0x0050,
+          "Displayed Area Top Left Hand Corner (Trial)", "DisplayedAreaTopLeftHandCornerTrial",  "US", "2" },
+        { 0x0070, 0x0051,
+          "Displayed Area Bottom Right Hand Corner (Trial)", "DisplayedAreaBottomRightHandCornerTrial",  "US", "2" },
+        { 0x0070, 0x0052,
+          "Displayed Area Top Left Hand Corner", "DisplayedAreaTopLeftHandCorner",  "SL", "2" },
+        { 0x0070, 0x0053,
+          "Displayed Area Bottom Right Hand Corner", "DisplayedAreaBottomRightHandCorner",  "SL", "2" },
+        { 0x0070, 0x005a,
+          "Displayed Area Selection Sequence", "DisplayedAreaSelectionSequence",  "SQ", "1" },
+        { 0x0070, 0x0060,
+          "Graphic Layer Sequence", "GraphicLayerSequence",  "SQ", "1" },
+        { 0x0070, 0x0062,
+          "Graphic Layer Order", "GraphicLayerOrder",  "IS", "1" },
+        { 0x0070, 0x0066,
+          "Graphic Layer Recommended Display Grayscale Value", "GraphicLayerRecommendedDisplayGrayscaleValue",  "US", "1" },
+        { 0x0070, 0x0067,
+          "Graphic Layer Recommended Display RGB Value", "GraphicLayerRecommendedDisplayRGBValue",  "US", "3" },
+        { 0x0070, 0x0068,
+          "Graphic Layer Description", "GraphicLayerDescription",  "LO", "1" },
+        { 0x0070, 0x0080,
+          "Content Label", "ContentLabel",  "CS", "1" },
+        { 0x0070, 0x0081,
+          "Content Description", "ContentDescription",  "LO", "1" },
+        { 0x0070, 0x0082,
+          "Presentation Creation Date", "PresentationCreationDate",  "DA", "1" },
+        { 0x0070, 0x0083,
+          "Presentation Creation Time", "PresentationCreationTime",  "TM", "1" },
+        { 0x0070, 0x0084,
+          "Content Creator's Name", "ContentCreatorName",  "PN", "1" },
+        { 0x0070, 0x0086,
+          "Content Creator's Identification Code Sequence", "ContentCreatorIdentificationCodeSequence",  "SQ", "1" },
+        { 0x0070, 0x0087,
+          "Alternate Content Description Sequence", "AlternateContentDescriptionSequence",  "SQ", "1" },
+        { 0x0070, 0x0100,
+          "Presentation Size Mode", "PresentationSizeMode",  "CS", "1" },
+        { 0x0070, 0x0101,
+          "Presentation Pixel Spacing", "PresentationPixelSpacing",  "DS", "2" },
+        { 0x0070, 0x0102,
+          "Presentation Pixel Aspect Ratio", "PresentationPixelAspectRatio",  "IS", "2" },
+        { 0x0070, 0x0103,
+          "Presentation Pixel Magnification Ratio", "PresentationPixelMagnificationRatio",  "FL", "1" },
+        { 0x0070, 0x0207,
+          "Graphic Group Label", "GraphicGroupLabel",  "LO", "1" },
+        { 0x0070, 0x0208,
+          "Graphic Group Description", "GraphicGroupDescription",  "ST", "1" },
+        { 0x0070, 0x0209,
+          "Compound Graphic Sequence", "CompoundGraphicSequence",  "SQ", "1" },
+        { 0x0070, 0x0226,
+          "Compound Graphic Instance ID", "CompoundGraphicInstanceID",  "UL", "1" },
+        { 0x0070, 0x0227,
+          "Font Name", "FontName",  "LO", "1" },
+        { 0x0070, 0x0228,
+          "Font Name Type", "FontNameType",  "CS", "1" },
+        { 0x0070, 0x0229,
+          "CSS Font Name", "CSSFontName",  "LO", "1" },
+        { 0x0070, 0x0230,
+          "Rotation Angle", "RotationAngle",  "FD", "1" },
+        { 0x0070, 0x0231,
+          "Text Style Sequence", "TextStyleSequence",  "SQ", "1" },
+        { 0x0070, 0x0232,
+          "Line Style Sequence", "LineStyleSequence",  "SQ", "1" },
+        { 0x0070, 0x0233,
+          "Fill Style Sequence", "FillStyleSequence",  "SQ", "1" },
+        { 0x0070, 0x0234,
+          "Graphic Group Sequence", "GraphicGroupSequence",  "SQ", "1" },
+        { 0x0070, 0x0241,
+          "Text Color CIELab Value", "TextColorCIELabValue",  "US", "3" },
+        { 0x0070, 0x0242,
+          "Horizontal Alignment", "HorizontalAlignment",  "CS", "1" },
+        { 0x0070, 0x0243,
+          "Vertical Alignment", "VerticalAlignment",  "CS", "1" },
+        { 0x0070, 0x0244,
+          "Shadow Style", "ShadowStyle",  "CS", "1" },
+        { 0x0070, 0x0245,
+          "Shadow Offset X", "ShadowOffsetX",  "FL", "1" },
+        { 0x0070, 0x0246,
+          "Shadow Offset Y", "ShadowOffsetY",  "FL", "1" },
+        { 0x0070, 0x0247,
+          "Shadow Color CIELab Value", "ShadowColorCIELabValue",  "US", "3" },
+        { 0x0070, 0x0248,
+          "Underlined", "Underlined",  "CS", "1" },
+        { 0x0070, 0x0249,
+          "Bold", "Bold",  "CS", "1" },
+        { 0x0070, 0x0250,
+          "Italic", "Italic",  "CS", "1" },
+        { 0x0070, 0x0251,
+          "Pattern On Color CIELab Value", "PatternOnColorCIELabValue",  "US", "3" },
+        { 0x0070, 0x0252,
+          "Pattern Off Color CIELab Value", "PatternOffColorCIELabValue",  "US", "3" },
+        { 0x0070, 0x0253,
+          "Line Thickness", "LineThickness",  "FL", "1" },
+        { 0x0070, 0x0254,
+          "Line Dashing Style", "LineDashingStyle",  "CS", "1" },
+        { 0x0070, 0x0255,
+          "Line Pattern", "LinePattern",  "UL", "1" },
+        { 0x0070, 0x0256,
+          "Fill Pattern", "FillPattern",  "OB", "1" },
+        { 0x0070, 0x0257,
+          "Fill Mode", "FillMode",  "CS", "1" },
+        { 0x0070, 0x0258,
+          "Shadow Opacity", "ShadowOpacity",  "FL", "1" },
+        { 0x0070, 0x0261,
+          "Gap Length", "GapLength",  "FL", "1" },
+        { 0x0070, 0x0262,
+          "Diameter of Visibility", "DiameterOfVisibility",  "FL", "1" },
+        { 0x0070, 0x0273,
+          "Rotation Point", "RotationPoint",  "FL", "2" },
+        { 0x0070, 0x0274,
+          "Tick Alignment", "TickAlignment",  "CS", "1" },
+        { 0x0070, 0x0278,
+          "Show Tick Label", "ShowTickLabel",  "CS", "1" },
+        { 0x0070, 0x0279,
+          "Tick Label Alignment", "TickLabelAlignment",  "CS", "1" },
+        { 0x0070, 0x0282,
+          "Compound Graphic Units", "CompoundGraphicUnits",  "CS", "1" },
+        { 0x0070, 0x0284,
+          "Pattern On Opacity", "PatternOnOpacity",  "FL", "1" },
+        { 0x0070, 0x0285,
+          "Pattern Off Opacity", "PatternOffOpacity",  "FL", "1" },
+        { 0x0070, 0x0287,
+          "Major Ticks Sequence", "MajorTicksSequence",  "SQ", "1" },
+        { 0x0070, 0x0288,
+          "Tick Position", "TickPosition",  "FL", "1" },
+        { 0x0070, 0x0289,
+          "Tick Label", "TickLabel",  "SH", "1" },
+        { 0x0070, 0x0294,
+          "Compound Graphic Type", "CompoundGraphicType",  "CS", "1" },
+        { 0x0070, 0x0295,
+          "Graphic Group ID", "GraphicGroupID",  "UL", "1" },
+        { 0x0070, 0x0306,
+          "Shape Type", "ShapeType",  "CS", "1" },
+        { 0x0070, 0x0308,
+          "Registration Sequence", "RegistrationSequence",  "SQ", "1" },
+        { 0x0070, 0x0309,
+          "Matrix Registration Sequence", "MatrixRegistrationSequence",  "SQ", "1" },
+        { 0x0070, 0x030a,
+          "Matrix Sequence", "MatrixSequence",  "SQ", "1" },
+        { 0x0070, 0x030c,
+          "Frame of Reference Transformation Matrix Type", "FrameOfReferenceTransformationMatrixType",  "CS", "1" },
+        { 0x0070, 0x030d,
+          "Registration Type Code Sequence", "RegistrationTypeCodeSequence",  "SQ", "1" },
+        { 0x0070, 0x030f,
+          "Fiducial Description", "FiducialDescription",  "ST", "1" },
+        { 0x0070, 0x0310,
+          "Fiducial Identifier", "FiducialIdentifier",  "SH", "1" },
+        { 0x0070, 0x0311,
+          "Fiducial Identifier Code Sequence", "FiducialIdentifierCodeSequence",  "SQ", "1" },
+        { 0x0070, 0x0312,
+          "Contour Uncertainty Radius", "ContourUncertaintyRadius",  "FD", "1" },
+        { 0x0070, 0x0314,
+          "Used Fiducials Sequence", "UsedFiducialsSequence",  "SQ", "1" },
+        { 0x0070, 0x0318,
+          "Graphic Coordinates Data Sequence", "GraphicCoordinatesDataSequence",  "SQ", "1" },
+        { 0x0070, 0x031a,
+          "Fiducial UID", "FiducialUID",  "UI", "1" },
+        { 0x0070, 0x031c,
+          "Fiducial Set Sequence", "FiducialSetSequence",  "SQ", "1" },
+        { 0x0070, 0x031e,
+          "Fiducial Sequence", "FiducialSequence",  "SQ", "1" },
+        { 0x0070, 0x0401,
+          "Graphic Layer Recommended Display CIELab Value", "GraphicLayerRecommendedDisplayCIELabValue",  "US", "3" },
+        { 0x0070, 0x0402,
+          "Blending Sequence", "BlendingSequence",  "SQ", "1" },
+        { 0x0070, 0x0403,
+          "Relative Opacity", "RelativeOpacity",  "FL", "1" },
+        { 0x0070, 0x0404,
+          "Referenced Spatial Registration Sequence", "ReferencedSpatialRegistrationSequence",  "SQ", "1" },
+        { 0x0070, 0x0405,
+          "Blending Position", "BlendingPosition",  "CS", "1" },
+        { 0x0072, 0x0002,
+          "Hanging Protocol Name", "HangingProtocolName",  "SH", "1" },
+        { 0x0072, 0x0004,
+          "Hanging Protocol Description", "HangingProtocolDescription",  "LO", "1" },
+        { 0x0072, 0x0006,
+          "Hanging Protocol Level", "HangingProtocolLevel",  "CS", "1" },
+        { 0x0072, 0x0008,
+          "Hanging Protocol Creator", "HangingProtocolCreator",  "LO", "1" },
+        { 0x0072, 0x000a,
+          "Hanging Protocol Creation DateTime", "HangingProtocolCreationDateTime",  "DT", "1" },
+        { 0x0072, 0x000c,
+          "Hanging Protocol Definition Sequence", "HangingProtocolDefinitionSequence",  "SQ", "1" },
+        { 0x0072, 0x000e,
+          "Hanging Protocol User Identification Code Sequence", "HangingProtocolUserIdentificationCodeSequence",  "SQ", "1" },
+        { 0x0072, 0x0010,
+          "Hanging Protocol User Group Name", "HangingProtocolUserGroupName",  "LO", "1" },
+        { 0x0072, 0x0012,
+          "Source Hanging Protocol Sequence", "SourceHangingProtocolSequence",  "SQ", "1" },
+        { 0x0072, 0x0014,
+          "Number of Priors Referenced", "NumberOfPriorsReferenced",  "US", "1" },
+        { 0x0072, 0x0020,
+          "Image Sets Sequence", "ImageSetsSequence",  "SQ", "1" },
+        { 0x0072, 0x0022,
+          "Image Set Selector Sequence", "ImageSetSelectorSequence",  "SQ", "1" },
+        { 0x0072, 0x0024,
+          "Image Set Selector Usage Flag", "ImageSetSelectorUsageFlag",  "CS", "1" },
+        { 0x0072, 0x0026,
+          "Selector Attribute", "SelectorAttribute",  "AT", "1" },
+        { 0x0072, 0x0028,
+          "Selector Value Number", "SelectorValueNumber",  "US", "1" },
+        { 0x0072, 0x0030,
+          "Time Based Image Sets Sequence", "TimeBasedImageSetsSequence",  "SQ", "1" },
+        { 0x0072, 0x0032,
+          "Image Set Number", "ImageSetNumber",  "US", "1" },
+        { 0x0072, 0x0034,
+          "Image Set Selector Category", "ImageSetSelectorCategory",  "CS", "1" },
+        { 0x0072, 0x0038,
+          "Relative Time", "RelativeTime",  "US", "2" },
+        { 0x0072, 0x003a,
+          "Relative Time Units", "RelativeTimeUnits",  "CS", "1" },
+        { 0x0072, 0x003c,
+          "Abstract Prior Value", "AbstractPriorValue",  "SS", "2" },
+        { 0x0072, 0x003e,
+          "Abstract Prior Code Sequence", "AbstractPriorCodeSequence",  "SQ", "1" },
+        { 0x0072, 0x0040,
+          "Image Set Label", "ImageSetLabel",  "LO", "1" },
+        { 0x0072, 0x0050,
+          "Selector Attribute VR", "SelectorAttributeVR",  "CS", "1" },
+        { 0x0072, 0x0052,
+          "Selector Sequence Pointer", "SelectorSequencePointer",  "AT", "1-n" },
+        { 0x0072, 0x0054,
+          "Selector Sequence Pointer Private Creator", "SelectorSequencePointerPrivateCreator",  "LO", "1-n" },
+        { 0x0072, 0x0056,
+          "Selector Attribute Private Creator", "SelectorAttributePrivateCreator",  "LO", "1" },
+        { 0x0072, 0x0060,
+          "Selector AT Value", "SelectorATValue",  "AT", "1-n" },
+        { 0x0072, 0x0062,
+          "Selector CS Value", "SelectorCSValue",  "CS", "1-n" },
+        { 0x0072, 0x0064,
+          "Selector IS Value", "SelectorISValue",  "IS", "1-n" },
+        { 0x0072, 0x0066,
+          "Selector LO Value", "SelectorLOValue",  "LO", "1-n" },
+        { 0x0072, 0x0068,
+          "Selector LT Value", "SelectorLTValue",  "LT", "1" },
+        { 0x0072, 0x006a,
+          "Selector PN Value", "SelectorPNValue",  "PN", "1-n" },
+        { 0x0072, 0x006c,
+          "Selector SH Value", "SelectorSHValue",  "SH", "1-n" },
+        { 0x0072, 0x006e,
+          "Selector ST Value", "SelectorSTValue",  "ST", "1" },
+        { 0x0072, 0x0070,
+          "Selector UT Value", "SelectorUTValue",  "UT", "1" },
+        { 0x0072, 0x0072,
+          "Selector DS Value", "SelectorDSValue",  "DS", "1-n" },
+        { 0x0072, 0x0074,
+          "Selector FD Value", "SelectorFDValue",  "FD", "1-n" },
+        { 0x0072, 0x0076,
+          "Selector FL Value", "SelectorFLValue",  "FL", "1-n" },
+        { 0x0072, 0x0078,
+          "Selector UL Value", "SelectorULValue",  "UL", "1-n" },
+        { 0x0072, 0x007a,
+          "Selector US Value", "SelectorUSValue",  "US", "1-n" },
+        { 0x0072, 0x007c,
+          "Selector SL Value", "SelectorSLValue",  "SL", "1-n" },
+        { 0x0072, 0x007e,
+          "Selector SS Value", "SelectorSSValue",  "SS", "1-n" },
+        { 0x0072, 0x007f,
+          "Selector UI Value", "SelectorUIValue",  "UI", "1-n" },
+        { 0x0072, 0x0080,
+          "Selector Code Sequence Value", "SelectorCodeSequenceValue",  "SQ", "1" },
+        { 0x0072, 0x0100,
+          "Number of Screens", "NumberOfScreens",  "US", "1" },
+        { 0x0072, 0x0102,
+          "Nominal Screen Definition Sequence", "NominalScreenDefinitionSequence",  "SQ", "1" },
+        { 0x0072, 0x0104,
+          "Number of Vertical Pixels", "NumberOfVerticalPixels",  "US", "1" },
+        { 0x0072, 0x0106,
+          "Number of Horizontal Pixels", "NumberOfHorizontalPixels",  "US", "1" },
+        { 0x0072, 0x0108,
+          "Display Environment Spatial Position", "DisplayEnvironmentSpatialPosition",  "FD", "4" },
+        { 0x0072, 0x010a,
+          "Screen Minimum Grayscale Bit Depth", "ScreenMinimumGrayscaleBitDepth",  "US", "1" },
+        { 0x0072, 0x010c,
+          "Screen Minimum Color Bit Depth", "ScreenMinimumColorBitDepth",  "US", "1" },
+        { 0x0072, 0x010e,
+          "Application Maximum Repaint Time", "ApplicationMaximumRepaintTime",  "US", "1" },
+        { 0x0072, 0x0200,
+          "Display Sets Sequence", "DisplaySetsSequence",  "SQ", "1" },
+        { 0x0072, 0x0202,
+          "Display Set Number", "DisplaySetNumber",  "US", "1" },
+        { 0x0072, 0x0203,
+          "Display Set Label", "DisplaySetLabel",  "LO", "1" },
+        { 0x0072, 0x0204,
+          "Display Set Presentation Group", "DisplaySetPresentationGroup",  "US", "1" },
+        { 0x0072, 0x0206,
+          "Display Set Presentation Group Description", "DisplaySetPresentationGroupDescription",  "LO", "1" },
+        { 0x0072, 0x0208,
+          "Partial Data Display Handling", "PartialDataDisplayHandling",  "CS", "1" },
+        { 0x0072, 0x0210,
+          "Synchronized Scrolling Sequence", "SynchronizedScrollingSequence",  "SQ", "1" },
+        { 0x0072, 0x0212,
+          "Display Set Scrolling Group", "DisplaySetScrollingGroup",  "US", "2-n" },
+        { 0x0072, 0x0214,
+          "Navigation Indicator Sequence", "NavigationIndicatorSequence",  "SQ", "1" },
+        { 0x0072, 0x0216,
+          "Navigation Display Set", "NavigationDisplaySet",  "US", "1" },
+        { 0x0072, 0x0218,
+          "Reference Display Sets", "ReferenceDisplaySets",  "US", "1-n" },
+        { 0x0072, 0x0300,
+          "Image Boxes Sequence", "ImageBoxesSequence",  "SQ", "1" },
+        { 0x0072, 0x0302,
+          "Image Box Number", "ImageBoxNumber",  "US", "1" },
+        { 0x0072, 0x0304,
+          "Image Box Layout Type", "ImageBoxLayoutType",  "CS", "1" },
+        { 0x0072, 0x0306,
+          "Image Box Tile Horizontal Dimension", "ImageBoxTileHorizontalDimension",  "US", "1" },
+        { 0x0072, 0x0308,
+          "Image Box Tile Vertical Dimension", "ImageBoxTileVerticalDimension",  "US", "1" },
+        { 0x0072, 0x0310,
+          "Image Box Scroll Direction", "ImageBoxScrollDirection",  "CS", "1" },
+        { 0x0072, 0x0312,
+          "Image Box Small Scroll Type", "ImageBoxSmallScrollType",  "CS", "1" },
+        { 0x0072, 0x0314,
+          "Image Box Small Scroll Amount", "ImageBoxSmallScrollAmount",  "US", "1" },
+        { 0x0072, 0x0316,
+          "Image Box Large Scroll Type", "ImageBoxLargeScrollType",  "CS", "1" },
+        { 0x0072, 0x0318,
+          "Image Box Large Scroll Amount", "ImageBoxLargeScrollAmount",  "US", "1" },
+        { 0x0072, 0x0320,
+          "Image Box Overlap Priority", "ImageBoxOverlapPriority",  "US", "1" },
+        { 0x0072, 0x0330,
+          "Cine Relative to Real-Time", "CineRelativeToRealTime",  "FD", "1" },
+        { 0x0072, 0x0400,
+          "Filter Operations Sequence", "FilterOperationsSequence",  "SQ", "1" },
+        { 0x0072, 0x0402,
+          "Filter-by Category", "FilterByCategory",  "CS", "1" },
+        { 0x0072, 0x0404,
+          "Filter-by Attribute Presence", "FilterByAttributePresence",  "CS", "1" },
+        { 0x0072, 0x0406,
+          "Filter-by Operator", "FilterByOperator",  "CS", "1" },
+        { 0x0072, 0x0420,
+          "Structured Display Background CIELab Value", "StructuredDisplayBackgroundCIELabValue",  "US", "3" },
+        { 0x0072, 0x0421,
+          "Empty Image Box CIELab Value", "EmptyImageBoxCIELabValue",  "US", "3" },
+        { 0x0072, 0x0422,
+          "Structured Display Image Box Sequence", "StructuredDisplayImageBoxSequence",  "SQ", "1" },
+        { 0x0072, 0x0424,
+          "Structured Display Text Box Sequence", "StructuredDisplayTextBoxSequence",  "SQ", "1" },
+        { 0x0072, 0x0427,
+          "Referenced First Frame Sequence", "ReferencedFirstFrameSequence",  "SQ", "1" },
+        { 0x0072, 0x0430,
+          "Image Box Synchronization Sequence", "ImageBoxSynchronizationSequence",  "SQ", "1" },
+        { 0x0072, 0x0432,
+          "Synchronized Image Box List", "SynchronizedImageBoxList",  "US", "2-n" },
+        { 0x0072, 0x0434,
+          "Type of Synchronization", "TypeOfSynchronization",  "CS", "1" },
+        { 0x0072, 0x0500,
+          "Blending Operation Type", "BlendingOperationType",  "CS", "1" },
+        { 0x0072, 0x0510,
+          "Reformatting Operation Type", "ReformattingOperationType",  "CS", "1" },
+        { 0x0072, 0x0512,
+          "Reformatting Thickness", "ReformattingThickness",  "FD", "1" },
+        { 0x0072, 0x0514,
+          "Reformatting Interval", "ReformattingInterval",  "FD", "1" },
+        { 0x0072, 0x0516,
+          "Reformatting Operation Initial View Direction", "ReformattingOperationInitialViewDirection",  "CS", "1" },
+        { 0x0072, 0x0520,
+          "3D Rendering Type", "ThreeDRenderingType",  "CS", "1-n" },
+        { 0x0072, 0x0600,
+          "Sorting Operations Sequence", "SortingOperationsSequence",  "SQ", "1" },
+        { 0x0072, 0x0602,
+          "Sort-by Category", "SortByCategory",  "CS", "1" },
+        { 0x0072, 0x0604,
+          "Sorting Direction", "SortingDirection",  "CS", "1" },
+        { 0x0072, 0x0700,
+          "Display Set Patient Orientation", "DisplaySetPatientOrientation",  "CS", "2" },
+        { 0x0072, 0x0702,
+          "VOI Type", "VOIType",  "CS", "1" },
+        { 0x0072, 0x0704,
+          "Pseudo-Color Type", "PseudoColorType",  "CS", "1" },
+        { 0x0072, 0x0705,
+          "Pseudo-Color Palette Instance Reference Sequence", "PseudoColorPaletteInstanceReferenceSequence",  "SQ", "1" },
+        { 0x0072, 0x0706,
+          "Show Grayscale Inverted", "ShowGrayscaleInverted",  "CS", "1" },
+        { 0x0072, 0x0710,
+          "Show Image True Size Flag", "ShowImageTrueSizeFlag",  "CS", "1" },
+        { 0x0072, 0x0712,
+          "Show Graphic Annotation Flag", "ShowGraphicAnnotationFlag",  "CS", "1" },
+        { 0x0072, 0x0714,
+          "Show Patient Demographics Flag", "ShowPatientDemographicsFlag",  "CS", "1" },
+        { 0x0072, 0x0716,
+          "Show Acquisition Techniques Flag", "ShowAcquisitionTechniquesFlag",  "CS", "1" },
+        { 0x0072, 0x0717,
+          "Display Set Horizontal Justification", "DisplaySetHorizontalJustification",  "CS", "1" },
+        { 0x0072, 0x0718,
+          "Display Set Vertical Justification", "DisplaySetVerticalJustification",  "CS", "1" },
+        { 0x0074, 0x0120,
+          "Continuation Start Meterset", "ContinuationStartMeterset",  "FD", "1" },
+        { 0x0074, 0x0121,
+          "Continuation End Meterset", "ContinuationEndMeterset",  "FD", "1" },
+        { 0x0074, 0x1000,
+          "Procedure Step State", "ProcedureStepState",  "CS", "1" },
+        { 0x0074, 0x1002,
+          "Procedure Step Progress Information Sequence", "ProcedureStepProgressInformationSequence",  "SQ", "1" },
+        { 0x0074, 0x1004,
+          "Procedure Step Progress", "ProcedureStepProgress",  "DS", "1" },
+        { 0x0074, 0x1006,
+          "Procedure Step Progress Description", "ProcedureStepProgressDescription",  "ST", "1" },
+        { 0x0074, 0x1008,
+          "Procedure Step Communications URI Sequence", "ProcedureStepCommunicationsURISequence",  "SQ", "1" },
+        { 0x0074, 0x100a,
+          "Contact URI", "ContactURI",  "UR", "1" },
+        { 0x0074, 0x100c,
+          "Contact Display Name", "ContactDisplayName",  "LO", "1" },
+        { 0x0074, 0x100e,
+          "Procedure Step Discontinuation Reason Code Sequence", "ProcedureStepDiscontinuationReasonCodeSequence",  "SQ", "1" },
+        { 0x0074, 0x1020,
+          "Beam Task Sequence", "BeamTaskSequence",  "SQ", "1" },
+        { 0x0074, 0x1022,
+          "Beam Task Type", "BeamTaskType",  "CS", "1" },
+        { 0x0074, 0x1024,
+          "Beam Order Index (Trial)", "BeamOrderIndexTrial",  "IS", "1" },
+        { 0x0074, 0x1025,
+          "Autosequence Flag", "AutosequenceFlag",  "CS", "1" },
+        { 0x0074, 0x1026,
+          "Table Top Vertical Adjusted Position", "TableTopVerticalAdjustedPosition",  "FD", "1" },
+        { 0x0074, 0x1027,
+          "Table Top Longitudinal Adjusted Position", "TableTopLongitudinalAdjustedPosition",  "FD", "1" },
+        { 0x0074, 0x1028,
+          "Table Top Lateral Adjusted Position", "TableTopLateralAdjustedPosition",  "FD", "1" },
+        { 0x0074, 0x102a,
+          "Patient Support Adjusted Angle", "PatientSupportAdjustedAngle",  "FD", "1" },
+        { 0x0074, 0x102b,
+          "Table Top Eccentric Adjusted Angle", "TableTopEccentricAdjustedAngle",  "FD", "1" },
+        { 0x0074, 0x102c,
+          "Table Top Pitch Adjusted Angle", "TableTopPitchAdjustedAngle",  "FD", "1" },
+        { 0x0074, 0x102d,
+          "Table Top Roll Adjusted Angle", "TableTopRollAdjustedAngle",  "FD", "1" },
+        { 0x0074, 0x1030,
+          "Delivery Verification Image Sequence", "DeliveryVerificationImageSequence",  "SQ", "1" },
+        { 0x0074, 0x1032,
+          "Verification Image Timing", "VerificationImageTiming",  "CS", "1" },
+        { 0x0074, 0x1034,
+          "Double Exposure Flag", "DoubleExposureFlag",  "CS", "1" },
+        { 0x0074, 0x1036,
+          "Double Exposure Ordering", "DoubleExposureOrdering",  "CS", "1" },
+        { 0x0074, 0x1038,
+          "Double Exposure Meterset (Trial)", "DoubleExposureMetersetTrial",  "DS", "1" },
+        { 0x0074, 0x103a,
+          "Double Exposure Field Delta (Trial)", "DoubleExposureFieldDeltaTrial",  "DS", "4" },
+        { 0x0074, 0x1040,
+          "Related Reference RT Image Sequence", "RelatedReferenceRTImageSequence",  "SQ", "1" },
+        { 0x0074, 0x1042,
+          "General Machine Verification Sequence", "GeneralMachineVerificationSequence",  "SQ", "1" },
+        { 0x0074, 0x1044,
+          "Conventional Machine Verification Sequence", "ConventionalMachineVerificationSequence",  "SQ", "1" },
+        { 0x0074, 0x1046,
+          "Ion Machine Verification Sequence", "IonMachineVerificationSequence",  "SQ", "1" },
+        { 0x0074, 0x1048,
+          "Failed Attributes Sequence", "FailedAttributesSequence",  "SQ", "1" },
+        { 0x0074, 0x104a,
+          "Overridden Attributes Sequence", "OverriddenAttributesSequence",  "SQ", "1" },
+        { 0x0074, 0x104c,
+          "Conventional Control Point Verification Sequence", "ConventionalControlPointVerificationSequence",  "SQ", "1" },
+        { 0x0074, 0x104e,
+          "Ion Control Point Verification Sequence", "IonControlPointVerificationSequence",  "SQ", "1" },
+        { 0x0074, 0x1050,
+          "Attribute Occurrence Sequence", "AttributeOccurrenceSequence",  "SQ", "1" },
+        { 0x0074, 0x1052,
+          "Attribute Occurrence Pointer", "AttributeOccurrencePointer",  "AT", "1" },
+        { 0x0074, 0x1054,
+          "Attribute Item Selector", "AttributeItemSelector",  "UL", "1" },
+        { 0x0074, 0x1056,
+          "Attribute Occurrence Private Creator", "AttributeOccurrencePrivateCreator",  "LO", "1" },
+        { 0x0074, 0x1057,
+          "Selector Sequence Pointer Items", "SelectorSequencePointerItems",  "IS", "1-n" },
+        { 0x0074, 0x1200,
+          "Scheduled Procedure Step Priority", "ScheduledProcedureStepPriority",  "CS", "1" },
+        { 0x0074, 0x1202,
+          "Worklist Label", "WorklistLabel",  "LO", "1" },
+        { 0x0074, 0x1204,
+          "Procedure Step Label", "ProcedureStepLabel",  "LO", "1" },
+        { 0x0074, 0x1210,
+          "Scheduled Processing Parameters Sequence", "ScheduledProcessingParametersSequence",  "SQ", "1" },
+        { 0x0074, 0x1212,
+          "Performed Processing Parameters Sequence", "PerformedProcessingParametersSequence",  "SQ", "1" },
+        { 0x0074, 0x1216,
+          "Unified Procedure Step Performed Procedure Sequence", "UnifiedProcedureStepPerformedProcedureSequence",  "SQ", "1" },
+        { 0x0074, 0x1220,
+          "Related Procedure Step Sequence", "RelatedProcedureStepSequence",  "SQ", "1" },
+        { 0x0074, 0x1222,
+          "Procedure Step Relationship Type", "ProcedureStepRelationshipType",  "LO", "1" },
+        { 0x0074, 0x1224,
+          "Replaced Procedure Step Sequence", "ReplacedProcedureStepSequence",  "SQ", "1" },
+        { 0x0074, 0x1230,
+          "Deletion Lock", "DeletionLock",  "LO", "1" },
+        { 0x0074, 0x1234,
+          "Receiving AE", "ReceivingAE",  "AE", "1" },
+        { 0x0074, 0x1236,
+          "Requesting AE", "RequestingAE",  "AE", "1" },
+        { 0x0074, 0x1238,
+          "Reason for Cancellation", "ReasonForCancellation",  "LT", "1" },
+        { 0x0074, 0x1242,
+          "SCP Status", "SCPStatus",  "CS", "1" },
+        { 0x0074, 0x1244,
+          "Subscription List Status", "SubscriptionListStatus",  "CS", "1" },
+        { 0x0074, 0x1246,
+          "Unified Procedure Step List Status", "UnifiedProcedureStepListStatus",  "CS", "1" },
+        { 0x0074, 0x1324,
+          "Beam Order Index", "BeamOrderIndex",  "UL", "1" },
+        { 0x0074, 0x1338,
+          "Double Exposure Meterset", "DoubleExposureMeterset",  "FD", "1" },
+        { 0x0074, 0x133a,
+          "Double Exposure Field Delta", "DoubleExposureFieldDelta",  "FD", "4" },
+        { 0x0076, 0x0001,
+          "Implant Assembly Template Name", "ImplantAssemblyTemplateName",  "LO", "1" },
+        { 0x0076, 0x0003,
+          "Implant Assembly Template Issuer", "ImplantAssemblyTemplateIssuer",  "LO", "1" },
+        { 0x0076, 0x0006,
+          "Implant Assembly Template Version", "ImplantAssemblyTemplateVersion",  "LO", "1" },
+        { 0x0076, 0x0008,
+          "Replaced Implant Assembly Template Sequence", "ReplacedImplantAssemblyTemplateSequence",  "SQ", "1" },
+        { 0x0076, 0x000a,
+          "Implant Assembly Template Type", "ImplantAssemblyTemplateType",  "CS", "1" },
+        { 0x0076, 0x000c,
+          "Original Implant Assembly Template Sequence", "OriginalImplantAssemblyTemplateSequence",  "SQ", "1" },
+        { 0x0076, 0x000e,
+          "Derivation Implant Assembly Template Sequence", "DerivationImplantAssemblyTemplateSequence",  "SQ", "1" },
+        { 0x0076, 0x0010,
+          "Implant Assembly Template Target Anatomy Sequence", "ImplantAssemblyTemplateTargetAnatomySequence",  "SQ", "1" },
+        { 0x0076, 0x0020,
+          "Procedure Type Code Sequence", "ProcedureTypeCodeSequence",  "SQ", "1" },
+        { 0x0076, 0x0030,
+          "Surgical Technique", "SurgicalTechnique",  "LO", "1" },
+        { 0x0076, 0x0032,
+          "Component Types Sequence", "ComponentTypesSequence",  "SQ", "1" },
+        { 0x0076, 0x0034,
+          "Component Type Code Sequence", "ComponentTypeCodeSequence",  "CS", "1" },
+        { 0x0076, 0x0036,
+          "Exclusive Component Type", "ExclusiveComponentType",  "CS", "1" },
+        { 0x0076, 0x0038,
+          "Mandatory Component Type", "MandatoryComponentType",  "CS", "1" },
+        { 0x0076, 0x0040,
+          "Component Sequence", "ComponentSequence",  "SQ", "1" },
+        { 0x0076, 0x0055,
+          "Component ID", "ComponentID",  "US", "1" },
+        { 0x0076, 0x0060,
+          "Component Assembly Sequence", "ComponentAssemblySequence",  "SQ", "1" },
+        { 0x0076, 0x0070,
+          "Component 1 Referenced ID", "Component1ReferencedID",  "US", "1" },
+        { 0x0076, 0x0080,
+          "Component 1 Referenced Mating Feature Set ID", "Component1ReferencedMatingFeatureSetID",  "US", "1" },
+        { 0x0076, 0x0090,
+          "Component 1 Referenced Mating Feature ID", "Component1ReferencedMatingFeatureID",  "US", "1" },
+        { 0x0076, 0x00a0,
+          "Component 2 Referenced ID", "Component2ReferencedID",  "US", "1" },
+        { 0x0076, 0x00b0,
+          "Component 2 Referenced Mating Feature Set ID", "Component2ReferencedMatingFeatureSetID",  "US", "1" },
+        { 0x0076, 0x00c0,
+          "Component 2 Referenced Mating Feature ID", "Component2ReferencedMatingFeatureID",  "US", "1" },
+        { 0x0078, 0x0001,
+          "Implant Template Group Name", "ImplantTemplateGroupName",  "LO", "1" },
+        { 0x0078, 0x0010,
+          "Implant Template Group Description", "ImplantTemplateGroupDescription",  "ST", "1" },
+        { 0x0078, 0x0020,
+          "Implant Template Group Issuer", "ImplantTemplateGroupIssuer",  "LO", "1" },
+        { 0x0078, 0x0024,
+          "Implant Template Group Version", "ImplantTemplateGroupVersion",  "LO", "1" },
+        { 0x0078, 0x0026,
+          "Replaced Implant Template Group Sequence", "ReplacedImplantTemplateGroupSequence",  "SQ", "1" },
+        { 0x0078, 0x0028,
+          "Implant Template Group Target Anatomy Sequence", "ImplantTemplateGroupTargetAnatomySequence",  "SQ", "1" },
+        { 0x0078, 0x002a,
+          "Implant Template Group Members Sequence", "ImplantTemplateGroupMembersSequence",  "SQ", "1" },
+        { 0x0078, 0x002e,
+          "Implant Template Group Member ID", "ImplantTemplateGroupMemberID",  "US", "1" },
+        { 0x0078, 0x0050,
+          "3D Implant Template Group Member Matching Point", "ThreeDImplantTemplateGroupMemberMatchingPoint",  "FD", "3" },
+        { 0x0078, 0x0060,
+          "3D Implant Template Group Member Matching Axes", "ThreeDImplantTemplateGroupMemberMatchingAxes",  "FD", "9" },
+        { 0x0078, 0x0070,
+          "Implant Template Group Member Matching 2D Coordinates Sequence", "ImplantTemplateGroupMemberMatching2DCoordinatesSequence",  "SQ", "1" },
+        { 0x0078, 0x0090,
+          "2D Implant Template Group Member Matching Point", "TwoDImplantTemplateGroupMemberMatchingPoint",  "FD", "2" },
+        { 0x0078, 0x00a0,
+          "2D Implant Template Group Member Matching Axes", "TwoDImplantTemplateGroupMemberMatchingAxes",  "FD", "4" },
+        { 0x0078, 0x00b0,
+          "Implant Template Group Variation Dimension Sequence", "ImplantTemplateGroupVariationDimensionSequence",  "SQ", "1" },
+        { 0x0078, 0x00b2,
+          "Implant Template Group Variation Dimension Name", "ImplantTemplateGroupVariationDimensionName",  "LO", "1" },
+        { 0x0078, 0x00b4,
+          "Implant Template Group Variation Dimension Rank Sequence", "ImplantTemplateGroupVariationDimensionRankSequence",  "SQ", "1" },
+        { 0x0078, 0x00b6,
+          "Referenced Implant Template Group Member ID", "ReferencedImplantTemplateGroupMemberID",  "US", "1" },
+        { 0x0078, 0x00b8,
+          "Implant Template Group Variation Dimension Rank", "ImplantTemplateGroupVariationDimensionRank",  "US", "1" },
+        { 0x0080, 0x0001,
+          "Surface Scan Acquisition Type Code Sequence", "SurfaceScanAcquisitionTypeCodeSequence",  "SQ", "1" },
+        { 0x0080, 0x0002,
+          "Surface Scan Mode Code Sequence", "SurfaceScanModeCodeSequence",  "SQ", "1" },
+        { 0x0080, 0x0003,
+          "Registration Method Code Sequence", "RegistrationMethodCodeSequence",  "SQ", "1" },
+        { 0x0080, 0x0004,
+          "Shot Duration Time", "ShotDurationTime",  "FD", "1" },
+        { 0x0080, 0x0005,
+          "Shot Offset Time", "ShotOffsetTime",  "FD", "1" },
+        { 0x0080, 0x0006,
+          "Surface Point Presentation Value Data", "SurfacePointPresentationValueData",  "US", "1-n" },
+        { 0x0080, 0x0007,
+          "Surface Point Color CIELab Value Data", "SurfacePointColorCIELabValueData",  "US", "3-3n" },
+        { 0x0080, 0x0008,
+          "UV Mapping Sequence", "UVMappingSequence",  "SQ", "1" },
+        { 0x0080, 0x0009,
+          "Texture Label", "TextureLabel",  "SH", "1" },
+        { 0x0080, 0x0010,
+          "U Value Data", "UValueData",  "OF", "1-n" },
+        { 0x0080, 0x0011,
+          "V Value Data", "VValueData",  "OF", "1-n" },
+        { 0x0080, 0x0012,
+          "Referenced Texture Sequence", "ReferencedTextureSequence",  "SQ", "1" },
+        { 0x0080, 0x0013,
+          "Referenced Surface Data Sequence", "ReferencedSurfaceDataSequence",  "SQ", "1" },
+        { 0x0088, 0x0130,
+          "Storage Media File-set ID", "StorageMediaFileSetID",  "SH", "1" },
+        { 0x0088, 0x0140,
+          "Storage Media File-set UID", "StorageMediaFileSetUID",  "UI", "1" },
+        { 0x0088, 0x0200,
+          "Icon Image Sequence", "IconImageSequence",  "SQ", "1" },
+        { 0x0088, 0x0904,
+          "Topic Title", "TopicTitle",  "LO", "1" },
+        { 0x0088, 0x0906,
+          "Topic Subject", "TopicSubject",  "ST", "1" },
+        { 0x0088, 0x0910,
+          "Topic Author", "TopicAuthor",  "LO", "1" },
+        { 0x0088, 0x0912,
+          "Topic Keywords", "TopicKeywords",  "LO", "1-32" },
+        { 0x0100, 0x0410,
+          "SOP Instance Status", "SOPInstanceStatus",  "CS", "1" },
+        { 0x0100, 0x0420,
+          "SOP Authorization DateTime", "SOPAuthorizationDateTime",  "DT", "1" },
+        { 0x0100, 0x0424,
+          "SOP Authorization Comment", "SOPAuthorizationComment",  "LT", "1" },
+        { 0x0100, 0x0426,
+          "Authorization Equipment Certification Number", "AuthorizationEquipmentCertificationNumber",  "LO", "1" },
+        { 0x0400, 0x0005,
+          "MAC ID Number", "MACIDNumber",  "US", "1" },
+        { 0x0400, 0x0010,
+          "MAC Calculation Transfer Syntax UID", "MACCalculationTransferSyntaxUID",  "UI", "1" },
+        { 0x0400, 0x0015,
+          "MAC Algorithm", "MACAlgorithm",  "CS", "1" },
+        { 0x0400, 0x0020,
+          "Data Elements Signed", "DataElementsSigned",  "AT", "1-n" },
+        { 0x0400, 0x0100,
+          "Digital Signature UID", "DigitalSignatureUID",  "UI", "1" },
+        { 0x0400, 0x0105,
+          "Digital Signature DateTime", "DigitalSignatureDateTime",  "DT", "1" },
+        { 0x0400, 0x0110,
+          "Certificate Type", "CertificateType",  "CS", "1" },
+        { 0x0400, 0x0115,
+          "Certificate of Signer", "CertificateOfSigner",  "OB", "1" },
+        { 0x0400, 0x0120,
+          "Signature", "Signature",  "OB", "1" },
+        { 0x0400, 0x0305,
+          "Certified Timestamp Type", "CertifiedTimestampType",  "CS", "1" },
+        { 0x0400, 0x0310,
+          "Certified Timestamp", "CertifiedTimestamp",  "OB", "1" },
+        { 0x0400, 0x0401,
+          "Digital Signature Purpose Code Sequence", "DigitalSignaturePurposeCodeSequence",  "SQ", "1" },
+        { 0x0400, 0x0402,
+          "Referenced Digital Signature Sequence", "ReferencedDigitalSignatureSequence",  "SQ", "1" },
+        { 0x0400, 0x0403,
+          "Referenced SOP Instance MAC Sequence", "ReferencedSOPInstanceMACSequence",  "SQ", "1" },
+        { 0x0400, 0x0404,
+          "MAC", "MAC",  "OB", "1" },
+        { 0x0400, 0x0500,
+          "Encrypted Attributes Sequence", "EncryptedAttributesSequence",  "SQ", "1" },
+        { 0x0400, 0x0510,
+          "Encrypted Content Transfer Syntax UID", "EncryptedContentTransferSyntaxUID",  "UI", "1" },
+        { 0x0400, 0x0520,
+          "Encrypted Content", "EncryptedContent",  "OB", "1" },
+        { 0x0400, 0x0550,
+          "Modified Attributes Sequence", "ModifiedAttributesSequence",  "SQ", "1" },
+        { 0x0400, 0x0561,
+          "Original Attributes Sequence", "OriginalAttributesSequence",  "SQ", "1" },
+        { 0x0400, 0x0562,
+          "Attribute Modification DateTime", "AttributeModificationDateTime",  "DT", "1" },
+        { 0x0400, 0x0563,
+          "Modifying System", "ModifyingSystem",  "LO", "1" },
+        { 0x0400, 0x0564,
+          "Source of Previous Values", "SourceOfPreviousValues",  "LO", "1" },
+        { 0x0400, 0x0565,
+          "Reason for the Attribute Modification", "ReasonForTheAttributeModification",  "CS", "1" },
+        { 0x2000, 0x0010,
+          "Number of Copies", "NumberOfCopies",  "IS", "1" },
+        { 0x2000, 0x001e,
+          "Printer Configuration Sequence", "PrinterConfigurationSequence",  "SQ", "1" },
+        { 0x2000, 0x0020,
+          "Print Priority", "PrintPriority",  "CS", "1" },
+        { 0x2000, 0x0030,
+          "Medium Type", "MediumType",  "CS", "1" },
+        { 0x2000, 0x0040,
+          "Film Destination", "FilmDestination",  "CS", "1" },
+        { 0x2000, 0x0050,
+          "Film Session Label", "FilmSessionLabel",  "LO", "1" },
+        { 0x2000, 0x0060,
+          "Memory Allocation", "MemoryAllocation",  "IS", "1" },
+        { 0x2000, 0x0061,
+          "Maximum Memory Allocation", "MaximumMemoryAllocation",  "IS", "1" },
+        { 0x2000, 0x0062,
+          "Color Image Printing Flag", "ColorImagePrintingFlag",  "CS", "1" },
+        { 0x2000, 0x0063,
+          "Collation Flag", "CollationFlag",  "CS", "1" },
+        { 0x2000, 0x0065,
+          "Annotation Flag", "AnnotationFlag",  "CS", "1" },
+        { 0x2000, 0x0067,
+          "Image Overlay Flag", "ImageOverlayFlag",  "CS", "1" },
+        { 0x2000, 0x0069,
+          "Presentation LUT Flag", "PresentationLUTFlag",  "CS", "1" },
+        { 0x2000, 0x006a,
+          "Image Box Presentation LUT Flag", "ImageBoxPresentationLUTFlag",  "CS", "1" },
+        { 0x2000, 0x00a0,
+          "Memory Bit Depth", "MemoryBitDepth",  "US", "1" },
+        { 0x2000, 0x00a1,
+          "Printing Bit Depth", "PrintingBitDepth",  "US", "1" },
+        { 0x2000, 0x00a2,
+          "Media Installed Sequence", "MediaInstalledSequence",  "SQ", "1" },
+        { 0x2000, 0x00a4,
+          "Other Media Available Sequence", "OtherMediaAvailableSequence",  "SQ", "1" },
+        { 0x2000, 0x00a8,
+          "Supported Image Display Formats Sequence", "SupportedImageDisplayFormatsSequence",  "SQ", "1" },
+        { 0x2000, 0x0500,
+          "Referenced Film Box Sequence", "ReferencedFilmBoxSequence",  "SQ", "1" },
+        { 0x2000, 0x0510,
+          "Referenced Stored Print Sequence", "ReferencedStoredPrintSequence",  "SQ", "1" },
+        { 0x2010, 0x0010,
+          "Image Display Format", "ImageDisplayFormat",  "ST", "1" },
+        { 0x2010, 0x0030,
+          "Annotation Display Format ID", "AnnotationDisplayFormatID",  "CS", "1" },
+        { 0x2010, 0x0040,
+          "Film Orientation", "FilmOrientation",  "CS", "1" },
+        { 0x2010, 0x0050,
+          "Film Size ID", "FilmSizeID",  "CS", "1" },
+        { 0x2010, 0x0052,
+          "Printer Resolution ID", "PrinterResolutionID",  "CS", "1" },
+        { 0x2010, 0x0054,
+          "Default Printer Resolution ID", "DefaultPrinterResolutionID",  "CS", "1" },
+        { 0x2010, 0x0060,
+          "Magnification Type", "MagnificationType",  "CS", "1" },
+        { 0x2010, 0x0080,
+          "Smoothing Type", "SmoothingType",  "CS", "1" },
+        { 0x2010, 0x00a6,
+          "Default Magnification Type", "DefaultMagnificationType",  "CS", "1" },
+        { 0x2010, 0x00a7,
+          "Other Magnification Types Available", "OtherMagnificationTypesAvailable",  "CS", "1-n" },
+        { 0x2010, 0x00a8,
+          "Default Smoothing Type", "DefaultSmoothingType",  "CS", "1" },
+        { 0x2010, 0x00a9,
+          "Other Smoothing Types Available", "OtherSmoothingTypesAvailable",  "CS", "1-n" },
+        { 0x2010, 0x0100,
+          "Border Density", "BorderDensity",  "CS", "1" },
+        { 0x2010, 0x0110,
+          "Empty Image Density", "EmptyImageDensity",  "CS", "1" },
+        { 0x2010, 0x0120,
+          "Min Density", "MinDensity",  "US", "1" },
+        { 0x2010, 0x0130,
+          "Max Density", "MaxDensity",  "US", "1" },
+        { 0x2010, 0x0140,
+          "Trim", "Trim",  "CS", "1" },
+        { 0x2010, 0x0150,
+          "Configuration Information", "ConfigurationInformation",  "ST", "1" },
+        { 0x2010, 0x0152,
+          "Configuration Information Description", "ConfigurationInformationDescription",  "LT", "1" },
+        { 0x2010, 0x0154,
+          "Maximum Collated Films", "MaximumCollatedFilms",  "IS", "1" },
+        { 0x2010, 0x015e,
+          "Illumination", "Illumination",  "US", "1" },
+        { 0x2010, 0x0160,
+          "Reflected Ambient Light", "ReflectedAmbientLight",  "US", "1" },
+        { 0x2010, 0x0376,
+          "Printer Pixel Spacing", "PrinterPixelSpacing",  "DS", "2" },
+        { 0x2010, 0x0500,
+          "Referenced Film Session Sequence", "ReferencedFilmSessionSequence",  "SQ", "1" },
+        { 0x2010, 0x0510,
+          "Referenced Image Box Sequence", "ReferencedImageBoxSequence",  "SQ", "1" },
+        { 0x2010, 0x0520,
+          "Referenced Basic Annotation Box Sequence", "ReferencedBasicAnnotationBoxSequence",  "SQ", "1" },
+        { 0x2020, 0x0010,
+          "Image Box Position", "ImageBoxPosition",  "US", "1" },
+        { 0x2020, 0x0020,
+          "Polarity", "Polarity",  "CS", "1" },
+        { 0x2020, 0x0030,
+          "Requested Image Size", "RequestedImageSize",  "DS", "1" },
+        { 0x2020, 0x0040,
+          "Requested Decimate/Crop Behavior", "RequestedDecimateCropBehavior",  "CS", "1" },
+        { 0x2020, 0x0050,
+          "Requested Resolution ID", "RequestedResolutionID",  "CS", "1" },
+        { 0x2020, 0x00a0,
+          "Requested Image Size Flag", "RequestedImageSizeFlag",  "CS", "1" },
+        { 0x2020, 0x00a2,
+          "Decimate/Crop Result", "DecimateCropResult",  "CS", "1" },
+        { 0x2020, 0x0110,
+          "Basic Grayscale Image Sequence", "BasicGrayscaleImageSequence",  "SQ", "1" },
+        { 0x2020, 0x0111,
+          "Basic Color Image Sequence", "BasicColorImageSequence",  "SQ", "1" },
+        { 0x2020, 0x0130,
+          "Referenced Image Overlay Box Sequence", "ReferencedImageOverlayBoxSequence",  "SQ", "1" },
+        { 0x2020, 0x0140,
+          "Referenced VOI LUT Box Sequence", "ReferencedVOILUTBoxSequence",  "SQ", "1" },
+        { 0x2030, 0x0010,
+          "Annotation Position", "AnnotationPosition",  "US", "1" },
+        { 0x2030, 0x0020,
+          "Text String", "TextString",  "LO", "1" },
+        { 0x2040, 0x0010,
+          "Referenced Overlay Plane Sequence", "ReferencedOverlayPlaneSequence",  "SQ", "1" },
+        { 0x2040, 0x0011,
+          "Referenced Overlay Plane Groups", "ReferencedOverlayPlaneGroups",  "US", "1-99" },
+        { 0x2040, 0x0020,
+          "Overlay Pixel Data Sequence", "OverlayPixelDataSequence",  "SQ", "1" },
+        { 0x2040, 0x0060,
+          "Overlay Magnification Type", "OverlayMagnificationType",  "CS", "1" },
+        { 0x2040, 0x0070,
+          "Overlay Smoothing Type", "OverlaySmoothingType",  "CS", "1" },
+        { 0x2040, 0x0072,
+          "Overlay or Image Magnification", "OverlayOrImageMagnification",  "CS", "1" },
+        { 0x2040, 0x0074,
+          "Magnify to Number of Columns", "MagnifyToNumberOfColumns",  "US", "1" },
+        { 0x2040, 0x0080,
+          "Overlay Foreground Density", "OverlayForegroundDensity",  "CS", "1" },
+        { 0x2040, 0x0082,
+          "Overlay Background Density", "OverlayBackgroundDensity",  "CS", "1" },
+        { 0x2040, 0x0090,
+          "Overlay Mode", "OverlayMode",  "CS", "1" },
+        { 0x2040, 0x0100,
+          "Threshold Density", "ThresholdDensity",  "CS", "1" },
+        { 0x2040, 0x0500,
+          "Referenced Image Box Sequence (Retired)", "ReferencedImageBoxSequenceRetired",  "SQ", "1" },
+        { 0x2050, 0x0010,
+          "Presentation LUT Sequence", "PresentationLUTSequence",  "SQ", "1" },
+        { 0x2050, 0x0020,
+          "Presentation LUT Shape", "PresentationLUTShape",  "CS", "1" },
+        { 0x2050, 0x0500,
+          "Referenced Presentation LUT Sequence", "ReferencedPresentationLUTSequence",  "SQ", "1" },
+        { 0x2100, 0x0010,
+          "Print Job ID", "PrintJobID",  "SH", "1" },
+        { 0x2100, 0x0020,
+          "Execution Status", "ExecutionStatus",  "CS", "1" },
+        { 0x2100, 0x0030,
+          "Execution Status Info", "ExecutionStatusInfo",  "CS", "1" },
+        { 0x2100, 0x0040,
+          "Creation Date", "CreationDate",  "DA", "1" },
+        { 0x2100, 0x0050,
+          "Creation Time", "CreationTime",  "TM", "1" },
+        { 0x2100, 0x0070,
+          "Originator", "Originator",  "AE", "1" },
+        { 0x2100, 0x0140,
+          "Destination AE", "DestinationAE",  "AE", "1" },
+        { 0x2100, 0x0160,
+          "Owner ID", "OwnerID",  "SH", "1" },
+        { 0x2100, 0x0170,
+          "Number of Films", "NumberOfFilms",  "IS", "1" },
+        { 0x2100, 0x0500,
+          "Referenced Print Job Sequence (Pull Stored Print)", "ReferencedPrintJobSequencePullStoredPrint",  "SQ", "1" },
+        { 0x2110, 0x0010,
+          "Printer Status", "PrinterStatus",  "CS", "1" },
+        { 0x2110, 0x0020,
+          "Printer Status Info", "PrinterStatusInfo",  "CS", "1" },
+        { 0x2110, 0x0030,
+          "Printer Name", "PrinterName",  "LO", "1" },
+        { 0x2110, 0x0099,
+          "Print Queue ID", "PrintQueueID",  "SH", "1" },
+        { 0x2120, 0x0010,
+          "Queue Status", "QueueStatus",  "CS", "1" },
+        { 0x2120, 0x0050,
+          "Print Job Description Sequence", "PrintJobDescriptionSequence",  "SQ", "1" },
+        { 0x2120, 0x0070,
+          "Referenced Print Job Sequence", "ReferencedPrintJobSequence",  "SQ", "1" },
+        { 0x2130, 0x0010,
+          "Print Management Capabilities Sequence", "PrintManagementCapabilitiesSequence",  "SQ", "1" },
+        { 0x2130, 0x0015,
+          "Printer Characteristics Sequence", "PrinterCharacteristicsSequence",  "SQ", "1" },
+        { 0x2130, 0x0030,
+          "Film Box Content Sequence", "FilmBoxContentSequence",  "SQ", "1" },
+        { 0x2130, 0x0040,
+          "Image Box Content Sequence", "ImageBoxContentSequence",  "SQ", "1" },
+        { 0x2130, 0x0050,
+          "Annotation Content Sequence", "AnnotationContentSequence",  "SQ", "1" },
+        { 0x2130, 0x0060,
+          "Image Overlay Box Content Sequence", "ImageOverlayBoxContentSequence",  "SQ", "1" },
+        { 0x2130, 0x0080,
+          "Presentation LUT Content Sequence", "PresentationLUTContentSequence",  "SQ", "1" },
+        { 0x2130, 0x00a0,
+          "Proposed Study Sequence", "ProposedStudySequence",  "SQ", "1" },
+        { 0x2130, 0x00c0,
+          "Original Image Sequence", "OriginalImageSequence",  "SQ", "1" },
+        { 0x2200, 0x0001,
+          "Label Using Information Extracted From Instances", "LabelUsingInformationExtractedFromInstances",  "CS", "1" },
+        { 0x2200, 0x0002,
+          "Label Text", "LabelText",  "UT", "1" },
+        { 0x2200, 0x0003,
+          "Label Style Selection", "LabelStyleSelection",  "CS", "1" },
+        { 0x2200, 0x0004,
+          "Media Disposition", "MediaDisposition",  "LT", "1" },
+        { 0x2200, 0x0005,
+          "Barcode Value", "BarcodeValue",  "LT", "1" },
+        { 0x2200, 0x0006,
+          "Barcode Symbology", "BarcodeSymbology",  "CS", "1" },
+        { 0x2200, 0x0007,
+          "Allow Media Splitting", "AllowMediaSplitting",  "CS", "1" },
+        { 0x2200, 0x0008,
+          "Include Non-DICOM Objects", "IncludeNonDICOMObjects",  "CS", "1" },
+        { 0x2200, 0x0009,
+          "Include Display Application", "IncludeDisplayApplication",  "CS", "1" },
+        { 0x2200, 0x000a,
+          "Preserve Composite Instances After Media Creation", "PreserveCompositeInstancesAfterMediaCreation",  "CS", "1" },
+        { 0x2200, 0x000b,
+          "Total Number of Pieces of Media Created", "TotalNumberOfPiecesOfMediaCreated",  "US", "1" },
+        { 0x2200, 0x000c,
+          "Requested Media Application Profile", "RequestedMediaApplicationProfile",  "LO", "1" },
+        { 0x2200, 0x000d,
+          "Referenced Storage Media Sequence", "ReferencedStorageMediaSequence",  "SQ", "1" },
+        { 0x2200, 0x000e,
+          "Failure Attributes", "FailureAttributes",  "AT", "1-n" },
+        { 0x2200, 0x000f,
+          "Allow Lossy Compression", "AllowLossyCompression",  "CS", "1" },
+        { 0x2200, 0x0020,
+          "Request Priority", "RequestPriority",  "CS", "1" },
+        { 0x3002, 0x0002,
+          "RT Image Label", "RTImageLabel",  "SH", "1" },
+        { 0x3002, 0x0003,
+          "RT Image Name", "RTImageName",  "LO", "1" },
+        { 0x3002, 0x0004,
+          "RT Image Description", "RTImageDescription",  "ST", "1" },
+        { 0x3002, 0x000a,
+          "Reported Values Origin", "ReportedValuesOrigin",  "CS", "1" },
+        { 0x3002, 0x000c,
+          "RT Image Plane", "RTImagePlane",  "CS", "1" },
+        { 0x3002, 0x000d,
+          "X-Ray Image Receptor Translation", "XRayImageReceptorTranslation",  "DS", "3" },
+        { 0x3002, 0x000e,
+          "X-Ray Image Receptor Angle", "XRayImageReceptorAngle",  "DS", "1" },
+        { 0x3002, 0x0010,
+          "RT Image Orientation", "RTImageOrientation",  "DS", "6" },
+        { 0x3002, 0x0011,
+          "Image Plane Pixel Spacing", "ImagePlanePixelSpacing",  "DS", "2" },
+        { 0x3002, 0x0012,
+          "RT Image Position", "RTImagePosition",  "DS", "2" },
+        { 0x3002, 0x0020,
+          "Radiation Machine Name", "RadiationMachineName",  "SH", "1" },
+        { 0x3002, 0x0022,
+          "Radiation Machine SAD", "RadiationMachineSAD",  "DS", "1" },
+        { 0x3002, 0x0024,
+          "Radiation Machine SSD", "RadiationMachineSSD",  "DS", "1" },
+        { 0x3002, 0x0026,
+          "RT Image SID", "RTImageSID",  "DS", "1" },
+        { 0x3002, 0x0028,
+          "Source to Reference Object Distance", "SourceToReferenceObjectDistance",  "DS", "1" },
+        { 0x3002, 0x0029,
+          "Fraction Number", "FractionNumber",  "IS", "1" },
+        { 0x3002, 0x0030,
+          "Exposure Sequence", "ExposureSequence",  "SQ", "1" },
+        { 0x3002, 0x0032,
+          "Meterset Exposure", "MetersetExposure",  "DS", "1" },
+        { 0x3002, 0x0034,
+          "Diaphragm Position", "DiaphragmPosition",  "DS", "4" },
+        { 0x3002, 0x0040,
+          "Fluence Map Sequence", "FluenceMapSequence",  "SQ", "1" },
+        { 0x3002, 0x0041,
+          "Fluence Data Source", "FluenceDataSource",  "CS", "1" },
+        { 0x3002, 0x0042,
+          "Fluence Data Scale", "FluenceDataScale",  "DS", "1" },
+        { 0x3002, 0x0050,
+          "Primary Fluence Mode Sequence", "PrimaryFluenceModeSequence",  "SQ", "1" },
+        { 0x3002, 0x0051,
+          "Fluence Mode", "FluenceMode",  "CS", "1" },
+        { 0x3002, 0x0052,
+          "Fluence Mode ID", "FluenceModeID",  "SH", "1" },
+        { 0x3004, 0x0001,
+          "DVH Type", "DVHType",  "CS", "1" },
+        { 0x3004, 0x0002,
+          "Dose Units", "DoseUnits",  "CS", "1" },
+        { 0x3004, 0x0004,
+          "Dose Type", "DoseType",  "CS", "1" },
+        { 0x3004, 0x0005,
+          "Spatial Transform of Dose", "SpatialTransformOfDose",  "CS", "1" },
+        { 0x3004, 0x0006,
+          "Dose Comment", "DoseComment",  "LO", "1" },
+        { 0x3004, 0x0008,
+          "Normalization Point", "NormalizationPoint",  "DS", "3" },
+        { 0x3004, 0x000a,
+          "Dose Summation Type", "DoseSummationType",  "CS", "1" },
+        { 0x3004, 0x000c,
+          "Grid Frame Offset Vector", "GridFrameOffsetVector",  "DS", "2-n" },
+        { 0x3004, 0x000e,
+          "Dose Grid Scaling", "DoseGridScaling",  "DS", "1" },
+        { 0x3004, 0x0010,
+          "RT Dose ROI Sequence", "RTDoseROISequence",  "SQ", "1" },
+        { 0x3004, 0x0012,
+          "Dose Value", "DoseValue",  "DS", "1" },
+        { 0x3004, 0x0014,
+          "Tissue Heterogeneity Correction", "TissueHeterogeneityCorrection",  "CS", "1-3" },
+        { 0x3004, 0x0040,
+          "DVH Normalization Point", "DVHNormalizationPoint",  "DS", "3" },
+        { 0x3004, 0x0042,
+          "DVH Normalization Dose Value", "DVHNormalizationDoseValue",  "DS", "1" },
+        { 0x3004, 0x0050,
+          "DVH Sequence", "DVHSequence",  "SQ", "1" },
+        { 0x3004, 0x0052,
+          "DVH Dose Scaling", "DVHDoseScaling",  "DS", "1" },
+        { 0x3004, 0x0054,
+          "DVH Volume Units", "DVHVolumeUnits",  "CS", "1" },
+        { 0x3004, 0x0056,
+          "DVH Number of Bins", "DVHNumberOfBins",  "IS", "1" },
+        { 0x3004, 0x0058,
+          "DVH Data", "DVHData",  "DS", "2-2n" },
+        { 0x3004, 0x0060,
+          "DVH Referenced ROI Sequence", "DVHReferencedROISequence",  "SQ", "1" },
+        { 0x3004, 0x0062,
+          "DVH ROI Contribution Type", "DVHROIContributionType",  "CS", "1" },
+        { 0x3004, 0x0070,
+          "DVH Minimum Dose", "DVHMinimumDose",  "DS", "1" },
+        { 0x3004, 0x0072,
+          "DVH Maximum Dose", "DVHMaximumDose",  "DS", "1" },
+        { 0x3004, 0x0074,
+          "DVH Mean Dose", "DVHMeanDose",  "DS", "1" },
+        { 0x3006, 0x0002,
+          "Structure Set Label", "StructureSetLabel",  "SH", "1" },
+        { 0x3006, 0x0004,
+          "Structure Set Name", "StructureSetName",  "LO", "1" },
+        { 0x3006, 0x0006,
+          "Structure Set Description", "StructureSetDescription",  "ST", "1" },
+        { 0x3006, 0x0008,
+          "Structure Set Date", "StructureSetDate",  "DA", "1" },
+        { 0x3006, 0x0009,
+          "Structure Set Time", "StructureSetTime",  "TM", "1" },
+        { 0x3006, 0x0010,
+          "Referenced Frame of Reference Sequence", "ReferencedFrameOfReferenceSequence",  "SQ", "1" },
+        { 0x3006, 0x0012,
+          "RT Referenced Study Sequence", "RTReferencedStudySequence",  "SQ", "1" },
+        { 0x3006, 0x0014,
+          "RT Referenced Series Sequence", "RTReferencedSeriesSequence",  "SQ", "1" },
+        { 0x3006, 0x0016,
+          "Contour Image Sequence", "ContourImageSequence",  "SQ", "1" },
+        { 0x3006, 0x0018,
+          "Predecessor Structure Set Sequence", "PredecessorStructureSetSequence",  "SQ", "1" },
+        { 0x3006, 0x0020,
+          "Structure Set ROI Sequence", "StructureSetROISequence",  "SQ", "1" },
+        { 0x3006, 0x0022,
+          "ROI Number", "ROINumber",  "IS", "1" },
+        { 0x3006, 0x0024,
+          "Referenced Frame of Reference UID", "ReferencedFrameOfReferenceUID",  "UI", "1" },
+        { 0x3006, 0x0026,
+          "ROI Name", "ROIName",  "LO", "1" },
+        { 0x3006, 0x0028,
+          "ROI Description", "ROIDescription",  "ST", "1" },
+        { 0x3006, 0x002a,
+          "ROI Display Color", "ROIDisplayColor",  "IS", "3" },
+        { 0x3006, 0x002c,
+          "ROI Volume", "ROIVolume",  "DS", "1" },
+        { 0x3006, 0x0030,
+          "RT Related ROI Sequence", "RTRelatedROISequence",  "SQ", "1" },
+        { 0x3006, 0x0033,
+          "RT ROI Relationship", "RTROIRelationship",  "CS", "1" },
+        { 0x3006, 0x0036,
+          "ROI Generation Algorithm", "ROIGenerationAlgorithm",  "CS", "1" },
+        { 0x3006, 0x0038,
+          "ROI Generation Description", "ROIGenerationDescription",  "LO", "1" },
+        { 0x3006, 0x0039,
+          "ROI Contour Sequence", "ROIContourSequence",  "SQ", "1" },
+        { 0x3006, 0x0040,
+          "Contour Sequence", "ContourSequence",  "SQ", "1" },
+        { 0x3006, 0x0042,
+          "Contour Geometric Type", "ContourGeometricType",  "CS", "1" },
+        { 0x3006, 0x0044,
+          "Contour Slab Thickness", "ContourSlabThickness",  "DS", "1" },
+        { 0x3006, 0x0045,
+          "Contour Offset Vector", "ContourOffsetVector",  "DS", "3" },
+        { 0x3006, 0x0046,
+          "Number of Contour Points", "NumberOfContourPoints",  "IS", "1" },
+        { 0x3006, 0x0048,
+          "Contour Number", "ContourNumber",  "IS", "1" },
+        { 0x3006, 0x0049,
+          "Attached Contours", "AttachedContours",  "IS", "1-n" },
+        { 0x3006, 0x0050,
+          "Contour Data", "ContourData",  "DS", "3-3n" },
+        { 0x3006, 0x0080,
+          "RT ROI Observations Sequence", "RTROIObservationsSequence",  "SQ", "1" },
+        { 0x3006, 0x0082,
+          "Observation Number", "ObservationNumber",  "IS", "1" },
+        { 0x3006, 0x0084,
+          "Referenced ROI Number", "ReferencedROINumber",  "IS", "1" },
+        { 0x3006, 0x0085,
+          "ROI Observation Label", "ROIObservationLabel",  "SH", "1" },
+        { 0x3006, 0x0086,
+          "RT ROI Identification Code Sequence", "RTROIIdentificationCodeSequence",  "SQ", "1" },
+        { 0x3006, 0x0088,
+          "ROI Observation Description", "ROIObservationDescription",  "ST", "1" },
+        { 0x3006, 0x00a0,
+          "Related RT ROI Observations Sequence", "RelatedRTROIObservationsSequence",  "SQ", "1" },
+        { 0x3006, 0x00a4,
+          "RT ROI Interpreted Type", "RTROIInterpretedType",  "CS", "1" },
+        { 0x3006, 0x00a6,
+          "ROI Interpreter", "ROIInterpreter",  "PN", "1" },
+        { 0x3006, 0x00b0,
+          "ROI Physical Properties Sequence", "ROIPhysicalPropertiesSequence",  "SQ", "1" },
+        { 0x3006, 0x00b2,
+          "ROI Physical Property", "ROIPhysicalProperty",  "CS", "1" },
+        { 0x3006, 0x00b4,
+          "ROI Physical Property Value", "ROIPhysicalPropertyValue",  "DS", "1" },
+        { 0x3006, 0x00b6,
+          "ROI Elemental Composition Sequence", "ROIElementalCompositionSequence",  "SQ", "1" },
+        { 0x3006, 0x00b7,
+          "ROI Elemental Composition Atomic Number", "ROIElementalCompositionAtomicNumber",  "US", "1" },
+        { 0x3006, 0x00b8,
+          "ROI Elemental Composition Atomic Mass Fraction", "ROIElementalCompositionAtomicMassFraction",  "FL", "1" },
+        { 0x3006, 0x00b9,
+          "Additional RT ROI Identification Code Sequence", "AdditionalRTROIIdentificationCodeSequence",  "SQ", "1" },
+        { 0x3006, 0x00c0,
+          "Frame of Reference Relationship Sequence", "FrameOfReferenceRelationshipSequence",  "SQ", "1" },
+        { 0x3006, 0x00c2,
+          "Related Frame of Reference UID", "RelatedFrameOfReferenceUID",  "UI", "1" },
+        { 0x3006, 0x00c4,
+          "Frame of Reference Transformation Type", "FrameOfReferenceTransformationType",  "CS", "1" },
+        { 0x3006, 0x00c6,
+          "Frame of Reference Transformation Matrix", "FrameOfReferenceTransformationMatrix",  "DS", "16" },
+        { 0x3006, 0x00c8,
+          "Frame of Reference Transformation Comment", "FrameOfReferenceTransformationComment",  "LO", "1" },
+        { 0x3008, 0x0010,
+          "Measured Dose Reference Sequence", "MeasuredDoseReferenceSequence",  "SQ", "1" },
+        { 0x3008, 0x0012,
+          "Measured Dose Description", "MeasuredDoseDescription",  "ST", "1" },
+        { 0x3008, 0x0014,
+          "Measured Dose Type", "MeasuredDoseType",  "CS", "1" },
+        { 0x3008, 0x0016,
+          "Measured Dose Value", "MeasuredDoseValue",  "DS", "1" },
+        { 0x3008, 0x0020,
+          "Treatment Session Beam Sequence", "TreatmentSessionBeamSequence",  "SQ", "1" },
+        { 0x3008, 0x0021,
+          "Treatment Session Ion Beam Sequence", "TreatmentSessionIonBeamSequence",  "SQ", "1" },
+        { 0x3008, 0x0022,
+          "Current Fraction Number", "CurrentFractionNumber",  "IS", "1" },
+        { 0x3008, 0x0024,
+          "Treatment Control Point Date", "TreatmentControlPointDate",  "DA", "1" },
+        { 0x3008, 0x0025,
+          "Treatment Control Point Time", "TreatmentControlPointTime",  "TM", "1" },
+        { 0x3008, 0x002a,
+          "Treatment Termination Status", "TreatmentTerminationStatus",  "CS", "1" },
+        { 0x3008, 0x002b,
+          "Treatment Termination Code", "TreatmentTerminationCode",  "SH", "1" },
+        { 0x3008, 0x002c,
+          "Treatment Verification Status", "TreatmentVerificationStatus",  "CS", "1" },
+        { 0x3008, 0x0030,
+          "Referenced Treatment Record Sequence", "ReferencedTreatmentRecordSequence",  "SQ", "1" },
+        { 0x3008, 0x0032,
+          "Specified Primary Meterset", "SpecifiedPrimaryMeterset",  "DS", "1" },
+        { 0x3008, 0x0033,
+          "Specified Secondary Meterset", "SpecifiedSecondaryMeterset",  "DS", "1" },
+        { 0x3008, 0x0036,
+          "Delivered Primary Meterset", "DeliveredPrimaryMeterset",  "DS", "1" },
+        { 0x3008, 0x0037,
+          "Delivered Secondary Meterset", "DeliveredSecondaryMeterset",  "DS", "1" },
+        { 0x3008, 0x003a,
+          "Specified Treatment Time", "SpecifiedTreatmentTime",  "DS", "1" },
+        { 0x3008, 0x003b,
+          "Delivered Treatment Time", "DeliveredTreatmentTime",  "DS", "1" },
+        { 0x3008, 0x0040,
+          "Control Point Delivery Sequence", "ControlPointDeliverySequence",  "SQ", "1" },
+        { 0x3008, 0x0041,
+          "Ion Control Point Delivery Sequence", "IonControlPointDeliverySequence",  "SQ", "1" },
+        { 0x3008, 0x0042,
+          "Specified Meterset", "SpecifiedMeterset",  "DS", "1" },
+        { 0x3008, 0x0044,
+          "Delivered Meterset", "DeliveredMeterset",  "DS", "1" },
+        { 0x3008, 0x0045,
+          "Meterset Rate Set", "MetersetRateSet",  "FL", "1" },
+        { 0x3008, 0x0046,
+          "Meterset Rate Delivered", "MetersetRateDelivered",  "FL", "1" },
+        { 0x3008, 0x0047,
+          "Scan Spot Metersets Delivered", "ScanSpotMetersetsDelivered",  "FL", "1-n" },
+        { 0x3008, 0x0048,
+          "Dose Rate Delivered", "DoseRateDelivered",  "DS", "1" },
+        { 0x3008, 0x0050,
+          "Treatment Summary Calculated Dose Reference Sequence", "TreatmentSummaryCalculatedDoseReferenceSequence",  "SQ", "1" },
+        { 0x3008, 0x0052,
+          "Cumulative Dose to Dose Reference", "CumulativeDoseToDoseReference",  "DS", "1" },
+        { 0x3008, 0x0054,
+          "First Treatment Date", "FirstTreatmentDate",  "DA", "1" },
+        { 0x3008, 0x0056,
+          "Most Recent Treatment Date", "MostRecentTreatmentDate",  "DA", "1" },
+        { 0x3008, 0x005a,
+          "Number of Fractions Delivered", "NumberOfFractionsDelivered",  "IS", "1" },
+        { 0x3008, 0x0060,
+          "Override Sequence", "OverrideSequence",  "SQ", "1" },
+        { 0x3008, 0x0061,
+          "Parameter Sequence Pointer", "ParameterSequencePointer",  "AT", "1" },
+        { 0x3008, 0x0062,
+          "Override Parameter Pointer", "OverrideParameterPointer",  "AT", "1" },
+        { 0x3008, 0x0063,
+          "Parameter Item Index", "ParameterItemIndex",  "IS", "1" },
+        { 0x3008, 0x0064,
+          "Measured Dose Reference Number", "MeasuredDoseReferenceNumber",  "IS", "1" },
+        { 0x3008, 0x0065,
+          "Parameter Pointer", "ParameterPointer",  "AT", "1" },
+        { 0x3008, 0x0066,
+          "Override Reason", "OverrideReason",  "ST", "1" },
+        { 0x3008, 0x0068,
+          "Corrected Parameter Sequence", "CorrectedParameterSequence",  "SQ", "1" },
+        { 0x3008, 0x006a,
+          "Correction Value", "CorrectionValue",  "FL", "1" },
+        { 0x3008, 0x0070,
+          "Calculated Dose Reference Sequence", "CalculatedDoseReferenceSequence",  "SQ", "1" },
+        { 0x3008, 0x0072,
+          "Calculated Dose Reference Number", "CalculatedDoseReferenceNumber",  "IS", "1" },
+        { 0x3008, 0x0074,
+          "Calculated Dose Reference Description", "CalculatedDoseReferenceDescription",  "ST", "1" },
+        { 0x3008, 0x0076,
+          "Calculated Dose Reference Dose Value", "CalculatedDoseReferenceDoseValue",  "DS", "1" },
+        { 0x3008, 0x0078,
+          "Start Meterset", "StartMeterset",  "DS", "1" },
+        { 0x3008, 0x007a,
+          "End Meterset", "EndMeterset",  "DS", "1" },
+        { 0x3008, 0x0080,
+          "Referenced Measured Dose Reference Sequence", "ReferencedMeasuredDoseReferenceSequence",  "SQ", "1" },
+        { 0x3008, 0x0082,
+          "Referenced Measured Dose Reference Number", "ReferencedMeasuredDoseReferenceNumber",  "IS", "1" },
+        { 0x3008, 0x0090,
+          "Referenced Calculated Dose Reference Sequence", "ReferencedCalculatedDoseReferenceSequence",  "SQ", "1" },
+        { 0x3008, 0x0092,
+          "Referenced Calculated Dose Reference Number", "ReferencedCalculatedDoseReferenceNumber",  "IS", "1" },
+        { 0x3008, 0x00a0,
+          "Beam Limiting Device Leaf Pairs Sequence", "BeamLimitingDeviceLeafPairsSequence",  "SQ", "1" },
+        { 0x3008, 0x00b0,
+          "Recorded Wedge Sequence", "RecordedWedgeSequence",  "SQ", "1" },
+        { 0x3008, 0x00c0,
+          "Recorded Compensator Sequence", "RecordedCompensatorSequence",  "SQ", "1" },
+        { 0x3008, 0x00d0,
+          "Recorded Block Sequence", "RecordedBlockSequence",  "SQ", "1" },
+        { 0x3008, 0x00e0,
+          "Treatment Summary Measured Dose Reference Sequence", "TreatmentSummaryMeasuredDoseReferenceSequence",  "SQ", "1" },
+        { 0x3008, 0x00f0,
+          "Recorded Snout Sequence", "RecordedSnoutSequence",  "SQ", "1" },
+        { 0x3008, 0x00f2,
+          "Recorded Range Shifter Sequence", "RecordedRangeShifterSequence",  "SQ", "1" },
+        { 0x3008, 0x00f4,
+          "Recorded Lateral Spreading Device Sequence", "RecordedLateralSpreadingDeviceSequence",  "SQ", "1" },
+        { 0x3008, 0x00f6,
+          "Recorded Range Modulator Sequence", "RecordedRangeModulatorSequence",  "SQ", "1" },
+        { 0x3008, 0x0100,
+          "Recorded Source Sequence", "RecordedSourceSequence",  "SQ", "1" },
+        { 0x3008, 0x0105,
+          "Source Serial Number", "SourceSerialNumber",  "LO", "1" },
+        { 0x3008, 0x0110,
+          "Treatment Session Application Setup Sequence", "TreatmentSessionApplicationSetupSequence",  "SQ", "1" },
+        { 0x3008, 0x0116,
+          "Application Setup Check", "ApplicationSetupCheck",  "CS", "1" },
+        { 0x3008, 0x0120,
+          "Recorded Brachy Accessory Device Sequence", "RecordedBrachyAccessoryDeviceSequence",  "SQ", "1" },
+        { 0x3008, 0x0122,
+          "Referenced Brachy Accessory Device Number", "ReferencedBrachyAccessoryDeviceNumber",  "IS", "1" },
+        { 0x3008, 0x0130,
+          "Recorded Channel Sequence", "RecordedChannelSequence",  "SQ", "1" },
+        { 0x3008, 0x0132,
+          "Specified Channel Total Time", "SpecifiedChannelTotalTime",  "DS", "1" },
+        { 0x3008, 0x0134,
+          "Delivered Channel Total Time", "DeliveredChannelTotalTime",  "DS", "1" },
+        { 0x3008, 0x0136,
+          "Specified Number of Pulses", "SpecifiedNumberOfPulses",  "IS", "1" },
+        { 0x3008, 0x0138,
+          "Delivered Number of Pulses", "DeliveredNumberOfPulses",  "IS", "1" },
+        { 0x3008, 0x013a,
+          "Specified Pulse Repetition Interval", "SpecifiedPulseRepetitionInterval",  "DS", "1" },
+        { 0x3008, 0x013c,
+          "Delivered Pulse Repetition Interval", "DeliveredPulseRepetitionInterval",  "DS", "1" },
+        { 0x3008, 0x0140,
+          "Recorded Source Applicator Sequence", "RecordedSourceApplicatorSequence",  "SQ", "1" },
+        { 0x3008, 0x0142,
+          "Referenced Source Applicator Number", "ReferencedSourceApplicatorNumber",  "IS", "1" },
+        { 0x3008, 0x0150,
+          "Recorded Channel Shield Sequence", "RecordedChannelShieldSequence",  "SQ", "1" },
+        { 0x3008, 0x0152,
+          "Referenced Channel Shield Number", "ReferencedChannelShieldNumber",  "IS", "1" },
+        { 0x3008, 0x0160,
+          "Brachy Control Point Delivered Sequence", "BrachyControlPointDeliveredSequence",  "SQ", "1" },
+        { 0x3008, 0x0162,
+          "Safe Position Exit Date", "SafePositionExitDate",  "DA", "1" },
+        { 0x3008, 0x0164,
+          "Safe Position Exit Time", "SafePositionExitTime",  "TM", "1" },
+        { 0x3008, 0x0166,
+          "Safe Position Return Date", "SafePositionReturnDate",  "DA", "1" },
+        { 0x3008, 0x0168,
+          "Safe Position Return Time", "SafePositionReturnTime",  "TM", "1" },
+        { 0x3008, 0x0171,
+          "Pulse Specific Brachy Control Point Delivered Sequence", "PulseSpecificBrachyControlPointDeliveredSequence",  "SQ", "1" },
+        { 0x3008, 0x0172,
+          "Pulse Number", "PulseNumber",  "US", "1" },
+        { 0x3008, 0x0173,
+          "Brachy Pulse Control Point Delivered Sequence", "BrachyPulseControlPointDeliveredSequence",  "SQ", "1" },
+        { 0x3008, 0x0200,
+          "Current Treatment Status", "CurrentTreatmentStatus",  "CS", "1" },
+        { 0x3008, 0x0202,
+          "Treatment Status Comment", "TreatmentStatusComment",  "ST", "1" },
+        { 0x3008, 0x0220,
+          "Fraction Group Summary Sequence", "FractionGroupSummarySequence",  "SQ", "1" },
+        { 0x3008, 0x0223,
+          "Referenced Fraction Number", "ReferencedFractionNumber",  "IS", "1" },
+        { 0x3008, 0x0224,
+          "Fraction Group Type", "FractionGroupType",  "CS", "1" },
+        { 0x3008, 0x0230,
+          "Beam Stopper Position", "BeamStopperPosition",  "CS", "1" },
+        { 0x3008, 0x0240,
+          "Fraction Status Summary Sequence", "FractionStatusSummarySequence",  "SQ", "1" },
+        { 0x3008, 0x0250,
+          "Treatment Date", "TreatmentDate",  "DA", "1" },
+        { 0x3008, 0x0251,
+          "Treatment Time", "TreatmentTime",  "TM", "1" },
+        { 0x300a, 0x0002,
+          "RT Plan Label", "RTPlanLabel",  "SH", "1" },
+        { 0x300a, 0x0003,
+          "RT Plan Name", "RTPlanName",  "LO", "1" },
+        { 0x300a, 0x0004,
+          "RT Plan Description", "RTPlanDescription",  "ST", "1" },
+        { 0x300a, 0x0006,
+          "RT Plan Date", "RTPlanDate",  "DA", "1" },
+        { 0x300a, 0x0007,
+          "RT Plan Time", "RTPlanTime",  "TM", "1" },
+        { 0x300a, 0x0009,
+          "Treatment Protocols", "TreatmentProtocols",  "LO", "1-n" },
+        { 0x300a, 0x000a,
+          "Plan Intent", "PlanIntent",  "CS", "1" },
+        { 0x300a, 0x000b,
+          "Treatment Sites", "TreatmentSites",  "LO", "1-n" },
+        { 0x300a, 0x000c,
+          "RT Plan Geometry", "RTPlanGeometry",  "CS", "1" },
+        { 0x300a, 0x000e,
+          "Prescription Description", "PrescriptionDescription",  "ST", "1" },
+        { 0x300a, 0x0010,
+          "Dose Reference Sequence", "DoseReferenceSequence",  "SQ", "1" },
+        { 0x300a, 0x0012,
+          "Dose Reference Number", "DoseReferenceNumber",  "IS", "1" },
+        { 0x300a, 0x0013,
+          "Dose Reference UID", "DoseReferenceUID",  "UI", "1" },
+        { 0x300a, 0x0014,
+          "Dose Reference Structure Type", "DoseReferenceStructureType",  "CS", "1" },
+        { 0x300a, 0x0015,
+          "Nominal Beam Energy Unit", "NominalBeamEnergyUnit",  "CS", "1" },
+        { 0x300a, 0x0016,
+          "Dose Reference Description", "DoseReferenceDescription",  "LO", "1" },
+        { 0x300a, 0x0018,
+          "Dose Reference Point Coordinates", "DoseReferencePointCoordinates",  "DS", "3" },
+        { 0x300a, 0x001a,
+          "Nominal Prior Dose", "NominalPriorDose",  "DS", "1" },
+        { 0x300a, 0x0020,
+          "Dose Reference Type", "DoseReferenceType",  "CS", "1" },
+        { 0x300a, 0x0021,
+          "Constraint Weight", "ConstraintWeight",  "DS", "1" },
+        { 0x300a, 0x0022,
+          "Delivery Warning Dose", "DeliveryWarningDose",  "DS", "1" },
+        { 0x300a, 0x0023,
+          "Delivery Maximum Dose", "DeliveryMaximumDose",  "DS", "1" },
+        { 0x300a, 0x0025,
+          "Target Minimum Dose", "TargetMinimumDose",  "DS", "1" },
+        { 0x300a, 0x0026,
+          "Target Prescription Dose", "TargetPrescriptionDose",  "DS", "1" },
+        { 0x300a, 0x0027,
+          "Target Maximum Dose", "TargetMaximumDose",  "DS", "1" },
+        { 0x300a, 0x0028,
+          "Target Underdose Volume Fraction", "TargetUnderdoseVolumeFraction",  "DS", "1" },
+        { 0x300a, 0x002a,
+          "Organ at Risk Full-volume Dose", "OrganAtRiskFullVolumeDose",  "DS", "1" },
+        { 0x300a, 0x002b,
+          "Organ at Risk Limit Dose", "OrganAtRiskLimitDose",  "DS", "1" },
+        { 0x300a, 0x002c,
+          "Organ at Risk Maximum Dose", "OrganAtRiskMaximumDose",  "DS", "1" },
+        { 0x300a, 0x002d,
+          "Organ at Risk Overdose Volume Fraction", "OrganAtRiskOverdoseVolumeFraction",  "DS", "1" },
+        { 0x300a, 0x0040,
+          "Tolerance Table Sequence", "ToleranceTableSequence",  "SQ", "1" },
+        { 0x300a, 0x0042,
+          "Tolerance Table Number", "ToleranceTableNumber",  "IS", "1" },
+        { 0x300a, 0x0043,
+          "Tolerance Table Label", "ToleranceTableLabel",  "SH", "1" },
+        { 0x300a, 0x0044,
+          "Gantry Angle Tolerance", "GantryAngleTolerance",  "DS", "1" },
+        { 0x300a, 0x0046,
+          "Beam Limiting Device Angle Tolerance", "BeamLimitingDeviceAngleTolerance",  "DS", "1" },
+        { 0x300a, 0x0048,
+          "Beam Limiting Device Tolerance Sequence", "BeamLimitingDeviceToleranceSequence",  "SQ", "1" },
+        { 0x300a, 0x004a,
+          "Beam Limiting Device Position Tolerance", "BeamLimitingDevicePositionTolerance",  "DS", "1" },
+        { 0x300a, 0x004b,
+          "Snout Position Tolerance", "SnoutPositionTolerance",  "FL", "1" },
+        { 0x300a, 0x004c,
+          "Patient Support Angle Tolerance", "PatientSupportAngleTolerance",  "DS", "1" },
+        { 0x300a, 0x004e,
+          "Table Top Eccentric Angle Tolerance", "TableTopEccentricAngleTolerance",  "DS", "1" },
+        { 0x300a, 0x004f,
+          "Table Top Pitch Angle Tolerance", "TableTopPitchAngleTolerance",  "FL", "1" },
+        { 0x300a, 0x0050,
+          "Table Top Roll Angle Tolerance", "TableTopRollAngleTolerance",  "FL", "1" },
+        { 0x300a, 0x0051,
+          "Table Top Vertical Position Tolerance", "TableTopVerticalPositionTolerance",  "DS", "1" },
+        { 0x300a, 0x0052,
+          "Table Top Longitudinal Position Tolerance", "TableTopLongitudinalPositionTolerance",  "DS", "1" },
+        { 0x300a, 0x0053,
+          "Table Top Lateral Position Tolerance", "TableTopLateralPositionTolerance",  "DS", "1" },
+        { 0x300a, 0x0055,
+          "RT Plan Relationship", "RTPlanRelationship",  "CS", "1" },
+        { 0x300a, 0x0070,
+          "Fraction Group Sequence", "FractionGroupSequence",  "SQ", "1" },
+        { 0x300a, 0x0071,
+          "Fraction Group Number", "FractionGroupNumber",  "IS", "1" },
+        { 0x300a, 0x0072,
+          "Fraction Group Description", "FractionGroupDescription",  "LO", "1" },
+        { 0x300a, 0x0078,
+          "Number of Fractions Planned", "NumberOfFractionsPlanned",  "IS", "1" },
+        { 0x300a, 0x0079,
+          "Number of Fraction Pattern Digits Per Day", "NumberOfFractionPatternDigitsPerDay",  "IS", "1" },
+        { 0x300a, 0x007a,
+          "Repeat Fraction Cycle Length", "RepeatFractionCycleLength",  "IS", "1" },
+        { 0x300a, 0x007b,
+          "Fraction Pattern", "FractionPattern",  "LT", "1" },
+        { 0x300a, 0x0080,
+          "Number of Beams", "NumberOfBeams",  "IS", "1" },
+        { 0x300a, 0x0082,
+          "Beam Dose Specification Point", "BeamDoseSpecificationPoint",  "DS", "3" },
+        { 0x300a, 0x0084,
+          "Beam Dose", "BeamDose",  "DS", "1" },
+        { 0x300a, 0x0086,
+          "Beam Meterset", "BeamMeterset",  "DS", "1" },
+        { 0x300a, 0x0088,
+          "Beam Dose Point Depth", "BeamDosePointDepth",  "FL", "1" },
+        { 0x300a, 0x0089,
+          "Beam Dose Point Equivalent Depth", "BeamDosePointEquivalentDepth",  "FL", "1" },
+        { 0x300a, 0x008a,
+          "Beam Dose Point SSD", "BeamDosePointSSD",  "FL", "1" },
+        { 0x300a, 0x008b,
+          "Beam Dose Meaning", "BeamDoseMeaning",  "CS", "1" },
+        { 0x300a, 0x008c,
+          "Beam Dose Verification Control Point Sequence", "BeamDoseVerificationControlPointSequence",  "SQ", "1" },
+        { 0x300a, 0x008d,
+          "Average Beam Dose Point Depth", "AverageBeamDosePointDepth",  "FL", "1" },
+        { 0x300a, 0x008e,
+          "Average Beam Dose Point Equivalent Depth", "AverageBeamDosePointEquivalentDepth",  "FL", "1" },
+        { 0x300a, 0x008f,
+          "Average Beam Dose Point SSD", "AverageBeamDosePointSSD",  "FL", "1" },
+        { 0x300a, 0x00a0,
+          "Number of Brachy Application Setups", "NumberOfBrachyApplicationSetups",  "IS", "1" },
+        { 0x300a, 0x00a2,
+          "Brachy Application Setup Dose Specification Point", "BrachyApplicationSetupDoseSpecificationPoint",  "DS", "3" },
+        { 0x300a, 0x00a4,
+          "Brachy Application Setup Dose", "BrachyApplicationSetupDose",  "DS", "1" },
+        { 0x300a, 0x00b0,
+          "Beam Sequence", "BeamSequence",  "SQ", "1" },
+        { 0x300a, 0x00b2,
+          "Treatment Machine Name", "TreatmentMachineName",  "SH", "1" },
+        { 0x300a, 0x00b3,
+          "Primary Dosimeter Unit", "PrimaryDosimeterUnit",  "CS", "1" },
+        { 0x300a, 0x00b4,
+          "Source-Axis Distance", "SourceAxisDistance",  "DS", "1" },
+        { 0x300a, 0x00b6,
+          "Beam Limiting Device Sequence", "BeamLimitingDeviceSequence",  "SQ", "1" },
+        { 0x300a, 0x00b8,
+          "RT Beam Limiting Device Type", "RTBeamLimitingDeviceType",  "CS", "1" },
+        { 0x300a, 0x00ba,
+          "Source to Beam Limiting Device Distance", "SourceToBeamLimitingDeviceDistance",  "DS", "1" },
+        { 0x300a, 0x00bb,
+          "Isocenter to Beam Limiting Device Distance", "IsocenterToBeamLimitingDeviceDistance",  "FL", "1" },
+        { 0x300a, 0x00bc,
+          "Number of Leaf/Jaw Pairs", "NumberOfLeafJawPairs",  "IS", "1" },
+        { 0x300a, 0x00be,
+          "Leaf Position Boundaries", "LeafPositionBoundaries",  "DS", "3-n" },
+        { 0x300a, 0x00c0,
+          "Beam Number", "BeamNumber",  "IS", "1" },
+        { 0x300a, 0x00c2,
+          "Beam Name", "BeamName",  "LO", "1" },
+        { 0x300a, 0x00c3,
+          "Beam Description", "BeamDescription",  "ST", "1" },
+        { 0x300a, 0x00c4,
+          "Beam Type", "BeamType",  "CS", "1" },
+        { 0x300a, 0x00c5,
+          "Beam Delivery Duration Limit", "BeamDeliveryDurationLimit",  "FD", "1" },
+        { 0x300a, 0x00c6,
+          "Radiation Type", "RadiationType",  "CS", "1" },
+        { 0x300a, 0x00c7,
+          "High-Dose Technique Type", "HighDoseTechniqueType",  "CS", "1" },
+        { 0x300a, 0x00c8,
+          "Reference Image Number", "ReferenceImageNumber",  "IS", "1" },
+        { 0x300a, 0x00ca,
+          "Planned Verification Image Sequence", "PlannedVerificationImageSequence",  "SQ", "1" },
+        { 0x300a, 0x00cc,
+          "Imaging Device-Specific Acquisition Parameters", "ImagingDeviceSpecificAcquisitionParameters",  "LO", "1-n" },
+        { 0x300a, 0x00ce,
+          "Treatment Delivery Type", "TreatmentDeliveryType",  "CS", "1" },
+        { 0x300a, 0x00d0,
+          "Number of Wedges", "NumberOfWedges",  "IS", "1" },
+        { 0x300a, 0x00d1,
+          "Wedge Sequence", "WedgeSequence",  "SQ", "1" },
+        { 0x300a, 0x00d2,
+          "Wedge Number", "WedgeNumber",  "IS", "1" },
+        { 0x300a, 0x00d3,
+          "Wedge Type", "WedgeType",  "CS", "1" },
+        { 0x300a, 0x00d4,
+          "Wedge ID", "WedgeID",  "SH", "1" },
+        { 0x300a, 0x00d5,
+          "Wedge Angle", "WedgeAngle",  "IS", "1" },
+        { 0x300a, 0x00d6,
+          "Wedge Factor", "WedgeFactor",  "DS", "1" },
+        { 0x300a, 0x00d7,
+          "Total Wedge Tray Water-Equivalent Thickness", "TotalWedgeTrayWaterEquivalentThickness",  "FL", "1" },
+        { 0x300a, 0x00d8,
+          "Wedge Orientation", "WedgeOrientation",  "DS", "1" },
+        { 0x300a, 0x00d9,
+          "Isocenter to Wedge Tray Distance", "IsocenterToWedgeTrayDistance",  "FL", "1" },
+        { 0x300a, 0x00da,
+          "Source to Wedge Tray Distance", "SourceToWedgeTrayDistance",  "DS", "1" },
+        { 0x300a, 0x00db,
+          "Wedge Thin Edge Position", "WedgeThinEdgePosition",  "FL", "1" },
+        { 0x300a, 0x00dc,
+          "Bolus ID", "BolusID",  "SH", "1" },
+        { 0x300a, 0x00dd,
+          "Bolus Description", "BolusDescription",  "ST", "1" },
+        { 0x300a, 0x00de,
+          "Effective Wedge Angle", "EffectiveWedgeAngle",  "DS", "1" },
+        { 0x300a, 0x00e0,
+          "Number of Compensators", "NumberOfCompensators",  "IS", "1" },
+        { 0x300a, 0x00e1,
+          "Material ID", "MaterialID",  "SH", "1" },
+        { 0x300a, 0x00e2,
+          "Total Compensator Tray Factor", "TotalCompensatorTrayFactor",  "DS", "1" },
+        { 0x300a, 0x00e3,
+          "Compensator Sequence", "CompensatorSequence",  "SQ", "1" },
+        { 0x300a, 0x00e4,
+          "Compensator Number", "CompensatorNumber",  "IS", "1" },
+        { 0x300a, 0x00e5,
+          "Compensator ID", "CompensatorID",  "SH", "1" },
+        { 0x300a, 0x00e6,
+          "Source to Compensator Tray Distance", "SourceToCompensatorTrayDistance",  "DS", "1" },
+        { 0x300a, 0x00e7,
+          "Compensator Rows", "CompensatorRows",  "IS", "1" },
+        { 0x300a, 0x00e8,
+          "Compensator Columns", "CompensatorColumns",  "IS", "1" },
+        { 0x300a, 0x00e9,
+          "Compensator Pixel Spacing", "CompensatorPixelSpacing",  "DS", "2" },
+        { 0x300a, 0x00ea,
+          "Compensator Position", "CompensatorPosition",  "DS", "2" },
+        { 0x300a, 0x00eb,
+          "Compensator Transmission Data", "CompensatorTransmissionData",  "DS", "1-n" },
+        { 0x300a, 0x00ec,
+          "Compensator Thickness Data", "CompensatorThicknessData",  "DS", "1-n" },
+        { 0x300a, 0x00ed,
+          "Number of Boli", "NumberOfBoli",  "IS", "1" },
+        { 0x300a, 0x00ee,
+          "Compensator Type", "CompensatorType",  "CS", "1" },
+        { 0x300a, 0x00ef,
+          "Compensator Tray ID", "CompensatorTrayID",  "SH", "1" },
+        { 0x300a, 0x00f0,
+          "Number of Blocks", "NumberOfBlocks",  "IS", "1" },
+        { 0x300a, 0x00f2,
+          "Total Block Tray Factor", "TotalBlockTrayFactor",  "DS", "1" },
+        { 0x300a, 0x00f3,
+          "Total Block Tray Water-Equivalent Thickness", "TotalBlockTrayWaterEquivalentThickness",  "FL", "1" },
+        { 0x300a, 0x00f4,
+          "Block Sequence", "BlockSequence",  "SQ", "1" },
+        { 0x300a, 0x00f5,
+          "Block Tray ID", "BlockTrayID",  "SH", "1" },
+        { 0x300a, 0x00f6,
+          "Source to Block Tray Distance", "SourceToBlockTrayDistance",  "DS", "1" },
+        { 0x300a, 0x00f7,
+          "Isocenter to Block Tray Distance", "IsocenterToBlockTrayDistance",  "FL", "1" },
+        { 0x300a, 0x00f8,
+          "Block Type", "BlockType",  "CS", "1" },
+        { 0x300a, 0x00f9,
+          "Accessory Code", "AccessoryCode",  "LO", "1" },
+        { 0x300a, 0x00fa,
+          "Block Divergence", "BlockDivergence",  "CS", "1" },
+        { 0x300a, 0x00fb,
+          "Block Mounting Position", "BlockMountingPosition",  "CS", "1" },
+        { 0x300a, 0x00fc,
+          "Block Number", "BlockNumber",  "IS", "1" },
+        { 0x300a, 0x00fe,
+          "Block Name", "BlockName",  "LO", "1" },
+        { 0x300a, 0x0100,
+          "Block Thickness", "BlockThickness",  "DS", "1" },
+        { 0x300a, 0x0102,
+          "Block Transmission", "BlockTransmission",  "DS", "1" },
+        { 0x300a, 0x0104,
+          "Block Number of Points", "BlockNumberOfPoints",  "IS", "1" },
+        { 0x300a, 0x0106,
+          "Block Data", "BlockData",  "DS", "2-2n" },
+        { 0x300a, 0x0107,
+          "Applicator Sequence", "ApplicatorSequence",  "SQ", "1" },
+        { 0x300a, 0x0108,
+          "Applicator ID", "ApplicatorID",  "SH", "1" },
+        { 0x300a, 0x0109,
+          "Applicator Type", "ApplicatorType",  "CS", "1" },
+        { 0x300a, 0x010a,
+          "Applicator Description", "ApplicatorDescription",  "LO", "1" },
+        { 0x300a, 0x010c,
+          "Cumulative Dose Reference Coefficient", "CumulativeDoseReferenceCoefficient",  "DS", "1" },
+        { 0x300a, 0x010e,
+          "Final Cumulative Meterset Weight", "FinalCumulativeMetersetWeight",  "DS", "1" },
+        { 0x300a, 0x0110,
+          "Number of Control Points", "NumberOfControlPoints",  "IS", "1" },
+        { 0x300a, 0x0111,
+          "Control Point Sequence", "ControlPointSequence",  "SQ", "1" },
+        { 0x300a, 0x0112,
+          "Control Point Index", "ControlPointIndex",  "IS", "1" },
+        { 0x300a, 0x0114,
+          "Nominal Beam Energy", "NominalBeamEnergy",  "DS", "1" },
+        { 0x300a, 0x0115,
+          "Dose Rate Set", "DoseRateSet",  "DS", "1" },
+        { 0x300a, 0x0116,
+          "Wedge Position Sequence", "WedgePositionSequence",  "SQ", "1" },
+        { 0x300a, 0x0118,
+          "Wedge Position", "WedgePosition",  "CS", "1" },
+        { 0x300a, 0x011a,
+          "Beam Limiting Device Position Sequence", "BeamLimitingDevicePositionSequence",  "SQ", "1" },
+        { 0x300a, 0x011c,
+          "Leaf/Jaw Positions", "LeafJawPositions",  "DS", "2-2n" },
+        { 0x300a, 0x011e,
+          "Gantry Angle", "GantryAngle",  "DS", "1" },
+        { 0x300a, 0x011f,
+          "Gantry Rotation Direction", "GantryRotationDirection",  "CS", "1" },
+        { 0x300a, 0x0120,
+          "Beam Limiting Device Angle", "BeamLimitingDeviceAngle",  "DS", "1" },
+        { 0x300a, 0x0121,
+          "Beam Limiting Device Rotation Direction", "BeamLimitingDeviceRotationDirection",  "CS", "1" },
+        { 0x300a, 0x0122,
+          "Patient Support Angle", "PatientSupportAngle",  "DS", "1" },
+        { 0x300a, 0x0123,
+          "Patient Support Rotation Direction", "PatientSupportRotationDirection",  "CS", "1" },
+        { 0x300a, 0x0124,
+          "Table Top Eccentric Axis Distance", "TableTopEccentricAxisDistance",  "DS", "1" },
+        { 0x300a, 0x0125,
+          "Table Top Eccentric Angle", "TableTopEccentricAngle",  "DS", "1" },
+        { 0x300a, 0x0126,
+          "Table Top Eccentric Rotation Direction", "TableTopEccentricRotationDirection",  "CS", "1" },
+        { 0x300a, 0x0128,
+          "Table Top Vertical Position", "TableTopVerticalPosition",  "DS", "1" },
+        { 0x300a, 0x0129,
+          "Table Top Longitudinal Position", "TableTopLongitudinalPosition",  "DS", "1" },
+        { 0x300a, 0x012a,
+          "Table Top Lateral Position", "TableTopLateralPosition",  "DS", "1" },
+        { 0x300a, 0x012c,
+          "Isocenter Position", "IsocenterPosition",  "DS", "3" },
+        { 0x300a, 0x012e,
+          "Surface Entry Point", "SurfaceEntryPoint",  "DS", "3" },
+        { 0x300a, 0x0130,
+          "Source to Surface Distance", "SourceToSurfaceDistance",  "DS", "1" },
+        { 0x300a, 0x0131,
+          "Average Beam Dose Point Source to External Contour Surface Distance", "AverageBeamDosePointSourceToExternalContourSurfaceDistance",  "FL", "1" },
+        { 0x300a, 0x0132,
+          "Source to External Contour Distance", "SourceToExternalContourDistance",  "FL", "1" },
+        { 0x300a, 0x0133,
+          "External Contour Entry Point", "ExternalContourEntryPoint",  "FL", "3" },
+        { 0x300a, 0x0134,
+          "Cumulative Meterset Weight", "CumulativeMetersetWeight",  "DS", "1" },
+        { 0x300a, 0x0140,
+          "Table Top Pitch Angle", "TableTopPitchAngle",  "FL", "1" },
+        { 0x300a, 0x0142,
+          "Table Top Pitch Rotation Direction", "TableTopPitchRotationDirection",  "CS", "1" },
+        { 0x300a, 0x0144,
+          "Table Top Roll Angle", "TableTopRollAngle",  "FL", "1" },
+        { 0x300a, 0x0146,
+          "Table Top Roll Rotation Direction", "TableTopRollRotationDirection",  "CS", "1" },
+        { 0x300a, 0x0148,
+          "Head Fixation Angle", "HeadFixationAngle",  "FL", "1" },
+        { 0x300a, 0x014a,
+          "Gantry Pitch Angle", "GantryPitchAngle",  "FL", "1" },
+        { 0x300a, 0x014c,
+          "Gantry Pitch Rotation Direction", "GantryPitchRotationDirection",  "CS", "1" },
+        { 0x300a, 0x014e,
+          "Gantry Pitch Angle Tolerance", "GantryPitchAngleTolerance",  "FL", "1" },
+        { 0x300a, 0x0180,
+          "Patient Setup Sequence", "PatientSetupSequence",  "SQ", "1" },
+        { 0x300a, 0x0182,
+          "Patient Setup Number", "PatientSetupNumber",  "IS", "1" },
+        { 0x300a, 0x0183,
+          "Patient Setup Label", "PatientSetupLabel",  "LO", "1" },
+        { 0x300a, 0x0184,
+          "Patient Additional Position", "PatientAdditionalPosition",  "LO", "1" },
+        { 0x300a, 0x0190,
+          "Fixation Device Sequence", "FixationDeviceSequence",  "SQ", "1" },
+        { 0x300a, 0x0192,
+          "Fixation Device Type", "FixationDeviceType",  "CS", "1" },
+        { 0x300a, 0x0194,
+          "Fixation Device Label", "FixationDeviceLabel",  "SH", "1" },
+        { 0x300a, 0x0196,
+          "Fixation Device Description", "FixationDeviceDescription",  "ST", "1" },
+        { 0x300a, 0x0198,
+          "Fixation Device Position", "FixationDevicePosition",  "SH", "1" },
+        { 0x300a, 0x0199,
+          "Fixation Device Pitch Angle", "FixationDevicePitchAngle",  "FL", "1" },
+        { 0x300a, 0x019a,
+          "Fixation Device Roll Angle", "FixationDeviceRollAngle",  "FL", "1" },
+        { 0x300a, 0x01a0,
+          "Shielding Device Sequence", "ShieldingDeviceSequence",  "SQ", "1" },
+        { 0x300a, 0x01a2,
+          "Shielding Device Type", "ShieldingDeviceType",  "CS", "1" },
+        { 0x300a, 0x01a4,
+          "Shielding Device Label", "ShieldingDeviceLabel",  "SH", "1" },
+        { 0x300a, 0x01a6,
+          "Shielding Device Description", "ShieldingDeviceDescription",  "ST", "1" },
+        { 0x300a, 0x01a8,
+          "Shielding Device Position", "ShieldingDevicePosition",  "SH", "1" },
+        { 0x300a, 0x01b0,
+          "Setup Technique", "SetupTechnique",  "CS", "1" },
+        { 0x300a, 0x01b2,
+          "Setup Technique Description", "SetupTechniqueDescription",  "ST", "1" },
+        { 0x300a, 0x01b4,
+          "Setup Device Sequence", "SetupDeviceSequence",  "SQ", "1" },
+        { 0x300a, 0x01b6,
+          "Setup Device Type", "SetupDeviceType",  "CS", "1" },
+        { 0x300a, 0x01b8,
+          "Setup Device Label", "SetupDeviceLabel",  "SH", "1" },
+        { 0x300a, 0x01ba,
+          "Setup Device Description", "SetupDeviceDescription",  "ST", "1" },
+        { 0x300a, 0x01bc,
+          "Setup Device Parameter", "SetupDeviceParameter",  "DS", "1" },
+        { 0x300a, 0x01d0,
+          "Setup Reference Description", "SetupReferenceDescription",  "ST", "1" },
+        { 0x300a, 0x01d2,
+          "Table Top Vertical Setup Displacement", "TableTopVerticalSetupDisplacement",  "DS", "1" },
+        { 0x300a, 0x01d4,
+          "Table Top Longitudinal Setup Displacement", "TableTopLongitudinalSetupDisplacement",  "DS", "1" },
+        { 0x300a, 0x01d6,
+          "Table Top Lateral Setup Displacement", "TableTopLateralSetupDisplacement",  "DS", "1" },
+        { 0x300a, 0x0200,
+          "Brachy Treatment Technique", "BrachyTreatmentTechnique",  "CS", "1" },
+        { 0x300a, 0x0202,
+          "Brachy Treatment Type", "BrachyTreatmentType",  "CS", "1" },
+        { 0x300a, 0x0206,
+          "Treatment Machine Sequence", "TreatmentMachineSequence",  "SQ", "1" },
+        { 0x300a, 0x0210,
+          "Source Sequence", "SourceSequence",  "SQ", "1" },
+        { 0x300a, 0x0212,
+          "Source Number", "SourceNumber",  "IS", "1" },
+        { 0x300a, 0x0214,
+          "Source Type", "SourceType",  "CS", "1" },
+        { 0x300a, 0x0216,
+          "Source Manufacturer", "SourceManufacturer",  "LO", "1" },
+        { 0x300a, 0x0218,
+          "Active Source Diameter", "ActiveSourceDiameter",  "DS", "1" },
+        { 0x300a, 0x021a,
+          "Active Source Length", "ActiveSourceLength",  "DS", "1" },
+        { 0x300a, 0x021b,
+          "Source Model ID", "SourceModelID",  "SH", "1" },
+        { 0x300a, 0x021c,
+          "Source Description", "SourceDescription",  "LO", "1" },
+        { 0x300a, 0x0222,
+          "Source Encapsulation Nominal Thickness", "SourceEncapsulationNominalThickness",  "DS", "1" },
+        { 0x300a, 0x0224,
+          "Source Encapsulation Nominal Transmission", "SourceEncapsulationNominalTransmission",  "DS", "1" },
+        { 0x300a, 0x0226,
+          "Source Isotope Name", "SourceIsotopeName",  "LO", "1" },
+        { 0x300a, 0x0228,
+          "Source Isotope Half Life", "SourceIsotopeHalfLife",  "DS", "1" },
+        { 0x300a, 0x0229,
+          "Source Strength Units", "SourceStrengthUnits",  "CS", "1" },
+        { 0x300a, 0x022a,
+          "Reference Air Kerma Rate", "ReferenceAirKermaRate",  "DS", "1" },
+        { 0x300a, 0x022b,
+          "Source Strength", "SourceStrength",  "DS", "1" },
+        { 0x300a, 0x022c,
+          "Source Strength Reference Date", "SourceStrengthReferenceDate",  "DA", "1" },
+        { 0x300a, 0x022e,
+          "Source Strength Reference Time", "SourceStrengthReferenceTime",  "TM", "1" },
+        { 0x300a, 0x0230,
+          "Application Setup Sequence", "ApplicationSetupSequence",  "SQ", "1" },
+        { 0x300a, 0x0232,
+          "Application Setup Type", "ApplicationSetupType",  "CS", "1" },
+        { 0x300a, 0x0234,
+          "Application Setup Number", "ApplicationSetupNumber",  "IS", "1" },
+        { 0x300a, 0x0236,
+          "Application Setup Name", "ApplicationSetupName",  "LO", "1" },
+        { 0x300a, 0x0238,
+          "Application Setup Manufacturer", "ApplicationSetupManufacturer",  "LO", "1" },
+        { 0x300a, 0x0240,
+          "Template Number", "TemplateNumber",  "IS", "1" },
+        { 0x300a, 0x0242,
+          "Template Type", "TemplateType",  "SH", "1" },
+        { 0x300a, 0x0244,
+          "Template Name", "TemplateName",  "LO", "1" },
+        { 0x300a, 0x0250,
+          "Total Reference Air Kerma", "TotalReferenceAirKerma",  "DS", "1" },
+        { 0x300a, 0x0260,
+          "Brachy Accessory Device Sequence", "BrachyAccessoryDeviceSequence",  "SQ", "1" },
+        { 0x300a, 0x0262,
+          "Brachy Accessory Device Number", "BrachyAccessoryDeviceNumber",  "IS", "1" },
+        { 0x300a, 0x0263,
+          "Brachy Accessory Device ID", "BrachyAccessoryDeviceID",  "SH", "1" },
+        { 0x300a, 0x0264,
+          "Brachy Accessory Device Type", "BrachyAccessoryDeviceType",  "CS", "1" },
+        { 0x300a, 0x0266,
+          "Brachy Accessory Device Name", "BrachyAccessoryDeviceName",  "LO", "1" },
+        { 0x300a, 0x026a,
+          "Brachy Accessory Device Nominal Thickness", "BrachyAccessoryDeviceNominalThickness",  "DS", "1" },
+        { 0x300a, 0x026c,
+          "Brachy Accessory Device Nominal Transmission", "BrachyAccessoryDeviceNominalTransmission",  "DS", "1" },
+        { 0x300a, 0x0280,
+          "Channel Sequence", "ChannelSequence",  "SQ", "1" },
+        { 0x300a, 0x0282,
+          "Channel Number", "ChannelNumber",  "IS", "1" },
+        { 0x300a, 0x0284,
+          "Channel Length", "ChannelLength",  "DS", "1" },
+        { 0x300a, 0x0286,
+          "Channel Total Time", "ChannelTotalTime",  "DS", "1" },
+        { 0x300a, 0x0288,
+          "Source Movement Type", "SourceMovementType",  "CS", "1" },
+        { 0x300a, 0x028a,
+          "Number of Pulses", "NumberOfPulses",  "IS", "1" },
+        { 0x300a, 0x028c,
+          "Pulse Repetition Interval", "PulseRepetitionInterval",  "DS", "1" },
+        { 0x300a, 0x0290,
+          "Source Applicator Number", "SourceApplicatorNumber",  "IS", "1" },
+        { 0x300a, 0x0291,
+          "Source Applicator ID", "SourceApplicatorID",  "SH", "1" },
+        { 0x300a, 0x0292,
+          "Source Applicator Type", "SourceApplicatorType",  "CS", "1" },
+        { 0x300a, 0x0294,
+          "Source Applicator Name", "SourceApplicatorName",  "LO", "1" },
+        { 0x300a, 0x0296,
+          "Source Applicator Length", "SourceApplicatorLength",  "DS", "1" },
+        { 0x300a, 0x0298,
+          "Source Applicator Manufacturer", "SourceApplicatorManufacturer",  "LO", "1" },
+        { 0x300a, 0x029c,
+          "Source Applicator Wall Nominal Thickness", "SourceApplicatorWallNominalThickness",  "DS", "1" },
+        { 0x300a, 0x029e,
+          "Source Applicator Wall Nominal Transmission", "SourceApplicatorWallNominalTransmission",  "DS", "1" },
+        { 0x300a, 0x02a0,
+          "Source Applicator Step Size", "SourceApplicatorStepSize",  "DS", "1" },
+        { 0x300a, 0x02a2,
+          "Transfer Tube Number", "TransferTubeNumber",  "IS", "1" },
+        { 0x300a, 0x02a4,
+          "Transfer Tube Length", "TransferTubeLength",  "DS", "1" },
+        { 0x300a, 0x02b0,
+          "Channel Shield Sequence", "ChannelShieldSequence",  "SQ", "1" },
+        { 0x300a, 0x02b2,
+          "Channel Shield Number", "ChannelShieldNumber",  "IS", "1" },
+        { 0x300a, 0x02b3,
+          "Channel Shield ID", "ChannelShieldID",  "SH", "1" },
+        { 0x300a, 0x02b4,
+          "Channel Shield Name", "ChannelShieldName",  "LO", "1" },
+        { 0x300a, 0x02b8,
+          "Channel Shield Nominal Thickness", "ChannelShieldNominalThickness",  "DS", "1" },
+        { 0x300a, 0x02ba,
+          "Channel Shield Nominal Transmission", "ChannelShieldNominalTransmission",  "DS", "1" },
+        { 0x300a, 0x02c8,
+          "Final Cumulative Time Weight", "FinalCumulativeTimeWeight",  "DS", "1" },
+        { 0x300a, 0x02d0,
+          "Brachy Control Point Sequence", "BrachyControlPointSequence",  "SQ", "1" },
+        { 0x300a, 0x02d2,
+          "Control Point Relative Position", "ControlPointRelativePosition",  "DS", "1" },
+        { 0x300a, 0x02d4,
+          "Control Point 3D Position", "ControlPoint3DPosition",  "DS", "3" },
+        { 0x300a, 0x02d6,
+          "Cumulative Time Weight", "CumulativeTimeWeight",  "DS", "1" },
+        { 0x300a, 0x02e0,
+          "Compensator Divergence", "CompensatorDivergence",  "CS", "1" },
+        { 0x300a, 0x02e1,
+          "Compensator Mounting Position", "CompensatorMountingPosition",  "CS", "1" },
+        { 0x300a, 0x02e2,
+          "Source to Compensator Distance", "SourceToCompensatorDistance",  "DS", "1-n" },
+        { 0x300a, 0x02e3,
+          "Total Compensator Tray Water-Equivalent Thickness", "TotalCompensatorTrayWaterEquivalentThickness",  "FL", "1" },
+        { 0x300a, 0x02e4,
+          "Isocenter to Compensator Tray Distance", "IsocenterToCompensatorTrayDistance",  "FL", "1" },
+        { 0x300a, 0x02e5,
+          "Compensator Column Offset", "CompensatorColumnOffset",  "FL", "1" },
+        { 0x300a, 0x02e6,
+          "Isocenter to Compensator Distances", "IsocenterToCompensatorDistances",  "FL", "1-n" },
+        { 0x300a, 0x02e7,
+          "Compensator Relative Stopping Power Ratio", "CompensatorRelativeStoppingPowerRatio",  "FL", "1" },
+        { 0x300a, 0x02e8,
+          "Compensator Milling Tool Diameter", "CompensatorMillingToolDiameter",  "FL", "1" },
+        { 0x300a, 0x02ea,
+          "Ion Range Compensator Sequence", "IonRangeCompensatorSequence",  "SQ", "1" },
+        { 0x300a, 0x02eb,
+          "Compensator Description", "CompensatorDescription",  "LT", "1" },
+        { 0x300a, 0x0302,
+          "Radiation Mass Number", "RadiationMassNumber",  "IS", "1" },
+        { 0x300a, 0x0304,
+          "Radiation Atomic Number", "RadiationAtomicNumber",  "IS", "1" },
+        { 0x300a, 0x0306,
+          "Radiation Charge State", "RadiationChargeState",  "SS", "1" },
+        { 0x300a, 0x0308,
+          "Scan Mode", "ScanMode",  "CS", "1" },
+        { 0x300a, 0x030a,
+          "Virtual Source-Axis Distances", "VirtualSourceAxisDistances",  "FL", "2" },
+        { 0x300a, 0x030c,
+          "Snout Sequence", "SnoutSequence",  "SQ", "1" },
+        { 0x300a, 0x030d,
+          "Snout Position", "SnoutPosition",  "FL", "1" },
+        { 0x300a, 0x030f,
+          "Snout ID", "SnoutID",  "SH", "1" },
+        { 0x300a, 0x0312,
+          "Number of Range Shifters", "NumberOfRangeShifters",  "IS", "1" },
+        { 0x300a, 0x0314,
+          "Range Shifter Sequence", "RangeShifterSequence",  "SQ", "1" },
+        { 0x300a, 0x0316,
+          "Range Shifter Number", "RangeShifterNumber",  "IS", "1" },
+        { 0x300a, 0x0318,
+          "Range Shifter ID", "RangeShifterID",  "SH", "1" },
+        { 0x300a, 0x0320,
+          "Range Shifter Type", "RangeShifterType",  "CS", "1" },
+        { 0x300a, 0x0322,
+          "Range Shifter Description", "RangeShifterDescription",  "LO", "1" },
+        { 0x300a, 0x0330,
+          "Number of Lateral Spreading Devices", "NumberOfLateralSpreadingDevices",  "IS", "1" },
+        { 0x300a, 0x0332,
+          "Lateral Spreading Device Sequence", "LateralSpreadingDeviceSequence",  "SQ", "1" },
+        { 0x300a, 0x0334,
+          "Lateral Spreading Device Number", "LateralSpreadingDeviceNumber",  "IS", "1" },
+        { 0x300a, 0x0336,
+          "Lateral Spreading Device ID", "LateralSpreadingDeviceID",  "SH", "1" },
+        { 0x300a, 0x0338,
+          "Lateral Spreading Device Type", "LateralSpreadingDeviceType",  "CS", "1" },
+        { 0x300a, 0x033a,
+          "Lateral Spreading Device Description", "LateralSpreadingDeviceDescription",  "LO", "1" },
+        { 0x300a, 0x033c,
+          "Lateral Spreading Device Water Equivalent Thickness", "LateralSpreadingDeviceWaterEquivalentThickness",  "FL", "1" },
+        { 0x300a, 0x0340,
+          "Number of Range Modulators", "NumberOfRangeModulators",  "IS", "1" },
+        { 0x300a, 0x0342,
+          "Range Modulator Sequence", "RangeModulatorSequence",  "SQ", "1" },
+        { 0x300a, 0x0344,
+          "Range Modulator Number", "RangeModulatorNumber",  "IS", "1" },
+        { 0x300a, 0x0346,
+          "Range Modulator ID", "RangeModulatorID",  "SH", "1" },
+        { 0x300a, 0x0348,
+          "Range Modulator Type", "RangeModulatorType",  "CS", "1" },
+        { 0x300a, 0x034a,
+          "Range Modulator Description", "RangeModulatorDescription",  "LO", "1" },
+        { 0x300a, 0x034c,
+          "Beam Current Modulation ID", "BeamCurrentModulationID",  "SH", "1" },
+        { 0x300a, 0x0350,
+          "Patient Support Type", "PatientSupportType",  "CS", "1" },
+        { 0x300a, 0x0352,
+          "Patient Support ID", "PatientSupportID",  "SH", "1" },
+        { 0x300a, 0x0354,
+          "Patient Support Accessory Code", "PatientSupportAccessoryCode",  "LO", "1" },
+        { 0x300a, 0x0356,
+          "Fixation Light Azimuthal Angle", "FixationLightAzimuthalAngle",  "FL", "1" },
+        { 0x300a, 0x0358,
+          "Fixation Light Polar Angle", "FixationLightPolarAngle",  "FL", "1" },
+        { 0x300a, 0x035a,
+          "Meterset Rate", "MetersetRate",  "FL", "1" },
+        { 0x300a, 0x0360,
+          "Range Shifter Settings Sequence", "RangeShifterSettingsSequence",  "SQ", "1" },
+        { 0x300a, 0x0362,
+          "Range Shifter Setting", "RangeShifterSetting",  "LO", "1" },
+        { 0x300a, 0x0364,
+          "Isocenter to Range Shifter Distance", "IsocenterToRangeShifterDistance",  "FL", "1" },
+        { 0x300a, 0x0366,
+          "Range Shifter Water Equivalent Thickness", "RangeShifterWaterEquivalentThickness",  "FL", "1" },
+        { 0x300a, 0x0370,
+          "Lateral Spreading Device Settings Sequence", "LateralSpreadingDeviceSettingsSequence",  "SQ", "1" },
+        { 0x300a, 0x0372,
+          "Lateral Spreading Device Setting", "LateralSpreadingDeviceSetting",  "LO", "1" },
+        { 0x300a, 0x0374,
+          "Isocenter to Lateral Spreading Device Distance", "IsocenterToLateralSpreadingDeviceDistance",  "FL", "1" },
+        { 0x300a, 0x0380,
+          "Range Modulator Settings Sequence", "RangeModulatorSettingsSequence",  "SQ", "1" },
+        { 0x300a, 0x0382,
+          "Range Modulator Gating Start Value", "RangeModulatorGatingStartValue",  "FL", "1" },
+        { 0x300a, 0x0384,
+          "Range Modulator Gating Stop Value", "RangeModulatorGatingStopValue",  "FL", "1" },
+        { 0x300a, 0x0386,
+          "Range Modulator Gating Start Water Equivalent Thickness", "RangeModulatorGatingStartWaterEquivalentThickness",  "FL", "1" },
+        { 0x300a, 0x0388,
+          "Range Modulator Gating Stop Water Equivalent Thickness", "RangeModulatorGatingStopWaterEquivalentThickness",  "FL", "1" },
+        { 0x300a, 0x038a,
+          "Isocenter to Range Modulator Distance", "IsocenterToRangeModulatorDistance",  "FL", "1" },
+        { 0x300a, 0x0390,
+          "Scan Spot Tune ID", "ScanSpotTuneID",  "SH", "1" },
+        { 0x300a, 0x0392,
+          "Number of Scan Spot Positions", "NumberOfScanSpotPositions",  "IS", "1" },
+        { 0x300a, 0x0394,
+          "Scan Spot Position Map", "ScanSpotPositionMap",  "FL", "1-n" },
+        { 0x300a, 0x0396,
+          "Scan Spot Meterset Weights", "ScanSpotMetersetWeights",  "FL", "1-n" },
+        { 0x300a, 0x0398,
+          "Scanning Spot Size", "ScanningSpotSize",  "FL", "2" },
+        { 0x300a, 0x039a,
+          "Number of Paintings", "NumberOfPaintings",  "IS", "1" },
+        { 0x300a, 0x03a0,
+          "Ion Tolerance Table Sequence", "IonToleranceTableSequence",  "SQ", "1" },
+        { 0x300a, 0x03a2,
+          "Ion Beam Sequence", "IonBeamSequence",  "SQ", "1" },
+        { 0x300a, 0x03a4,
+          "Ion Beam Limiting Device Sequence", "IonBeamLimitingDeviceSequence",  "SQ", "1" },
+        { 0x300a, 0x03a6,
+          "Ion Block Sequence", "IonBlockSequence",  "SQ", "1" },
+        { 0x300a, 0x03a8,
+          "Ion Control Point Sequence", "IonControlPointSequence",  "SQ", "1" },
+        { 0x300a, 0x03aa,
+          "Ion Wedge Sequence", "IonWedgeSequence",  "SQ", "1" },
+        { 0x300a, 0x03ac,
+          "Ion Wedge Position Sequence", "IonWedgePositionSequence",  "SQ", "1" },
+        { 0x300a, 0x0401,
+          "Referenced Setup Image Sequence", "ReferencedSetupImageSequence",  "SQ", "1" },
+        { 0x300a, 0x0402,
+          "Setup Image Comment", "SetupImageComment",  "ST", "1" },
+        { 0x300a, 0x0410,
+          "Motion Synchronization Sequence", "MotionSynchronizationSequence",  "SQ", "1" },
+        { 0x300a, 0x0412,
+          "Control Point Orientation", "ControlPointOrientation",  "FL", "3" },
+        { 0x300a, 0x0420,
+          "General Accessory Sequence", "GeneralAccessorySequence",  "SQ", "1" },
+        { 0x300a, 0x0421,
+          "General Accessory ID", "GeneralAccessoryID",  "SH", "1" },
+        { 0x300a, 0x0422,
+          "General Accessory Description", "GeneralAccessoryDescription",  "ST", "1" },
+        { 0x300a, 0x0423,
+          "General Accessory Type", "GeneralAccessoryType",  "CS", "1" },
+        { 0x300a, 0x0424,
+          "General Accessory Number", "GeneralAccessoryNumber",  "IS", "1" },
+        { 0x300a, 0x0425,
+          "Source to General Accessory Distance", "SourceToGeneralAccessoryDistance",  "FL", "1" },
+        { 0x300a, 0x0431,
+          "Applicator Geometry Sequence", "ApplicatorGeometrySequence",  "SQ", "1" },
+        { 0x300a, 0x0432,
+          "Applicator Aperture Shape", "ApplicatorApertureShape",  "CS", "1" },
+        { 0x300a, 0x0433,
+          "Applicator Opening", "ApplicatorOpening",  "FL", "1" },
+        { 0x300a, 0x0434,
+          "Applicator Opening X", "ApplicatorOpeningX",  "FL", "1" },
+        { 0x300a, 0x0435,
+          "Applicator Opening Y", "ApplicatorOpeningY",  "FL", "1" },
+        { 0x300a, 0x0436,
+          "Source to Applicator Mounting Position Distance", "SourceToApplicatorMountingPositionDistance",  "FL", "1" },
+        { 0x300a, 0x0440,
+          "Number of Block Slab Items", "NumberOfBlockSlabItems",  "IS", "1" },
+        { 0x300a, 0x0441,
+          "Block Slab Sequence", "BlockSlabSequence",  "SQ", "1" },
+        { 0x300a, 0x0442,
+          "Block Slab Thickness", "BlockSlabThickness",  "DS", "1" },
+        { 0x300a, 0x0443,
+          "Block Slab Number", "BlockSlabNumber",  "US", "1" },
+        { 0x300a, 0x0450,
+          "Device Motion Control Sequence", "DeviceMotionControlSequence",  "SQ", "1" },
+        { 0x300a, 0x0451,
+          "Device Motion Execution Mode", "DeviceMotionExecutionMode",  "CS", "1" },
+        { 0x300a, 0x0452,
+          "Device Motion Observation Mode", "DeviceMotionObservationMode",  "CS", "1" },
+        { 0x300a, 0x0453,
+          "Device Motion Parameter Code Sequence", "DeviceMotionParameterCodeSequence",  "SQ", "1" },
+        { 0x300c, 0x0002,
+          "Referenced RT Plan Sequence", "ReferencedRTPlanSequence",  "SQ", "1" },
+        { 0x300c, 0x0004,
+          "Referenced Beam Sequence", "ReferencedBeamSequence",  "SQ", "1" },
+        { 0x300c, 0x0006,
+          "Referenced Beam Number", "ReferencedBeamNumber",  "IS", "1" },
+        { 0x300c, 0x0007,
+          "Referenced Reference Image Number", "ReferencedReferenceImageNumber",  "IS", "1" },
+        { 0x300c, 0x0008,
+          "Start Cumulative Meterset Weight", "StartCumulativeMetersetWeight",  "DS", "1" },
+        { 0x300c, 0x0009,
+          "End Cumulative Meterset Weight", "EndCumulativeMetersetWeight",  "DS", "1" },
+        { 0x300c, 0x000a,
+          "Referenced Brachy Application Setup Sequence", "ReferencedBrachyApplicationSetupSequence",  "SQ", "1" },
+        { 0x300c, 0x000c,
+          "Referenced Brachy Application Setup Number", "ReferencedBrachyApplicationSetupNumber",  "IS", "1" },
+        { 0x300c, 0x000e,
+          "Referenced Source Number", "ReferencedSourceNumber",  "IS", "1" },
+        { 0x300c, 0x0020,
+          "Referenced Fraction Group Sequence", "ReferencedFractionGroupSequence",  "SQ", "1" },
+        { 0x300c, 0x0022,
+          "Referenced Fraction Group Number", "ReferencedFractionGroupNumber",  "IS", "1" },
+        { 0x300c, 0x0040,
+          "Referenced Verification Image Sequence", "ReferencedVerificationImageSequence",  "SQ", "1" },
+        { 0x300c, 0x0042,
+          "Referenced Reference Image Sequence", "ReferencedReferenceImageSequence",  "SQ", "1" },
+        { 0x300c, 0x0050,
+          "Referenced Dose Reference Sequence", "ReferencedDoseReferenceSequence",  "SQ", "1" },
+        { 0x300c, 0x0051,
+          "Referenced Dose Reference Number", "ReferencedDoseReferenceNumber",  "IS", "1" },
+        { 0x300c, 0x0055,
+          "Brachy Referenced Dose Reference Sequence", "BrachyReferencedDoseReferenceSequence",  "SQ", "1" },
+        { 0x300c, 0x0060,
+          "Referenced Structure Set Sequence", "ReferencedStructureSetSequence",  "SQ", "1" },
+        { 0x300c, 0x006a,
+          "Referenced Patient Setup Number", "ReferencedPatientSetupNumber",  "IS", "1" },
+        { 0x300c, 0x0080,
+          "Referenced Dose Sequence", "ReferencedDoseSequence",  "SQ", "1" },
+        { 0x300c, 0x00a0,
+          "Referenced Tolerance Table Number", "ReferencedToleranceTableNumber",  "IS", "1" },
+        { 0x300c, 0x00b0,
+          "Referenced Bolus Sequence", "ReferencedBolusSequence",  "SQ", "1" },
+        { 0x300c, 0x00c0,
+          "Referenced Wedge Number", "ReferencedWedgeNumber",  "IS", "1" },
+        { 0x300c, 0x00d0,
+          "Referenced Compensator Number", "ReferencedCompensatorNumber",  "IS", "1" },
+        { 0x300c, 0x00e0,
+          "Referenced Block Number", "ReferencedBlockNumber",  "IS", "1" },
+        { 0x300c, 0x00f0,
+          "Referenced Control Point Index", "ReferencedControlPointIndex",  "IS", "1" },
+        { 0x300c, 0x00f2,
+          "Referenced Control Point Sequence", "ReferencedControlPointSequence",  "SQ", "1" },
+        { 0x300c, 0x00f4,
+          "Referenced Start Control Point Index", "ReferencedStartControlPointIndex",  "IS", "1" },
+        { 0x300c, 0x00f6,
+          "Referenced Stop Control Point Index", "ReferencedStopControlPointIndex",  "IS", "1" },
+        { 0x300c, 0x0100,
+          "Referenced Range Shifter Number", "ReferencedRangeShifterNumber",  "IS", "1" },
+        { 0x300c, 0x0102,
+          "Referenced Lateral Spreading Device Number", "ReferencedLateralSpreadingDeviceNumber",  "IS", "1" },
+        { 0x300c, 0x0104,
+          "Referenced Range Modulator Number", "ReferencedRangeModulatorNumber",  "IS", "1" },
+        { 0x300c, 0x0111,
+          "Omitted Beam Task Sequence", "OmittedBeamTaskSequence",  "SQ", "1" },
+        { 0x300c, 0x0112,
+          "Reason for Omission", "ReasonForOmission",  "CS", "1" },
+        { 0x300c, 0x0113,
+          "Reason for Omission Description", "ReasonForOmissionDescription",  "LO", "1" },
+        { 0x300e, 0x0002,
+          "Approval Status", "ApprovalStatus",  "CS", "1" },
+        { 0x300e, 0x0004,
+          "Review Date", "ReviewDate",  "DA", "1" },
+        { 0x300e, 0x0005,
+          "Review Time", "ReviewTime",  "TM", "1" },
+        { 0x300e, 0x0008,
+          "Reviewer Name", "ReviewerName",  "PN", "1" },
+        { 0x4000, 0x0010,
+          "Arbitrary", "Arbitrary",  "LT", "1" },
+        { 0x4000, 0x4000,
+          "Text Comments", "TextComments",  "LT", "1" },
+        { 0x4008, 0x0040,
+          "Results ID", "ResultsID",  "SH", "1" },
+        { 0x4008, 0x0042,
+          "Results ID Issuer", "ResultsIDIssuer",  "LO", "1" },
+        { 0x4008, 0x0050,
+          "Referenced Interpretation Sequence", "ReferencedInterpretationSequence",  "SQ", "1" },
+        { 0x4008, 0x00ff,
+          "Report Production Status (Trial)", "ReportProductionStatusTrial",  "CS", "1" },
+        { 0x4008, 0x0100,
+          "Interpretation Recorded Date", "InterpretationRecordedDate",  "DA", "1" },
+        { 0x4008, 0x0101,
+          "Interpretation Recorded Time", "InterpretationRecordedTime",  "TM", "1" },
+        { 0x4008, 0x0102,
+          "Interpretation Recorder", "InterpretationRecorder",  "PN", "1" },
+        { 0x4008, 0x0103,
+          "Reference to Recorded Sound", "ReferenceToRecordedSound",  "LO", "1" },
+        { 0x4008, 0x0108,
+          "Interpretation Transcription Date", "InterpretationTranscriptionDate",  "DA", "1" },
+        { 0x4008, 0x0109,
+          "Interpretation Transcription Time", "InterpretationTranscriptionTime",  "TM", "1" },
+        { 0x4008, 0x010a,
+          "Interpretation Transcriber", "InterpretationTranscriber",  "PN", "1" },
+        { 0x4008, 0x010b,
+          "Interpretation Text", "InterpretationText",  "ST", "1" },
+        { 0x4008, 0x010c,
+          "Interpretation Author", "InterpretationAuthor",  "PN", "1" },
+        { 0x4008, 0x0111,
+          "Interpretation Approver Sequence", "InterpretationApproverSequence",  "SQ", "1" },
+        { 0x4008, 0x0112,
+          "Interpretation Approval Date", "InterpretationApprovalDate",  "DA", "1" },
+        { 0x4008, 0x0113,
+          "Interpretation Approval Time", "InterpretationApprovalTime",  "TM", "1" },
+        { 0x4008, 0x0114,
+          "Physician Approving Interpretation", "PhysicianApprovingInterpretation",  "PN", "1" },
+        { 0x4008, 0x0115,
+          "Interpretation Diagnosis Description", "InterpretationDiagnosisDescription",  "LT", "1" },
+        { 0x4008, 0x0117,
+          "Interpretation Diagnosis Code Sequence", "InterpretationDiagnosisCodeSequence",  "SQ", "1" },
+        { 0x4008, 0x0118,
+          "Results Distribution List Sequence", "ResultsDistributionListSequence",  "SQ", "1" },
+        { 0x4008, 0x0119,
+          "Distribution Name", "DistributionName",  "PN", "1" },
+        { 0x4008, 0x011a,
+          "Distribution Address", "DistributionAddress",  "LO", "1" },
+        { 0x4008, 0x0200,
+          "Interpretation ID", "InterpretationID",  "SH", "1" },
+        { 0x4008, 0x0202,
+          "Interpretation ID Issuer", "InterpretationIDIssuer",  "LO", "1" },
+        { 0x4008, 0x0210,
+          "Interpretation Type ID", "InterpretationTypeID",  "CS", "1" },
+        { 0x4008, 0x0212,
+          "Interpretation Status ID", "InterpretationStatusID",  "CS", "1" },
+        { 0x4008, 0x0300,
+          "Impressions", "Impressions",  "ST", "1" },
+        { 0x4008, 0x4000,
+          "Results Comments", "ResultsComments",  "ST", "1" },
+        { 0x4010, 0x0001,
+          "Low Energy Detectors", "LowEnergyDetectors",  "CS", "1" },
+        { 0x4010, 0x0002,
+          "High Energy Detectors", "HighEnergyDetectors",  "CS", "1" },
+        { 0x4010, 0x0004,
+          "Detector Geometry Sequence", "DetectorGeometrySequence",  "SQ", "1" },
+        { 0x4010, 0x1001,
+          "Threat ROI Voxel Sequence", "ThreatROIVoxelSequence",  "SQ", "1" },
+        { 0x4010, 0x1004,
+          "Threat ROI Base", "ThreatROIBase",  "FL", "3" },
+        { 0x4010, 0x1005,
+          "Threat ROI Extents", "ThreatROIExtents",  "FL", "3" },
+        { 0x4010, 0x1006,
+          "Threat ROI Bitmap", "ThreatROIBitmap",  "OB", "1" },
+        { 0x4010, 0x1007,
+          "Route Segment ID", "RouteSegmentID",  "SH", "1" },
+        { 0x4010, 0x1008,
+          "Gantry Type", "GantryType",  "CS", "1" },
+        { 0x4010, 0x1009,
+          "OOI Owner Type", "OOIOwnerType",  "CS", "1" },
+        { 0x4010, 0x100a,
+          "Route Segment Sequence", "RouteSegmentSequence",  "SQ", "1" },
+        { 0x4010, 0x1010,
+          "Potential Threat Object ID", "PotentialThreatObjectID",  "US", "1" },
+        { 0x4010, 0x1011,
+          "Threat Sequence", "ThreatSequence",  "SQ", "1" },
+        { 0x4010, 0x1012,
+          "Threat Category", "ThreatCategory",  "CS", "1" },
+        { 0x4010, 0x1013,
+          "Threat Category Description", "ThreatCategoryDescription",  "LT", "1" },
+        { 0x4010, 0x1014,
+          "ATD Ability Assessment", "ATDAbilityAssessment",  "CS", "1" },
+        { 0x4010, 0x1015,
+          "ATD Assessment Flag", "ATDAssessmentFlag",  "CS", "1" },
+        { 0x4010, 0x1016,
+          "ATD Assessment Probability", "ATDAssessmentProbability",  "FL", "1" },
+        { 0x4010, 0x1017,
+          "Mass", "Mass",  "FL", "1" },
+        { 0x4010, 0x1018,
+          "Density", "Density",  "FL", "1" },
+        { 0x4010, 0x1019,
+          "Z Effective", "ZEffective",  "FL", "1" },
+        { 0x4010, 0x101a,
+          "Boarding Pass ID", "BoardingPassID",  "SH", "1" },
+        { 0x4010, 0x101b,
+          "Center of Mass", "CenterOfMass",  "FL", "3" },
+        { 0x4010, 0x101c,
+          "Center of PTO", "CenterOfPTO",  "FL", "3" },
+        { 0x4010, 0x101d,
+          "Bounding Polygon", "BoundingPolygon",  "FL", "6-n" },
+        { 0x4010, 0x101e,
+          "Route Segment Start Location ID", "RouteSegmentStartLocationID",  "SH", "1" },
+        { 0x4010, 0x101f,
+          "Route Segment End Location ID", "RouteSegmentEndLocationID",  "SH", "1" },
+        { 0x4010, 0x1020,
+          "Route Segment Location ID Type", "RouteSegmentLocationIDType",  "CS", "1" },
+        { 0x4010, 0x1021,
+          "Abort Reason", "AbortReason",  "CS", "1-n" },
+        { 0x4010, 0x1023,
+          "Volume of PTO", "VolumeOfPTO",  "FL", "1" },
+        { 0x4010, 0x1024,
+          "Abort Flag", "AbortFlag",  "CS", "1" },
+        { 0x4010, 0x1025,
+          "Route Segment Start Time", "RouteSegmentStartTime",  "DT", "1" },
+        { 0x4010, 0x1026,
+          "Route Segment End Time", "RouteSegmentEndTime",  "DT", "1" },
+        { 0x4010, 0x1027,
+          "TDR Type", "TDRType",  "CS", "1" },
+        { 0x4010, 0x1028,
+          "International Route Segment", "InternationalRouteSegment",  "CS", "1" },
+        { 0x4010, 0x1029,
+          "Threat Detection Algorithm and Version", "ThreatDetectionAlgorithmandVersion",  "LO", "1-n" },
+        { 0x4010, 0x102a,
+          "Assigned Location", "AssignedLocation",  "SH", "1" },
+        { 0x4010, 0x102b,
+          "Alarm Decision Time", "AlarmDecisionTime",  "DT", "1" },
+        { 0x4010, 0x1031,
+          "Alarm Decision", "AlarmDecision",  "CS", "1" },
+        { 0x4010, 0x1033,
+          "Number of Total Objects", "NumberOfTotalObjects",  "US", "1" },
+        { 0x4010, 0x1034,
+          "Number of Alarm Objects", "NumberOfAlarmObjects",  "US", "1" },
+        { 0x4010, 0x1037,
+          "PTO Representation Sequence", "PTORepresentationSequence",  "SQ", "1" },
+        { 0x4010, 0x1038,
+          "ATD Assessment Sequence", "ATDAssessmentSequence",  "SQ", "1" },
+        { 0x4010, 0x1039,
+          "TIP Type", "TIPType",  "CS", "1" },
+        { 0x4010, 0x103a,
+          "DICOS Version", "DICOSVersion",  "CS", "1" },
+        { 0x4010, 0x1041,
+          "OOI Owner Creation Time", "OOIOwnerCreationTime",  "DT", "1" },
+        { 0x4010, 0x1042,
+          "OOI Type", "OOIType",  "CS", "1" },
+        { 0x4010, 0x1043,
+          "OOI Size", "OOISize",  "FL", "3" },
+        { 0x4010, 0x1044,
+          "Acquisition Status", "AcquisitionStatus",  "CS", "1" },
+        { 0x4010, 0x1045,
+          "Basis Materials Code Sequence", "BasisMaterialsCodeSequence",  "SQ", "1" },
+        { 0x4010, 0x1046,
+          "Phantom Type", "PhantomType",  "CS", "1" },
+        { 0x4010, 0x1047,
+          "OOI Owner Sequence", "OOIOwnerSequence",  "SQ", "1" },
+        { 0x4010, 0x1048,
+          "Scan Type", "ScanType",  "CS", "1" },
+        { 0x4010, 0x1051,
+          "Itinerary ID", "ItineraryID",  "LO", "1" },
+        { 0x4010, 0x1052,
+          "Itinerary ID Type", "ItineraryIDType",  "SH", "1" },
+        { 0x4010, 0x1053,
+          "Itinerary ID Assigning Authority", "ItineraryIDAssigningAuthority",  "LO", "1" },
+        { 0x4010, 0x1054,
+          "Route ID", "RouteID",  "SH", "1" },
+        { 0x4010, 0x1055,
+          "Route ID Assigning Authority", "RouteIDAssigningAuthority",  "SH", "1" },
+        { 0x4010, 0x1056,
+          "Inbound Arrival Type", "InboundArrivalType",  "CS", "1" },
+        { 0x4010, 0x1058,
+          "Carrier ID", "CarrierID",  "SH", "1" },
+        { 0x4010, 0x1059,
+          "Carrier ID Assigning Authority", "CarrierIDAssigningAuthority",  "CS", "1" },
+        { 0x4010, 0x1060,
+          "Source Orientation", "SourceOrientation",  "FL", "3" },
+        { 0x4010, 0x1061,
+          "Source Position", "SourcePosition",  "FL", "3" },
+        { 0x4010, 0x1062,
+          "Belt Height", "BeltHeight",  "FL", "1" },
+        { 0x4010, 0x1064,
+          "Algorithm Routing Code Sequence", "AlgorithmRoutingCodeSequence",  "SQ", "1" },
+        { 0x4010, 0x1067,
+          "Transport Classification", "TransportClassification",  "CS", "1" },
+        { 0x4010, 0x1068,
+          "OOI Type Descriptor", "OOITypeDescriptor",  "LT", "1" },
+        { 0x4010, 0x1069,
+          "Total Processing Time", "TotalProcessingTime",  "FL", "1" },
+        { 0x4010, 0x106c,
+          "Detector Calibration Data", "DetectorCalibrationData",  "OB", "1" },
+        { 0x4010, 0x106d,
+          "Additional Screening Performed", "AdditionalScreeningPerformed",  "CS", "1" },
+        { 0x4010, 0x106e,
+          "Additional Inspection Selection Criteria", "AdditionalInspectionSelectionCriteria",  "CS", "1" },
+        { 0x4010, 0x106f,
+          "Additional Inspection Method Sequence", "AdditionalInspectionMethodSequence",  "SQ", "1" },
+        { 0x4010, 0x1070,
+          "AIT Device Type", "AITDeviceType",  "CS", "1" },
+        { 0x4010, 0x1071,
+          "QR Measurements Sequence", "QRMeasurementsSequence",  "SQ", "1" },
+        { 0x4010, 0x1072,
+          "Target Material Sequence", "TargetMaterialSequence",  "SQ", "1" },
+        { 0x4010, 0x1073,
+          "SNR Threshold", "SNRThreshold",  "FD", "1" },
+        { 0x4010, 0x1075,
+          "Image Scale Representation", "ImageScaleRepresentation",  "DS", "1" },
+        { 0x4010, 0x1076,
+          "Referenced PTO Sequence", "ReferencedPTOSequence",  "SQ", "1" },
+        { 0x4010, 0x1077,
+          "Referenced TDR Instance Sequence", "ReferencedTDRInstanceSequence",  "SQ", "1" },
+        { 0x4010, 0x1078,
+          "PTO Location Description", "PTOLocationDescription",  "ST", "1" },
+        { 0x4010, 0x1079,
+          "Anomaly Locator Indicator Sequence", "AnomalyLocatorIndicatorSequence",  "SQ", "1" },
+        { 0x4010, 0x107a,
+          "Anomaly Locator Indicator", "AnomalyLocatorIndicator",  "FL", "3" },
+        { 0x4010, 0x107b,
+          "PTO Region Sequence", "PTORegionSequence",  "SQ", "1" },
+        { 0x4010, 0x107c,
+          "Inspection Selection Criteria", "InspectionSelectionCriteria",  "CS", "1" },
+        { 0x4010, 0x107d,
+          "Secondary Inspection Method Sequence", "SecondaryInspectionMethodSequence",  "SQ", "1" },
+        { 0x4010, 0x107e,
+          "PRCS to RCS Orientation", "PRCSToRCSOrientation",  "DS", "6" },
+        { 0x4ffe, 0x0001,
+          "MAC Parameters Sequence", "MACParametersSequence",  "SQ", "1" },
+        { 0x5200, 0x9229,
+          "Shared Functional Groups Sequence", "SharedFunctionalGroupsSequence",  "SQ", "1" },
+        { 0x5200, 0x9230,
+          "Per-frame Functional Groups Sequence", "PerFrameFunctionalGroupsSequence",  "SQ", "1" },
+        { 0x5400, 0x0100,
+          "Waveform Sequence", "WaveformSequence",  "SQ", "1" },
+        { 0x5400, 0x0110,
+          "Channel Minimum Value", "ChannelMinimumValue",  "OB or OW", "1" },
+        { 0x5400, 0x0112,
+          "Channel Maximum Value", "ChannelMaximumValue",  "OB or OW", "1" },
+        { 0x5400, 0x1004,
+          "Waveform Bits Allocated", "WaveformBitsAllocated",  "US", "1" },
+        { 0x5400, 0x1006,
+          "Waveform Sample Interpretation", "WaveformSampleInterpretation",  "CS", "1" },
+        { 0x5400, 0x100a,
+          "Waveform Padding Value", "WaveformPaddingValue",  "OB or OW", "1" },
+        { 0x5400, 0x1010,
+          "Waveform Data", "WaveformData",  "OB or OW", "1" },
+        { 0x5600, 0x0010,
+          "First Order Phase Correction Angle", "FirstOrderPhaseCorrectionAngle",  "OF", "1" },
+        { 0x5600, 0x0020,
+          "Spectroscopy Data", "SpectroscopyData",  "OF", "1" },
+        { 0x7fe0, 0x0008,
+          "Float Pixel Data", "FloatPixelData",  "OF", "1" },
+        { 0x7fe0, 0x0009,
+          "Double Float Pixel Data", "DoubleFloatPixelData",  "OD", "1" },
+        { 0x7fe0, 0x0010,
+          "Pixel Data", "PixelData",  "OB or OW", "1" },
+        { 0x7fe0, 0x0020,
+          "Coefficients SDVN", "CoefficientsSDVN",  "OW", "1" },
+        { 0x7fe0, 0x0030,
+          "Coefficients SDHN", "CoefficientsSDHN",  "OW", "1" },
+        { 0x7fe0, 0x0040,
+          "Coefficients SDDN", "CoefficientsSDDN",  "OW", "1" },
+        { 0xfffa, 0xfffa,
+          "Digital Signatures Sequence", "DigitalSignaturesSequence",  "SQ", "1" },
+        { 0xfffc, 0xfffc,
+          "Data Set Trailing Padding", "DataSetTrailingPadding",  "OB", "1" },
+        { 0xfffe, 0xe000,
+          "Item", "Item",  "See Note ", "1" },
+        { 0xfffe, 0xe00d,
+          "Item Delimitation Item", "ItemDelimitationItem",  "See Note ", "1" },
+        { 0xfffe, 0xe0dd,
+          "Sequence Delimitation Item", "SequenceDelimitationItem",  "See Note ", "1" },
+    };
+
+    ElementsDictionary public_dictionary;
+    
+    unsigned long const count = sizeof(raw_entries)/sizeof(RawElementsDictionaryEntry);
+    for(unsigned long i=0; i<count; ++i)
+    {
+        RawElementsDictionaryEntry const & raw_entry = raw_entries[i];
+        Tag const tag(raw_entry.group, raw_entry.element);
+        ElementsDictionaryEntry const entry(
+            raw_entry.name, raw_entry.keyword, raw_entry.vr, raw_entry.vm);
+        public_dictionary.insert(std::pair<Tag, ElementsDictionaryEntry>(tag, entry));
+    }
+
+    return public_dictionary;
+}
+
+struct RawUIDsDictionaryEntry
+{
+    char const * uid;
+    char const * name;
+    char const * keyword;
+    char const * type;
+};
+
+UIDsDictionary create_uids_dictionary()
+{
+
+    RawUIDsDictionaryEntry raw_entries[] = {
+        { "1.2.840.10008.1.1", "Verification SOP Class", "VerificationSOPClass",  "SOP Class" },
+        { "1.2.840.10008.1.2", "Implicit VR Little Endian: Default Transfer Syntax for DICOM", "ImplicitVRLittleEndian",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.1", "Explicit VR Little Endian", "ExplicitVRLittleEndian",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.1.99", "Deflated Explicit VR Little Endian", "DeflatedExplicitVRLittleEndian",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.2", "Explicit VR Big Endian (Retired)", "ExplicitVRBigEndian_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.50", "JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression", "JPEGBaselineProcess1",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.51", "JPEG Extended (Process 2 & 4): Default Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only)", "JPEGExtendedProcess24",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.52", "JPEG Extended (Process 3 & 5) (Retired)", "JPEGExtendedProcess35_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.53", "JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8) (Retired)", "JPEGSpectralSelectionNonHierarchicalProcess68_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.54", "JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9) (Retired)", "JPEGSpectralSelectionNonHierarchicalProcess79_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.55", "JPEG Full Progression, Non-Hierarchical (Process 10 & 12) (Retired)", "JPEGFullProgressionNonHierarchicalProcess1012_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.56", "JPEG Full Progression, Non-Hierarchical (Process 11 & 13) (Retired)", "JPEGFullProgressionNonHierarchicalProcess1113_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.57", "JPEG Lossless, Non-Hierarchical (Process 14)", "JPEGLosslessNonHierarchicalProcess14",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.58", "JPEG Lossless, Non-Hierarchical (Process 15) (Retired)", "JPEGLosslessNonHierarchicalProcess15_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.59", "JPEG Extended, Hierarchical (Process 16 & 18) (Retired)", "JPEGExtendedHierarchicalProcess1618_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.60", "JPEG Extended, Hierarchical (Process 17 & 19) (Retired)", "JPEGExtendedHierarchicalProcess1719_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.61", "JPEG Spectral Selection, Hierarchical (Process 20 & 22) (Retired)", "JPEGSpectralSelectionHierarchicalProcess2022_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.62", "JPEG Spectral Selection, Hierarchical (Process 21 & 23) (Retired)", "JPEGSpectralSelectionHierarchicalProcess2123_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.63", "JPEG Full Progression, Hierarchical (Process 24 & 26) (Retired)", "JPEGFullProgressionHierarchicalProcess2426_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.64", "JPEG Full Progression, Hierarchical (Process 25 & 27) (Retired)", "JPEGFullProgressionHierarchicalProcess2527_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.65", "JPEG Lossless, Hierarchical (Process 28) (Retired)", "JPEGLosslessHierarchicalProcess28_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.66", "JPEG Lossless, Hierarchical (Process 29) (Retired)", "JPEGLosslessHierarchicalProcess29_Retired",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.70", "JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1]): Default Transfer Syntax for Lossless JPEG Image Compression", "JPEGLosslessNonHierarchicalFirstOrderPredictionProcess14SelectionValue1",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.80", "JPEG-LS Lossless Image Compression", "JPEGLSLosslessImageCompression",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.81", "JPEG-LS Lossy (Near-Lossless) Image Compression", "JPEGLSLossyNearLosslessImageCompression",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.90", "JPEG 2000 Image Compression (Lossless Only)", "JPEG2000ImageCompressionLosslessOnly",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.91", "JPEG 2000 Image Compression", "JPEG2000ImageCompression",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.92", "JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only)", "JPEG2000Part2MulticomponentImageCompressionLosslessOnly",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.93", "JPEG 2000 Part 2 Multi-component Image Compression", "JPEG2000Part2MulticomponentImageCompression",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.94", "JPIP Referenced", "JPIPReferenced",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.95", "JPIP Referenced Deflate", "JPIPReferencedDeflate",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.100", "MPEG2 Main Profile @ Main Level", "MPEG2MainProfileMainLevel",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.101", "MPEG2 Main Profile @ High Level", "MPEG2MainProfileHighLevel",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.102", "MPEG-4 AVC/H.264 High Profile / Level 4.1", "MPEG4AVCH264HighProfileLevel41",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.103", "MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1", "MPEG4AVCH264BDcompatibleHighProfileLevel41",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.104", "MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video", "MPEG4AVCH264HighProfileLevel42For2DVideo",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.105", "MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video", "MPEG4AVCH264HighProfileLevel42For3DVideo",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.4.106", "MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2", "MPEG4AVCH264StereoHighProfileLevel42",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.5", "RLE Lossless", "RLELossless",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.6.1", "RFC 2557 MIME encapsulation", "RFC2557MIMEencapsulation",  "Transfer Syntax" },
+        { "1.2.840.10008.1.2.6.2", "XML Encoding", "XMLEncoding",  "Transfer Syntax" },
+        { "1.2.840.10008.1.3.10", "Media Storage Directory Storage", "MediaStorageDirectoryStorage",  "SOP Class" },
+        { "1.2.840.10008.1.4.1.1", "Talairach Brain Atlas Frame of Reference", "TalairachBrainAtlasFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.2", "SPM2 T1 Frame of Reference", "SPM2T1FrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.3", "SPM2 T2 Frame of Reference", "SPM2T2FrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.4", "SPM2 PD Frame of Reference", "SPM2PDFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.5", "SPM2 EPI Frame of Reference", "SPM2EPIFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.6", "SPM2 FIL T1 Frame of Reference", "SPM2FILT1FrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.7", "SPM2 PET Frame of Reference", "SPM2PETFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.8", "SPM2 TRANSM Frame of Reference", "SPM2TRANSMFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.9", "SPM2 SPECT Frame of Reference", "SPM2SPECTFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.10", "SPM2 GRAY Frame of Reference", "SPM2GRAYFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.11", "SPM2 WHITE Frame of Reference", "SPM2WHITEFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.12", "SPM2 CSF Frame of Reference", "SPM2CSFFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.13", "SPM2 BRAINMASK Frame of Reference", "SPM2BRAINMASKFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.14", "SPM2 AVG305T1 Frame of Reference", "SPM2AVG305T1FrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.15", "SPM2 AVG152T1 Frame of Reference", "SPM2AVG152T1FrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.16", "SPM2 AVG152T2 Frame of Reference", "SPM2AVG152T2FrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.17", "SPM2 AVG152PD Frame of Reference", "SPM2AVG152PDFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.1.18", "SPM2 SINGLESUBJT1 Frame of Reference", "SPM2SINGLESUBJT1FrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.2.1", "ICBM 452 T1 Frame of Reference", "ICBM452T1FrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.4.2.2", "ICBM Single Subject MRI Frame of Reference", "ICBMSingleSubjectMRIFrameofReference",  "Well-known frame of reference" },
+        { "1.2.840.10008.1.5.1", "Hot Iron Color Palette SOP Instance", "HotIronColorPaletteSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.1.5.2", "PET Color Palette SOP Instance", "PETColorPaletteSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.1.5.3", "Hot Metal Blue Color Palette SOP Instance", "HotMetalBlueColorPaletteSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.1.5.4", "PET 20 Step Color Palette SOP Instance", "PET20StepColorPaletteSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.1.9", "Basic Study Content Notification SOP Class (Retired)", "BasicStudyContentNotificationSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.1.20.1", "Storage Commitment Push Model SOP Class", "StorageCommitmentPushModelSOPClass",  "SOP Class" },
+        { "1.2.840.10008.1.20.1.1", "Storage Commitment Push Model SOP Instance", "StorageCommitmentPushModelSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.1.20.2", "Storage Commitment Pull Model SOP Class (Retired)", "StorageCommitmentPullModelSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.1.20.2.1", "Storage Commitment Pull Model SOP Instance (Retired)", "StorageCommitmentPullModelSOPInstance_Retired",  "Well-known SOP Instance" },
+        { "1.2.840.10008.1.40", "Procedural Event Logging SOP Class", "ProceduralEventLoggingSOPClass",  "SOP Class" },
+        { "1.2.840.10008.1.40.1", "Procedural Event Logging SOP Instance", "ProceduralEventLoggingSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.1.42", "Substance Administration Logging SOP Class", "SubstanceAdministrationLoggingSOPClass",  "SOP Class" },
+        { "1.2.840.10008.1.42.1", "Substance Administration Logging SOP Instance", "SubstanceAdministrationLoggingSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.2.6.1", "DICOM UID Registry", "DICOMUIDRegistry",  "DICOM UIDs as a Coding Scheme" },
+        { "1.2.840.10008.2.16.4", "DICOM Controlled Terminology", "DICOMControlledTerminology",  "Coding Scheme" },
+        { "1.2.840.10008.3.1.1.1", "DICOM Application Context Name", "DICOMApplicationContextName",  "Application Context Name" },
+        { "1.2.840.10008.3.1.2.1.1", "Detached Patient Management SOP Class (Retired)", "DetachedPatientManagementSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.3.1.2.1.4", "Detached Patient Management Meta SOP Class (Retired)", "DetachedPatientManagementMetaSOPClass_Retired",  "Meta SOP Class" },
+        { "1.2.840.10008.3.1.2.2.1", "Detached Visit Management SOP Class (Retired)", "DetachedVisitManagementSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.3.1.2.3.1", "Detached Study Management SOP Class (Retired)", "DetachedStudyManagementSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.3.1.2.3.2", "Study Component Management SOP Class (Retired)", "StudyComponentManagementSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.3.1.2.3.3", "Modality Performed Procedure Step SOP Class", "ModalityPerformedProcedureStepSOPClass",  "SOP Class" },
+        { "1.2.840.10008.3.1.2.3.4", "Modality Performed Procedure Step Retrieve SOP Class", "ModalityPerformedProcedureStepRetrieveSOPClass",  "SOP Class" },
+        { "1.2.840.10008.3.1.2.3.5", "Modality Performed Procedure Step Notification SOP Class", "ModalityPerformedProcedureStepNotificationSOPClass",  "SOP Class" },
+        { "1.2.840.10008.3.1.2.5.1", "Detached Results Management SOP Class (Retired)", "DetachedResultsManagementSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.3.1.2.5.4", "Detached Results Management Meta SOP Class (Retired)", "DetachedResultsManagementMetaSOPClass_Retired",  "Meta SOP Class" },
+        { "1.2.840.10008.3.1.2.5.5", "Detached Study Management Meta SOP Class (Retired)", "DetachedStudyManagementMetaSOPClass_Retired",  "Meta SOP Class" },
+        { "1.2.840.10008.3.1.2.6.1", "Detached Interpretation Management SOP Class (Retired)", "DetachedInterpretationManagementSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.4.2", "Storage Service Class", "StorageServiceClass",  "Service Class" },
+        { "1.2.840.10008.5.1.1.1", "Basic Film Session SOP Class", "BasicFilmSessionSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.2", "Basic Film Box SOP Class", "BasicFilmBoxSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.4", "Basic Grayscale Image Box SOP Class", "BasicGrayscaleImageBoxSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.4.1", "Basic Color Image Box SOP Class", "BasicColorImageBoxSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.4.2", "Referenced Image Box SOP Class (Retired)", "ReferencedImageBoxSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.9", "Basic Grayscale Print Management Meta SOP Class", "BasicGrayscalePrintManagementMetaSOPClass",  "Meta SOP Class" },
+        { "1.2.840.10008.5.1.1.9.1", "Referenced Grayscale Print Management Meta SOP Class (Retired)", "ReferencedGrayscalePrintManagementMetaSOPClass_Retired",  "Meta SOP Class" },
+        { "1.2.840.10008.5.1.1.14", "Print Job SOP Class", "PrintJobSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.15", "Basic Annotation Box SOP Class", "BasicAnnotationBoxSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.16", "Printer SOP Class", "PrinterSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.16.376", "Printer Configuration Retrieval SOP Class", "PrinterConfigurationRetrievalSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.17", "Printer SOP Instance", "PrinterSOPInstance",  "Well-known Printer SOP Instance" },
+        { "1.2.840.10008.5.1.1.17.376", "Printer Configuration Retrieval SOP Instance", "PrinterConfigurationRetrievalSOPInstance",  "Well-known Printer SOP Instance" },
+        { "1.2.840.10008.5.1.1.18", "Basic Color Print Management Meta SOP Class", "BasicColorPrintManagementMetaSOPClass",  "Meta SOP Class" },
+        { "1.2.840.10008.5.1.1.18.1", "Referenced Color Print Management Meta SOP Class (Retired)", "ReferencedColorPrintManagementMetaSOPClass_Retired",  "Meta SOP Class" },
+        { "1.2.840.10008.5.1.1.22", "VOI LUT Box SOP Class", "VOILUTBoxSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.23", "Presentation LUT SOP Class", "PresentationLUTSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.24", "Image Overlay Box SOP Class (Retired)", "ImageOverlayBoxSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.24.1", "Basic Print Image Overlay Box SOP Class (Retired)", "BasicPrintImageOverlayBoxSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.25", "Print Queue SOP Instance (Retired)", "PrintQueueSOPInstance_Retired",  "Well-known Print Queue SOP Instance" },
+        { "1.2.840.10008.5.1.1.26", "Print Queue Management SOP Class (Retired)", "PrintQueueManagementSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.27", "Stored Print Storage SOP Class (Retired)", "StoredPrintStorageSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.29", "Hardcopy Grayscale Image Storage SOP Class (Retired)", "HardcopyGrayscaleImageStorageSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.30", "Hardcopy Color Image Storage SOP Class (Retired)", "HardcopyColorImageStorageSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.31", "Pull Print Request SOP Class (Retired)", "PullPrintRequestSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.32", "Pull Stored Print Management Meta SOP Class (Retired)", "PullStoredPrintManagementMetaSOPClass_Retired",  "Meta SOP Class" },
+        { "1.2.840.10008.5.1.1.33", "Media Creation Management SOP Class UID", "MediaCreationManagementSOPClassUID",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.40", "Display System SOP Class", "DisplaySystemSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.1.40.1", "Display System SOP Instance", "DisplaySystemSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.5.1.4.1.1.1", "Computed Radiography Image Storage", "ComputedRadiographyImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.1.1", "Digital X-Ray Image Storage - For Presentation", "DigitalXRayImageStorageForPresentation",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.1.1.1", "Digital X-Ray Image Storage - For Processing", "DigitalXRayImageStorageForProcessing",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.1.2", "Digital Mammography X-Ray Image Storage - For Presentation", "DigitalMammographyXRayImageStorageForPresentation",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.1.2.1", "Digital Mammography X-Ray Image Storage - For Processing", "DigitalMammographyXRayImageStorageForProcessing",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.1.3", "Digital Intra-Oral X-Ray Image Storage - For Presentation", "DigitalIntraOralXRayImageStorageForPresentation",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.1.3.1", "Digital Intra-Oral X-Ray Image Storage - For Processing", "DigitalIntraOralXRayImageStorageForProcessing",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.2", "CT Image Storage", "CTImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.2.1", "Enhanced CT Image Storage", "EnhancedCTImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.2.2", "Legacy Converted Enhanced CT Image Storage", "LegacyConvertedEnhancedCTImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.3", "Ultrasound Multi-frame Image Storage (Retired)", "UltrasoundMultiframeImageStorage_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.3.1", "Ultrasound Multi-frame Image Storage", "UltrasoundMultiframeImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.4", "MR Image Storage", "MRImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.4.1", "Enhanced MR Image Storage", "EnhancedMRImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.4.2", "MR Spectroscopy Storage", "MRSpectroscopyStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.4.3", "Enhanced MR Color Image Storage", "EnhancedMRColorImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.4.4", "Legacy Converted Enhanced MR Image Storage", "LegacyConvertedEnhancedMRImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.5", "Nuclear Medicine Image Storage (Retired)", "NuclearMedicineImageStorage_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.6", "Ultrasound Image Storage (Retired)", "UltrasoundImageStorage_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.6.1", "Ultrasound Image Storage", "UltrasoundImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.6.2", "Enhanced US Volume Storage", "EnhancedUSVolumeStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.7", "Secondary Capture Image Storage", "SecondaryCaptureImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.7.1", "Multi-frame Single Bit Secondary Capture Image Storage", "MultiframeSingleBitSecondaryCaptureImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.7.2", "Multi-frame Grayscale Byte Secondary Capture Image Storage", "MultiframeGrayscaleByteSecondaryCaptureImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.7.3", "Multi-frame Grayscale Word Secondary Capture Image Storage", "MultiframeGrayscaleWordSecondaryCaptureImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.7.4", "Multi-frame True Color Secondary Capture Image Storage", "MultiframeTrueColorSecondaryCaptureImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.8", "Standalone Overlay Storage (Retired)", "StandaloneOverlayStorage_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9", "Standalone Curve Storage (Retired)", "StandaloneCurveStorage_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.1", "Waveform Storage - Trial (Retired)", "WaveformStorageTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.1.1", "12-lead ECG Waveform Storage", "TwelveleadECGWaveformStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.1.2", "General ECG Waveform Storage", "GeneralECGWaveformStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.1.3", "Ambulatory ECG Waveform Storage", "AmbulatoryECGWaveformStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.2.1", "Hemodynamic Waveform Storage", "HemodynamicWaveformStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.3.1", "Cardiac Electrophysiology Waveform Storage", "CardiacElectrophysiologyWaveformStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.4.1", "Basic Voice Audio Waveform Storage", "BasicVoiceAudioWaveformStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.4.2", "General Audio Waveform Storage", "GeneralAudioWaveformStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.5.1", "Arterial Pulse Waveform Storage", "ArterialPulseWaveformStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.9.6.1", "Respiratory Waveform Storage", "RespiratoryWaveformStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.10", "Standalone Modality LUT Storage (Retired)", "StandaloneModalityLUTStorage_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.11", "Standalone VOI LUT Storage (Retired)", "StandaloneVOILUTStorage_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.11.1", "Grayscale Softcopy Presentation State Storage SOP Class", "GrayscaleSoftcopyPresentationStateStorageSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.11.2", "Color Softcopy Presentation State Storage SOP Class", "ColorSoftcopyPresentationStateStorageSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.11.3", "Pseudo-Color Softcopy Presentation State Storage SOP Class", "PseudoColorSoftcopyPresentationStateStorageSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.11.4", "Blending Softcopy Presentation State Storage SOP Class", "BlendingSoftcopyPresentationStateStorageSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.11.5", "XA/XRF Grayscale Softcopy Presentation State Storage", "XAXRFGrayscaleSoftcopyPresentationStateStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.12.1", "X-Ray Angiographic Image Storage", "XRayAngiographicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.12.1.1", "Enhanced XA Image Storage", "EnhancedXAImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.12.2", "X-Ray Radiofluoroscopic Image Storage", "XRayRadiofluoroscopicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.12.2.1", "Enhanced XRF Image Storage", "EnhancedXRFImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.12.3", "X-Ray Angiographic Bi-Plane Image Storage (Retired)", "XRayAngiographicBiPlaneImageStorage_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.13.1.1", "X-Ray 3D Angiographic Image Storage", "XRay3DAngiographicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.13.1.2", "X-Ray 3D Craniofacial Image Storage", "XRay3DCraniofacialImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.13.1.3", "Breast Tomosynthesis Image Storage", "BreastTomosynthesisImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.13.1.4", "Breast Projection X-Ray Image Storage - For Presentation", "BreastProjectionXRayImageStorageForPresentation",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.13.1.5", "Breast Projection X-Ray Image Storage - For Processing", "BreastProjectionXRayImageStorageForProcessing",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.14.1", "Intravascular Optical Coherence Tomography Image Storage - For Presentation", "IntravascularOpticalCoherenceTomographyImageStorageForPresentation",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.14.2", "Intravascular Optical Coherence Tomography Image Storage - For Processing", "IntravascularOpticalCoherenceTomographyImageStorageForProcessing",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.20", "Nuclear Medicine Image Storage", "NuclearMedicineImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.30", "Parametric Map Storage", "ParametricMapStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.66", "Raw Data Storage", "RawDataStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.66.1", "Spatial Registration Storage", "SpatialRegistrationStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.66.2", "Spatial Fiducials Storage", "SpatialFiducialsStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.66.3", "Deformable Spatial Registration Storage", "DeformableSpatialRegistrationStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.66.4", "Segmentation Storage", "SegmentationStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.66.5", "Surface Segmentation Storage", "SurfaceSegmentationStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.67", "Real World Value Mapping Storage", "RealWorldValueMappingStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.68.1", "Surface Scan Mesh Storage", "SurfaceScanMeshStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.68.2", "Surface Scan Point Cloud Storage", "SurfaceScanPointCloudStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1", "VL Image Storage - Trial (Retired)", "VLImageStorageTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.2", "VL Multi-frame Image Storage - Trial (Retired)", "VLMultiframeImageStorageTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.1", "VL Endoscopic Image Storage", "VLEndoscopicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.1.1", "Video Endoscopic Image Storage", "VideoEndoscopicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.2", "VL Microscopic Image Storage", "VLMicroscopicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.2.1", "Video Microscopic Image Storage", "VideoMicroscopicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.3", "VL Slide-Coordinates Microscopic Image Storage", "VLSlideCoordinatesMicroscopicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.4", "VL Photographic Image Storage", "VLPhotographicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.4.1", "Video Photographic Image Storage", "VideoPhotographicImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.5.1", "Ophthalmic Photography 8 Bit Image Storage", "OphthalmicPhotography8BitImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.5.2", "Ophthalmic Photography 16 Bit Image Storage", "OphthalmicPhotography16BitImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.5.3", "Stereometric Relationship Storage", "StereometricRelationshipStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.5.4", "Ophthalmic Tomography Image Storage", "OphthalmicTomographyImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.5.5", "Wide Field Ophthalmic Photography Stereographic Projection Image Storage", "WideFieldOphthalmicPhotographyStereographicProjectionImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.5.6", "Wide Field Ophthalmic Photography 3D Coordinates Image Storage", "WideFieldOphthalmicPhotography3DCoordinatesImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.77.1.6", "VL Whole Slide Microscopy Image Storage", "VLWholeSlideMicroscopyImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.78.1", "Lensometry Measurements Storage", "LensometryMeasurementsStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.78.2", "Autorefraction Measurements Storage", "AutorefractionMeasurementsStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.78.3", "Keratometry Measurements Storage", "KeratometryMeasurementsStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.78.4", "Subjective Refraction Measurements Storage", "SubjectiveRefractionMeasurementsStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.78.5", "Visual Acuity Measurements Storage", "VisualAcuityMeasurementsStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.78.6", "Spectacle Prescription Report Storage", "SpectaclePrescriptionReportStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.78.7", "Ophthalmic Axial Measurements Storage", "OphthalmicAxialMeasurementsStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.78.8", "Intraocular Lens Calculations Storage", "IntraocularLensCalculationsStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.79.1", "Macular Grid Thickness and Volume Report Storage", "MacularGridThicknessandVolumeReportStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.80.1", "Ophthalmic Visual Field Static Perimetry Measurements Storage", "OphthalmicVisualFieldStaticPerimetryMeasurementsStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.81.1", "Ophthalmic Thickness Map Storage", "OphthalmicThicknessMapStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.82.1", "Corneal Topography Map Storage", "CornealTopographyMapStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.1", "Text SR Storage - Trial (Retired)", "TextSRStorageTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.2", "Audio SR Storage - Trial (Retired)", "AudioSRStorageTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.3", "Detail SR Storage - Trial (Retired)", "DetailSRStorageTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.4", "Comprehensive SR Storage - Trial (Retired)", "ComprehensiveSRStorageTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.11", "Basic Text SR Storage", "BasicTextSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.22", "Enhanced SR Storage", "EnhancedSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.33", "Comprehensive SR Storage", "ComprehensiveSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.34", "Comprehensive 3D SR Storage", "Comprehensive3DSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.35", "Extensible SR Storage", "ExtensibleSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.40", "Procedure Log Storage", "ProcedureLogStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.50", "Mammography CAD SR Storage", "MammographyCADSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.59", "Key Object Selection Document Storage", "KeyObjectSelectionDocumentStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.65", "Chest CAD SR Storage", "ChestCADSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.67", "X-Ray Radiation Dose SR Storage", "XRayRadiationDoseSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.68", "Radiopharmaceutical Radiation Dose SR Storage", "RadiopharmaceuticalRadiationDoseSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.69", "Colon CAD SR Storage", "ColonCADSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.88.70", "Implantation Plan SR Storage", "ImplantationPlanSRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.104.1", "Encapsulated PDF Storage", "EncapsulatedPDFStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.104.2", "Encapsulated CDA Storage", "EncapsulatedCDAStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.128", "Positron Emission Tomography Image Storage", "PositronEmissionTomographyImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.128.1", "Legacy Converted Enhanced PET Image Storage", "LegacyConvertedEnhancedPETImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.129", "Standalone PET Curve Storage (Retired)", "StandalonePETCurveStorage_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.130", "Enhanced PET Image Storage", "EnhancedPETImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.131", "Basic Structured Display Storage", "BasicStructuredDisplayStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.481.1", "RT Image Storage", "RTImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.481.2", "RT Dose Storage", "RTDoseStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.481.3", "RT Structure Set Storage", "RTStructureSetStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.481.4", "RT Beams Treatment Record Storage", "RTBeamsTreatmentRecordStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.481.5", "RT Plan Storage", "RTPlanStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.481.6", "RT Brachy Treatment Record Storage", "RTBrachyTreatmentRecordStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.481.7", "RT Treatment Summary Record Storage", "RTTreatmentSummaryRecordStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.481.8", "RT Ion Plan Storage", "RTIonPlanStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.481.9", "RT Ion Beams Treatment Record Storage", "RTIonBeamsTreatmentRecordStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.501.1", "DICOS CT Image Storage", "DICOSCTImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.501.2.1", "DICOS Digital X-Ray Image Storage - For Presentation", "DICOSDigitalXRayImageStorageForPresentation",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.501.2.2", "DICOS Digital X-Ray Image Storage - For Processing", "DICOSDigitalXRayImageStorageForProcessing",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.501.3", "DICOS Threat Detection Report Storage", "DICOSThreatDetectionReportStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.501.4", "DICOS 2D AIT Storage", "DICOS2DAITStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.501.5", "DICOS 3D AIT Storage", "DICOS3DAITStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.501.6", "DICOS Quadrupole Resonance (QR) Storage", "DICOSQuadrupoleResonanceQRStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.601.1", "Eddy Current Image Storage", "EddyCurrentImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.1.601.2", "Eddy Current Multi-frame Image Storage", "EddyCurrentMultiframeImageStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.1.1", "Patient Root Query/Retrieve Information Model - FIND", "PatientRootQueryRetrieveInformationModelFIND",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.1.2", "Patient Root Query/Retrieve Information Model - MOVE", "PatientRootQueryRetrieveInformationModelMOVE",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.1.3", "Patient Root Query/Retrieve Information Model - GET", "PatientRootQueryRetrieveInformationModelGET",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.2.1", "Study Root Query/Retrieve Information Model - FIND", "StudyRootQueryRetrieveInformationModelFIND",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.2.2", "Study Root Query/Retrieve Information Model - MOVE", "StudyRootQueryRetrieveInformationModelMOVE",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.2.3", "Study Root Query/Retrieve Information Model - GET", "StudyRootQueryRetrieveInformationModelGET",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.3.1", "Patient/Study Only Query/Retrieve Information Model - FIND (Retired)", "PatientStudyOnlyQueryRetrieveInformationModelFIND_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.3.2", "Patient/Study Only Query/Retrieve Information Model - MOVE (Retired)", "PatientStudyOnlyQueryRetrieveInformationModelMOVE_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.3.3", "Patient/Study Only Query/Retrieve Information Model - GET (Retired)", "PatientStudyOnlyQueryRetrieveInformationModelGET_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.4.2", "Composite Instance Root Retrieve - MOVE", "CompositeInstanceRootRetrieveMOVE",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.4.3", "Composite Instance Root Retrieve - GET", "CompositeInstanceRootRetrieveGET",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.1.2.5.3", "Composite Instance Retrieve Without Bulk Data - GET", "CompositeInstanceRetrieveWithoutBulkDataGET",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.31", "Modality Worklist Information Model - FIND", "ModalityWorklistInformationModelFIND",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.32", "General Purpose Worklist Management Meta SOP Class (Retired)", "GeneralPurposeWorklistManagementMetaSOPClass_Retired",  "Meta SOP Class" },
+        { "1.2.840.10008.5.1.4.32.1", "General Purpose Worklist Information Model - FIND (Retired)", "GeneralPurposeWorklistInformationModelFIND_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.32.2", "General Purpose Scheduled Procedure Step SOP Class (Retired)", "GeneralPurposeScheduledProcedureStepSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.32.3", "General Purpose Performed Procedure Step SOP Class (Retired)", "GeneralPurposePerformedProcedureStepSOPClass_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.33", "Instance Availability Notification SOP Class", "InstanceAvailabilityNotificationSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.1", "RT Beams Delivery Instruction Storage - Trial (Retired)", "RTBeamsDeliveryInstructionStorageTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.2", "RT Conventional Machine Verification - Trial (Retired)", "RTConventionalMachineVerificationTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.3", "RT Ion Machine Verification - Trial (Retired)", "RTIonMachineVerificationTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.4", "Unified Worklist and Procedure Step Service Class - Trial (Retired)", "UnifiedWorklistandProcedureStepServiceClassTrial_Retired",  "Service Class" },
+        { "1.2.840.10008.5.1.4.34.4.1", "Unified Procedure Step - Push SOP Class - Trial (Retired)", "UnifiedProcedureStepPushSOPClassTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.4.2", "Unified Procedure Step - Watch SOP Class - Trial (Retired)", "UnifiedProcedureStepWatchSOPClassTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.4.3", "Unified Procedure Step - Pull SOP Class - Trial (Retired)", "UnifiedProcedureStepPullSOPClassTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.4.4", "Unified Procedure Step - Event SOP Class - Trial (Retired)", "UnifiedProcedureStepEventSOPClassTrial_Retired",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.5", "UPS Global Subscription SOP Instance", "UPSGlobalSubscriptionSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.5.1.4.34.5.1", "UPS Filtered Global Subscription SOP Instance", "UPSFilteredGlobalSubscriptionSOPInstance",  "Well-known SOP Instance" },
+        { "1.2.840.10008.5.1.4.34.6", "Unified Worklist and Procedure Step Service Class", "UnifiedWorklistandProcedureStepServiceClass",  "Service Class" },
+        { "1.2.840.10008.5.1.4.34.6.1", "Unified Procedure Step - Push SOP Class", "UnifiedProcedureStepPushSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.6.2", "Unified Procedure Step - Watch SOP Class", "UnifiedProcedureStepWatchSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.6.3", "Unified Procedure Step - Pull SOP Class", "UnifiedProcedureStepPullSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.6.4", "Unified Procedure Step - Event SOP Class", "UnifiedProcedureStepEventSOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.7", "RT Beams Delivery Instruction Storage", "RTBeamsDeliveryInstructionStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.8", "RT Conventional Machine Verification", "RTConventionalMachineVerification",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.34.9", "RT Ion Machine Verification", "RTIonMachineVerification",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.37.1", "General Relevant Patient Information Query", "GeneralRelevantPatientInformationQuery",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.37.2", "Breast Imaging Relevant Patient Information Query", "BreastImagingRelevantPatientInformationQuery",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.37.3", "Cardiac Relevant Patient Information Query", "CardiacRelevantPatientInformationQuery",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.38.1", "Hanging Protocol Storage", "HangingProtocolStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.38.2", "Hanging Protocol Information Model - FIND", "HangingProtocolInformationModelFIND",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.38.3", "Hanging Protocol Information Model - MOVE", "HangingProtocolInformationModelMOVE",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.38.4", "Hanging Protocol Information Model - GET", "HangingProtocolInformationModelGET",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.39.1", "Color Palette Storage", "ColorPaletteStorage",  "Transfer" },
+        { "1.2.840.10008.5.1.4.39.2", "Color Palette Information Model - FIND", "ColorPaletteInformationModelFIND",  "Query/Retrieve" },
+        { "1.2.840.10008.5.1.4.39.3", "Color Palette Information Model - MOVE", "ColorPaletteInformationModelMOVE",  "Query/Retrieve" },
+        { "1.2.840.10008.5.1.4.39.4", "Color Palette Information Model - GET", "ColorPaletteInformationModelGET",  "Query/Retrieve" },
+        { "1.2.840.10008.5.1.4.41", "Product Characteristics Query SOP Class", "ProductCharacteristicsQuerySOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.42", "Substance Approval Query SOP Class", "SubstanceApprovalQuerySOPClass",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.43.1", "Generic Implant Template Storage", "GenericImplantTemplateStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.43.2", "Generic Implant Template Information Model - FIND", "GenericImplantTemplateInformationModelFIND",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.43.3", "Generic Implant Template Information Model - MOVE", "GenericImplantTemplateInformationModelMOVE",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.43.4", "Generic Implant Template Information Model - GET", "GenericImplantTemplateInformationModelGET",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.44.1", "Implant Assembly Template Storage", "ImplantAssemblyTemplateStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.44.2", "Implant Assembly Template Information Model - FIND", "ImplantAssemblyTemplateInformationModelFIND",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.44.3", "Implant Assembly Template Information Model - MOVE", "ImplantAssemblyTemplateInformationModelMOVE",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.44.4", "Implant Assembly Template Information Model - GET", "ImplantAssemblyTemplateInformationModelGET",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.45.1", "Implant Template Group Storage", "ImplantTemplateGroupStorage",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.45.2", "Implant Template Group Information Model - FIND", "ImplantTemplateGroupInformationModelFIND",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.45.3", "Implant Template Group Information Model - MOVE", "ImplantTemplateGroupInformationModelMOVE",  "SOP Class" },
+        { "1.2.840.10008.5.1.4.45.4", "Implant Template Group Information Model - GET", "ImplantTemplateGroupInformationModelGET",  "SOP Class" },
+        { "1.2.840.10008.7.1.1", "Native DICOM Model", "NativeDICOMModel",  "Application Hosting Model" },
+        { "1.2.840.10008.7.1.2", "Abstract Multi-Dimensional Image Model", "AbstractMultiDimensionalImageModel",  "Application Hosting Model" },
+        { "1.2.840.10008.8.1.1", "DICOM Content Mapping Resource", "DICOMContentMappingResource",  "Mapping Resource" },
+        { "1.2.840.10008.15.0.3.1", "dicomDeviceName", "dicomDeviceName",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.2", "dicomDescription", "dicomDescription",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.3", "dicomManufacturer", "dicomManufacturer",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.4", "dicomManufacturerModelName", "dicomManufacturerModelName",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.5", "dicomSoftwareVersion", "dicomSoftwareVersion",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.6", "dicomVendorData", "dicomVendorData",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.7", "dicomAETitle", "dicomAETitle",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.8", "dicomNetworkConnectionReference", "dicomNetworkConnectionReference",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.9", "dicomApplicationCluster", "dicomApplicationCluster",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.10", "dicomAssociationInitiator", "dicomAssociationInitiator",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.11", "dicomAssociationAcceptor", "dicomAssociationAcceptor",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.12", "dicomHostname", "dicomHostname",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.13", "dicomPort", "dicomPort",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.14", "dicomSOPClass", "dicomSOPClass",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.15", "dicomTransferRole", "dicomTransferRole",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.16", "dicomTransferSyntax", "dicomTransferSyntax",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.17", "dicomPrimaryDeviceType", "dicomPrimaryDeviceType",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.18", "dicomRelatedDeviceReference", "dicomRelatedDeviceReference",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.19", "dicomPreferredCalledAETitle", "dicomPreferredCalledAETitle",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.20", "dicomTLSCyphersuite", "dicomTLSCyphersuite",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.21", "dicomAuthorizedNodeCertificateReference", "dicomAuthorizedNodeCertificateReference",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.22", "dicomThisNodeCertificateReference", "dicomThisNodeCertificateReference",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.23", "dicomInstalled", "dicomInstalled",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.24", "dicomStationName", "dicomStationName",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.25", "dicomDeviceSerialNumber", "dicomDeviceSerialNumber",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.26", "dicomInstitutionName", "dicomInstitutionName",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.27", "dicomInstitutionAddress", "dicomInstitutionAddress",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.28", "dicomInstitutionDepartmentName", "dicomInstitutionDepartmentName",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.29", "dicomIssuerOfPatientID", "dicomIssuerOfPatientID",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.30", "dicomPreferredCallingAETitle", "dicomPreferredCallingAETitle",  "LDAP OID" },
+        { "1.2.840.10008.15.0.3.31", "dicomSupportedCharacterSet", "dicomSupportedCharacterSet",  "LDAP OID" },
+        { "1.2.840.10008.15.0.4.1", "dicomConfigurationRoot", "dicomConfigurationRoot",  "LDAP OID" },
+        { "1.2.840.10008.15.0.4.2", "dicomDevicesRoot", "dicomDevicesRoot",  "LDAP OID" },
+        { "1.2.840.10008.15.0.4.3", "dicomUniqueAETitlesRegistryRoot", "dicomUniqueAETitlesRegistryRoot",  "LDAP OID" },
+        { "1.2.840.10008.15.0.4.4", "dicomDevice", "dicomDevice",  "LDAP OID" },
+        { "1.2.840.10008.15.0.4.5", "dicomNetworkAE", "dicomNetworkAE",  "LDAP OID" },
+        { "1.2.840.10008.15.0.4.6", "dicomNetworkConnection", "dicomNetworkConnection",  "LDAP OID" },
+        { "1.2.840.10008.15.0.4.7", "dicomUniqueAETitle", "dicomUniqueAETitle",  "LDAP OID" },
+        { "1.2.840.10008.15.0.4.8", "dicomTransferCapability", "dicomTransferCapability",  "LDAP OID" },
+        { "1.2.840.10008.15.1.1", "Universal Coordinated Time", "UniversalCoordinatedTime",  "Synchronization Frame of Reference" },
+    };
+
+    UIDsDictionary uids_dictionary;
+    
+    unsigned long const count = sizeof(raw_entries)/sizeof(RawUIDsDictionaryEntry);
+    for(unsigned long i=0; i<count; ++i)
+    {
+        RawUIDsDictionaryEntry const & raw_entry = raw_entries[i];
+        UIDsDictionaryEntry const entry(
+            raw_entry.name, raw_entry.keyword, raw_entry.type);
+        uids_dictionary.insert(std::pair<std::string, UIDsDictionaryEntry>(raw_entry.uid, entry));
+    }
+
+    return uids_dictionary;
+}
+
+}
+
+}
+
+dcmtkpp::ElementsDictionary dcmtkpp::registry::public_dictionary=dcmtkpp::registry::create_public_dictionary();
+dcmtkpp::UIDsDictionary dcmtkpp::registry::uids_dictionary=dcmtkpp::registry::create_uids_dictionary();
\ No newline at end of file
diff --git a/src/dcmtkpp/registry.h b/src/dcmtkpp/registry.h
index 279d7d8..122216a 100644
--- a/src/dcmtkpp/registry.h
+++ b/src/dcmtkpp/registry.h
@@ -1,3865 +1,4251 @@
 /*************************************************************************
-* dcmtkpp - Copyright (C) Universite de Strasbourg
-* Distributed under the terms of the CeCILL-B license, as published by
-* the CEA-CNRS-INRIA. Refer to the LICENSE file or to
-* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-* for details.
-************************************************************************/
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
 
 #ifndef _afc7b2d7_0869_4fea_9a9b_7fe6228baca9
 #define _afc7b2d7_0869_4fea_9a9b_7fe6228baca9
 
+#include "dcmtkpp/ElementsDictionary.h"
 #include "dcmtkpp/Tag.h"
+#include "dcmtkpp/UIDsDictionary.h"
 
 namespace dcmtkpp
 {
 
 namespace registry
 {
-    Tag const CommandGroupLength(0x0000, 0x0000);
-    Tag const AffectedSOPClassUID(0x0000, 0x0002);
-    Tag const RequestedSOPClassUID(0x0000, 0x0003);
-    Tag const CommandField(0x0000, 0x0100);
-    Tag const MessageID(0x0000, 0x0110);
-    Tag const MessageIDBeingRespondedTo(0x0000, 0x0120);
-    Tag const MoveDestination(0x0000, 0x0600);
-    Tag const Priority(0x0000, 0x0700);
-    Tag const CommandDataSetType(0x0000, 0x0800);
-    Tag const Status(0x0000, 0x0900);
-    Tag const OffendingElement(0x0000, 0x0901);
-    Tag const ErrorComment(0x0000, 0x0902);
-    Tag const ErrorID(0x0000, 0x0903);
-    Tag const AffectedSOPInstanceUID(0x0000, 0x1000);
-    Tag const RequestedSOPInstanceUID(0x0000, 0x1001);
-    Tag const EventTypeID(0x0000, 0x1002);
-    Tag const AttributeIdentifierList(0x0000, 0x1005);
-    Tag const ActionTypeID(0x0000, 0x1008);
-    Tag const NumberOfRemainingSuboperations(0x0000, 0x1020);
-    Tag const NumberOfCompletedSuboperations(0x0000, 0x1021);
-    Tag const NumberOfFailedSuboperations(0x0000, 0x1022);
-    Tag const NumberOfWarningSuboperations(0x0000, 0x1023);
-    Tag const MoveOriginatorApplicationEntityTitle(0x0000, 0x1030);
-    Tag const MoveOriginatorMessageID(0x0000, 0x1031);
-    Tag const FileMetaInformationGroupLength(0x0002, 0x0000);
-    Tag const FileMetaInformationVersion(0x0002, 0x0001);
-    Tag const MediaStorageSOPClassUID(0x0002, 0x0002);
-    Tag const MediaStorageSOPInstanceUID(0x0002, 0x0003);
-    Tag const TransferSyntaxUID(0x0002, 0x0010);
-    Tag const ImplementationClassUID(0x0002, 0x0012);
-    Tag const ImplementationVersionName(0x0002, 0x0013);
-    Tag const SourceApplicationEntityTitle(0x0002, 0x0016);
-    Tag const SendingApplicationEntityTitle(0x0002, 0x0017);
-    Tag const ReceivingApplicationEntityTitle(0x0002, 0x0018);
-    Tag const PrivateInformationCreatorUID(0x0002, 0x0100);
-    Tag const PrivateInformation(0x0002, 0x0102);
-    Tag const FileSetID(0x0004, 0x1130);
-    Tag const FileSetDescriptorFileID(0x0004, 0x1141);
-    Tag const SpecificCharacterSetOfFileSetDescriptorFile(0x0004, 0x1142);
-    Tag const OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity(0x0004, 0x1200);
-    Tag const OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity(0x0004, 0x1202);
-    Tag const FileSetConsistencyFlag(0x0004, 0x1212);
-    Tag const DirectoryRecordSequence(0x0004, 0x1220);
-    Tag const OffsetOfTheNextDirectoryRecord(0x0004, 0x1400);
-    Tag const RecordInUseFlag(0x0004, 0x1410);
-    Tag const OffsetOfReferencedLowerLevelDirectoryEntity(0x0004, 0x1420);
-    Tag const DirectoryRecordType(0x0004, 0x1430);
-    Tag const PrivateRecordUID(0x0004, 0x1432);
-    Tag const ReferencedFileID(0x0004, 0x1500);
-    Tag const MRDRDirectoryRecordOffset(0x0004, 0x1504);
-    Tag const ReferencedSOPClassUIDInFile(0x0004, 0x1510);
-    Tag const ReferencedSOPInstanceUIDInFile(0x0004, 0x1511);
-    Tag const ReferencedTransferSyntaxUIDInFile(0x0004, 0x1512);
-    Tag const ReferencedRelatedGeneralSOPClassUIDInFile(0x0004, 0x151a);
-    Tag const NumberOfReferences(0x0004, 0x1600);
-    Tag const LengthToEnd(0x0008, 0x0001);
-    Tag const SpecificCharacterSet(0x0008, 0x0005);
-    Tag const LanguageCodeSequence(0x0008, 0x0006);
-    Tag const ImageType(0x0008, 0x0008);
-    Tag const RecognitionCode(0x0008, 0x0010);
-    Tag const InstanceCreationDate(0x0008, 0x0012);
-    Tag const InstanceCreationTime(0x0008, 0x0013);
-    Tag const InstanceCreatorUID(0x0008, 0x0014);
-    Tag const InstanceCoercionDateTime(0x0008, 0x0015);
-    Tag const SOPClassUID(0x0008, 0x0016);
-    Tag const SOPInstanceUID(0x0008, 0x0018);
-    Tag const RelatedGeneralSOPClassUID(0x0008, 0x001a);
-    Tag const OriginalSpecializedSOPClassUID(0x0008, 0x001b);
-    Tag const StudyDate(0x0008, 0x0020);
-    Tag const SeriesDate(0x0008, 0x0021);
-    Tag const AcquisitionDate(0x0008, 0x0022);
-    Tag const ContentDate(0x0008, 0x0023);
-    Tag const OverlayDate(0x0008, 0x0024);
-    Tag const CurveDate(0x0008, 0x0025);
-    Tag const AcquisitionDateTime(0x0008, 0x002a);
-    Tag const StudyTime(0x0008, 0x0030);
-    Tag const SeriesTime(0x0008, 0x0031);
-    Tag const AcquisitionTime(0x0008, 0x0032);
-    Tag const ContentTime(0x0008, 0x0033);
-    Tag const OverlayTime(0x0008, 0x0034);
-    Tag const CurveTime(0x0008, 0x0035);
-    Tag const DataSetType(0x0008, 0x0040);
-    Tag const DataSetSubtype(0x0008, 0x0041);
-    Tag const NuclearMedicineSeriesType(0x0008, 0x0042);
-    Tag const AccessionNumber(0x0008, 0x0050);
-    Tag const IssuerOfAccessionNumberSequence(0x0008, 0x0051);
-    Tag const QueryRetrieveLevel(0x0008, 0x0052);
-    Tag const QueryRetrieveView(0x0008, 0x0053);
-    Tag const RetrieveAETitle(0x0008, 0x0054);
-    Tag const InstanceAvailability(0x0008, 0x0056);
-    Tag const FailedSOPInstanceUIDList(0x0008, 0x0058);
-    Tag const Modality(0x0008, 0x0060);
-    Tag const ModalitiesInStudy(0x0008, 0x0061);
-    Tag const SOPClassesInStudy(0x0008, 0x0062);
-    Tag const ConversionType(0x0008, 0x0064);
-    Tag const PresentationIntentType(0x0008, 0x0068);
-    Tag const Manufacturer(0x0008, 0x0070);
-    Tag const InstitutionName(0x0008, 0x0080);
-    Tag const InstitutionAddress(0x0008, 0x0081);
-    Tag const InstitutionCodeSequence(0x0008, 0x0082);
-    Tag const ReferringPhysicianName(0x0008, 0x0090);
-    Tag const ReferringPhysicianAddress(0x0008, 0x0092);
-    Tag const ReferringPhysicianTelephoneNumbers(0x0008, 0x0094);
-    Tag const ReferringPhysicianIdentificationSequence(0x0008, 0x0096);
-    Tag const CodeValue(0x0008, 0x0100);
-    Tag const ExtendedCodeValue(0x0008, 0x0101);
-    Tag const CodingSchemeDesignator(0x0008, 0x0102);
-    Tag const CodingSchemeVersion(0x0008, 0x0103);
-    Tag const CodeMeaning(0x0008, 0x0104);
-    Tag const MappingResource(0x0008, 0x0105);
-    Tag const ContextGroupVersion(0x0008, 0x0106);
-    Tag const ContextGroupLocalVersion(0x0008, 0x0107);
-    Tag const ExtendedCodeMeaning(0x0008, 0x0108);
-    Tag const ContextGroupExtensionFlag(0x0008, 0x010b);
-    Tag const CodingSchemeUID(0x0008, 0x010c);
-    Tag const ContextGroupExtensionCreatorUID(0x0008, 0x010d);
-    Tag const ContextIdentifier(0x0008, 0x010f);
-    Tag const CodingSchemeIdentificationSequence(0x0008, 0x0110);
-    Tag const CodingSchemeRegistry(0x0008, 0x0112);
-    Tag const CodingSchemeExternalID(0x0008, 0x0114);
-    Tag const CodingSchemeName(0x0008, 0x0115);
-    Tag const CodingSchemeResponsibleOrganization(0x0008, 0x0116);
-    Tag const ContextUID(0x0008, 0x0117);
-    Tag const MappingResourceUID(0x0008, 0x0118);
-    Tag const LongCodeValue(0x0008, 0x0119);
-    Tag const URNCodeValue(0x0008, 0x0120);
-    Tag const EquivalentCodeSequence(0x0008, 0x0121);
-    Tag const TimezoneOffsetFromUTC(0x0008, 0x0201);
-    Tag const NetworkID(0x0008, 0x1000);
-    Tag const StationName(0x0008, 0x1010);
-    Tag const StudyDescription(0x0008, 0x1030);
-    Tag const ProcedureCodeSequence(0x0008, 0x1032);
-    Tag const SeriesDescription(0x0008, 0x103e);
-    Tag const SeriesDescriptionCodeSequence(0x0008, 0x103f);
-    Tag const InstitutionalDepartmentName(0x0008, 0x1040);
-    Tag const PhysiciansOfRecord(0x0008, 0x1048);
-    Tag const PhysiciansOfRecordIdentificationSequence(0x0008, 0x1049);
-    Tag const PerformingPhysicianName(0x0008, 0x1050);
-    Tag const PerformingPhysicianIdentificationSequence(0x0008, 0x1052);
-    Tag const NameOfPhysiciansReadingStudy(0x0008, 0x1060);
-    Tag const PhysiciansReadingStudyIdentificationSequence(0x0008, 0x1062);
-    Tag const OperatorsName(0x0008, 0x1070);
-    Tag const OperatorIdentificationSequence(0x0008, 0x1072);
-    Tag const AdmittingDiagnosesDescription(0x0008, 0x1080);
-    Tag const AdmittingDiagnosesCodeSequence(0x0008, 0x1084);
-    Tag const ManufacturerModelName(0x0008, 0x1090);
-    Tag const ReferencedResultsSequence(0x0008, 0x1100);
-    Tag const ReferencedStudySequence(0x0008, 0x1110);
-    Tag const ReferencedPerformedProcedureStepSequence(0x0008, 0x1111);
-    Tag const ReferencedSeriesSequence(0x0008, 0x1115);
-    Tag const ReferencedPatientSequence(0x0008, 0x1120);
-    Tag const ReferencedVisitSequence(0x0008, 0x1125);
-    Tag const ReferencedOverlaySequence(0x0008, 0x1130);
-    Tag const ReferencedStereometricInstanceSequence(0x0008, 0x1134);
-    Tag const ReferencedWaveformSequence(0x0008, 0x113a);
-    Tag const ReferencedImageSequence(0x0008, 0x1140);
-    Tag const ReferencedCurveSequence(0x0008, 0x1145);
-    Tag const ReferencedInstanceSequence(0x0008, 0x114a);
-    Tag const ReferencedRealWorldValueMappingInstanceSequence(0x0008, 0x114b);
-    Tag const ReferencedSOPClassUID(0x0008, 0x1150);
-    Tag const ReferencedSOPInstanceUID(0x0008, 0x1155);
-    Tag const SOPClassesSupported(0x0008, 0x115a);
-    Tag const ReferencedFrameNumber(0x0008, 0x1160);
-    Tag const SimpleFrameList(0x0008, 0x1161);
-    Tag const CalculatedFrameList(0x0008, 0x1162);
-    Tag const TimeRange(0x0008, 0x1163);
-    Tag const FrameExtractionSequence(0x0008, 0x1164);
-    Tag const MultiFrameSourceSOPInstanceUID(0x0008, 0x1167);
-    Tag const RetrieveURL(0x0008, 0x1190);
-    Tag const TransactionUID(0x0008, 0x1195);
-    Tag const WarningReason(0x0008, 0x1196);
-    Tag const FailureReason(0x0008, 0x1197);
-    Tag const FailedSOPSequence(0x0008, 0x1198);
-    Tag const ReferencedSOPSequence(0x0008, 0x1199);
-    Tag const StudiesContainingOtherReferencedInstancesSequence(0x0008, 0x1200);
-    Tag const RelatedSeriesSequence(0x0008, 0x1250);
-    Tag const LossyImageCompressionRetired(0x0008, 0x2110);
-    Tag const DerivationDescription(0x0008, 0x2111);
-    Tag const SourceImageSequence(0x0008, 0x2112);
-    Tag const StageName(0x0008, 0x2120);
-    Tag const StageNumber(0x0008, 0x2122);
-    Tag const NumberOfStages(0x0008, 0x2124);
-    Tag const ViewName(0x0008, 0x2127);
-    Tag const ViewNumber(0x0008, 0x2128);
-    Tag const NumberOfEventTimers(0x0008, 0x2129);
-    Tag const NumberOfViewsInStage(0x0008, 0x212a);
-    Tag const EventElapsedTimes(0x0008, 0x2130);
-    Tag const EventTimerNames(0x0008, 0x2132);
-    Tag const EventTimerSequence(0x0008, 0x2133);
-    Tag const EventTimeOffset(0x0008, 0x2134);
-    Tag const EventCodeSequence(0x0008, 0x2135);
-    Tag const StartTrim(0x0008, 0x2142);
-    Tag const StopTrim(0x0008, 0x2143);
-    Tag const RecommendedDisplayFrameRate(0x0008, 0x2144);
-    Tag const TransducerPosition(0x0008, 0x2200);
-    Tag const TransducerOrientation(0x0008, 0x2204);
-    Tag const AnatomicStructure(0x0008, 0x2208);
-    Tag const AnatomicRegionSequence(0x0008, 0x2218);
-    Tag const AnatomicRegionModifierSequence(0x0008, 0x2220);
-    Tag const PrimaryAnatomicStructureSequence(0x0008, 0x2228);
-    Tag const AnatomicStructureSpaceOrRegionSequence(0x0008, 0x2229);
-    Tag const PrimaryAnatomicStructureModifierSequence(0x0008, 0x2230);
-    Tag const TransducerPositionSequence(0x0008, 0x2240);
-    Tag const TransducerPositionModifierSequence(0x0008, 0x2242);
-    Tag const TransducerOrientationSequence(0x0008, 0x2244);
-    Tag const TransducerOrientationModifierSequence(0x0008, 0x2246);
-    Tag const AnatomicStructureSpaceOrRegionCodeSequenceTrial(0x0008, 0x2251);
-    Tag const AnatomicPortalOfEntranceCodeSequenceTrial(0x0008, 0x2253);
-    Tag const AnatomicApproachDirectionCodeSequenceTrial(0x0008, 0x2255);
-    Tag const AnatomicPerspectiveDescriptionTrial(0x0008, 0x2256);
-    Tag const AnatomicPerspectiveCodeSequenceTrial(0x0008, 0x2257);
-    Tag const AnatomicLocationOfExaminingInstrumentDescriptionTrial(0x0008, 0x2258);
-    Tag const AnatomicLocationOfExaminingInstrumentCodeSequenceTrial(0x0008, 0x2259);
-    Tag const AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial(0x0008, 0x225a);
-    Tag const OnAxisBackgroundAnatomicStructureCodeSequenceTrial(0x0008, 0x225c);
-    Tag const AlternateRepresentationSequence(0x0008, 0x3001);
-    Tag const IrradiationEventUID(0x0008, 0x3010);
-    Tag const SourceIrradiationEventSequence(0x0008, 0x3011);
-    Tag const RadiopharmaceuticalAdministrationEventUID(0x0008, 0x3012);
-    Tag const IdentifyingComments(0x0008, 0x4000);
-    Tag const FrameType(0x0008, 0x9007);
-    Tag const ReferencedImageEvidenceSequence(0x0008, 0x9092);
-    Tag const ReferencedRawDataSequence(0x0008, 0x9121);
-    Tag const CreatorVersionUID(0x0008, 0x9123);
-    Tag const DerivationImageSequence(0x0008, 0x9124);
-    Tag const SourceImageEvidenceSequence(0x0008, 0x9154);
-    Tag const PixelPresentation(0x0008, 0x9205);
-    Tag const VolumetricProperties(0x0008, 0x9206);
-    Tag const VolumeBasedCalculationTechnique(0x0008, 0x9207);
-    Tag const ComplexImageComponent(0x0008, 0x9208);
-    Tag const AcquisitionContrast(0x0008, 0x9209);
-    Tag const DerivationCodeSequence(0x0008, 0x9215);
-    Tag const ReferencedPresentationStateSequence(0x0008, 0x9237);
-    Tag const ReferencedOtherPlaneSequence(0x0008, 0x9410);
-    Tag const FrameDisplaySequence(0x0008, 0x9458);
-    Tag const RecommendedDisplayFrameRateInFloat(0x0008, 0x9459);
-    Tag const SkipFrameRangeFlag(0x0008, 0x9460);
-    Tag const PatientName(0x0010, 0x0010);
-    Tag const PatientID(0x0010, 0x0020);
-    Tag const IssuerOfPatientID(0x0010, 0x0021);
-    Tag const TypeOfPatientID(0x0010, 0x0022);
-    Tag const IssuerOfPatientIDQualifiersSequence(0x0010, 0x0024);
-    Tag const PatientBirthDate(0x0010, 0x0030);
-    Tag const PatientBirthTime(0x0010, 0x0032);
-    Tag const PatientSex(0x0010, 0x0040);
-    Tag const PatientInsurancePlanCodeSequence(0x0010, 0x0050);
-    Tag const PatientPrimaryLanguageCodeSequence(0x0010, 0x0101);
-    Tag const PatientPrimaryLanguageModifierCodeSequence(0x0010, 0x0102);
-    Tag const QualityControlSubject(0x0010, 0x0200);
-    Tag const QualityControlSubjectTypeCodeSequence(0x0010, 0x0201);
-    Tag const OtherPatientIDs(0x0010, 0x1000);
-    Tag const OtherPatientNames(0x0010, 0x1001);
-    Tag const OtherPatientIDsSequence(0x0010, 0x1002);
-    Tag const PatientBirthName(0x0010, 0x1005);
-    Tag const PatientAge(0x0010, 0x1010);
-    Tag const PatientSize(0x0010, 0x1020);
-    Tag const PatientSizeCodeSequence(0x0010, 0x1021);
-    Tag const PatientWeight(0x0010, 0x1030);
-    Tag const PatientAddress(0x0010, 0x1040);
-    Tag const InsurancePlanIdentification(0x0010, 0x1050);
-    Tag const PatientMotherBirthName(0x0010, 0x1060);
-    Tag const MilitaryRank(0x0010, 0x1080);
-    Tag const BranchOfService(0x0010, 0x1081);
-    Tag const MedicalRecordLocator(0x0010, 0x1090);
-    Tag const ReferencedPatientPhotoSequence(0x0010, 0x1100);
-    Tag const MedicalAlerts(0x0010, 0x2000);
-    Tag const Allergies(0x0010, 0x2110);
-    Tag const CountryOfResidence(0x0010, 0x2150);
-    Tag const RegionOfResidence(0x0010, 0x2152);
-    Tag const PatientTelephoneNumbers(0x0010, 0x2154);
-    Tag const EthnicGroup(0x0010, 0x2160);
-    Tag const Occupation(0x0010, 0x2180);
-    Tag const SmokingStatus(0x0010, 0x21a0);
-    Tag const AdditionalPatientHistory(0x0010, 0x21b0);
-    Tag const PregnancyStatus(0x0010, 0x21c0);
-    Tag const LastMenstrualDate(0x0010, 0x21d0);
-    Tag const PatientReligiousPreference(0x0010, 0x21f0);
-    Tag const PatientSpeciesDescription(0x0010, 0x2201);
-    Tag const PatientSpeciesCodeSequence(0x0010, 0x2202);
-    Tag const PatientSexNeutered(0x0010, 0x2203);
-    Tag const AnatomicalOrientationType(0x0010, 0x2210);
-    Tag const PatientBreedDescription(0x0010, 0x2292);
-    Tag const PatientBreedCodeSequence(0x0010, 0x2293);
-    Tag const BreedRegistrationSequence(0x0010, 0x2294);
-    Tag const BreedRegistrationNumber(0x0010, 0x2295);
-    Tag const BreedRegistryCodeSequence(0x0010, 0x2296);
-    Tag const ResponsiblePerson(0x0010, 0x2297);
-    Tag const ResponsiblePersonRole(0x0010, 0x2298);
-    Tag const ResponsibleOrganization(0x0010, 0x2299);
-    Tag const PatientComments(0x0010, 0x4000);
-    Tag const ExaminedBodyThickness(0x0010, 0x9431);
-    Tag const ClinicalTrialSponsorName(0x0012, 0x0010);
-    Tag const ClinicalTrialProtocolID(0x0012, 0x0020);
-    Tag const ClinicalTrialProtocolName(0x0012, 0x0021);
-    Tag const ClinicalTrialSiteID(0x0012, 0x0030);
-    Tag const ClinicalTrialSiteName(0x0012, 0x0031);
-    Tag const ClinicalTrialSubjectID(0x0012, 0x0040);
-    Tag const ClinicalTrialSubjectReadingID(0x0012, 0x0042);
-    Tag const ClinicalTrialTimePointID(0x0012, 0x0050);
-    Tag const ClinicalTrialTimePointDescription(0x0012, 0x0051);
-    Tag const ClinicalTrialCoordinatingCenterName(0x0012, 0x0060);
-    Tag const PatientIdentityRemoved(0x0012, 0x0062);
-    Tag const DeidentificationMethod(0x0012, 0x0063);
-    Tag const DeidentificationMethodCodeSequence(0x0012, 0x0064);
-    Tag const ClinicalTrialSeriesID(0x0012, 0x0071);
-    Tag const ClinicalTrialSeriesDescription(0x0012, 0x0072);
-    Tag const ClinicalTrialProtocolEthicsCommitteeName(0x0012, 0x0081);
-    Tag const ClinicalTrialProtocolEthicsCommitteeApprovalNumber(0x0012, 0x0082);
-    Tag const ConsentForClinicalTrialUseSequence(0x0012, 0x0083);
-    Tag const DistributionType(0x0012, 0x0084);
-    Tag const ConsentForDistributionFlag(0x0012, 0x0085);
-    Tag const CADFileFormat(0x0014, 0x0023);
-    Tag const ComponentReferenceSystem(0x0014, 0x0024);
-    Tag const ComponentManufacturingProcedure(0x0014, 0x0025);
-    Tag const ComponentManufacturer(0x0014, 0x0028);
-    Tag const MaterialThickness(0x0014, 0x0030);
-    Tag const MaterialPipeDiameter(0x0014, 0x0032);
-    Tag const MaterialIsolationDiameter(0x0014, 0x0034);
-    Tag const MaterialGrade(0x0014, 0x0042);
-    Tag const MaterialPropertiesDescription(0x0014, 0x0044);
-    Tag const MaterialPropertiesFileFormatRetired(0x0014, 0x0045);
-    Tag const MaterialNotes(0x0014, 0x0046);
-    Tag const ComponentShape(0x0014, 0x0050);
-    Tag const CurvatureType(0x0014, 0x0052);
-    Tag const OuterDiameter(0x0014, 0x0054);
-    Tag const InnerDiameter(0x0014, 0x0056);
-    Tag const ActualEnvironmentalConditions(0x0014, 0x1010);
-    Tag const ExpiryDate(0x0014, 0x1020);
-    Tag const EnvironmentalConditions(0x0014, 0x1040);
-    Tag const EvaluatorSequence(0x0014, 0x2002);
-    Tag const EvaluatorNumber(0x0014, 0x2004);
-    Tag const EvaluatorName(0x0014, 0x2006);
-    Tag const EvaluationAttempt(0x0014, 0x2008);
-    Tag const IndicationSequence(0x0014, 0x2012);
-    Tag const IndicationNumber(0x0014, 0x2014);
-    Tag const IndicationLabel(0x0014, 0x2016);
-    Tag const IndicationDescription(0x0014, 0x2018);
-    Tag const IndicationType(0x0014, 0x201a);
-    Tag const IndicationDisposition(0x0014, 0x201c);
-    Tag const IndicationROISequence(0x0014, 0x201e);
-    Tag const IndicationPhysicalPropertySequence(0x0014, 0x2030);
-    Tag const PropertyLabel(0x0014, 0x2032);
-    Tag const CoordinateSystemNumberOfAxes(0x0014, 0x2202);
-    Tag const CoordinateSystemAxesSequence(0x0014, 0x2204);
-    Tag const CoordinateSystemAxisDescription(0x0014, 0x2206);
-    Tag const CoordinateSystemDataSetMapping(0x0014, 0x2208);
-    Tag const CoordinateSystemAxisNumber(0x0014, 0x220a);
-    Tag const CoordinateSystemAxisType(0x0014, 0x220c);
-    Tag const CoordinateSystemAxisUnits(0x0014, 0x220e);
-    Tag const CoordinateSystemAxisValues(0x0014, 0x2210);
-    Tag const CoordinateSystemTransformSequence(0x0014, 0x2220);
-    Tag const TransformDescription(0x0014, 0x2222);
-    Tag const TransformNumberOfAxes(0x0014, 0x2224);
-    Tag const TransformOrderOfAxes(0x0014, 0x2226);
-    Tag const TransformedAxisUnits(0x0014, 0x2228);
-    Tag const CoordinateSystemTransformRotationAndScaleMatrix(0x0014, 0x222a);
-    Tag const CoordinateSystemTransformTranslationMatrix(0x0014, 0x222c);
-    Tag const InternalDetectorFrameTime(0x0014, 0x3011);
-    Tag const NumberOfFramesIntegrated(0x0014, 0x3012);
-    Tag const DetectorTemperatureSequence(0x0014, 0x3020);
-    Tag const SensorName(0x0014, 0x3022);
-    Tag const HorizontalOffsetOfSensor(0x0014, 0x3024);
-    Tag const VerticalOffsetOfSensor(0x0014, 0x3026);
-    Tag const SensorTemperature(0x0014, 0x3028);
-    Tag const DarkCurrentSequence(0x0014, 0x3040);
-    Tag const DarkCurrentCounts(0x0014, 0x3050);
-    Tag const GainCorrectionReferenceSequence(0x0014, 0x3060);
-    Tag const AirCounts(0x0014, 0x3070);
-    Tag const KVUsedInGainCalibration(0x0014, 0x3071);
-    Tag const MAUsedInGainCalibration(0x0014, 0x3072);
-    Tag const NumberOfFramesUsedForIntegration(0x0014, 0x3073);
-    Tag const FilterMaterialUsedInGainCalibration(0x0014, 0x3074);
-    Tag const FilterThicknessUsedInGainCalibration(0x0014, 0x3075);
-    Tag const DateOfGainCalibration(0x0014, 0x3076);
-    Tag const TimeOfGainCalibration(0x0014, 0x3077);
-    Tag const BadPixelImage(0x0014, 0x3080);
-    Tag const CalibrationNotes(0x0014, 0x3099);
-    Tag const PulserEquipmentSequence(0x0014, 0x4002);
-    Tag const PulserType(0x0014, 0x4004);
-    Tag const PulserNotes(0x0014, 0x4006);
-    Tag const ReceiverEquipmentSequence(0x0014, 0x4008);
-    Tag const AmplifierType(0x0014, 0x400a);
-    Tag const ReceiverNotes(0x0014, 0x400c);
-    Tag const PreAmplifierEquipmentSequence(0x0014, 0x400e);
-    Tag const PreAmplifierNotes(0x0014, 0x400f);
-    Tag const TransmitTransducerSequence(0x0014, 0x4010);
-    Tag const ReceiveTransducerSequence(0x0014, 0x4011);
-    Tag const NumberOfElements(0x0014, 0x4012);
-    Tag const ElementShape(0x0014, 0x4013);
-    Tag const ElementDimensionA(0x0014, 0x4014);
-    Tag const ElementDimensionB(0x0014, 0x4015);
-    Tag const ElementPitchA(0x0014, 0x4016);
-    Tag const MeasuredBeamDimensionA(0x0014, 0x4017);
-    Tag const MeasuredBeamDimensionB(0x0014, 0x4018);
-    Tag const LocationOfMeasuredBeamDiameter(0x0014, 0x4019);
-    Tag const NominalFrequency(0x0014, 0x401a);
-    Tag const MeasuredCenterFrequency(0x0014, 0x401b);
-    Tag const MeasuredBandwidth(0x0014, 0x401c);
-    Tag const ElementPitchB(0x0014, 0x401d);
-    Tag const PulserSettingsSequence(0x0014, 0x4020);
-    Tag const PulseWidth(0x0014, 0x4022);
-    Tag const ExcitationFrequency(0x0014, 0x4024);
-    Tag const ModulationType(0x0014, 0x4026);
-    Tag const Damping(0x0014, 0x4028);
-    Tag const ReceiverSettingsSequence(0x0014, 0x4030);
-    Tag const AcquiredSoundpathLength(0x0014, 0x4031);
-    Tag const AcquisitionCompressionType(0x0014, 0x4032);
-    Tag const AcquisitionSampleSize(0x0014, 0x4033);
-    Tag const RectifierSmoothing(0x0014, 0x4034);
-    Tag const DACSequence(0x0014, 0x4035);
-    Tag const DACType(0x0014, 0x4036);
-    Tag const DACGainPoints(0x0014, 0x4038);
-    Tag const DACTimePoints(0x0014, 0x403a);
-    Tag const DACAmplitude(0x0014, 0x403c);
-    Tag const PreAmplifierSettingsSequence(0x0014, 0x4040);
-    Tag const TransmitTransducerSettingsSequence(0x0014, 0x4050);
-    Tag const ReceiveTransducerSettingsSequence(0x0014, 0x4051);
-    Tag const IncidentAngle(0x0014, 0x4052);
-    Tag const CouplingTechnique(0x0014, 0x4054);
-    Tag const CouplingMedium(0x0014, 0x4056);
-    Tag const CouplingVelocity(0x0014, 0x4057);
-    Tag const ProbeCenterLocationX(0x0014, 0x4058);
-    Tag const ProbeCenterLocationZ(0x0014, 0x4059);
-    Tag const SoundPathLength(0x0014, 0x405a);
-    Tag const DelayLawIdentifier(0x0014, 0x405c);
-    Tag const GateSettingsSequence(0x0014, 0x4060);
-    Tag const GateThreshold(0x0014, 0x4062);
-    Tag const VelocityOfSound(0x0014, 0x4064);
-    Tag const CalibrationSettingsSequence(0x0014, 0x4070);
-    Tag const CalibrationProcedure(0x0014, 0x4072);
-    Tag const ProcedureVersion(0x0014, 0x4074);
-    Tag const ProcedureCreationDate(0x0014, 0x4076);
-    Tag const ProcedureExpirationDate(0x0014, 0x4078);
-    Tag const ProcedureLastModifiedDate(0x0014, 0x407a);
-    Tag const CalibrationTime(0x0014, 0x407c);
-    Tag const CalibrationDate(0x0014, 0x407e);
-    Tag const ProbeDriveEquipmentSequence(0x0014, 0x4080);
-    Tag const DriveType(0x0014, 0x4081);
-    Tag const ProbeDriveNotes(0x0014, 0x4082);
-    Tag const DriveProbeSequence(0x0014, 0x4083);
-    Tag const ProbeInductance(0x0014, 0x4084);
-    Tag const ProbeResistance(0x0014, 0x4085);
-    Tag const ReceiveProbeSequence(0x0014, 0x4086);
-    Tag const ProbeDriveSettingsSequence(0x0014, 0x4087);
-    Tag const BridgeResistors(0x0014, 0x4088);
-    Tag const ProbeOrientationAngle(0x0014, 0x4089);
-    Tag const UserSelectedGainY(0x0014, 0x408b);
-    Tag const UserSelectedPhase(0x0014, 0x408c);
-    Tag const UserSelectedOffsetX(0x0014, 0x408d);
-    Tag const UserSelectedOffsetY(0x0014, 0x408e);
-    Tag const ChannelSettingsSequence(0x0014, 0x4091);
-    Tag const ChannelThreshold(0x0014, 0x4092);
-    Tag const ScannerSettingsSequence(0x0014, 0x409a);
-    Tag const ScanProcedure(0x0014, 0x409b);
-    Tag const TranslationRateX(0x0014, 0x409c);
-    Tag const TranslationRateY(0x0014, 0x409d);
-    Tag const ChannelOverlap(0x0014, 0x409f);
-    Tag const ImageQualityIndicatorType(0x0014, 0x40a0);
-    Tag const ImageQualityIndicatorMaterial(0x0014, 0x40a1);
-    Tag const ImageQualityIndicatorSize(0x0014, 0x40a2);
-    Tag const LINACEnergy(0x0014, 0x5002);
-    Tag const LINACOutput(0x0014, 0x5004);
-    Tag const ActiveAperture(0x0014, 0x5100);
-    Tag const TotalAperture(0x0014, 0x5101);
-    Tag const ApertureElevation(0x0014, 0x5102);
-    Tag const MainLobeAngle(0x0014, 0x5103);
-    Tag const MainRoofAngle(0x0014, 0x5104);
-    Tag const ConnectorType(0x0014, 0x5105);
-    Tag const WedgeModelNumber(0x0014, 0x5106);
-    Tag const WedgeAngleFloat(0x0014, 0x5107);
-    Tag const WedgeRoofAngle(0x0014, 0x5108);
-    Tag const WedgeElement1Position(0x0014, 0x5109);
-    Tag const WedgeMaterialVelocity(0x0014, 0x510a);
-    Tag const WedgeMaterial(0x0014, 0x510b);
-    Tag const WedgeOffsetZ(0x0014, 0x510c);
-    Tag const WedgeOriginOffsetX(0x0014, 0x510d);
-    Tag const WedgeTimeDelay(0x0014, 0x510e);
-    Tag const WedgeName(0x0014, 0x510f);
-    Tag const WedgeManufacturerName(0x0014, 0x5110);
-    Tag const WedgeDescription(0x0014, 0x5111);
-    Tag const NominalBeamAngle(0x0014, 0x5112);
-    Tag const WedgeOffsetX(0x0014, 0x5113);
-    Tag const WedgeOffsetY(0x0014, 0x5114);
-    Tag const WedgeTotalLength(0x0014, 0x5115);
-    Tag const WedgeInContactLength(0x0014, 0x5116);
-    Tag const WedgeFrontGap(0x0014, 0x5117);
-    Tag const WedgeTotalHeight(0x0014, 0x5118);
-    Tag const WedgeFrontHeight(0x0014, 0x5119);
-    Tag const WedgeRearHeight(0x0014, 0x511a);
-    Tag const WedgeTotalWidth(0x0014, 0x511b);
-    Tag const WedgeInContactWidth(0x0014, 0x511c);
-    Tag const WedgeChamferHeight(0x0014, 0x511d);
-    Tag const WedgeCurve(0x0014, 0x511e);
-    Tag const RadiusAlongWedge(0x0014, 0x511f);
-    Tag const ContrastBolusAgent(0x0018, 0x0010);
-    Tag const ContrastBolusAgentSequence(0x0018, 0x0012);
-    Tag const ContrastBolusT1Relaxivity(0x0018, 0x0013);
-    Tag const ContrastBolusAdministrationRouteSequence(0x0018, 0x0014);
-    Tag const BodyPartExamined(0x0018, 0x0015);
-    Tag const ScanningSequence(0x0018, 0x0020);
-    Tag const SequenceVariant(0x0018, 0x0021);
-    Tag const ScanOptions(0x0018, 0x0022);
-    Tag const MRAcquisitionType(0x0018, 0x0023);
-    Tag const SequenceName(0x0018, 0x0024);
-    Tag const AngioFlag(0x0018, 0x0025);
-    Tag const InterventionDrugInformationSequence(0x0018, 0x0026);
-    Tag const InterventionDrugStopTime(0x0018, 0x0027);
-    Tag const InterventionDrugDose(0x0018, 0x0028);
-    Tag const InterventionDrugCodeSequence(0x0018, 0x0029);
-    Tag const AdditionalDrugSequence(0x0018, 0x002a);
-    Tag const Radionuclide(0x0018, 0x0030);
-    Tag const Radiopharmaceutical(0x0018, 0x0031);
-    Tag const EnergyWindowCenterline(0x0018, 0x0032);
-    Tag const EnergyWindowTotalWidth(0x0018, 0x0033);
-    Tag const InterventionDrugName(0x0018, 0x0034);
-    Tag const InterventionDrugStartTime(0x0018, 0x0035);
-    Tag const InterventionSequence(0x0018, 0x0036);
-    Tag const TherapyType(0x0018, 0x0037);
-    Tag const InterventionStatus(0x0018, 0x0038);
-    Tag const TherapyDescription(0x0018, 0x0039);
-    Tag const InterventionDescription(0x0018, 0x003a);
-    Tag const CineRate(0x0018, 0x0040);
-    Tag const InitialCineRunState(0x0018, 0x0042);
-    Tag const SliceThickness(0x0018, 0x0050);
-    Tag const KVP(0x0018, 0x0060);
-    Tag const CountsAccumulated(0x0018, 0x0070);
-    Tag const AcquisitionTerminationCondition(0x0018, 0x0071);
-    Tag const EffectiveDuration(0x0018, 0x0072);
-    Tag const AcquisitionStartCondition(0x0018, 0x0073);
-    Tag const AcquisitionStartConditionData(0x0018, 0x0074);
-    Tag const AcquisitionTerminationConditionData(0x0018, 0x0075);
-    Tag const RepetitionTime(0x0018, 0x0080);
-    Tag const EchoTime(0x0018, 0x0081);
-    Tag const InversionTime(0x0018, 0x0082);
-    Tag const NumberOfAverages(0x0018, 0x0083);
-    Tag const ImagingFrequency(0x0018, 0x0084);
-    Tag const ImagedNucleus(0x0018, 0x0085);
-    Tag const EchoNumbers(0x0018, 0x0086);
-    Tag const MagneticFieldStrength(0x0018, 0x0087);
-    Tag const SpacingBetweenSlices(0x0018, 0x0088);
-    Tag const NumberOfPhaseEncodingSteps(0x0018, 0x0089);
-    Tag const DataCollectionDiameter(0x0018, 0x0090);
-    Tag const EchoTrainLength(0x0018, 0x0091);
-    Tag const PercentSampling(0x0018, 0x0093);
-    Tag const PercentPhaseFieldOfView(0x0018, 0x0094);
-    Tag const PixelBandwidth(0x0018, 0x0095);
-    Tag const DeviceSerialNumber(0x0018, 0x1000);
-    Tag const DeviceUID(0x0018, 0x1002);
-    Tag const DeviceID(0x0018, 0x1003);
-    Tag const PlateID(0x0018, 0x1004);
-    Tag const GeneratorID(0x0018, 0x1005);
-    Tag const GridID(0x0018, 0x1006);
-    Tag const CassetteID(0x0018, 0x1007);
-    Tag const GantryID(0x0018, 0x1008);
-    Tag const SecondaryCaptureDeviceID(0x0018, 0x1010);
-    Tag const HardcopyCreationDeviceID(0x0018, 0x1011);
-    Tag const DateOfSecondaryCapture(0x0018, 0x1012);
-    Tag const TimeOfSecondaryCapture(0x0018, 0x1014);
-    Tag const SecondaryCaptureDeviceManufacturer(0x0018, 0x1016);
-    Tag const HardcopyDeviceManufacturer(0x0018, 0x1017);
-    Tag const SecondaryCaptureDeviceManufacturerModelName(0x0018, 0x1018);
-    Tag const SecondaryCaptureDeviceSoftwareVersions(0x0018, 0x1019);
-    Tag const HardcopyDeviceSoftwareVersion(0x0018, 0x101a);
-    Tag const HardcopyDeviceManufacturerModelName(0x0018, 0x101b);
-    Tag const SoftwareVersions(0x0018, 0x1020);
-    Tag const VideoImageFormatAcquired(0x0018, 0x1022);
-    Tag const DigitalImageFormatAcquired(0x0018, 0x1023);
-    Tag const ProtocolName(0x0018, 0x1030);
-    Tag const ContrastBolusRoute(0x0018, 0x1040);
-    Tag const ContrastBolusVolume(0x0018, 0x1041);
-    Tag const ContrastBolusStartTime(0x0018, 0x1042);
-    Tag const ContrastBolusStopTime(0x0018, 0x1043);
-    Tag const ContrastBolusTotalDose(0x0018, 0x1044);
-    Tag const SyringeCounts(0x0018, 0x1045);
-    Tag const ContrastFlowRate(0x0018, 0x1046);
-    Tag const ContrastFlowDuration(0x0018, 0x1047);
-    Tag const ContrastBolusIngredient(0x0018, 0x1048);
-    Tag const ContrastBolusIngredientConcentration(0x0018, 0x1049);
-    Tag const SpatialResolution(0x0018, 0x1050);
-    Tag const TriggerTime(0x0018, 0x1060);
-    Tag const TriggerSourceOrType(0x0018, 0x1061);
-    Tag const NominalInterval(0x0018, 0x1062);
-    Tag const FrameTime(0x0018, 0x1063);
-    Tag const CardiacFramingType(0x0018, 0x1064);
-    Tag const FrameTimeVector(0x0018, 0x1065);
-    Tag const FrameDelay(0x0018, 0x1066);
-    Tag const ImageTriggerDelay(0x0018, 0x1067);
-    Tag const MultiplexGroupTimeOffset(0x0018, 0x1068);
-    Tag const TriggerTimeOffset(0x0018, 0x1069);
-    Tag const SynchronizationTrigger(0x0018, 0x106a);
-    Tag const SynchronizationChannel(0x0018, 0x106c);
-    Tag const TriggerSamplePosition(0x0018, 0x106e);
-    Tag const RadiopharmaceuticalRoute(0x0018, 0x1070);
-    Tag const RadiopharmaceuticalVolume(0x0018, 0x1071);
-    Tag const RadiopharmaceuticalStartTime(0x0018, 0x1072);
-    Tag const RadiopharmaceuticalStopTime(0x0018, 0x1073);
-    Tag const RadionuclideTotalDose(0x0018, 0x1074);
-    Tag const RadionuclideHalfLife(0x0018, 0x1075);
-    Tag const RadionuclidePositronFraction(0x0018, 0x1076);
-    Tag const RadiopharmaceuticalSpecificActivity(0x0018, 0x1077);
-    Tag const RadiopharmaceuticalStartDateTime(0x0018, 0x1078);
-    Tag const RadiopharmaceuticalStopDateTime(0x0018, 0x1079);
-    Tag const BeatRejectionFlag(0x0018, 0x1080);
-    Tag const LowRRValue(0x0018, 0x1081);
-    Tag const HighRRValue(0x0018, 0x1082);
-    Tag const IntervalsAcquired(0x0018, 0x1083);
-    Tag const IntervalsRejected(0x0018, 0x1084);
-    Tag const PVCRejection(0x0018, 0x1085);
-    Tag const SkipBeats(0x0018, 0x1086);
-    Tag const HeartRate(0x0018, 0x1088);
-    Tag const CardiacNumberOfImages(0x0018, 0x1090);
-    Tag const TriggerWindow(0x0018, 0x1094);
-    Tag const ReconstructionDiameter(0x0018, 0x1100);
-    Tag const DistanceSourceToDetector(0x0018, 0x1110);
-    Tag const DistanceSourceToPatient(0x0018, 0x1111);
-    Tag const EstimatedRadiographicMagnificationFactor(0x0018, 0x1114);
-    Tag const GantryDetectorTilt(0x0018, 0x1120);
-    Tag const GantryDetectorSlew(0x0018, 0x1121);
-    Tag const TableHeight(0x0018, 0x1130);
-    Tag const TableTraverse(0x0018, 0x1131);
-    Tag const TableMotion(0x0018, 0x1134);
-    Tag const TableVerticalIncrement(0x0018, 0x1135);
-    Tag const TableLateralIncrement(0x0018, 0x1136);
-    Tag const TableLongitudinalIncrement(0x0018, 0x1137);
-    Tag const TableAngle(0x0018, 0x1138);
-    Tag const TableType(0x0018, 0x113a);
-    Tag const RotationDirection(0x0018, 0x1140);
-    Tag const AngularPosition(0x0018, 0x1141);
-    Tag const RadialPosition(0x0018, 0x1142);
-    Tag const ScanArc(0x0018, 0x1143);
-    Tag const AngularStep(0x0018, 0x1144);
-    Tag const CenterOfRotationOffset(0x0018, 0x1145);
-    Tag const RotationOffset(0x0018, 0x1146);
-    Tag const FieldOfViewShape(0x0018, 0x1147);
-    Tag const FieldOfViewDimensions(0x0018, 0x1149);
-    Tag const ExposureTime(0x0018, 0x1150);
-    Tag const XRayTubeCurrent(0x0018, 0x1151);
-    Tag const Exposure(0x0018, 0x1152);
-    Tag const ExposureInuAs(0x0018, 0x1153);
-    Tag const AveragePulseWidth(0x0018, 0x1154);
-    Tag const RadiationSetting(0x0018, 0x1155);
-    Tag const RectificationType(0x0018, 0x1156);
-    Tag const RadiationMode(0x0018, 0x115a);
-    Tag const ImageAndFluoroscopyAreaDoseProduct(0x0018, 0x115e);
-    Tag const FilterType(0x0018, 0x1160);
-    Tag const TypeOfFilters(0x0018, 0x1161);
-    Tag const IntensifierSize(0x0018, 0x1162);
-    Tag const ImagerPixelSpacing(0x0018, 0x1164);
-    Tag const Grid(0x0018, 0x1166);
-    Tag const GeneratorPower(0x0018, 0x1170);
-    Tag const CollimatorGridName(0x0018, 0x1180);
-    Tag const CollimatorType(0x0018, 0x1181);
-    Tag const FocalDistance(0x0018, 0x1182);
-    Tag const XFocusCenter(0x0018, 0x1183);
-    Tag const YFocusCenter(0x0018, 0x1184);
-    Tag const FocalSpots(0x0018, 0x1190);
-    Tag const AnodeTargetMaterial(0x0018, 0x1191);
-    Tag const BodyPartThickness(0x0018, 0x11a0);
-    Tag const CompressionForce(0x0018, 0x11a2);
-    Tag const PaddleDescription(0x0018, 0x11a4);
-    Tag const DateOfLastCalibration(0x0018, 0x1200);
-    Tag const TimeOfLastCalibration(0x0018, 0x1201);
-    Tag const DateTimeOfLastCalibration(0x0018, 0x1202);
-    Tag const ConvolutionKernel(0x0018, 0x1210);
-    Tag const UpperLowerPixelValues(0x0018, 0x1240);
-    Tag const ActualFrameDuration(0x0018, 0x1242);
-    Tag const CountRate(0x0018, 0x1243);
-    Tag const PreferredPlaybackSequencing(0x0018, 0x1244);
-    Tag const ReceiveCoilName(0x0018, 0x1250);
-    Tag const TransmitCoilName(0x0018, 0x1251);
-    Tag const PlateType(0x0018, 0x1260);
-    Tag const PhosphorType(0x0018, 0x1261);
-    Tag const ScanVelocity(0x0018, 0x1300);
-    Tag const WholeBodyTechnique(0x0018, 0x1301);
-    Tag const ScanLength(0x0018, 0x1302);
-    Tag const AcquisitionMatrix(0x0018, 0x1310);
-    Tag const InPlanePhaseEncodingDirection(0x0018, 0x1312);
-    Tag const FlipAngle(0x0018, 0x1314);
-    Tag const VariableFlipAngleFlag(0x0018, 0x1315);
-    Tag const SAR(0x0018, 0x1316);
-    Tag const dBdt(0x0018, 0x1318);
-    Tag const AcquisitionDeviceProcessingDescription(0x0018, 0x1400);
-    Tag const AcquisitionDeviceProcessingCode(0x0018, 0x1401);
-    Tag const CassetteOrientation(0x0018, 0x1402);
-    Tag const CassetteSize(0x0018, 0x1403);
-    Tag const ExposuresOnPlate(0x0018, 0x1404);
-    Tag const RelativeXRayExposure(0x0018, 0x1405);
-    Tag const ExposureIndex(0x0018, 0x1411);
-    Tag const TargetExposureIndex(0x0018, 0x1412);
-    Tag const DeviationIndex(0x0018, 0x1413);
-    Tag const ColumnAngulation(0x0018, 0x1450);
-    Tag const TomoLayerHeight(0x0018, 0x1460);
-    Tag const TomoAngle(0x0018, 0x1470);
-    Tag const TomoTime(0x0018, 0x1480);
-    Tag const TomoType(0x0018, 0x1490);
-    Tag const TomoClass(0x0018, 0x1491);
-    Tag const NumberOfTomosynthesisSourceImages(0x0018, 0x1495);
-    Tag const PositionerMotion(0x0018, 0x1500);
-    Tag const PositionerType(0x0018, 0x1508);
-    Tag const PositionerPrimaryAngle(0x0018, 0x1510);
-    Tag const PositionerSecondaryAngle(0x0018, 0x1511);
-    Tag const PositionerPrimaryAngleIncrement(0x0018, 0x1520);
-    Tag const PositionerSecondaryAngleIncrement(0x0018, 0x1521);
-    Tag const DetectorPrimaryAngle(0x0018, 0x1530);
-    Tag const DetectorSecondaryAngle(0x0018, 0x1531);
-    Tag const ShutterShape(0x0018, 0x1600);
-    Tag const ShutterLeftVerticalEdge(0x0018, 0x1602);
-    Tag const ShutterRightVerticalEdge(0x0018, 0x1604);
-    Tag const ShutterUpperHorizontalEdge(0x0018, 0x1606);
-    Tag const ShutterLowerHorizontalEdge(0x0018, 0x1608);
-    Tag const CenterOfCircularShutter(0x0018, 0x1610);
-    Tag const RadiusOfCircularShutter(0x0018, 0x1612);
-    Tag const VerticesOfThePolygonalShutter(0x0018, 0x1620);
-    Tag const ShutterPresentationValue(0x0018, 0x1622);
-    Tag const ShutterOverlayGroup(0x0018, 0x1623);
-    Tag const ShutterPresentationColorCIELabValue(0x0018, 0x1624);
-    Tag const CollimatorShape(0x0018, 0x1700);
-    Tag const CollimatorLeftVerticalEdge(0x0018, 0x1702);
-    Tag const CollimatorRightVerticalEdge(0x0018, 0x1704);
-    Tag const CollimatorUpperHorizontalEdge(0x0018, 0x1706);
-    Tag const CollimatorLowerHorizontalEdge(0x0018, 0x1708);
-    Tag const CenterOfCircularCollimator(0x0018, 0x1710);
-    Tag const RadiusOfCircularCollimator(0x0018, 0x1712);
-    Tag const VerticesOfThePolygonalCollimator(0x0018, 0x1720);
-    Tag const AcquisitionTimeSynchronized(0x0018, 0x1800);
-    Tag const TimeSource(0x0018, 0x1801);
-    Tag const TimeDistributionProtocol(0x0018, 0x1802);
-    Tag const NTPSourceAddress(0x0018, 0x1803);
-    Tag const PageNumberVector(0x0018, 0x2001);
-    Tag const FrameLabelVector(0x0018, 0x2002);
-    Tag const FramePrimaryAngleVector(0x0018, 0x2003);
-    Tag const FrameSecondaryAngleVector(0x0018, 0x2004);
-    Tag const SliceLocationVector(0x0018, 0x2005);
-    Tag const DisplayWindowLabelVector(0x0018, 0x2006);
-    Tag const NominalScannedPixelSpacing(0x0018, 0x2010);
-    Tag const DigitizingDeviceTransportDirection(0x0018, 0x2020);
-    Tag const RotationOfScannedFilm(0x0018, 0x2030);
-    Tag const BiopsyTargetSequence(0x0018, 0x2041);
-    Tag const TargetUID(0x0018, 0x2042);
-    Tag const LocalizingCursorPosition(0x0018, 0x2043);
-    Tag const CalculatedTargetPosition(0x0018, 0x2044);
-    Tag const TargetLabel(0x0018, 0x2045);
-    Tag const DisplayedZValue(0x0018, 0x2046);
-    Tag const IVUSAcquisition(0x0018, 0x3100);
-    Tag const IVUSPullbackRate(0x0018, 0x3101);
-    Tag const IVUSGatedRate(0x0018, 0x3102);
-    Tag const IVUSPullbackStartFrameNumber(0x0018, 0x3103);
-    Tag const IVUSPullbackStopFrameNumber(0x0018, 0x3104);
-    Tag const LesionNumber(0x0018, 0x3105);
-    Tag const AcquisitionComments(0x0018, 0x4000);
-    Tag const OutputPower(0x0018, 0x5000);
-    Tag const TransducerData(0x0018, 0x5010);
-    Tag const FocusDepth(0x0018, 0x5012);
-    Tag const ProcessingFunction(0x0018, 0x5020);
-    Tag const PostprocessingFunction(0x0018, 0x5021);
-    Tag const MechanicalIndex(0x0018, 0x5022);
-    Tag const BoneThermalIndex(0x0018, 0x5024);
-    Tag const CranialThermalIndex(0x0018, 0x5026);
-    Tag const SoftTissueThermalIndex(0x0018, 0x5027);
-    Tag const SoftTissueFocusThermalIndex(0x0018, 0x5028);
-    Tag const SoftTissueSurfaceThermalIndex(0x0018, 0x5029);
-    Tag const DynamicRange(0x0018, 0x5030);
-    Tag const TotalGain(0x0018, 0x5040);
-    Tag const DepthOfScanField(0x0018, 0x5050);
-    Tag const PatientPosition(0x0018, 0x5100);
-    Tag const ViewPosition(0x0018, 0x5101);
-    Tag const ProjectionEponymousNameCodeSequence(0x0018, 0x5104);
-    Tag const ImageTransformationMatrix(0x0018, 0x5210);
-    Tag const ImageTranslationVector(0x0018, 0x5212);
-    Tag const Sensitivity(0x0018, 0x6000);
-    Tag const SequenceOfUltrasoundRegions(0x0018, 0x6011);
-    Tag const RegionSpatialFormat(0x0018, 0x6012);
-    Tag const RegionDataType(0x0018, 0x6014);
-    Tag const RegionFlags(0x0018, 0x6016);
-    Tag const RegionLocationMinX0(0x0018, 0x6018);
-    Tag const RegionLocationMinY0(0x0018, 0x601a);
-    Tag const RegionLocationMaxX1(0x0018, 0x601c);
-    Tag const RegionLocationMaxY1(0x0018, 0x601e);
-    Tag const ReferencePixelX0(0x0018, 0x6020);
-    Tag const ReferencePixelY0(0x0018, 0x6022);
-    Tag const PhysicalUnitsXDirection(0x0018, 0x6024);
-    Tag const PhysicalUnitsYDirection(0x0018, 0x6026);
-    Tag const ReferencePixelPhysicalValueX(0x0018, 0x6028);
-    Tag const ReferencePixelPhysicalValueY(0x0018, 0x602a);
-    Tag const PhysicalDeltaX(0x0018, 0x602c);
-    Tag const PhysicalDeltaY(0x0018, 0x602e);
-    Tag const TransducerFrequency(0x0018, 0x6030);
-    Tag const TransducerType(0x0018, 0x6031);
-    Tag const PulseRepetitionFrequency(0x0018, 0x6032);
-    Tag const DopplerCorrectionAngle(0x0018, 0x6034);
-    Tag const SteeringAngle(0x0018, 0x6036);
-    Tag const DopplerSampleVolumeXPositionRetired(0x0018, 0x6038);
-    Tag const DopplerSampleVolumeXPosition(0x0018, 0x6039);
-    Tag const DopplerSampleVolumeYPositionRetired(0x0018, 0x603a);
-    Tag const DopplerSampleVolumeYPosition(0x0018, 0x603b);
-    Tag const TMLinePositionX0Retired(0x0018, 0x603c);
-    Tag const TMLinePositionX0(0x0018, 0x603d);
-    Tag const TMLinePositionY0Retired(0x0018, 0x603e);
-    Tag const TMLinePositionY0(0x0018, 0x603f);
-    Tag const TMLinePositionX1Retired(0x0018, 0x6040);
-    Tag const TMLinePositionX1(0x0018, 0x6041);
-    Tag const TMLinePositionY1Retired(0x0018, 0x6042);
-    Tag const TMLinePositionY1(0x0018, 0x6043);
-    Tag const PixelComponentOrganization(0x0018, 0x6044);
-    Tag const PixelComponentMask(0x0018, 0x6046);
-    Tag const PixelComponentRangeStart(0x0018, 0x6048);
-    Tag const PixelComponentRangeStop(0x0018, 0x604a);
-    Tag const PixelComponentPhysicalUnits(0x0018, 0x604c);
-    Tag const PixelComponentDataType(0x0018, 0x604e);
-    Tag const NumberOfTableBreakPoints(0x0018, 0x6050);
-    Tag const TableOfXBreakPoints(0x0018, 0x6052);
-    Tag const TableOfYBreakPoints(0x0018, 0x6054);
-    Tag const NumberOfTableEntries(0x0018, 0x6056);
-    Tag const TableOfPixelValues(0x0018, 0x6058);
-    Tag const TableOfParameterValues(0x0018, 0x605a);
-    Tag const RWaveTimeVector(0x0018, 0x6060);
-    Tag const DetectorConditionsNominalFlag(0x0018, 0x7000);
-    Tag const DetectorTemperature(0x0018, 0x7001);
-    Tag const DetectorType(0x0018, 0x7004);
-    Tag const DetectorConfiguration(0x0018, 0x7005);
-    Tag const DetectorDescription(0x0018, 0x7006);
-    Tag const DetectorMode(0x0018, 0x7008);
-    Tag const DetectorID(0x0018, 0x700a);
-    Tag const DateOfLastDetectorCalibration(0x0018, 0x700c);
-    Tag const TimeOfLastDetectorCalibration(0x0018, 0x700e);
-    Tag const ExposuresOnDetectorSinceLastCalibration(0x0018, 0x7010);
-    Tag const ExposuresOnDetectorSinceManufactured(0x0018, 0x7011);
-    Tag const DetectorTimeSinceLastExposure(0x0018, 0x7012);
-    Tag const DetectorActiveTime(0x0018, 0x7014);
-    Tag const DetectorActivationOffsetFromExposure(0x0018, 0x7016);
-    Tag const DetectorBinning(0x0018, 0x701a);
-    Tag const DetectorElementPhysicalSize(0x0018, 0x7020);
-    Tag const DetectorElementSpacing(0x0018, 0x7022);
-    Tag const DetectorActiveShape(0x0018, 0x7024);
-    Tag const DetectorActiveDimensions(0x0018, 0x7026);
-    Tag const DetectorActiveOrigin(0x0018, 0x7028);
-    Tag const DetectorManufacturerName(0x0018, 0x702a);
-    Tag const DetectorManufacturerModelName(0x0018, 0x702b);
-    Tag const FieldOfViewOrigin(0x0018, 0x7030);
-    Tag const FieldOfViewRotation(0x0018, 0x7032);
-    Tag const FieldOfViewHorizontalFlip(0x0018, 0x7034);
-    Tag const PixelDataAreaOriginRelativeToFOV(0x0018, 0x7036);
-    Tag const PixelDataAreaRotationAngleRelativeToFOV(0x0018, 0x7038);
-    Tag const GridAbsorbingMaterial(0x0018, 0x7040);
-    Tag const GridSpacingMaterial(0x0018, 0x7041);
-    Tag const GridThickness(0x0018, 0x7042);
-    Tag const GridPitch(0x0018, 0x7044);
-    Tag const GridAspectRatio(0x0018, 0x7046);
-    Tag const GridPeriod(0x0018, 0x7048);
-    Tag const GridFocalDistance(0x0018, 0x704c);
-    Tag const FilterMaterial(0x0018, 0x7050);
-    Tag const FilterThicknessMinimum(0x0018, 0x7052);
-    Tag const FilterThicknessMaximum(0x0018, 0x7054);
-    Tag const FilterBeamPathLengthMinimum(0x0018, 0x7056);
-    Tag const FilterBeamPathLengthMaximum(0x0018, 0x7058);
-    Tag const ExposureControlMode(0x0018, 0x7060);
-    Tag const ExposureControlModeDescription(0x0018, 0x7062);
-    Tag const ExposureStatus(0x0018, 0x7064);
-    Tag const PhototimerSetting(0x0018, 0x7065);
-    Tag const ExposureTimeInuS(0x0018, 0x8150);
-    Tag const XRayTubeCurrentInuA(0x0018, 0x8151);
-    Tag const ContentQualification(0x0018, 0x9004);
-    Tag const PulseSequenceName(0x0018, 0x9005);
-    Tag const MRImagingModifierSequence(0x0018, 0x9006);
-    Tag const EchoPulseSequence(0x0018, 0x9008);
-    Tag const InversionRecovery(0x0018, 0x9009);
-    Tag const FlowCompensation(0x0018, 0x9010);
-    Tag const MultipleSpinEcho(0x0018, 0x9011);
-    Tag const MultiPlanarExcitation(0x0018, 0x9012);
-    Tag const PhaseContrast(0x0018, 0x9014);
-    Tag const TimeOfFlightContrast(0x0018, 0x9015);
-    Tag const Spoiling(0x0018, 0x9016);
-    Tag const SteadyStatePulseSequence(0x0018, 0x9017);
-    Tag const EchoPlanarPulseSequence(0x0018, 0x9018);
-    Tag const TagAngleFirstAxis(0x0018, 0x9019);
-    Tag const MagnetizationTransfer(0x0018, 0x9020);
-    Tag const T2Preparation(0x0018, 0x9021);
-    Tag const BloodSignalNulling(0x0018, 0x9022);
-    Tag const SaturationRecovery(0x0018, 0x9024);
-    Tag const SpectrallySelectedSuppression(0x0018, 0x9025);
-    Tag const SpectrallySelectedExcitation(0x0018, 0x9026);
-    Tag const SpatialPresaturation(0x0018, 0x9027);
-    Tag const Tagging(0x0018, 0x9028);
-    Tag const OversamplingPhase(0x0018, 0x9029);
-    Tag const TagSpacingFirstDimension(0x0018, 0x9030);
-    Tag const GeometryOfKSpaceTraversal(0x0018, 0x9032);
-    Tag const SegmentedKSpaceTraversal(0x0018, 0x9033);
-    Tag const RectilinearPhaseEncodeReordering(0x0018, 0x9034);
-    Tag const TagThickness(0x0018, 0x9035);
-    Tag const PartialFourierDirection(0x0018, 0x9036);
-    Tag const CardiacSynchronizationTechnique(0x0018, 0x9037);
-    Tag const ReceiveCoilManufacturerName(0x0018, 0x9041);
-    Tag const MRReceiveCoilSequence(0x0018, 0x9042);
-    Tag const ReceiveCoilType(0x0018, 0x9043);
-    Tag const QuadratureReceiveCoil(0x0018, 0x9044);
-    Tag const MultiCoilDefinitionSequence(0x0018, 0x9045);
-    Tag const MultiCoilConfiguration(0x0018, 0x9046);
-    Tag const MultiCoilElementName(0x0018, 0x9047);
-    Tag const MultiCoilElementUsed(0x0018, 0x9048);
-    Tag const MRTransmitCoilSequence(0x0018, 0x9049);
-    Tag const TransmitCoilManufacturerName(0x0018, 0x9050);
-    Tag const TransmitCoilType(0x0018, 0x9051);
-    Tag const SpectralWidth(0x0018, 0x9052);
-    Tag const ChemicalShiftReference(0x0018, 0x9053);
-    Tag const VolumeLocalizationTechnique(0x0018, 0x9054);
-    Tag const MRAcquisitionFrequencyEncodingSteps(0x0018, 0x9058);
-    Tag const Decoupling(0x0018, 0x9059);
-    Tag const DecoupledNucleus(0x0018, 0x9060);
-    Tag const DecouplingFrequency(0x0018, 0x9061);
-    Tag const DecouplingMethod(0x0018, 0x9062);
-    Tag const DecouplingChemicalShiftReference(0x0018, 0x9063);
-    Tag const KSpaceFiltering(0x0018, 0x9064);
-    Tag const TimeDomainFiltering(0x0018, 0x9065);
-    Tag const NumberOfZeroFills(0x0018, 0x9066);
-    Tag const BaselineCorrection(0x0018, 0x9067);
-    Tag const ParallelReductionFactorInPlane(0x0018, 0x9069);
-    Tag const CardiacRRIntervalSpecified(0x0018, 0x9070);
-    Tag const AcquisitionDuration(0x0018, 0x9073);
-    Tag const FrameAcquisitionDateTime(0x0018, 0x9074);
-    Tag const DiffusionDirectionality(0x0018, 0x9075);
-    Tag const DiffusionGradientDirectionSequence(0x0018, 0x9076);
-    Tag const ParallelAcquisition(0x0018, 0x9077);
-    Tag const ParallelAcquisitionTechnique(0x0018, 0x9078);
-    Tag const InversionTimes(0x0018, 0x9079);
-    Tag const MetaboliteMapDescription(0x0018, 0x9080);
-    Tag const PartialFourier(0x0018, 0x9081);
-    Tag const EffectiveEchoTime(0x0018, 0x9082);
-    Tag const MetaboliteMapCodeSequence(0x0018, 0x9083);
-    Tag const ChemicalShiftSequence(0x0018, 0x9084);
-    Tag const CardiacSignalSource(0x0018, 0x9085);
-    Tag const DiffusionBValue(0x0018, 0x9087);
-    Tag const DiffusionGradientOrientation(0x0018, 0x9089);
-    Tag const VelocityEncodingDirection(0x0018, 0x9090);
-    Tag const VelocityEncodingMinimumValue(0x0018, 0x9091);
-    Tag const VelocityEncodingAcquisitionSequence(0x0018, 0x9092);
-    Tag const NumberOfKSpaceTrajectories(0x0018, 0x9093);
-    Tag const CoverageOfKSpace(0x0018, 0x9094);
-    Tag const SpectroscopyAcquisitionPhaseRows(0x0018, 0x9095);
-    Tag const ParallelReductionFactorInPlaneRetired(0x0018, 0x9096);
-    Tag const TransmitterFrequency(0x0018, 0x9098);
-    Tag const ResonantNucleus(0x0018, 0x9100);
-    Tag const FrequencyCorrection(0x0018, 0x9101);
-    Tag const MRSpectroscopyFOVGeometrySequence(0x0018, 0x9103);
-    Tag const SlabThickness(0x0018, 0x9104);
-    Tag const SlabOrientation(0x0018, 0x9105);
-    Tag const MidSlabPosition(0x0018, 0x9106);
-    Tag const MRSpatialSaturationSequence(0x0018, 0x9107);
-    Tag const MRTimingAndRelatedParametersSequence(0x0018, 0x9112);
-    Tag const MREchoSequence(0x0018, 0x9114);
-    Tag const MRModifierSequence(0x0018, 0x9115);
-    Tag const MRDiffusionSequence(0x0018, 0x9117);
-    Tag const CardiacSynchronizationSequence(0x0018, 0x9118);
-    Tag const MRAveragesSequence(0x0018, 0x9119);
-    Tag const MRFOVGeometrySequence(0x0018, 0x9125);
-    Tag const VolumeLocalizationSequence(0x0018, 0x9126);
-    Tag const SpectroscopyAcquisitionDataColumns(0x0018, 0x9127);
-    Tag const DiffusionAnisotropyType(0x0018, 0x9147);
-    Tag const FrameReferenceDateTime(0x0018, 0x9151);
-    Tag const MRMetaboliteMapSequence(0x0018, 0x9152);
-    Tag const ParallelReductionFactorOutOfPlane(0x0018, 0x9155);
-    Tag const SpectroscopyAcquisitionOutOfPlanePhaseSteps(0x0018, 0x9159);
-    Tag const BulkMotionStatus(0x0018, 0x9166);
-    Tag const ParallelReductionFactorSecondInPlane(0x0018, 0x9168);
-    Tag const CardiacBeatRejectionTechnique(0x0018, 0x9169);
-    Tag const RespiratoryMotionCompensationTechnique(0x0018, 0x9170);
-    Tag const RespiratorySignalSource(0x0018, 0x9171);
-    Tag const BulkMotionCompensationTechnique(0x0018, 0x9172);
-    Tag const BulkMotionSignalSource(0x0018, 0x9173);
-    Tag const ApplicableSafetyStandardAgency(0x0018, 0x9174);
-    Tag const ApplicableSafetyStandardDescription(0x0018, 0x9175);
-    Tag const OperatingModeSequence(0x0018, 0x9176);
-    Tag const OperatingModeType(0x0018, 0x9177);
-    Tag const OperatingMode(0x0018, 0x9178);
-    Tag const SpecificAbsorptionRateDefinition(0x0018, 0x9179);
-    Tag const GradientOutputType(0x0018, 0x9180);
-    Tag const SpecificAbsorptionRateValue(0x0018, 0x9181);
-    Tag const GradientOutput(0x0018, 0x9182);
-    Tag const FlowCompensationDirection(0x0018, 0x9183);
-    Tag const TaggingDelay(0x0018, 0x9184);
-    Tag const RespiratoryMotionCompensationTechniqueDescription(0x0018, 0x9185);
-    Tag const RespiratorySignalSourceID(0x0018, 0x9186);
-    Tag const ChemicalShiftMinimumIntegrationLimitInHz(0x0018, 0x9195);
-    Tag const ChemicalShiftMaximumIntegrationLimitInHz(0x0018, 0x9196);
-    Tag const MRVelocityEncodingSequence(0x0018, 0x9197);
-    Tag const FirstOrderPhaseCorrection(0x0018, 0x9198);
-    Tag const WaterReferencedPhaseCorrection(0x0018, 0x9199);
-    Tag const MRSpectroscopyAcquisitionType(0x0018, 0x9200);
-    Tag const RespiratoryCyclePosition(0x0018, 0x9214);
-    Tag const VelocityEncodingMaximumValue(0x0018, 0x9217);
-    Tag const TagSpacingSecondDimension(0x0018, 0x9218);
-    Tag const TagAngleSecondAxis(0x0018, 0x9219);
-    Tag const FrameAcquisitionDuration(0x0018, 0x9220);
-    Tag const MRImageFrameTypeSequence(0x0018, 0x9226);
-    Tag const MRSpectroscopyFrameTypeSequence(0x0018, 0x9227);
-    Tag const MRAcquisitionPhaseEncodingStepsInPlane(0x0018, 0x9231);
-    Tag const MRAcquisitionPhaseEncodingStepsOutOfPlane(0x0018, 0x9232);
-    Tag const SpectroscopyAcquisitionPhaseColumns(0x0018, 0x9234);
-    Tag const CardiacCyclePosition(0x0018, 0x9236);
-    Tag const SpecificAbsorptionRateSequence(0x0018, 0x9239);
-    Tag const RFEchoTrainLength(0x0018, 0x9240);
-    Tag const GradientEchoTrainLength(0x0018, 0x9241);
-    Tag const ArterialSpinLabelingContrast(0x0018, 0x9250);
-    Tag const MRArterialSpinLabelingSequence(0x0018, 0x9251);
-    Tag const ASLTechniqueDescription(0x0018, 0x9252);
-    Tag const ASLSlabNumber(0x0018, 0x9253);
-    Tag const ASLSlabThickness(0x0018, 0x9254);
-    Tag const ASLSlabOrientation(0x0018, 0x9255);
-    Tag const ASLMidSlabPosition(0x0018, 0x9256);
-    Tag const ASLContext(0x0018, 0x9257);
-    Tag const ASLPulseTrainDuration(0x0018, 0x9258);
-    Tag const ASLCrusherFlag(0x0018, 0x9259);
-    Tag const ASLCrusherFlowLimit(0x0018, 0x925a);
-    Tag const ASLCrusherDescription(0x0018, 0x925b);
-    Tag const ASLBolusCutoffFlag(0x0018, 0x925c);
-    Tag const ASLBolusCutoffTimingSequence(0x0018, 0x925d);
-    Tag const ASLBolusCutoffTechnique(0x0018, 0x925e);
-    Tag const ASLBolusCutoffDelayTime(0x0018, 0x925f);
-    Tag const ASLSlabSequence(0x0018, 0x9260);
-    Tag const ChemicalShiftMinimumIntegrationLimitInppm(0x0018, 0x9295);
-    Tag const ChemicalShiftMaximumIntegrationLimitInppm(0x0018, 0x9296);
-    Tag const WaterReferenceAcquisition(0x0018, 0x9297);
-    Tag const EchoPeakPosition(0x0018, 0x9298);
-    Tag const CTAcquisitionTypeSequence(0x0018, 0x9301);
-    Tag const AcquisitionType(0x0018, 0x9302);
-    Tag const TubeAngle(0x0018, 0x9303);
-    Tag const CTAcquisitionDetailsSequence(0x0018, 0x9304);
-    Tag const RevolutionTime(0x0018, 0x9305);
-    Tag const SingleCollimationWidth(0x0018, 0x9306);
-    Tag const TotalCollimationWidth(0x0018, 0x9307);
-    Tag const CTTableDynamicsSequence(0x0018, 0x9308);
-    Tag const TableSpeed(0x0018, 0x9309);
-    Tag const TableFeedPerRotation(0x0018, 0x9310);
-    Tag const SpiralPitchFactor(0x0018, 0x9311);
-    Tag const CTGeometrySequence(0x0018, 0x9312);
-    Tag const DataCollectionCenterPatient(0x0018, 0x9313);
-    Tag const CTReconstructionSequence(0x0018, 0x9314);
-    Tag const ReconstructionAlgorithm(0x0018, 0x9315);
-    Tag const ConvolutionKernelGroup(0x0018, 0x9316);
-    Tag const ReconstructionFieldOfView(0x0018, 0x9317);
-    Tag const ReconstructionTargetCenterPatient(0x0018, 0x9318);
-    Tag const ReconstructionAngle(0x0018, 0x9319);
-    Tag const ImageFilter(0x0018, 0x9320);
-    Tag const CTExposureSequence(0x0018, 0x9321);
-    Tag const ReconstructionPixelSpacing(0x0018, 0x9322);
-    Tag const ExposureModulationType(0x0018, 0x9323);
-    Tag const EstimatedDoseSaving(0x0018, 0x9324);
-    Tag const CTXRayDetailsSequence(0x0018, 0x9325);
-    Tag const CTPositionSequence(0x0018, 0x9326);
-    Tag const TablePosition(0x0018, 0x9327);
-    Tag const ExposureTimeInms(0x0018, 0x9328);
-    Tag const CTImageFrameTypeSequence(0x0018, 0x9329);
-    Tag const XRayTubeCurrentInmA(0x0018, 0x9330);
-    Tag const ExposureInmAs(0x0018, 0x9332);
-    Tag const ConstantVolumeFlag(0x0018, 0x9333);
-    Tag const FluoroscopyFlag(0x0018, 0x9334);
-    Tag const DistanceSourceToDataCollectionCenter(0x0018, 0x9335);
-    Tag const ContrastBolusAgentNumber(0x0018, 0x9337);
-    Tag const ContrastBolusIngredientCodeSequence(0x0018, 0x9338);
-    Tag const ContrastAdministrationProfileSequence(0x0018, 0x9340);
-    Tag const ContrastBolusUsageSequence(0x0018, 0x9341);
-    Tag const ContrastBolusAgentAdministered(0x0018, 0x9342);
-    Tag const ContrastBolusAgentDetected(0x0018, 0x9343);
-    Tag const ContrastBolusAgentPhase(0x0018, 0x9344);
-    Tag const CTDIvol(0x0018, 0x9345);
-    Tag const CTDIPhantomTypeCodeSequence(0x0018, 0x9346);
-    Tag const CalciumScoringMassFactorPatient(0x0018, 0x9351);
-    Tag const CalciumScoringMassFactorDevice(0x0018, 0x9352);
-    Tag const EnergyWeightingFactor(0x0018, 0x9353);
-    Tag const CTAdditionalXRaySourceSequence(0x0018, 0x9360);
-    Tag const ProjectionPixelCalibrationSequence(0x0018, 0x9401);
-    Tag const DistanceSourceToIsocenter(0x0018, 0x9402);
-    Tag const DistanceObjectToTableTop(0x0018, 0x9403);
-    Tag const ObjectPixelSpacingInCenterOfBeam(0x0018, 0x9404);
-    Tag const PositionerPositionSequence(0x0018, 0x9405);
-    Tag const TablePositionSequence(0x0018, 0x9406);
-    Tag const CollimatorShapeSequence(0x0018, 0x9407);
-    Tag const PlanesInAcquisition(0x0018, 0x9410);
-    Tag const XAXRFFrameCharacteristicsSequence(0x0018, 0x9412);
-    Tag const FrameAcquisitionSequence(0x0018, 0x9417);
-    Tag const XRayReceptorType(0x0018, 0x9420);
-    Tag const AcquisitionProtocolName(0x0018, 0x9423);
-    Tag const AcquisitionProtocolDescription(0x0018, 0x9424);
-    Tag const ContrastBolusIngredientOpaque(0x0018, 0x9425);
-    Tag const DistanceReceptorPlaneToDetectorHousing(0x0018, 0x9426);
-    Tag const IntensifierActiveShape(0x0018, 0x9427);
-    Tag const IntensifierActiveDimensions(0x0018, 0x9428);
-    Tag const PhysicalDetectorSize(0x0018, 0x9429);
-    Tag const PositionOfIsocenterProjection(0x0018, 0x9430);
-    Tag const FieldOfViewSequence(0x0018, 0x9432);
-    Tag const FieldOfViewDescription(0x0018, 0x9433);
-    Tag const ExposureControlSensingRegionsSequence(0x0018, 0x9434);
-    Tag const ExposureControlSensingRegionShape(0x0018, 0x9435);
-    Tag const ExposureControlSensingRegionLeftVerticalEdge(0x0018, 0x9436);
-    Tag const ExposureControlSensingRegionRightVerticalEdge(0x0018, 0x9437);
-    Tag const ExposureControlSensingRegionUpperHorizontalEdge(0x0018, 0x9438);
-    Tag const ExposureControlSensingRegionLowerHorizontalEdge(0x0018, 0x9439);
-    Tag const CenterOfCircularExposureControlSensingRegion(0x0018, 0x9440);
-    Tag const RadiusOfCircularExposureControlSensingRegion(0x0018, 0x9441);
-    Tag const VerticesOfThePolygonalExposureControlSensingRegion(0x0018, 0x9442);
-    Tag const ColumnAngulationPatient(0x0018, 0x9447);
-    Tag const BeamAngle(0x0018, 0x9449);
-    Tag const FrameDetectorParametersSequence(0x0018, 0x9451);
-    Tag const CalculatedAnatomyThickness(0x0018, 0x9452);
-    Tag const CalibrationSequence(0x0018, 0x9455);
-    Tag const ObjectThicknessSequence(0x0018, 0x9456);
-    Tag const PlaneIdentification(0x0018, 0x9457);
-    Tag const FieldOfViewDimensionsInFloat(0x0018, 0x9461);
-    Tag const IsocenterReferenceSystemSequence(0x0018, 0x9462);
-    Tag const PositionerIsocenterPrimaryAngle(0x0018, 0x9463);
-    Tag const PositionerIsocenterSecondaryAngle(0x0018, 0x9464);
-    Tag const PositionerIsocenterDetectorRotationAngle(0x0018, 0x9465);
-    Tag const TableXPositionToIsocenter(0x0018, 0x9466);
-    Tag const TableYPositionToIsocenter(0x0018, 0x9467);
-    Tag const TableZPositionToIsocenter(0x0018, 0x9468);
-    Tag const TableHorizontalRotationAngle(0x0018, 0x9469);
-    Tag const TableHeadTiltAngle(0x0018, 0x9470);
-    Tag const TableCradleTiltAngle(0x0018, 0x9471);
-    Tag const FrameDisplayShutterSequence(0x0018, 0x9472);
-    Tag const AcquiredImageAreaDoseProduct(0x0018, 0x9473);
-    Tag const CArmPositionerTabletopRelationship(0x0018, 0x9474);
-    Tag const XRayGeometrySequence(0x0018, 0x9476);
-    Tag const IrradiationEventIdentificationSequence(0x0018, 0x9477);
-    Tag const XRay3DFrameTypeSequence(0x0018, 0x9504);
-    Tag const ContributingSourcesSequence(0x0018, 0x9506);
-    Tag const XRay3DAcquisitionSequence(0x0018, 0x9507);
-    Tag const PrimaryPositionerScanArc(0x0018, 0x9508);
-    Tag const SecondaryPositionerScanArc(0x0018, 0x9509);
-    Tag const PrimaryPositionerScanStartAngle(0x0018, 0x9510);
-    Tag const SecondaryPositionerScanStartAngle(0x0018, 0x9511);
-    Tag const PrimaryPositionerIncrement(0x0018, 0x9514);
-    Tag const SecondaryPositionerIncrement(0x0018, 0x9515);
-    Tag const StartAcquisitionDateTime(0x0018, 0x9516);
-    Tag const EndAcquisitionDateTime(0x0018, 0x9517);
-    Tag const PrimaryPositionerIncrementSign(0x0018, 0x9518);
-    Tag const SecondaryPositionerIncrementSign(0x0018, 0x9519);
-    Tag const ApplicationName(0x0018, 0x9524);
-    Tag const ApplicationVersion(0x0018, 0x9525);
-    Tag const ApplicationManufacturer(0x0018, 0x9526);
-    Tag const AlgorithmType(0x0018, 0x9527);
-    Tag const AlgorithmDescription(0x0018, 0x9528);
-    Tag const XRay3DReconstructionSequence(0x0018, 0x9530);
-    Tag const ReconstructionDescription(0x0018, 0x9531);
-    Tag const PerProjectionAcquisitionSequence(0x0018, 0x9538);
-    Tag const DetectorPositionSequence(0x0018, 0x9541);
-    Tag const XRayAcquisitionDoseSequence(0x0018, 0x9542);
-    Tag const XRaySourceIsocenterPrimaryAngle(0x0018, 0x9543);
-    Tag const XRaySourceIsocenterSecondaryAngle(0x0018, 0x9544);
-    Tag const BreastSupportIsocenterPrimaryAngle(0x0018, 0x9545);
-    Tag const BreastSupportIsocenterSecondaryAngle(0x0018, 0x9546);
-    Tag const BreastSupportXPositionToIsocenter(0x0018, 0x9547);
-    Tag const BreastSupportYPositionToIsocenter(0x0018, 0x9548);
-    Tag const BreastSupportZPositionToIsocenter(0x0018, 0x9549);
-    Tag const DetectorIsocenterPrimaryAngle(0x0018, 0x9550);
-    Tag const DetectorIsocenterSecondaryAngle(0x0018, 0x9551);
-    Tag const DetectorXPositionToIsocenter(0x0018, 0x9552);
-    Tag const DetectorYPositionToIsocenter(0x0018, 0x9553);
-    Tag const DetectorZPositionToIsocenter(0x0018, 0x9554);
-    Tag const XRayGridSequence(0x0018, 0x9555);
-    Tag const XRayFilterSequence(0x0018, 0x9556);
-    Tag const DetectorActiveAreaTLHCPosition(0x0018, 0x9557);
-    Tag const DetectorActiveAreaOrientation(0x0018, 0x9558);
-    Tag const PositionerPrimaryAngleDirection(0x0018, 0x9559);
-    Tag const DiffusionBMatrixSequence(0x0018, 0x9601);
-    Tag const DiffusionBValueXX(0x0018, 0x9602);
-    Tag const DiffusionBValueXY(0x0018, 0x9603);
-    Tag const DiffusionBValueXZ(0x0018, 0x9604);
-    Tag const DiffusionBValueYY(0x0018, 0x9605);
-    Tag const DiffusionBValueYZ(0x0018, 0x9606);
-    Tag const DiffusionBValueZZ(0x0018, 0x9607);
-    Tag const DecayCorrectionDateTime(0x0018, 0x9701);
-    Tag const StartDensityThreshold(0x0018, 0x9715);
-    Tag const StartRelativeDensityDifferenceThreshold(0x0018, 0x9716);
-    Tag const StartCardiacTriggerCountThreshold(0x0018, 0x9717);
-    Tag const StartRespiratoryTriggerCountThreshold(0x0018, 0x9718);
-    Tag const TerminationCountsThreshold(0x0018, 0x9719);
-    Tag const TerminationDensityThreshold(0x0018, 0x9720);
-    Tag const TerminationRelativeDensityThreshold(0x0018, 0x9721);
-    Tag const TerminationTimeThreshold(0x0018, 0x9722);
-    Tag const TerminationCardiacTriggerCountThreshold(0x0018, 0x9723);
-    Tag const TerminationRespiratoryTriggerCountThreshold(0x0018, 0x9724);
-    Tag const DetectorGeometry(0x0018, 0x9725);
-    Tag const TransverseDetectorSeparation(0x0018, 0x9726);
-    Tag const AxialDetectorDimension(0x0018, 0x9727);
-    Tag const RadiopharmaceuticalAgentNumber(0x0018, 0x9729);
-    Tag const PETFrameAcquisitionSequence(0x0018, 0x9732);
-    Tag const PETDetectorMotionDetailsSequence(0x0018, 0x9733);
-    Tag const PETTableDynamicsSequence(0x0018, 0x9734);
-    Tag const PETPositionSequence(0x0018, 0x9735);
-    Tag const PETFrameCorrectionFactorsSequence(0x0018, 0x9736);
-    Tag const RadiopharmaceuticalUsageSequence(0x0018, 0x9737);
-    Tag const AttenuationCorrectionSource(0x0018, 0x9738);
-    Tag const NumberOfIterations(0x0018, 0x9739);
-    Tag const NumberOfSubsets(0x0018, 0x9740);
-    Tag const PETReconstructionSequence(0x0018, 0x9749);
-    Tag const PETFrameTypeSequence(0x0018, 0x9751);
-    Tag const TimeOfFlightInformationUsed(0x0018, 0x9755);
-    Tag const ReconstructionType(0x0018, 0x9756);
-    Tag const DecayCorrected(0x0018, 0x9758);
-    Tag const AttenuationCorrected(0x0018, 0x9759);
-    Tag const ScatterCorrected(0x0018, 0x9760);
-    Tag const DeadTimeCorrected(0x0018, 0x9761);
-    Tag const GantryMotionCorrected(0x0018, 0x9762);
-    Tag const PatientMotionCorrected(0x0018, 0x9763);
-    Tag const CountLossNormalizationCorrected(0x0018, 0x9764);
-    Tag const RandomsCorrected(0x0018, 0x9765);
-    Tag const NonUniformRadialSamplingCorrected(0x0018, 0x9766);
-    Tag const SensitivityCalibrated(0x0018, 0x9767);
-    Tag const DetectorNormalizationCorrection(0x0018, 0x9768);
-    Tag const IterativeReconstructionMethod(0x0018, 0x9769);
-    Tag const AttenuationCorrectionTemporalRelationship(0x0018, 0x9770);
-    Tag const PatientPhysiologicalStateSequence(0x0018, 0x9771);
-    Tag const PatientPhysiologicalStateCodeSequence(0x0018, 0x9772);
-    Tag const DepthsOfFocus(0x0018, 0x9801);
-    Tag const ExcludedIntervalsSequence(0x0018, 0x9803);
-    Tag const ExclusionStartDateTime(0x0018, 0x9804);
-    Tag const ExclusionDuration(0x0018, 0x9805);
-    Tag const USImageDescriptionSequence(0x0018, 0x9806);
-    Tag const ImageDataTypeSequence(0x0018, 0x9807);
-    Tag const DataType(0x0018, 0x9808);
-    Tag const TransducerScanPatternCodeSequence(0x0018, 0x9809);
-    Tag const AliasedDataType(0x0018, 0x980b);
-    Tag const PositionMeasuringDeviceUsed(0x0018, 0x980c);
-    Tag const TransducerGeometryCodeSequence(0x0018, 0x980d);
-    Tag const TransducerBeamSteeringCodeSequence(0x0018, 0x980e);
-    Tag const TransducerApplicationCodeSequence(0x0018, 0x980f);
-    Tag const ZeroVelocityPixelValue(0x0018, 0x9810);
-    Tag const ContributingEquipmentSequence(0x0018, 0xa001);
-    Tag const ContributionDateTime(0x0018, 0xa002);
-    Tag const ContributionDescription(0x0018, 0xa003);
-    Tag const StudyInstanceUID(0x0020, 0x000d);
-    Tag const SeriesInstanceUID(0x0020, 0x000e);
-    Tag const StudyID(0x0020, 0x0010);
-    Tag const SeriesNumber(0x0020, 0x0011);
-    Tag const AcquisitionNumber(0x0020, 0x0012);
-    Tag const InstanceNumber(0x0020, 0x0013);
-    Tag const IsotopeNumber(0x0020, 0x0014);
-    Tag const PhaseNumber(0x0020, 0x0015);
-    Tag const IntervalNumber(0x0020, 0x0016);
-    Tag const TimeSlotNumber(0x0020, 0x0017);
-    Tag const AngleNumber(0x0020, 0x0018);
-    Tag const ItemNumber(0x0020, 0x0019);
-    Tag const PatientOrientation(0x0020, 0x0020);
-    Tag const OverlayNumber(0x0020, 0x0022);
-    Tag const CurveNumber(0x0020, 0x0024);
-    Tag const LUTNumber(0x0020, 0x0026);
-    Tag const ImagePosition(0x0020, 0x0030);
-    Tag const ImagePositionPatient(0x0020, 0x0032);
-    Tag const ImageOrientation(0x0020, 0x0035);
-    Tag const ImageOrientationPatient(0x0020, 0x0037);
-    Tag const Location(0x0020, 0x0050);
-    Tag const FrameOfReferenceUID(0x0020, 0x0052);
-    Tag const Laterality(0x0020, 0x0060);
-    Tag const ImageLaterality(0x0020, 0x0062);
-    Tag const ImageGeometryType(0x0020, 0x0070);
-    Tag const MaskingImage(0x0020, 0x0080);
-    Tag const ReportNumber(0x0020, 0x00aa);
-    Tag const TemporalPositionIdentifier(0x0020, 0x0100);
-    Tag const NumberOfTemporalPositions(0x0020, 0x0105);
-    Tag const TemporalResolution(0x0020, 0x0110);
-    Tag const SynchronizationFrameOfReferenceUID(0x0020, 0x0200);
-    Tag const SOPInstanceUIDOfConcatenationSource(0x0020, 0x0242);
-    Tag const SeriesInStudy(0x0020, 0x1000);
-    Tag const AcquisitionsInSeries(0x0020, 0x1001);
-    Tag const ImagesInAcquisition(0x0020, 0x1002);
-    Tag const ImagesInSeries(0x0020, 0x1003);
-    Tag const AcquisitionsInStudy(0x0020, 0x1004);
-    Tag const ImagesInStudy(0x0020, 0x1005);
-    Tag const Reference(0x0020, 0x1020);
-    Tag const PositionReferenceIndicator(0x0020, 0x1040);
-    Tag const SliceLocation(0x0020, 0x1041);
-    Tag const OtherStudyNumbers(0x0020, 0x1070);
-    Tag const NumberOfPatientRelatedStudies(0x0020, 0x1200);
-    Tag const NumberOfPatientRelatedSeries(0x0020, 0x1202);
-    Tag const NumberOfPatientRelatedInstances(0x0020, 0x1204);
-    Tag const NumberOfStudyRelatedSeries(0x0020, 0x1206);
-    Tag const NumberOfStudyRelatedInstances(0x0020, 0x1208);
-    Tag const NumberOfSeriesRelatedInstances(0x0020, 0x1209);
-    Tag const ModifyingDeviceID(0x0020, 0x3401);
-    Tag const ModifiedImageID(0x0020, 0x3402);
-    Tag const ModifiedImageDate(0x0020, 0x3403);
-    Tag const ModifyingDeviceManufacturer(0x0020, 0x3404);
-    Tag const ModifiedImageTime(0x0020, 0x3405);
-    Tag const ModifiedImageDescription(0x0020, 0x3406);
-    Tag const ImageComments(0x0020, 0x4000);
-    Tag const OriginalImageIdentification(0x0020, 0x5000);
-    Tag const OriginalImageIdentificationNomenclature(0x0020, 0x5002);
-    Tag const StackID(0x0020, 0x9056);
-    Tag const InStackPositionNumber(0x0020, 0x9057);
-    Tag const FrameAnatomySequence(0x0020, 0x9071);
-    Tag const FrameLaterality(0x0020, 0x9072);
-    Tag const FrameContentSequence(0x0020, 0x9111);
-    Tag const PlanePositionSequence(0x0020, 0x9113);
-    Tag const PlaneOrientationSequence(0x0020, 0x9116);
-    Tag const TemporalPositionIndex(0x0020, 0x9128);
-    Tag const NominalCardiacTriggerDelayTime(0x0020, 0x9153);
-    Tag const NominalCardiacTriggerTimePriorToRPeak(0x0020, 0x9154);
-    Tag const ActualCardiacTriggerTimePriorToRPeak(0x0020, 0x9155);
-    Tag const FrameAcquisitionNumber(0x0020, 0x9156);
-    Tag const DimensionIndexValues(0x0020, 0x9157);
-    Tag const FrameComments(0x0020, 0x9158);
-    Tag const ConcatenationUID(0x0020, 0x9161);
-    Tag const InConcatenationNumber(0x0020, 0x9162);
-    Tag const InConcatenationTotalNumber(0x0020, 0x9163);
-    Tag const DimensionOrganizationUID(0x0020, 0x9164);
-    Tag const DimensionIndexPointer(0x0020, 0x9165);
-    Tag const FunctionalGroupPointer(0x0020, 0x9167);
-    Tag const UnassignedSharedConvertedAttributesSequence(0x0020, 0x9170);
-    Tag const UnassignedPerFrameConvertedAttributesSequence(0x0020, 0x9171);
-    Tag const ConversionSourceAttributesSequence(0x0020, 0x9172);
-    Tag const DimensionIndexPrivateCreator(0x0020, 0x9213);
-    Tag const DimensionOrganizationSequence(0x0020, 0x9221);
-    Tag const DimensionIndexSequence(0x0020, 0x9222);
-    Tag const ConcatenationFrameOffsetNumber(0x0020, 0x9228);
-    Tag const FunctionalGroupPrivateCreator(0x0020, 0x9238);
-    Tag const NominalPercentageOfCardiacPhase(0x0020, 0x9241);
-    Tag const NominalPercentageOfRespiratoryPhase(0x0020, 0x9245);
-    Tag const StartingRespiratoryAmplitude(0x0020, 0x9246);
-    Tag const StartingRespiratoryPhase(0x0020, 0x9247);
-    Tag const EndingRespiratoryAmplitude(0x0020, 0x9248);
-    Tag const EndingRespiratoryPhase(0x0020, 0x9249);
-    Tag const RespiratoryTriggerType(0x0020, 0x9250);
-    Tag const RRIntervalTimeNominal(0x0020, 0x9251);
-    Tag const ActualCardiacTriggerDelayTime(0x0020, 0x9252);
-    Tag const RespiratorySynchronizationSequence(0x0020, 0x9253);
-    Tag const RespiratoryIntervalTime(0x0020, 0x9254);
-    Tag const NominalRespiratoryTriggerDelayTime(0x0020, 0x9255);
-    Tag const RespiratoryTriggerDelayThreshold(0x0020, 0x9256);
-    Tag const ActualRespiratoryTriggerDelayTime(0x0020, 0x9257);
-    Tag const ImagePositionVolume(0x0020, 0x9301);
-    Tag const ImageOrientationVolume(0x0020, 0x9302);
-    Tag const UltrasoundAcquisitionGeometry(0x0020, 0x9307);
-    Tag const ApexPosition(0x0020, 0x9308);
-    Tag const VolumeToTransducerMappingMatrix(0x0020, 0x9309);
-    Tag const VolumeToTableMappingMatrix(0x0020, 0x930a);
-    Tag const VolumeToTransducerRelationship(0x0020, 0x930b);
-    Tag const PatientFrameOfReferenceSource(0x0020, 0x930c);
-    Tag const TemporalPositionTimeOffset(0x0020, 0x930d);
-    Tag const PlanePositionVolumeSequence(0x0020, 0x930e);
-    Tag const PlaneOrientationVolumeSequence(0x0020, 0x930f);
-    Tag const TemporalPositionSequence(0x0020, 0x9310);
-    Tag const DimensionOrganizationType(0x0020, 0x9311);
-    Tag const VolumeFrameOfReferenceUID(0x0020, 0x9312);
-    Tag const TableFrameOfReferenceUID(0x0020, 0x9313);
-    Tag const DimensionDescriptionLabel(0x0020, 0x9421);
-    Tag const PatientOrientationInFrameSequence(0x0020, 0x9450);
-    Tag const FrameLabel(0x0020, 0x9453);
-    Tag const AcquisitionIndex(0x0020, 0x9518);
-    Tag const ContributingSOPInstancesReferenceSequence(0x0020, 0x9529);
-    Tag const ReconstructionIndex(0x0020, 0x9536);
-    Tag const LightPathFilterPassThroughWavelength(0x0022, 0x0001);
-    Tag const LightPathFilterPassBand(0x0022, 0x0002);
-    Tag const ImagePathFilterPassThroughWavelength(0x0022, 0x0003);
-    Tag const ImagePathFilterPassBand(0x0022, 0x0004);
-    Tag const PatientEyeMovementCommanded(0x0022, 0x0005);
-    Tag const PatientEyeMovementCommandCodeSequence(0x0022, 0x0006);
-    Tag const SphericalLensPower(0x0022, 0x0007);
-    Tag const CylinderLensPower(0x0022, 0x0008);
-    Tag const CylinderAxis(0x0022, 0x0009);
-    Tag const EmmetropicMagnification(0x0022, 0x000a);
-    Tag const IntraOcularPressure(0x0022, 0x000b);
-    Tag const HorizontalFieldOfView(0x0022, 0x000c);
-    Tag const PupilDilated(0x0022, 0x000d);
-    Tag const DegreeOfDilation(0x0022, 0x000e);
-    Tag const StereoBaselineAngle(0x0022, 0x0010);
-    Tag const StereoBaselineDisplacement(0x0022, 0x0011);
-    Tag const StereoHorizontalPixelOffset(0x0022, 0x0012);
-    Tag const StereoVerticalPixelOffset(0x0022, 0x0013);
-    Tag const StereoRotation(0x0022, 0x0014);
-    Tag const AcquisitionDeviceTypeCodeSequence(0x0022, 0x0015);
-    Tag const IlluminationTypeCodeSequence(0x0022, 0x0016);
-    Tag const LightPathFilterTypeStackCodeSequence(0x0022, 0x0017);
-    Tag const ImagePathFilterTypeStackCodeSequence(0x0022, 0x0018);
-    Tag const LensesCodeSequence(0x0022, 0x0019);
-    Tag const ChannelDescriptionCodeSequence(0x0022, 0x001a);
-    Tag const RefractiveStateSequence(0x0022, 0x001b);
-    Tag const MydriaticAgentCodeSequence(0x0022, 0x001c);
-    Tag const RelativeImagePositionCodeSequence(0x0022, 0x001d);
-    Tag const CameraAngleOfView(0x0022, 0x001e);
-    Tag const StereoPairsSequence(0x0022, 0x0020);
-    Tag const LeftImageSequence(0x0022, 0x0021);
-    Tag const RightImageSequence(0x0022, 0x0022);
-    Tag const AxialLengthOfTheEye(0x0022, 0x0030);
-    Tag const OphthalmicFrameLocationSequence(0x0022, 0x0031);
-    Tag const ReferenceCoordinates(0x0022, 0x0032);
-    Tag const DepthSpatialResolution(0x0022, 0x0035);
-    Tag const MaximumDepthDistortion(0x0022, 0x0036);
-    Tag const AlongScanSpatialResolution(0x0022, 0x0037);
-    Tag const MaximumAlongScanDistortion(0x0022, 0x0038);
-    Tag const OphthalmicImageOrientation(0x0022, 0x0039);
-    Tag const DepthOfTransverseImage(0x0022, 0x0041);
-    Tag const MydriaticAgentConcentrationUnitsSequence(0x0022, 0x0042);
-    Tag const AcrossScanSpatialResolution(0x0022, 0x0048);
-    Tag const MaximumAcrossScanDistortion(0x0022, 0x0049);
-    Tag const MydriaticAgentConcentration(0x0022, 0x004e);
-    Tag const IlluminationWaveLength(0x0022, 0x0055);
-    Tag const IlluminationPower(0x0022, 0x0056);
-    Tag const IlluminationBandwidth(0x0022, 0x0057);
-    Tag const MydriaticAgentSequence(0x0022, 0x0058);
-    Tag const OphthalmicAxialMeasurementsRightEyeSequence(0x0022, 0x1007);
-    Tag const OphthalmicAxialMeasurementsLeftEyeSequence(0x0022, 0x1008);
-    Tag const OphthalmicAxialMeasurementsDeviceType(0x0022, 0x1009);
-    Tag const OphthalmicAxialLengthMeasurementsType(0x0022, 0x1010);
-    Tag const OphthalmicAxialLengthSequence(0x0022, 0x1012);
-    Tag const OphthalmicAxialLength(0x0022, 0x1019);
-    Tag const LensStatusCodeSequence(0x0022, 0x1024);
-    Tag const VitreousStatusCodeSequence(0x0022, 0x1025);
-    Tag const IOLFormulaCodeSequence(0x0022, 0x1028);
-    Tag const IOLFormulaDetail(0x0022, 0x1029);
-    Tag const KeratometerIndex(0x0022, 0x1033);
-    Tag const SourceOfOphthalmicAxialLengthCodeSequence(0x0022, 0x1035);
-    Tag const TargetRefraction(0x0022, 0x1037);
-    Tag const RefractiveProcedureOccurred(0x0022, 0x1039);
-    Tag const RefractiveSurgeryTypeCodeSequence(0x0022, 0x1040);
-    Tag const OphthalmicUltrasoundMethodCodeSequence(0x0022, 0x1044);
-    Tag const OphthalmicAxialLengthMeasurementsSequence(0x0022, 0x1050);
-    Tag const IOLPower(0x0022, 0x1053);
-    Tag const PredictedRefractiveError(0x0022, 0x1054);
-    Tag const OphthalmicAxialLengthVelocity(0x0022, 0x1059);
-    Tag const LensStatusDescription(0x0022, 0x1065);
-    Tag const VitreousStatusDescription(0x0022, 0x1066);
-    Tag const IOLPowerSequence(0x0022, 0x1090);
-    Tag const LensConstantSequence(0x0022, 0x1092);
-    Tag const IOLManufacturer(0x0022, 0x1093);
-    Tag const LensConstantDescription(0x0022, 0x1094);
-    Tag const ImplantName(0x0022, 0x1095);
-    Tag const KeratometryMeasurementTypeCodeSequence(0x0022, 0x1096);
-    Tag const ImplantPartNumber(0x0022, 0x1097);
-    Tag const ReferencedOphthalmicAxialMeasurementsSequence(0x0022, 0x1100);
-    Tag const OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence(0x0022, 0x1101);
-    Tag const RefractiveErrorBeforeRefractiveSurgeryCodeSequence(0x0022, 0x1103);
-    Tag const IOLPowerForExactEmmetropia(0x0022, 0x1121);
-    Tag const IOLPowerForExactTargetRefraction(0x0022, 0x1122);
-    Tag const AnteriorChamberDepthDefinitionCodeSequence(0x0022, 0x1125);
-    Tag const LensThicknessSequence(0x0022, 0x1127);
-    Tag const AnteriorChamberDepthSequence(0x0022, 0x1128);
-    Tag const LensThickness(0x0022, 0x1130);
-    Tag const AnteriorChamberDepth(0x0022, 0x1131);
-    Tag const SourceOfLensThicknessDataCodeSequence(0x0022, 0x1132);
-    Tag const SourceOfAnteriorChamberDepthDataCodeSequence(0x0022, 0x1133);
-    Tag const SourceOfRefractiveMeasurementsSequence(0x0022, 0x1134);
-    Tag const SourceOfRefractiveMeasurementsCodeSequence(0x0022, 0x1135);
-    Tag const OphthalmicAxialLengthMeasurementModified(0x0022, 0x1140);
-    Tag const OphthalmicAxialLengthDataSourceCodeSequence(0x0022, 0x1150);
-    Tag const OphthalmicAxialLengthAcquisitionMethodCodeSequence(0x0022, 0x1153);
-    Tag const SignalToNoiseRatio(0x0022, 0x1155);
-    Tag const OphthalmicAxialLengthDataSourceDescription(0x0022, 0x1159);
-    Tag const OphthalmicAxialLengthMeasurementsTotalLengthSequence(0x0022, 0x1210);
-    Tag const OphthalmicAxialLengthMeasurementsSegmentalLengthSequence(0x0022, 0x1211);
-    Tag const OphthalmicAxialLengthMeasurementsLengthSummationSequence(0x0022, 0x1212);
-    Tag const UltrasoundOphthalmicAxialLengthMeasurementsSequence(0x0022, 0x1220);
-    Tag const OpticalOphthalmicAxialLengthMeasurementsSequence(0x0022, 0x1225);
-    Tag const UltrasoundSelectedOphthalmicAxialLengthSequence(0x0022, 0x1230);
-    Tag const OphthalmicAxialLengthSelectionMethodCodeSequence(0x0022, 0x1250);
-    Tag const OpticalSelectedOphthalmicAxialLengthSequence(0x0022, 0x1255);
-    Tag const SelectedSegmentalOphthalmicAxialLengthSequence(0x0022, 0x1257);
-    Tag const SelectedTotalOphthalmicAxialLengthSequence(0x0022, 0x1260);
-    Tag const OphthalmicAxialLengthQualityMetricSequence(0x0022, 0x1262);
-    Tag const OphthalmicAxialLengthQualityMetricTypeCodeSequence(0x0022, 0x1265);
-    Tag const OphthalmicAxialLengthQualityMetricTypeDescription(0x0022, 0x1273);
-    Tag const IntraocularLensCalculationsRightEyeSequence(0x0022, 0x1300);
-    Tag const IntraocularLensCalculationsLeftEyeSequence(0x0022, 0x1310);
-    Tag const ReferencedOphthalmicAxialLengthMeasurementQCImageSequence(0x0022, 0x1330);
-    Tag const OphthalmicMappingDeviceType(0x0022, 0x1415);
-    Tag const AcquisitionMethodCodeSequence(0x0022, 0x1420);
-    Tag const AcquisitionMethodAlgorithmSequence(0x0022, 0x1423);
-    Tag const OphthalmicThicknessMapTypeCodeSequence(0x0022, 0x1436);
-    Tag const OphthalmicThicknessMappingNormalsSequence(0x0022, 0x1443);
-    Tag const RetinalThicknessDefinitionCodeSequence(0x0022, 0x1445);
-    Tag const PixelValueMappingToCodedConceptSequence(0x0022, 0x1450);
-    Tag const MappedPixelValue(0x0022, 0x1452);
-    Tag const PixelValueMappingExplanation(0x0022, 0x1454);
-    Tag const OphthalmicThicknessMapQualityThresholdSequence(0x0022, 0x1458);
-    Tag const OphthalmicThicknessMapThresholdQualityRating(0x0022, 0x1460);
-    Tag const AnatomicStructureReferencePoint(0x0022, 0x1463);
-    Tag const RegistrationToLocalizerSequence(0x0022, 0x1465);
-    Tag const RegisteredLocalizerUnits(0x0022, 0x1466);
-    Tag const RegisteredLocalizerTopLeftHandCorner(0x0022, 0x1467);
-    Tag const RegisteredLocalizerBottomRightHandCorner(0x0022, 0x1468);
-    Tag const OphthalmicThicknessMapQualityRatingSequence(0x0022, 0x1470);
-    Tag const RelevantOPTAttributesSequence(0x0022, 0x1472);
-    Tag const TransformationMethodCodeSequence(0x0022, 0x1512);
-    Tag const TransformationAlgorithmSequence(0x0022, 0x1513);
-    Tag const OphthalmicAxialLengthMethod(0x0022, 0x1515);
-    Tag const OphthalmicFOV(0x0022, 0x1517);
-    Tag const TwoDimensionalToThreeDimensionalMapSequence(0x0022, 0x1518);
-    Tag const WideFieldOphthalmicPhotographyQualityRatingSequence(0x0022, 0x1525);
-    Tag const WideFieldOphthalmicPhotographyQualityThresholdSequence(0x0022, 0x1526);
-    Tag const WideFieldOphthalmicPhotographyThresholdQualityRating(0x0022, 0x1527);
-    Tag const XCoordinatesCenterPixelViewAngle(0x0022, 0x1528);
-    Tag const YCoordinatesCenterPixelViewAngle(0x0022, 0x1529);
-    Tag const NumberOfMapPoints(0x0022, 0x1530);
-    Tag const TwoDimensionalToThreeDimensionalMapData(0x0022, 0x1531);
-    Tag const VisualFieldHorizontalExtent(0x0024, 0x0010);
-    Tag const VisualFieldVerticalExtent(0x0024, 0x0011);
-    Tag const VisualFieldShape(0x0024, 0x0012);
-    Tag const ScreeningTestModeCodeSequence(0x0024, 0x0016);
-    Tag const MaximumStimulusLuminance(0x0024, 0x0018);
-    Tag const BackgroundLuminance(0x0024, 0x0020);
-    Tag const StimulusColorCodeSequence(0x0024, 0x0021);
-    Tag const BackgroundIlluminationColorCodeSequence(0x0024, 0x0024);
-    Tag const StimulusArea(0x0024, 0x0025);
-    Tag const StimulusPresentationTime(0x0024, 0x0028);
-    Tag const FixationSequence(0x0024, 0x0032);
-    Tag const FixationMonitoringCodeSequence(0x0024, 0x0033);
-    Tag const VisualFieldCatchTrialSequence(0x0024, 0x0034);
-    Tag const FixationCheckedQuantity(0x0024, 0x0035);
-    Tag const PatientNotProperlyFixatedQuantity(0x0024, 0x0036);
-    Tag const PresentedVisualStimuliDataFlag(0x0024, 0x0037);
-    Tag const NumberOfVisualStimuli(0x0024, 0x0038);
-    Tag const ExcessiveFixationLossesDataFlag(0x0024, 0x0039);
-    Tag const ExcessiveFixationLosses(0x0024, 0x0040);
-    Tag const StimuliRetestingQuantity(0x0024, 0x0042);
-    Tag const CommentsOnPatientPerformanceOfVisualField(0x0024, 0x0044);
-    Tag const FalseNegativesEstimateFlag(0x0024, 0x0045);
-    Tag const FalseNegativesEstimate(0x0024, 0x0046);
-    Tag const NegativeCatchTrialsQuantity(0x0024, 0x0048);
-    Tag const FalseNegativesQuantity(0x0024, 0x0050);
-    Tag const ExcessiveFalseNegativesDataFlag(0x0024, 0x0051);
-    Tag const ExcessiveFalseNegatives(0x0024, 0x0052);
-    Tag const FalsePositivesEstimateFlag(0x0024, 0x0053);
-    Tag const FalsePositivesEstimate(0x0024, 0x0054);
-    Tag const CatchTrialsDataFlag(0x0024, 0x0055);
-    Tag const PositiveCatchTrialsQuantity(0x0024, 0x0056);
-    Tag const TestPointNormalsDataFlag(0x0024, 0x0057);
-    Tag const TestPointNormalsSequence(0x0024, 0x0058);
-    Tag const GlobalDeviationProbabilityNormalsFlag(0x0024, 0x0059);
-    Tag const FalsePositivesQuantity(0x0024, 0x0060);
-    Tag const ExcessiveFalsePositivesDataFlag(0x0024, 0x0061);
-    Tag const ExcessiveFalsePositives(0x0024, 0x0062);
-    Tag const VisualFieldTestNormalsFlag(0x0024, 0x0063);
-    Tag const ResultsNormalsSequence(0x0024, 0x0064);
-    Tag const AgeCorrectedSensitivityDeviationAlgorithmSequence(0x0024, 0x0065);
-    Tag const GlobalDeviationFromNormal(0x0024, 0x0066);
-    Tag const GeneralizedDefectSensitivityDeviationAlgorithmSequence(0x0024, 0x0067);
-    Tag const LocalizedDeviationFromNormal(0x0024, 0x0068);
-    Tag const PatientReliabilityIndicator(0x0024, 0x0069);
-    Tag const VisualFieldMeanSensitivity(0x0024, 0x0070);
-    Tag const GlobalDeviationProbability(0x0024, 0x0071);
-    Tag const LocalDeviationProbabilityNormalsFlag(0x0024, 0x0072);
-    Tag const LocalizedDeviationProbability(0x0024, 0x0073);
-    Tag const ShortTermFluctuationCalculated(0x0024, 0x0074);
-    Tag const ShortTermFluctuation(0x0024, 0x0075);
-    Tag const ShortTermFluctuationProbabilityCalculated(0x0024, 0x0076);
-    Tag const ShortTermFluctuationProbability(0x0024, 0x0077);
-    Tag const CorrectedLocalizedDeviationFromNormalCalculated(0x0024, 0x0078);
-    Tag const CorrectedLocalizedDeviationFromNormal(0x0024, 0x0079);
-    Tag const CorrectedLocalizedDeviationFromNormalProbabilityCalculated(0x0024, 0x0080);
-    Tag const CorrectedLocalizedDeviationFromNormalProbability(0x0024, 0x0081);
-    Tag const GlobalDeviationProbabilitySequence(0x0024, 0x0083);
-    Tag const LocalizedDeviationProbabilitySequence(0x0024, 0x0085);
-    Tag const FovealSensitivityMeasured(0x0024, 0x0086);
-    Tag const FovealSensitivity(0x0024, 0x0087);
-    Tag const VisualFieldTestDuration(0x0024, 0x0088);
-    Tag const VisualFieldTestPointSequence(0x0024, 0x0089);
-    Tag const VisualFieldTestPointXCoordinate(0x0024, 0x0090);
-    Tag const VisualFieldTestPointYCoordinate(0x0024, 0x0091);
-    Tag const AgeCorrectedSensitivityDeviationValue(0x0024, 0x0092);
-    Tag const StimulusResults(0x0024, 0x0093);
-    Tag const SensitivityValue(0x0024, 0x0094);
-    Tag const RetestStimulusSeen(0x0024, 0x0095);
-    Tag const RetestSensitivityValue(0x0024, 0x0096);
-    Tag const VisualFieldTestPointNormalsSequence(0x0024, 0x0097);
-    Tag const QuantifiedDefect(0x0024, 0x0098);
-    Tag const AgeCorrectedSensitivityDeviationProbabilityValue(0x0024, 0x0100);
-    Tag const GeneralizedDefectCorrectedSensitivityDeviationFlag(0x0024, 0x0102);
-    Tag const GeneralizedDefectCorrectedSensitivityDeviationValue(0x0024, 0x0103);
-    Tag const GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue(0x0024, 0x0104);
-    Tag const MinimumSensitivityValue(0x0024, 0x0105);
-    Tag const BlindSpotLocalized(0x0024, 0x0106);
-    Tag const BlindSpotXCoordinate(0x0024, 0x0107);
-    Tag const BlindSpotYCoordinate(0x0024, 0x0108);
-    Tag const VisualAcuityMeasurementSequence(0x0024, 0x0110);
-    Tag const RefractiveParametersUsedOnPatientSequence(0x0024, 0x0112);
-    Tag const MeasurementLaterality(0x0024, 0x0113);
-    Tag const OphthalmicPatientClinicalInformationLeftEyeSequence(0x0024, 0x0114);
-    Tag const OphthalmicPatientClinicalInformationRightEyeSequence(0x0024, 0x0115);
-    Tag const FovealPointNormativeDataFlag(0x0024, 0x0117);
-    Tag const FovealPointProbabilityValue(0x0024, 0x0118);
-    Tag const ScreeningBaselineMeasured(0x0024, 0x0120);
-    Tag const ScreeningBaselineMeasuredSequence(0x0024, 0x0122);
-    Tag const ScreeningBaselineType(0x0024, 0x0124);
-    Tag const ScreeningBaselineValue(0x0024, 0x0126);
-    Tag const AlgorithmSource(0x0024, 0x0202);
-    Tag const DataSetName(0x0024, 0x0306);
-    Tag const DataSetVersion(0x0024, 0x0307);
-    Tag const DataSetSource(0x0024, 0x0308);
-    Tag const DataSetDescription(0x0024, 0x0309);
-    Tag const VisualFieldTestReliabilityGlobalIndexSequence(0x0024, 0x0317);
-    Tag const VisualFieldGlobalResultsIndexSequence(0x0024, 0x0320);
-    Tag const DataObservationSequence(0x0024, 0x0325);
-    Tag const IndexNormalsFlag(0x0024, 0x0338);
-    Tag const IndexProbability(0x0024, 0x0341);
-    Tag const IndexProbabilitySequence(0x0024, 0x0344);
-    Tag const SamplesPerPixel(0x0028, 0x0002);
-    Tag const SamplesPerPixelUsed(0x0028, 0x0003);
-    Tag const PhotometricInterpretation(0x0028, 0x0004);
-    Tag const ImageDimensions(0x0028, 0x0005);
-    Tag const PlanarConfiguration(0x0028, 0x0006);
-    Tag const NumberOfFrames(0x0028, 0x0008);
-    Tag const FrameIncrementPointer(0x0028, 0x0009);
-    Tag const FrameDimensionPointer(0x0028, 0x000a);
-    Tag const Rows(0x0028, 0x0010);
-    Tag const Columns(0x0028, 0x0011);
-    Tag const Planes(0x0028, 0x0012);
-    Tag const UltrasoundColorDataPresent(0x0028, 0x0014);
-    Tag const PixelSpacing(0x0028, 0x0030);
-    Tag const ZoomFactor(0x0028, 0x0031);
-    Tag const ZoomCenter(0x0028, 0x0032);
-    Tag const PixelAspectRatio(0x0028, 0x0034);
-    Tag const ImageFormat(0x0028, 0x0040);
-    Tag const ManipulatedImage(0x0028, 0x0050);
-    Tag const CorrectedImage(0x0028, 0x0051);
-    Tag const CompressionRecognitionCode(0x0028, 0x005f);
-    Tag const CompressionCode(0x0028, 0x0060);
-    Tag const CompressionOriginator(0x0028, 0x0061);
-    Tag const CompressionLabel(0x0028, 0x0062);
-    Tag const CompressionDescription(0x0028, 0x0063);
-    Tag const CompressionSequence(0x0028, 0x0065);
-    Tag const CompressionStepPointers(0x0028, 0x0066);
-    Tag const RepeatInterval(0x0028, 0x0068);
-    Tag const BitsGrouped(0x0028, 0x0069);
-    Tag const PerimeterTable(0x0028, 0x0070);
-    Tag const PerimeterValue(0x0028, 0x0071);
-    Tag const PredictorRows(0x0028, 0x0080);
-    Tag const PredictorColumns(0x0028, 0x0081);
-    Tag const PredictorConstants(0x0028, 0x0082);
-    Tag const BlockedPixels(0x0028, 0x0090);
-    Tag const BlockRows(0x0028, 0x0091);
-    Tag const BlockColumns(0x0028, 0x0092);
-    Tag const RowOverlap(0x0028, 0x0093);
-    Tag const ColumnOverlap(0x0028, 0x0094);
-    Tag const BitsAllocated(0x0028, 0x0100);
-    Tag const BitsStored(0x0028, 0x0101);
-    Tag const HighBit(0x0028, 0x0102);
-    Tag const PixelRepresentation(0x0028, 0x0103);
-    Tag const SmallestValidPixelValue(0x0028, 0x0104);
-    Tag const LargestValidPixelValue(0x0028, 0x0105);
-    Tag const SmallestImagePixelValue(0x0028, 0x0106);
-    Tag const LargestImagePixelValue(0x0028, 0x0107);
-    Tag const SmallestPixelValueInSeries(0x0028, 0x0108);
-    Tag const LargestPixelValueInSeries(0x0028, 0x0109);
-    Tag const SmallestImagePixelValueInPlane(0x0028, 0x0110);
-    Tag const LargestImagePixelValueInPlane(0x0028, 0x0111);
-    Tag const PixelPaddingValue(0x0028, 0x0120);
-    Tag const PixelPaddingRangeLimit(0x0028, 0x0121);
-    Tag const FloatPixelPaddingValue(0x0028, 0x0122);
-    Tag const DoubleFloatPixelPaddingValue(0x0028, 0x0123);
-    Tag const FloatPixelPaddingRangeLimit(0x0028, 0x0124);
-    Tag const DoubleFloatPixelPaddingRangeLimit(0x0028, 0x0125);
-    Tag const ImageLocation(0x0028, 0x0200);
-    Tag const QualityControlImage(0x0028, 0x0300);
-    Tag const BurnedInAnnotation(0x0028, 0x0301);
-    Tag const RecognizableVisualFeatures(0x0028, 0x0302);
-    Tag const LongitudinalTemporalInformationModified(0x0028, 0x0303);
-    Tag const ReferencedColorPaletteInstanceUID(0x0028, 0x0304);
-    Tag const TransformLabel(0x0028, 0x0400);
-    Tag const TransformVersionNumber(0x0028, 0x0401);
-    Tag const NumberOfTransformSteps(0x0028, 0x0402);
-    Tag const SequenceOfCompressedData(0x0028, 0x0403);
-    Tag const DetailsOfCoefficients(0x0028, 0x0404);
-    Tag const DCTLabel(0x0028, 0x0700);
-    Tag const DataBlockDescription(0x0028, 0x0701);
-    Tag const DataBlock(0x0028, 0x0702);
-    Tag const NormalizationFactorFormat(0x0028, 0x0710);
-    Tag const ZonalMapNumberFormat(0x0028, 0x0720);
-    Tag const ZonalMapLocation(0x0028, 0x0721);
-    Tag const ZonalMapFormat(0x0028, 0x0722);
-    Tag const AdaptiveMapFormat(0x0028, 0x0730);
-    Tag const CodeNumberFormat(0x0028, 0x0740);
-    Tag const PixelSpacingCalibrationType(0x0028, 0x0a02);
-    Tag const PixelSpacingCalibrationDescription(0x0028, 0x0a04);
-    Tag const PixelIntensityRelationship(0x0028, 0x1040);
-    Tag const PixelIntensityRelationshipSign(0x0028, 0x1041);
-    Tag const WindowCenter(0x0028, 0x1050);
-    Tag const WindowWidth(0x0028, 0x1051);
-    Tag const RescaleIntercept(0x0028, 0x1052);
-    Tag const RescaleSlope(0x0028, 0x1053);
-    Tag const RescaleType(0x0028, 0x1054);
-    Tag const WindowCenterWidthExplanation(0x0028, 0x1055);
-    Tag const VOILUTFunction(0x0028, 0x1056);
-    Tag const GrayScale(0x0028, 0x1080);
-    Tag const RecommendedViewingMode(0x0028, 0x1090);
-    Tag const GrayLookupTableDescriptor(0x0028, 0x1100);
-    Tag const RedPaletteColorLookupTableDescriptor(0x0028, 0x1101);
-    Tag const GreenPaletteColorLookupTableDescriptor(0x0028, 0x1102);
-    Tag const BluePaletteColorLookupTableDescriptor(0x0028, 0x1103);
-    Tag const AlphaPaletteColorLookupTableDescriptor(0x0028, 0x1104);
-    Tag const LargeRedPaletteColorLookupTableDescriptor(0x0028, 0x1111);
-    Tag const LargeGreenPaletteColorLookupTableDescriptor(0x0028, 0x1112);
-    Tag const LargeBluePaletteColorLookupTableDescriptor(0x0028, 0x1113);
-    Tag const PaletteColorLookupTableUID(0x0028, 0x1199);
-    Tag const GrayLookupTableData(0x0028, 0x1200);
-    Tag const RedPaletteColorLookupTableData(0x0028, 0x1201);
-    Tag const GreenPaletteColorLookupTableData(0x0028, 0x1202);
-    Tag const BluePaletteColorLookupTableData(0x0028, 0x1203);
-    Tag const AlphaPaletteColorLookupTableData(0x0028, 0x1204);
-    Tag const LargeRedPaletteColorLookupTableData(0x0028, 0x1211);
-    Tag const LargeGreenPaletteColorLookupTableData(0x0028, 0x1212);
-    Tag const LargeBluePaletteColorLookupTableData(0x0028, 0x1213);
-    Tag const LargePaletteColorLookupTableUID(0x0028, 0x1214);
-    Tag const SegmentedRedPaletteColorLookupTableData(0x0028, 0x1221);
-    Tag const SegmentedGreenPaletteColorLookupTableData(0x0028, 0x1222);
-    Tag const SegmentedBluePaletteColorLookupTableData(0x0028, 0x1223);
-    Tag const BreastImplantPresent(0x0028, 0x1300);
-    Tag const PartialView(0x0028, 0x1350);
-    Tag const PartialViewDescription(0x0028, 0x1351);
-    Tag const PartialViewCodeSequence(0x0028, 0x1352);
-    Tag const SpatialLocationsPreserved(0x0028, 0x135a);
-    Tag const DataFrameAssignmentSequence(0x0028, 0x1401);
-    Tag const DataPathAssignment(0x0028, 0x1402);
-    Tag const BitsMappedToColorLookupTable(0x0028, 0x1403);
-    Tag const BlendingLUT1Sequence(0x0028, 0x1404);
-    Tag const BlendingLUT1TransferFunction(0x0028, 0x1405);
-    Tag const BlendingWeightConstant(0x0028, 0x1406);
-    Tag const BlendingLookupTableDescriptor(0x0028, 0x1407);
-    Tag const BlendingLookupTableData(0x0028, 0x1408);
-    Tag const EnhancedPaletteColorLookupTableSequence(0x0028, 0x140b);
-    Tag const BlendingLUT2Sequence(0x0028, 0x140c);
-    Tag const BlendingLUT2TransferFunction(0x0028, 0x140d);
-    Tag const DataPathID(0x0028, 0x140e);
-    Tag const RGBLUTTransferFunction(0x0028, 0x140f);
-    Tag const AlphaLUTTransferFunction(0x0028, 0x1410);
-    Tag const ICCProfile(0x0028, 0x2000);
-    Tag const LossyImageCompression(0x0028, 0x2110);
-    Tag const LossyImageCompressionRatio(0x0028, 0x2112);
-    Tag const LossyImageCompressionMethod(0x0028, 0x2114);
-    Tag const ModalityLUTSequence(0x0028, 0x3000);
-    Tag const LUTDescriptor(0x0028, 0x3002);
-    Tag const LUTExplanation(0x0028, 0x3003);
-    Tag const ModalityLUTType(0x0028, 0x3004);
-    Tag const LUTData(0x0028, 0x3006);
-    Tag const VOILUTSequence(0x0028, 0x3010);
-    Tag const SoftcopyVOILUTSequence(0x0028, 0x3110);
-    Tag const ImagePresentationComments(0x0028, 0x4000);
-    Tag const BiPlaneAcquisitionSequence(0x0028, 0x5000);
-    Tag const RepresentativeFrameNumber(0x0028, 0x6010);
-    Tag const FrameNumbersOfInterest(0x0028, 0x6020);
-    Tag const FrameOfInterestDescription(0x0028, 0x6022);
-    Tag const FrameOfInterestType(0x0028, 0x6023);
-    Tag const MaskPointers(0x0028, 0x6030);
-    Tag const RWavePointer(0x0028, 0x6040);
-    Tag const MaskSubtractionSequence(0x0028, 0x6100);
-    Tag const MaskOperation(0x0028, 0x6101);
-    Tag const ApplicableFrameRange(0x0028, 0x6102);
-    Tag const MaskFrameNumbers(0x0028, 0x6110);
-    Tag const ContrastFrameAveraging(0x0028, 0x6112);
-    Tag const MaskSubPixelShift(0x0028, 0x6114);
-    Tag const TIDOffset(0x0028, 0x6120);
-    Tag const MaskOperationExplanation(0x0028, 0x6190);
-    Tag const EquipmentAdministratorSequence(0x0028, 0x7000);
-    Tag const NumberOfDisplaySubsystems(0x0028, 0x7001);
-    Tag const CurrentConfigurationID(0x0028, 0x7002);
-    Tag const DisplaySubsystemID(0x0028, 0x7003);
-    Tag const DisplaySubsystemName(0x0028, 0x7004);
-    Tag const DisplaySubsystemDescription(0x0028, 0x7005);
-    Tag const SystemStatus(0x0028, 0x7006);
-    Tag const SystemStatusComment(0x0028, 0x7007);
-    Tag const TargetLuminanceCharacteristicsSequence(0x0028, 0x7008);
-    Tag const LuminanceCharacteristicsID(0x0028, 0x7009);
-    Tag const DisplaySubsystemConfigurationSequence(0x0028, 0x700a);
-    Tag const ConfigurationID(0x0028, 0x700b);
-    Tag const ConfigurationName(0x0028, 0x700c);
-    Tag const ConfigurationDescription(0x0028, 0x700d);
-    Tag const ReferencedTargetLuminanceCharacteristicsID(0x0028, 0x700e);
-    Tag const QAResultsSequence(0x0028, 0x700f);
-    Tag const DisplaySubsystemQAResultsSequence(0x0028, 0x7010);
-    Tag const ConfigurationQAResultsSequence(0x0028, 0x7011);
-    Tag const MeasurementEquipmentSequence(0x0028, 0x7012);
-    Tag const MeasurementFunctions(0x0028, 0x7013);
-    Tag const MeasurementEquipmentType(0x0028, 0x7014);
-    Tag const VisualEvaluationResultSequence(0x0028, 0x7015);
-    Tag const DisplayCalibrationResultSequence(0x0028, 0x7016);
-    Tag const DDLValue(0x0028, 0x7017);
-    Tag const CIExyWhitePoint(0x0028, 0x7018);
-    Tag const DisplayFunctionType(0x0028, 0x7019);
-    Tag const GammaValue(0x0028, 0x701a);
-    Tag const NumberOfLuminancePoints(0x0028, 0x701b);
-    Tag const LuminanceResponseSequence(0x0028, 0x701c);
-    Tag const TargetMinimumLuminance(0x0028, 0x701d);
-    Tag const TargetMaximumLuminance(0x0028, 0x701e);
-    Tag const LuminanceValue(0x0028, 0x701f);
-    Tag const LuminanceResponseDescription(0x0028, 0x7020);
-    Tag const WhitePointFlag(0x0028, 0x7021);
-    Tag const DisplayDeviceTypeCodeSequence(0x0028, 0x7022);
-    Tag const DisplaySubsystemSequence(0x0028, 0x7023);
-    Tag const LuminanceResultSequence(0x0028, 0x7024);
-    Tag const AmbientLightValueSource(0x0028, 0x7025);
-    Tag const MeasuredCharacteristics(0x0028, 0x7026);
-    Tag const LuminanceUniformityResultSequence(0x0028, 0x7027);
-    Tag const VisualEvaluationTestSequence(0x0028, 0x7028);
-    Tag const TestResult(0x0028, 0x7029);
-    Tag const TestResultComment(0x0028, 0x702a);
-    Tag const TestImageValidation(0x0028, 0x702b);
-    Tag const TestPatternCodeSequence(0x0028, 0x702c);
-    Tag const MeasurementPatternCodeSequence(0x0028, 0x702d);
-    Tag const VisualEvaluationMethodCodeSequence(0x0028, 0x702e);
-    Tag const PixelDataProviderURL(0x0028, 0x7fe0);
-    Tag const DataPointRows(0x0028, 0x9001);
-    Tag const DataPointColumns(0x0028, 0x9002);
-    Tag const SignalDomainColumns(0x0028, 0x9003);
-    Tag const LargestMonochromePixelValue(0x0028, 0x9099);
-    Tag const DataRepresentation(0x0028, 0x9108);
-    Tag const PixelMeasuresSequence(0x0028, 0x9110);
-    Tag const FrameVOILUTSequence(0x0028, 0x9132);
-    Tag const PixelValueTransformationSequence(0x0028, 0x9145);
-    Tag const SignalDomainRows(0x0028, 0x9235);
-    Tag const DisplayFilterPercentage(0x0028, 0x9411);
-    Tag const FramePixelShiftSequence(0x0028, 0x9415);
-    Tag const SubtractionItemID(0x0028, 0x9416);
-    Tag const PixelIntensityRelationshipLUTSequence(0x0028, 0x9422);
-    Tag const FramePixelDataPropertiesSequence(0x0028, 0x9443);
-    Tag const GeometricalProperties(0x0028, 0x9444);
-    Tag const GeometricMaximumDistortion(0x0028, 0x9445);
-    Tag const ImageProcessingApplied(0x0028, 0x9446);
-    Tag const MaskSelectionMode(0x0028, 0x9454);
-    Tag const LUTFunction(0x0028, 0x9474);
-    Tag const MaskVisibilityPercentage(0x0028, 0x9478);
-    Tag const PixelShiftSequence(0x0028, 0x9501);
-    Tag const RegionPixelShiftSequence(0x0028, 0x9502);
-    Tag const VerticesOfTheRegion(0x0028, 0x9503);
-    Tag const MultiFramePresentationSequence(0x0028, 0x9505);
-    Tag const PixelShiftFrameRange(0x0028, 0x9506);
-    Tag const LUTFrameRange(0x0028, 0x9507);
-    Tag const ImageToEquipmentMappingMatrix(0x0028, 0x9520);
-    Tag const EquipmentCoordinateSystemIdentification(0x0028, 0x9537);
-    Tag const StudyStatusID(0x0032, 0x000a);
-    Tag const StudyPriorityID(0x0032, 0x000c);
-    Tag const StudyIDIssuer(0x0032, 0x0012);
-    Tag const StudyVerifiedDate(0x0032, 0x0032);
-    Tag const StudyVerifiedTime(0x0032, 0x0033);
-    Tag const StudyReadDate(0x0032, 0x0034);
-    Tag const StudyReadTime(0x0032, 0x0035);
-    Tag const ScheduledStudyStartDate(0x0032, 0x1000);
-    Tag const ScheduledStudyStartTime(0x0032, 0x1001);
-    Tag const ScheduledStudyStopDate(0x0032, 0x1010);
-    Tag const ScheduledStudyStopTime(0x0032, 0x1011);
-    Tag const ScheduledStudyLocation(0x0032, 0x1020);
-    Tag const ScheduledStudyLocationAETitle(0x0032, 0x1021);
-    Tag const ReasonForStudy(0x0032, 0x1030);
-    Tag const RequestingPhysicianIdentificationSequence(0x0032, 0x1031);
-    Tag const RequestingPhysician(0x0032, 0x1032);
-    Tag const RequestingService(0x0032, 0x1033);
-    Tag const RequestingServiceCodeSequence(0x0032, 0x1034);
-    Tag const StudyArrivalDate(0x0032, 0x1040);
-    Tag const StudyArrivalTime(0x0032, 0x1041);
-    Tag const StudyCompletionDate(0x0032, 0x1050);
-    Tag const StudyCompletionTime(0x0032, 0x1051);
-    Tag const StudyComponentStatusID(0x0032, 0x1055);
-    Tag const RequestedProcedureDescription(0x0032, 0x1060);
-    Tag const RequestedProcedureCodeSequence(0x0032, 0x1064);
-    Tag const RequestedContrastAgent(0x0032, 0x1070);
-    Tag const StudyComments(0x0032, 0x4000);
-    Tag const ReferencedPatientAliasSequence(0x0038, 0x0004);
-    Tag const VisitStatusID(0x0038, 0x0008);
-    Tag const AdmissionID(0x0038, 0x0010);
-    Tag const IssuerOfAdmissionID(0x0038, 0x0011);
-    Tag const IssuerOfAdmissionIDSequence(0x0038, 0x0014);
-    Tag const RouteOfAdmissions(0x0038, 0x0016);
-    Tag const ScheduledAdmissionDate(0x0038, 0x001a);
-    Tag const ScheduledAdmissionTime(0x0038, 0x001b);
-    Tag const ScheduledDischargeDate(0x0038, 0x001c);
-    Tag const ScheduledDischargeTime(0x0038, 0x001d);
-    Tag const ScheduledPatientInstitutionResidence(0x0038, 0x001e);
-    Tag const AdmittingDate(0x0038, 0x0020);
-    Tag const AdmittingTime(0x0038, 0x0021);
-    Tag const DischargeDate(0x0038, 0x0030);
-    Tag const DischargeTime(0x0038, 0x0032);
-    Tag const DischargeDiagnosisDescription(0x0038, 0x0040);
-    Tag const DischargeDiagnosisCodeSequence(0x0038, 0x0044);
-    Tag const SpecialNeeds(0x0038, 0x0050);
-    Tag const ServiceEpisodeID(0x0038, 0x0060);
-    Tag const IssuerOfServiceEpisodeID(0x0038, 0x0061);
-    Tag const ServiceEpisodeDescription(0x0038, 0x0062);
-    Tag const IssuerOfServiceEpisodeIDSequence(0x0038, 0x0064);
-    Tag const PertinentDocumentsSequence(0x0038, 0x0100);
-    Tag const PertinentResourcesSequence(0x0038, 0x0101);
-    Tag const ResourceDescription(0x0038, 0x0102);
-    Tag const CurrentPatientLocation(0x0038, 0x0300);
-    Tag const PatientInstitutionResidence(0x0038, 0x0400);
-    Tag const PatientState(0x0038, 0x0500);
-    Tag const PatientClinicalTrialParticipationSequence(0x0038, 0x0502);
-    Tag const VisitComments(0x0038, 0x4000);
-    Tag const WaveformOriginality(0x003a, 0x0004);
-    Tag const NumberOfWaveformChannels(0x003a, 0x0005);
-    Tag const NumberOfWaveformSamples(0x003a, 0x0010);
-    Tag const SamplingFrequency(0x003a, 0x001a);
-    Tag const MultiplexGroupLabel(0x003a, 0x0020);
-    Tag const ChannelDefinitionSequence(0x003a, 0x0200);
-    Tag const WaveformChannelNumber(0x003a, 0x0202);
-    Tag const ChannelLabel(0x003a, 0x0203);
-    Tag const ChannelStatus(0x003a, 0x0205);
-    Tag const ChannelSourceSequence(0x003a, 0x0208);
-    Tag const ChannelSourceModifiersSequence(0x003a, 0x0209);
-    Tag const SourceWaveformSequence(0x003a, 0x020a);
-    Tag const ChannelDerivationDescription(0x003a, 0x020c);
-    Tag const ChannelSensitivity(0x003a, 0x0210);
-    Tag const ChannelSensitivityUnitsSequence(0x003a, 0x0211);
-    Tag const ChannelSensitivityCorrectionFactor(0x003a, 0x0212);
-    Tag const ChannelBaseline(0x003a, 0x0213);
-    Tag const ChannelTimeSkew(0x003a, 0x0214);
-    Tag const ChannelSampleSkew(0x003a, 0x0215);
-    Tag const ChannelOffset(0x003a, 0x0218);
-    Tag const WaveformBitsStored(0x003a, 0x021a);
-    Tag const FilterLowFrequency(0x003a, 0x0220);
-    Tag const FilterHighFrequency(0x003a, 0x0221);
-    Tag const NotchFilterFrequency(0x003a, 0x0222);
-    Tag const NotchFilterBandwidth(0x003a, 0x0223);
-    Tag const WaveformDataDisplayScale(0x003a, 0x0230);
-    Tag const WaveformDisplayBackgroundCIELabValue(0x003a, 0x0231);
-    Tag const WaveformPresentationGroupSequence(0x003a, 0x0240);
-    Tag const PresentationGroupNumber(0x003a, 0x0241);
-    Tag const ChannelDisplaySequence(0x003a, 0x0242);
-    Tag const ChannelRecommendedDisplayCIELabValue(0x003a, 0x0244);
-    Tag const ChannelPosition(0x003a, 0x0245);
-    Tag const DisplayShadingFlag(0x003a, 0x0246);
-    Tag const FractionalChannelDisplayScale(0x003a, 0x0247);
-    Tag const AbsoluteChannelDisplayScale(0x003a, 0x0248);
-    Tag const MultiplexedAudioChannelsDescriptionCodeSequence(0x003a, 0x0300);
-    Tag const ChannelIdentificationCode(0x003a, 0x0301);
-    Tag const ChannelMode(0x003a, 0x0302);
-    Tag const ScheduledStationAETitle(0x0040, 0x0001);
-    Tag const ScheduledProcedureStepStartDate(0x0040, 0x0002);
-    Tag const ScheduledProcedureStepStartTime(0x0040, 0x0003);
-    Tag const ScheduledProcedureStepEndDate(0x0040, 0x0004);
-    Tag const ScheduledProcedureStepEndTime(0x0040, 0x0005);
-    Tag const ScheduledPerformingPhysicianName(0x0040, 0x0006);
-    Tag const ScheduledProcedureStepDescription(0x0040, 0x0007);
-    Tag const ScheduledProtocolCodeSequence(0x0040, 0x0008);
-    Tag const ScheduledProcedureStepID(0x0040, 0x0009);
-    Tag const StageCodeSequence(0x0040, 0x000a);
-    Tag const ScheduledPerformingPhysicianIdentificationSequence(0x0040, 0x000b);
-    Tag const ScheduledStationName(0x0040, 0x0010);
-    Tag const ScheduledProcedureStepLocation(0x0040, 0x0011);
-    Tag const PreMedication(0x0040, 0x0012);
-    Tag const ScheduledProcedureStepStatus(0x0040, 0x0020);
-    Tag const OrderPlacerIdentifierSequence(0x0040, 0x0026);
-    Tag const OrderFillerIdentifierSequence(0x0040, 0x0027);
-    Tag const LocalNamespaceEntityID(0x0040, 0x0031);
-    Tag const UniversalEntityID(0x0040, 0x0032);
-    Tag const UniversalEntityIDType(0x0040, 0x0033);
-    Tag const IdentifierTypeCode(0x0040, 0x0035);
-    Tag const AssigningFacilitySequence(0x0040, 0x0036);
-    Tag const AssigningJurisdictionCodeSequence(0x0040, 0x0039);
-    Tag const AssigningAgencyOrDepartmentCodeSequence(0x0040, 0x003a);
-    Tag const ScheduledProcedureStepSequence(0x0040, 0x0100);
-    Tag const ReferencedNonImageCompositeSOPInstanceSequence(0x0040, 0x0220);
-    Tag const PerformedStationAETitle(0x0040, 0x0241);
-    Tag const PerformedStationName(0x0040, 0x0242);
-    Tag const PerformedLocation(0x0040, 0x0243);
-    Tag const PerformedProcedureStepStartDate(0x0040, 0x0244);
-    Tag const PerformedProcedureStepStartTime(0x0040, 0x0245);
-    Tag const PerformedProcedureStepEndDate(0x0040, 0x0250);
-    Tag const PerformedProcedureStepEndTime(0x0040, 0x0251);
-    Tag const PerformedProcedureStepStatus(0x0040, 0x0252);
-    Tag const PerformedProcedureStepID(0x0040, 0x0253);
-    Tag const PerformedProcedureStepDescription(0x0040, 0x0254);
-    Tag const PerformedProcedureTypeDescription(0x0040, 0x0255);
-    Tag const PerformedProtocolCodeSequence(0x0040, 0x0260);
-    Tag const PerformedProtocolType(0x0040, 0x0261);
-    Tag const ScheduledStepAttributesSequence(0x0040, 0x0270);
-    Tag const RequestAttributesSequence(0x0040, 0x0275);
-    Tag const CommentsOnThePerformedProcedureStep(0x0040, 0x0280);
-    Tag const PerformedProcedureStepDiscontinuationReasonCodeSequence(0x0040, 0x0281);
-    Tag const QuantitySequence(0x0040, 0x0293);
-    Tag const Quantity(0x0040, 0x0294);
-    Tag const MeasuringUnitsSequence(0x0040, 0x0295);
-    Tag const BillingItemSequence(0x0040, 0x0296);
-    Tag const TotalTimeOfFluoroscopy(0x0040, 0x0300);
-    Tag const TotalNumberOfExposures(0x0040, 0x0301);
-    Tag const EntranceDose(0x0040, 0x0302);
-    Tag const ExposedArea(0x0040, 0x0303);
-    Tag const DistanceSourceToEntrance(0x0040, 0x0306);
-    Tag const DistanceSourceToSupport(0x0040, 0x0307);
-    Tag const ExposureDoseSequence(0x0040, 0x030e);
-    Tag const CommentsOnRadiationDose(0x0040, 0x0310);
-    Tag const XRayOutput(0x0040, 0x0312);
-    Tag const HalfValueLayer(0x0040, 0x0314);
-    Tag const OrganDose(0x0040, 0x0316);
-    Tag const OrganExposed(0x0040, 0x0318);
-    Tag const BillingProcedureStepSequence(0x0040, 0x0320);
-    Tag const FilmConsumptionSequence(0x0040, 0x0321);
-    Tag const BillingSuppliesAndDevicesSequence(0x0040, 0x0324);
-    Tag const ReferencedProcedureStepSequence(0x0040, 0x0330);
-    Tag const PerformedSeriesSequence(0x0040, 0x0340);
-    Tag const CommentsOnTheScheduledProcedureStep(0x0040, 0x0400);
-    Tag const ProtocolContextSequence(0x0040, 0x0440);
-    Tag const ContentItemModifierSequence(0x0040, 0x0441);
-    Tag const ScheduledSpecimenSequence(0x0040, 0x0500);
-    Tag const SpecimenAccessionNumber(0x0040, 0x050a);
-    Tag const ContainerIdentifier(0x0040, 0x0512);
-    Tag const IssuerOfTheContainerIdentifierSequence(0x0040, 0x0513);
-    Tag const AlternateContainerIdentifierSequence(0x0040, 0x0515);
-    Tag const ContainerTypeCodeSequence(0x0040, 0x0518);
-    Tag const ContainerDescription(0x0040, 0x051a);
-    Tag const ContainerComponentSequence(0x0040, 0x0520);
-    Tag const SpecimenSequence(0x0040, 0x0550);
-    Tag const SpecimenIdentifier(0x0040, 0x0551);
-    Tag const SpecimenDescriptionSequenceTrial(0x0040, 0x0552);
-    Tag const SpecimenDescriptionTrial(0x0040, 0x0553);
-    Tag const SpecimenUID(0x0040, 0x0554);
-    Tag const AcquisitionContextSequence(0x0040, 0x0555);
-    Tag const AcquisitionContextDescription(0x0040, 0x0556);
-    Tag const SpecimenTypeCodeSequence(0x0040, 0x059a);
-    Tag const SpecimenDescriptionSequence(0x0040, 0x0560);
-    Tag const IssuerOfTheSpecimenIdentifierSequence(0x0040, 0x0562);
-    Tag const SpecimenShortDescription(0x0040, 0x0600);
-    Tag const SpecimenDetailedDescription(0x0040, 0x0602);
-    Tag const SpecimenPreparationSequence(0x0040, 0x0610);
-    Tag const SpecimenPreparationStepContentItemSequence(0x0040, 0x0612);
-    Tag const SpecimenLocalizationContentItemSequence(0x0040, 0x0620);
-    Tag const SlideIdentifier(0x0040, 0x06fa);
-    Tag const ImageCenterPointCoordinatesSequence(0x0040, 0x071a);
-    Tag const XOffsetInSlideCoordinateSystem(0x0040, 0x072a);
-    Tag const YOffsetInSlideCoordinateSystem(0x0040, 0x073a);
-    Tag const ZOffsetInSlideCoordinateSystem(0x0040, 0x074a);
-    Tag const PixelSpacingSequence(0x0040, 0x08d8);
-    Tag const CoordinateSystemAxisCodeSequence(0x0040, 0x08da);
-    Tag const MeasurementUnitsCodeSequence(0x0040, 0x08ea);
-    Tag const VitalStainCodeSequenceTrial(0x0040, 0x09f8);
-    Tag const RequestedProcedureID(0x0040, 0x1001);
-    Tag const ReasonForTheRequestedProcedure(0x0040, 0x1002);
-    Tag const RequestedProcedurePriority(0x0040, 0x1003);
-    Tag const PatientTransportArrangements(0x0040, 0x1004);
-    Tag const RequestedProcedureLocation(0x0040, 0x1005);
-    Tag const PlacerOrderNumberProcedure(0x0040, 0x1006);
-    Tag const FillerOrderNumberProcedure(0x0040, 0x1007);
-    Tag const ConfidentialityCode(0x0040, 0x1008);
-    Tag const ReportingPriority(0x0040, 0x1009);
-    Tag const ReasonForRequestedProcedureCodeSequence(0x0040, 0x100a);
-    Tag const NamesOfIntendedRecipientsOfResults(0x0040, 0x1010);
-    Tag const IntendedRecipientsOfResultsIdentificationSequence(0x0040, 0x1011);
-    Tag const ReasonForPerformedProcedureCodeSequence(0x0040, 0x1012);
-    Tag const RequestedProcedureDescriptionTrial(0x0040, 0x1060);
-    Tag const PersonIdentificationCodeSequence(0x0040, 0x1101);
-    Tag const PersonAddress(0x0040, 0x1102);
-    Tag const PersonTelephoneNumbers(0x0040, 0x1103);
-    Tag const RequestedProcedureComments(0x0040, 0x1400);
-    Tag const ReasonForTheImagingServiceRequest(0x0040, 0x2001);
-    Tag const IssueDateOfImagingServiceRequest(0x0040, 0x2004);
-    Tag const IssueTimeOfImagingServiceRequest(0x0040, 0x2005);
-    Tag const PlacerOrderNumberImagingServiceRequestRetired(0x0040, 0x2006);
-    Tag const FillerOrderNumberImagingServiceRequestRetired(0x0040, 0x2007);
-    Tag const OrderEnteredBy(0x0040, 0x2008);
-    Tag const OrderEntererLocation(0x0040, 0x2009);
-    Tag const OrderCallbackPhoneNumber(0x0040, 0x2010);
-    Tag const PlacerOrderNumberImagingServiceRequest(0x0040, 0x2016);
-    Tag const FillerOrderNumberImagingServiceRequest(0x0040, 0x2017);
-    Tag const ImagingServiceRequestComments(0x0040, 0x2400);
-    Tag const ConfidentialityConstraintOnPatientDataDescription(0x0040, 0x3001);
-    Tag const GeneralPurposeScheduledProcedureStepStatus(0x0040, 0x4001);
-    Tag const GeneralPurposePerformedProcedureStepStatus(0x0040, 0x4002);
-    Tag const GeneralPurposeScheduledProcedureStepPriority(0x0040, 0x4003);
-    Tag const ScheduledProcessingApplicationsCodeSequence(0x0040, 0x4004);
-    Tag const ScheduledProcedureStepStartDateTime(0x0040, 0x4005);
-    Tag const MultipleCopiesFlag(0x0040, 0x4006);
-    Tag const PerformedProcessingApplicationsCodeSequence(0x0040, 0x4007);
-    Tag const HumanPerformerCodeSequence(0x0040, 0x4009);
-    Tag const ScheduledProcedureStepModificationDateTime(0x0040, 0x4010);
-    Tag const ExpectedCompletionDateTime(0x0040, 0x4011);
-    Tag const ResultingGeneralPurposePerformedProcedureStepsSequence(0x0040, 0x4015);
-    Tag const ReferencedGeneralPurposeScheduledProcedureStepSequence(0x0040, 0x4016);
-    Tag const ScheduledWorkitemCodeSequence(0x0040, 0x4018);
-    Tag const PerformedWorkitemCodeSequence(0x0040, 0x4019);
-    Tag const InputAvailabilityFlag(0x0040, 0x4020);
-    Tag const InputInformationSequence(0x0040, 0x4021);
-    Tag const RelevantInformationSequence(0x0040, 0x4022);
-    Tag const ReferencedGeneralPurposeScheduledProcedureStepTransactionUID(0x0040, 0x4023);
-    Tag const ScheduledStationNameCodeSequence(0x0040, 0x4025);
-    Tag const ScheduledStationClassCodeSequence(0x0040, 0x4026);
-    Tag const ScheduledStationGeographicLocationCodeSequence(0x0040, 0x4027);
-    Tag const PerformedStationNameCodeSequence(0x0040, 0x4028);
-    Tag const PerformedStationClassCodeSequence(0x0040, 0x4029);
-    Tag const PerformedStationGeographicLocationCodeSequence(0x0040, 0x4030);
-    Tag const RequestedSubsequentWorkitemCodeSequence(0x0040, 0x4031);
-    Tag const NonDICOMOutputCodeSequence(0x0040, 0x4032);
-    Tag const OutputInformationSequence(0x0040, 0x4033);
-    Tag const ScheduledHumanPerformersSequence(0x0040, 0x4034);
-    Tag const ActualHumanPerformersSequence(0x0040, 0x4035);
-    Tag const HumanPerformerOrganization(0x0040, 0x4036);
-    Tag const HumanPerformerName(0x0040, 0x4037);
-    Tag const RawDataHandling(0x0040, 0x4040);
-    Tag const InputReadinessState(0x0040, 0x4041);
-    Tag const PerformedProcedureStepStartDateTime(0x0040, 0x4050);
-    Tag const PerformedProcedureStepEndDateTime(0x0040, 0x4051);
-    Tag const ProcedureStepCancellationDateTime(0x0040, 0x4052);
-    Tag const EntranceDoseInmGy(0x0040, 0x8302);
-    Tag const ParametricMapFrameTypeSequence(0x0040, 0x9092);
-    Tag const ReferencedImageRealWorldValueMappingSequence(0x0040, 0x9094);
-    Tag const RealWorldValueMappingSequence(0x0040, 0x9096);
-    Tag const PixelValueMappingCodeSequence(0x0040, 0x9098);
-    Tag const LUTLabel(0x0040, 0x9210);
-    Tag const RealWorldValueLastValueMapped(0x0040, 0x9211);
-    Tag const RealWorldValueLUTData(0x0040, 0x9212);
-    Tag const RealWorldValueFirstValueMapped(0x0040, 0x9216);
-    Tag const QuantityDefinitionSequence(0x0040, 0x9220);
-    Tag const RealWorldValueIntercept(0x0040, 0x9224);
-    Tag const RealWorldValueSlope(0x0040, 0x9225);
-    Tag const FindingsFlagTrial(0x0040, 0xa007);
-    Tag const RelationshipType(0x0040, 0xa010);
-    Tag const FindingsSequenceTrial(0x0040, 0xa020);
-    Tag const FindingsGroupUIDTrial(0x0040, 0xa021);
-    Tag const ReferencedFindingsGroupUIDTrial(0x0040, 0xa022);
-    Tag const FindingsGroupRecordingDateTrial(0x0040, 0xa023);
-    Tag const FindingsGroupRecordingTimeTrial(0x0040, 0xa024);
-    Tag const FindingsSourceCategoryCodeSequenceTrial(0x0040, 0xa026);
-    Tag const VerifyingOrganization(0x0040, 0xa027);
-    Tag const DocumentingOrganizationIdentifierCodeSequenceTrial(0x0040, 0xa028);
-    Tag const VerificationDateTime(0x0040, 0xa030);
-    Tag const ObservationDateTime(0x0040, 0xa032);
-    Tag const ValueType(0x0040, 0xa040);
-    Tag const ConceptNameCodeSequence(0x0040, 0xa043);
-    Tag const MeasurementPrecisionDescriptionTrial(0x0040, 0xa047);
-    Tag const ContinuityOfContent(0x0040, 0xa050);
-    Tag const UrgencyOrPriorityAlertsTrial(0x0040, 0xa057);
-    Tag const SequencingIndicatorTrial(0x0040, 0xa060);
-    Tag const DocumentIdentifierCodeSequenceTrial(0x0040, 0xa066);
-    Tag const DocumentAuthorTrial(0x0040, 0xa067);
-    Tag const DocumentAuthorIdentifierCodeSequenceTrial(0x0040, 0xa068);
-    Tag const IdentifierCodeSequenceTrial(0x0040, 0xa070);
-    Tag const VerifyingObserverSequence(0x0040, 0xa073);
-    Tag const ObjectBinaryIdentifierTrial(0x0040, 0xa074);
-    Tag const VerifyingObserverName(0x0040, 0xa075);
-    Tag const DocumentingObserverIdentifierCodeSequenceTrial(0x0040, 0xa076);
-    Tag const AuthorObserverSequence(0x0040, 0xa078);
-    Tag const ParticipantSequence(0x0040, 0xa07a);
-    Tag const CustodialOrganizationSequence(0x0040, 0xa07c);
-    Tag const ParticipationType(0x0040, 0xa080);
-    Tag const ParticipationDateTime(0x0040, 0xa082);
-    Tag const ObserverType(0x0040, 0xa084);
-    Tag const ProcedureIdentifierCodeSequenceTrial(0x0040, 0xa085);
-    Tag const VerifyingObserverIdentificationCodeSequence(0x0040, 0xa088);
-    Tag const ObjectDirectoryBinaryIdentifierTrial(0x0040, 0xa089);
-    Tag const EquivalentCDADocumentSequence(0x0040, 0xa090);
-    Tag const ReferencedWaveformChannels(0x0040, 0xa0b0);
-    Tag const DateOfDocumentOrVerbalTransactionTrial(0x0040, 0xa110);
-    Tag const TimeOfDocumentCreationOrVerbalTransactionTrial(0x0040, 0xa112);
-    Tag const DateTime(0x0040, 0xa120);
-    Tag const Date(0x0040, 0xa121);
-    Tag const Time(0x0040, 0xa122);
-    Tag const PersonName(0x0040, 0xa123);
-    Tag const UID(0x0040, 0xa124);
-    Tag const ReportStatusIDTrial(0x0040, 0xa125);
-    Tag const TemporalRangeType(0x0040, 0xa130);
-    Tag const ReferencedSamplePositions(0x0040, 0xa132);
-    Tag const ReferencedFrameNumbers(0x0040, 0xa136);
-    Tag const ReferencedTimeOffsets(0x0040, 0xa138);
-    Tag const ReferencedDateTime(0x0040, 0xa13a);
-    Tag const TextValue(0x0040, 0xa160);
-    Tag const FloatingPointValue(0x0040, 0xa161);
-    Tag const RationalNumeratorValue(0x0040, 0xa162);
-    Tag const RationalDenominatorValue(0x0040, 0xa163);
-    Tag const ObservationCategoryCodeSequenceTrial(0x0040, 0xa167);
-    Tag const ConceptCodeSequence(0x0040, 0xa168);
-    Tag const BibliographicCitationTrial(0x0040, 0xa16a);
-    Tag const PurposeOfReferenceCodeSequence(0x0040, 0xa170);
-    Tag const ObservationUID(0x0040, 0xa171);
-    Tag const ReferencedObservationUIDTrial(0x0040, 0xa172);
-    Tag const ReferencedObservationClassTrial(0x0040, 0xa173);
-    Tag const ReferencedObjectObservationClassTrial(0x0040, 0xa174);
-    Tag const AnnotationGroupNumber(0x0040, 0xa180);
-    Tag const ObservationDateTrial(0x0040, 0xa192);
-    Tag const ObservationTimeTrial(0x0040, 0xa193);
-    Tag const MeasurementAutomationTrial(0x0040, 0xa194);
-    Tag const ModifierCodeSequence(0x0040, 0xa195);
-    Tag const IdentificationDescriptionTrial(0x0040, 0xa224);
-    Tag const CoordinatesSetGeometricTypeTrial(0x0040, 0xa290);
-    Tag const AlgorithmCodeSequenceTrial(0x0040, 0xa296);
-    Tag const AlgorithmDescriptionTrial(0x0040, 0xa297);
-    Tag const PixelCoordinatesSetTrial(0x0040, 0xa29a);
-    Tag const MeasuredValueSequence(0x0040, 0xa300);
-    Tag const NumericValueQualifierCodeSequence(0x0040, 0xa301);
-    Tag const CurrentObserverTrial(0x0040, 0xa307);
-    Tag const NumericValue(0x0040, 0xa30a);
-    Tag const ReferencedAccessionSequenceTrial(0x0040, 0xa313);
-    Tag const ReportStatusCommentTrial(0x0040, 0xa33a);
-    Tag const ProcedureContextSequenceTrial(0x0040, 0xa340);
-    Tag const VerbalSourceTrial(0x0040, 0xa352);
-    Tag const AddressTrial(0x0040, 0xa353);
-    Tag const TelephoneNumberTrial(0x0040, 0xa354);
-    Tag const VerbalSourceIdentifierCodeSequenceTrial(0x0040, 0xa358);
-    Tag const PredecessorDocumentsSequence(0x0040, 0xa360);
-    Tag const ReferencedRequestSequence(0x0040, 0xa370);
-    Tag const PerformedProcedureCodeSequence(0x0040, 0xa372);
-    Tag const CurrentRequestedProcedureEvidenceSequence(0x0040, 0xa375);
-    Tag const ReportDetailSequenceTrial(0x0040, 0xa380);
-    Tag const PertinentOtherEvidenceSequence(0x0040, 0xa385);
-    Tag const HL7StructuredDocumentReferenceSequence(0x0040, 0xa390);
-    Tag const ObservationSubjectUIDTrial(0x0040, 0xa402);
-    Tag const ObservationSubjectClassTrial(0x0040, 0xa403);
-    Tag const ObservationSubjectTypeCodeSequenceTrial(0x0040, 0xa404);
-    Tag const CompletionFlag(0x0040, 0xa491);
-    Tag const CompletionFlagDescription(0x0040, 0xa492);
-    Tag const VerificationFlag(0x0040, 0xa493);
-    Tag const ArchiveRequested(0x0040, 0xa494);
-    Tag const PreliminaryFlag(0x0040, 0xa496);
-    Tag const ContentTemplateSequence(0x0040, 0xa504);
-    Tag const IdenticalDocumentsSequence(0x0040, 0xa525);
-    Tag const ObservationSubjectContextFlagTrial(0x0040, 0xa600);
-    Tag const ObserverContextFlagTrial(0x0040, 0xa601);
-    Tag const ProcedureContextFlagTrial(0x0040, 0xa603);
-    Tag const ContentSequence(0x0040, 0xa730);
-    Tag const RelationshipSequenceTrial(0x0040, 0xa731);
-    Tag const RelationshipTypeCodeSequenceTrial(0x0040, 0xa732);
-    Tag const LanguageCodeSequenceTrial(0x0040, 0xa744);
-    Tag const UniformResourceLocatorTrial(0x0040, 0xa992);
-    Tag const WaveformAnnotationSequence(0x0040, 0xb020);
-    Tag const TemplateIdentifier(0x0040, 0xdb00);
-    Tag const TemplateVersion(0x0040, 0xdb06);
-    Tag const TemplateLocalVersion(0x0040, 0xdb07);
-    Tag const TemplateExtensionFlag(0x0040, 0xdb0b);
-    Tag const TemplateExtensionOrganizationUID(0x0040, 0xdb0c);
-    Tag const TemplateExtensionCreatorUID(0x0040, 0xdb0d);
-    Tag const ReferencedContentItemIdentifier(0x0040, 0xdb73);
-    Tag const HL7InstanceIdentifier(0x0040, 0xe001);
-    Tag const HL7DocumentEffectiveTime(0x0040, 0xe004);
-    Tag const HL7DocumentTypeCodeSequence(0x0040, 0xe006);
-    Tag const DocumentClassCodeSequence(0x0040, 0xe008);
-    Tag const RetrieveURI(0x0040, 0xe010);
-    Tag const RetrieveLocationUID(0x0040, 0xe011);
-    Tag const TypeOfInstances(0x0040, 0xe020);
-    Tag const DICOMRetrievalSequence(0x0040, 0xe021);
-    Tag const DICOMMediaRetrievalSequence(0x0040, 0xe022);
-    Tag const WADORetrievalSequence(0x0040, 0xe023);
-    Tag const XDSRetrievalSequence(0x0040, 0xe024);
-    Tag const WADORSRetrievalSequence(0x0040, 0xe025);
-    Tag const RepositoryUniqueID(0x0040, 0xe030);
-    Tag const HomeCommunityID(0x0040, 0xe031);
-    Tag const DocumentTitle(0x0042, 0x0010);
-    Tag const EncapsulatedDocument(0x0042, 0x0011);
-    Tag const MIMETypeOfEncapsulatedDocument(0x0042, 0x0012);
-    Tag const SourceInstanceSequence(0x0042, 0x0013);
-    Tag const ListOfMIMETypes(0x0042, 0x0014);
-    Tag const ProductPackageIdentifier(0x0044, 0x0001);
-    Tag const SubstanceAdministrationApproval(0x0044, 0x0002);
-    Tag const ApprovalStatusFurtherDescription(0x0044, 0x0003);
-    Tag const ApprovalStatusDateTime(0x0044, 0x0004);
-    Tag const ProductTypeCodeSequence(0x0044, 0x0007);
-    Tag const ProductName(0x0044, 0x0008);
-    Tag const ProductDescription(0x0044, 0x0009);
-    Tag const ProductLotIdentifier(0x0044, 0x000a);
-    Tag const ProductExpirationDateTime(0x0044, 0x000b);
-    Tag const SubstanceAdministrationDateTime(0x0044, 0x0010);
-    Tag const SubstanceAdministrationNotes(0x0044, 0x0011);
-    Tag const SubstanceAdministrationDeviceID(0x0044, 0x0012);
-    Tag const ProductParameterSequence(0x0044, 0x0013);
-    Tag const SubstanceAdministrationParameterSequence(0x0044, 0x0019);
-    Tag const LensDescription(0x0046, 0x0012);
-    Tag const RightLensSequence(0x0046, 0x0014);
-    Tag const LeftLensSequence(0x0046, 0x0015);
-    Tag const UnspecifiedLateralityLensSequence(0x0046, 0x0016);
-    Tag const CylinderSequence(0x0046, 0x0018);
-    Tag const PrismSequence(0x0046, 0x0028);
-    Tag const HorizontalPrismPower(0x0046, 0x0030);
-    Tag const HorizontalPrismBase(0x0046, 0x0032);
-    Tag const VerticalPrismPower(0x0046, 0x0034);
-    Tag const VerticalPrismBase(0x0046, 0x0036);
-    Tag const LensSegmentType(0x0046, 0x0038);
-    Tag const OpticalTransmittance(0x0046, 0x0040);
-    Tag const ChannelWidth(0x0046, 0x0042);
-    Tag const PupilSize(0x0046, 0x0044);
-    Tag const CornealSize(0x0046, 0x0046);
-    Tag const AutorefractionRightEyeSequence(0x0046, 0x0050);
-    Tag const AutorefractionLeftEyeSequence(0x0046, 0x0052);
-    Tag const DistancePupillaryDistance(0x0046, 0x0060);
-    Tag const NearPupillaryDistance(0x0046, 0x0062);
-    Tag const IntermediatePupillaryDistance(0x0046, 0x0063);
-    Tag const OtherPupillaryDistance(0x0046, 0x0064);
-    Tag const KeratometryRightEyeSequence(0x0046, 0x0070);
-    Tag const KeratometryLeftEyeSequence(0x0046, 0x0071);
-    Tag const SteepKeratometricAxisSequence(0x0046, 0x0074);
-    Tag const RadiusOfCurvature(0x0046, 0x0075);
-    Tag const KeratometricPower(0x0046, 0x0076);
-    Tag const KeratometricAxis(0x0046, 0x0077);
-    Tag const FlatKeratometricAxisSequence(0x0046, 0x0080);
-    Tag const BackgroundColor(0x0046, 0x0092);
-    Tag const Optotype(0x0046, 0x0094);
-    Tag const OptotypePresentation(0x0046, 0x0095);
-    Tag const SubjectiveRefractionRightEyeSequence(0x0046, 0x0097);
-    Tag const SubjectiveRefractionLeftEyeSequence(0x0046, 0x0098);
-    Tag const AddNearSequence(0x0046, 0x0100);
-    Tag const AddIntermediateSequence(0x0046, 0x0101);
-    Tag const AddOtherSequence(0x0046, 0x0102);
-    Tag const AddPower(0x0046, 0x0104);
-    Tag const ViewingDistance(0x0046, 0x0106);
-    Tag const VisualAcuityTypeCodeSequence(0x0046, 0x0121);
-    Tag const VisualAcuityRightEyeSequence(0x0046, 0x0122);
-    Tag const VisualAcuityLeftEyeSequence(0x0046, 0x0123);
-    Tag const VisualAcuityBothEyesOpenSequence(0x0046, 0x0124);
-    Tag const ViewingDistanceType(0x0046, 0x0125);
-    Tag const VisualAcuityModifiers(0x0046, 0x0135);
-    Tag const DecimalVisualAcuity(0x0046, 0x0137);
-    Tag const OptotypeDetailedDefinition(0x0046, 0x0139);
-    Tag const ReferencedRefractiveMeasurementsSequence(0x0046, 0x0145);
-    Tag const SpherePower(0x0046, 0x0146);
-    Tag const CylinderPower(0x0046, 0x0147);
-    Tag const CornealTopographySurface(0x0046, 0x0201);
-    Tag const CornealVertexLocation(0x0046, 0x0202);
-    Tag const PupilCentroidXCoordinate(0x0046, 0x0203);
-    Tag const PupilCentroidYCoordinate(0x0046, 0x0204);
-    Tag const EquivalentPupilRadius(0x0046, 0x0205);
-    Tag const CornealTopographyMapTypeCodeSequence(0x0046, 0x0207);
-    Tag const VerticesOfTheOutlineOfPupil(0x0046, 0x0208);
-    Tag const CornealTopographyMappingNormalsSequence(0x0046, 0x0210);
-    Tag const MaximumCornealCurvatureSequence(0x0046, 0x0211);
-    Tag const MaximumCornealCurvature(0x0046, 0x0212);
-    Tag const MaximumCornealCurvatureLocation(0x0046, 0x0213);
-    Tag const MinimumKeratometricSequence(0x0046, 0x0215);
-    Tag const SimulatedKeratometricCylinderSequence(0x0046, 0x0218);
-    Tag const AverageCornealPower(0x0046, 0x0220);
-    Tag const CornealISValue(0x0046, 0x0224);
-    Tag const AnalyzedArea(0x0046, 0x0227);
-    Tag const SurfaceRegularityIndex(0x0046, 0x0230);
-    Tag const SurfaceAsymmetryIndex(0x0046, 0x0232);
-    Tag const CornealEccentricityIndex(0x0046, 0x0234);
-    Tag const KeratoconusPredictionIndex(0x0046, 0x0236);
-    Tag const DecimalPotentialVisualAcuity(0x0046, 0x0238);
-    Tag const CornealTopographyMapQualityEvaluation(0x0046, 0x0242);
-    Tag const SourceImageCornealProcessedDataSequence(0x0046, 0x0244);
-    Tag const CornealPointLocation(0x0046, 0x0247);
-    Tag const CornealPointEstimated(0x0046, 0x0248);
-    Tag const AxialPower(0x0046, 0x0249);
-    Tag const TangentialPower(0x0046, 0x0250);
-    Tag const RefractivePower(0x0046, 0x0251);
-    Tag const RelativeElevation(0x0046, 0x0252);
-    Tag const CornealWavefront(0x0046, 0x0253);
-    Tag const ImagedVolumeWidth(0x0048, 0x0001);
-    Tag const ImagedVolumeHeight(0x0048, 0x0002);
-    Tag const ImagedVolumeDepth(0x0048, 0x0003);
-    Tag const TotalPixelMatrixColumns(0x0048, 0x0006);
-    Tag const TotalPixelMatrixRows(0x0048, 0x0007);
-    Tag const TotalPixelMatrixOriginSequence(0x0048, 0x0008);
-    Tag const SpecimenLabelInImage(0x0048, 0x0010);
-    Tag const FocusMethod(0x0048, 0x0011);
-    Tag const ExtendedDepthOfField(0x0048, 0x0012);
-    Tag const NumberOfFocalPlanes(0x0048, 0x0013);
-    Tag const DistanceBetweenFocalPlanes(0x0048, 0x0014);
-    Tag const RecommendedAbsentPixelCIELabValue(0x0048, 0x0015);
-    Tag const IlluminatorTypeCodeSequence(0x0048, 0x0100);
-    Tag const ImageOrientationSlide(0x0048, 0x0102);
-    Tag const OpticalPathSequence(0x0048, 0x0105);
-    Tag const OpticalPathIdentifier(0x0048, 0x0106);
-    Tag const OpticalPathDescription(0x0048, 0x0107);
-    Tag const IlluminationColorCodeSequence(0x0048, 0x0108);
-    Tag const SpecimenReferenceSequence(0x0048, 0x0110);
-    Tag const CondenserLensPower(0x0048, 0x0111);
-    Tag const ObjectiveLensPower(0x0048, 0x0112);
-    Tag const ObjectiveLensNumericalAperture(0x0048, 0x0113);
-    Tag const PaletteColorLookupTableSequence(0x0048, 0x0120);
-    Tag const ReferencedImageNavigationSequence(0x0048, 0x0200);
-    Tag const TopLeftHandCornerOfLocalizerArea(0x0048, 0x0201);
-    Tag const BottomRightHandCornerOfLocalizerArea(0x0048, 0x0202);
-    Tag const OpticalPathIdentificationSequence(0x0048, 0x0207);
-    Tag const PlanePositionSlideSequence(0x0048, 0x021a);
-    Tag const ColumnPositionInTotalImagePixelMatrix(0x0048, 0x021e);
-    Tag const RowPositionInTotalImagePixelMatrix(0x0048, 0x021f);
-    Tag const PixelOriginInterpretation(0x0048, 0x0301);
-    Tag const CalibrationImage(0x0050, 0x0004);
-    Tag const DeviceSequence(0x0050, 0x0010);
-    Tag const ContainerComponentTypeCodeSequence(0x0050, 0x0012);
-    Tag const ContainerComponentThickness(0x0050, 0x0013);
-    Tag const DeviceLength(0x0050, 0x0014);
-    Tag const ContainerComponentWidth(0x0050, 0x0015);
-    Tag const DeviceDiameter(0x0050, 0x0016);
-    Tag const DeviceDiameterUnits(0x0050, 0x0017);
-    Tag const DeviceVolume(0x0050, 0x0018);
-    Tag const InterMarkerDistance(0x0050, 0x0019);
-    Tag const ContainerComponentMaterial(0x0050, 0x001a);
-    Tag const ContainerComponentID(0x0050, 0x001b);
-    Tag const ContainerComponentLength(0x0050, 0x001c);
-    Tag const ContainerComponentDiameter(0x0050, 0x001d);
-    Tag const ContainerComponentDescription(0x0050, 0x001e);
-    Tag const DeviceDescription(0x0050, 0x0020);
-    Tag const ContrastBolusIngredientPercentByVolume(0x0052, 0x0001);
-    Tag const OCTFocalDistance(0x0052, 0x0002);
-    Tag const BeamSpotSize(0x0052, 0x0003);
-    Tag const EffectiveRefractiveIndex(0x0052, 0x0004);
-    Tag const OCTAcquisitionDomain(0x0052, 0x0006);
-    Tag const OCTOpticalCenterWavelength(0x0052, 0x0007);
-    Tag const AxialResolution(0x0052, 0x0008);
-    Tag const RangingDepth(0x0052, 0x0009);
-    Tag const ALineRate(0x0052, 0x0011);
-    Tag const ALinesPerFrame(0x0052, 0x0012);
-    Tag const CatheterRotationalRate(0x0052, 0x0013);
-    Tag const ALinePixelSpacing(0x0052, 0x0014);
-    Tag const ModeOfPercutaneousAccessSequence(0x0052, 0x0016);
-    Tag const IntravascularOCTFrameTypeSequence(0x0052, 0x0025);
-    Tag const OCTZOffsetApplied(0x0052, 0x0026);
-    Tag const IntravascularFrameContentSequence(0x0052, 0x0027);
-    Tag const IntravascularLongitudinalDistance(0x0052, 0x0028);
-    Tag const IntravascularOCTFrameContentSequence(0x0052, 0x0029);
-    Tag const OCTZOffsetCorrection(0x0052, 0x0030);
-    Tag const CatheterDirectionOfRotation(0x0052, 0x0031);
-    Tag const SeamLineLocation(0x0052, 0x0033);
-    Tag const FirstALineLocation(0x0052, 0x0034);
-    Tag const SeamLineIndex(0x0052, 0x0036);
-    Tag const NumberOfPaddedALines(0x0052, 0x0038);
-    Tag const InterpolationType(0x0052, 0x0039);
-    Tag const RefractiveIndexApplied(0x0052, 0x003a);
-    Tag const EnergyWindowVector(0x0054, 0x0010);
-    Tag const NumberOfEnergyWindows(0x0054, 0x0011);
-    Tag const EnergyWindowInformationSequence(0x0054, 0x0012);
-    Tag const EnergyWindowRangeSequence(0x0054, 0x0013);
-    Tag const EnergyWindowLowerLimit(0x0054, 0x0014);
-    Tag const EnergyWindowUpperLimit(0x0054, 0x0015);
-    Tag const RadiopharmaceuticalInformationSequence(0x0054, 0x0016);
-    Tag const ResidualSyringeCounts(0x0054, 0x0017);
-    Tag const EnergyWindowName(0x0054, 0x0018);
-    Tag const DetectorVector(0x0054, 0x0020);
-    Tag const NumberOfDetectors(0x0054, 0x0021);
-    Tag const DetectorInformationSequence(0x0054, 0x0022);
-    Tag const PhaseVector(0x0054, 0x0030);
-    Tag const NumberOfPhases(0x0054, 0x0031);
-    Tag const PhaseInformationSequence(0x0054, 0x0032);
-    Tag const NumberOfFramesInPhase(0x0054, 0x0033);
-    Tag const PhaseDelay(0x0054, 0x0036);
-    Tag const PauseBetweenFrames(0x0054, 0x0038);
-    Tag const PhaseDescription(0x0054, 0x0039);
-    Tag const RotationVector(0x0054, 0x0050);
-    Tag const NumberOfRotations(0x0054, 0x0051);
-    Tag const RotationInformationSequence(0x0054, 0x0052);
-    Tag const NumberOfFramesInRotation(0x0054, 0x0053);
-    Tag const RRIntervalVector(0x0054, 0x0060);
-    Tag const NumberOfRRIntervals(0x0054, 0x0061);
-    Tag const GatedInformationSequence(0x0054, 0x0062);
-    Tag const DataInformationSequence(0x0054, 0x0063);
-    Tag const TimeSlotVector(0x0054, 0x0070);
-    Tag const NumberOfTimeSlots(0x0054, 0x0071);
-    Tag const TimeSlotInformationSequence(0x0054, 0x0072);
-    Tag const TimeSlotTime(0x0054, 0x0073);
-    Tag const SliceVector(0x0054, 0x0080);
-    Tag const NumberOfSlices(0x0054, 0x0081);
-    Tag const AngularViewVector(0x0054, 0x0090);
-    Tag const TimeSliceVector(0x0054, 0x0100);
-    Tag const NumberOfTimeSlices(0x0054, 0x0101);
-    Tag const StartAngle(0x0054, 0x0200);
-    Tag const TypeOfDetectorMotion(0x0054, 0x0202);
-    Tag const TriggerVector(0x0054, 0x0210);
-    Tag const NumberOfTriggersInPhase(0x0054, 0x0211);
-    Tag const ViewCodeSequence(0x0054, 0x0220);
-    Tag const ViewModifierCodeSequence(0x0054, 0x0222);
-    Tag const RadionuclideCodeSequence(0x0054, 0x0300);
-    Tag const AdministrationRouteCodeSequence(0x0054, 0x0302);
-    Tag const RadiopharmaceuticalCodeSequence(0x0054, 0x0304);
-    Tag const CalibrationDataSequence(0x0054, 0x0306);
-    Tag const EnergyWindowNumber(0x0054, 0x0308);
-    Tag const ImageID(0x0054, 0x0400);
-    Tag const PatientOrientationCodeSequence(0x0054, 0x0410);
-    Tag const PatientOrientationModifierCodeSequence(0x0054, 0x0412);
-    Tag const PatientGantryRelationshipCodeSequence(0x0054, 0x0414);
-    Tag const SliceProgressionDirection(0x0054, 0x0500);
-    Tag const ScanProgressionDirection(0x0054, 0x0501);
-    Tag const SeriesType(0x0054, 0x1000);
-    Tag const Units(0x0054, 0x1001);
-    Tag const CountsSource(0x0054, 0x1002);
-    Tag const ReprojectionMethod(0x0054, 0x1004);
-    Tag const SUVType(0x0054, 0x1006);
-    Tag const RandomsCorrectionMethod(0x0054, 0x1100);
-    Tag const AttenuationCorrectionMethod(0x0054, 0x1101);
-    Tag const DecayCorrection(0x0054, 0x1102);
-    Tag const ReconstructionMethod(0x0054, 0x1103);
-    Tag const DetectorLinesOfResponseUsed(0x0054, 0x1104);
-    Tag const ScatterCorrectionMethod(0x0054, 0x1105);
-    Tag const AxialAcceptance(0x0054, 0x1200);
-    Tag const AxialMash(0x0054, 0x1201);
-    Tag const TransverseMash(0x0054, 0x1202);
-    Tag const DetectorElementSize(0x0054, 0x1203);
-    Tag const CoincidenceWindowWidth(0x0054, 0x1210);
-    Tag const SecondaryCountsType(0x0054, 0x1220);
-    Tag const FrameReferenceTime(0x0054, 0x1300);
-    Tag const PrimaryPromptsCountsAccumulated(0x0054, 0x1310);
-    Tag const SecondaryCountsAccumulated(0x0054, 0x1311);
-    Tag const SliceSensitivityFactor(0x0054, 0x1320);
-    Tag const DecayFactor(0x0054, 0x1321);
-    Tag const DoseCalibrationFactor(0x0054, 0x1322);
-    Tag const ScatterFractionFactor(0x0054, 0x1323);
-    Tag const DeadTimeFactor(0x0054, 0x1324);
-    Tag const ImageIndex(0x0054, 0x1330);
-    Tag const CountsIncluded(0x0054, 0x1400);
-    Tag const DeadTimeCorrectionFlag(0x0054, 0x1401);
-    Tag const HistogramSequence(0x0060, 0x3000);
-    Tag const HistogramNumberOfBins(0x0060, 0x3002);
-    Tag const HistogramFirstBinValue(0x0060, 0x3004);
-    Tag const HistogramLastBinValue(0x0060, 0x3006);
-    Tag const HistogramBinWidth(0x0060, 0x3008);
-    Tag const HistogramExplanation(0x0060, 0x3010);
-    Tag const HistogramData(0x0060, 0x3020);
-    Tag const SegmentationType(0x0062, 0x0001);
-    Tag const SegmentSequence(0x0062, 0x0002);
-    Tag const SegmentedPropertyCategoryCodeSequence(0x0062, 0x0003);
-    Tag const SegmentNumber(0x0062, 0x0004);
-    Tag const SegmentLabel(0x0062, 0x0005);
-    Tag const SegmentDescription(0x0062, 0x0006);
-    Tag const SegmentAlgorithmType(0x0062, 0x0008);
-    Tag const SegmentAlgorithmName(0x0062, 0x0009);
-    Tag const SegmentIdentificationSequence(0x0062, 0x000a);
-    Tag const ReferencedSegmentNumber(0x0062, 0x000b);
-    Tag const RecommendedDisplayGrayscaleValue(0x0062, 0x000c);
-    Tag const RecommendedDisplayCIELabValue(0x0062, 0x000d);
-    Tag const MaximumFractionalValue(0x0062, 0x000e);
-    Tag const SegmentedPropertyTypeCodeSequence(0x0062, 0x000f);
-    Tag const SegmentationFractionalType(0x0062, 0x0010);
-    Tag const SegmentedPropertyTypeModifierCodeSequence(0x0062, 0x0011);
-    Tag const UsedSegmentsSequence(0x0062, 0x0012);
-    Tag const DeformableRegistrationSequence(0x0064, 0x0002);
-    Tag const SourceFrameOfReferenceUID(0x0064, 0x0003);
-    Tag const DeformableRegistrationGridSequence(0x0064, 0x0005);
-    Tag const GridDimensions(0x0064, 0x0007);
-    Tag const GridResolution(0x0064, 0x0008);
-    Tag const VectorGridData(0x0064, 0x0009);
-    Tag const PreDeformationMatrixRegistrationSequence(0x0064, 0x000f);
-    Tag const PostDeformationMatrixRegistrationSequence(0x0064, 0x0010);
-    Tag const NumberOfSurfaces(0x0066, 0x0001);
-    Tag const SurfaceSequence(0x0066, 0x0002);
-    Tag const SurfaceNumber(0x0066, 0x0003);
-    Tag const SurfaceComments(0x0066, 0x0004);
-    Tag const SurfaceProcessing(0x0066, 0x0009);
-    Tag const SurfaceProcessingRatio(0x0066, 0x000a);
-    Tag const SurfaceProcessingDescription(0x0066, 0x000b);
-    Tag const RecommendedPresentationOpacity(0x0066, 0x000c);
-    Tag const RecommendedPresentationType(0x0066, 0x000d);
-    Tag const FiniteVolume(0x0066, 0x000e);
-    Tag const Manifold(0x0066, 0x0010);
-    Tag const SurfacePointsSequence(0x0066, 0x0011);
-    Tag const SurfacePointsNormalsSequence(0x0066, 0x0012);
-    Tag const SurfaceMeshPrimitivesSequence(0x0066, 0x0013);
-    Tag const NumberOfSurfacePoints(0x0066, 0x0015);
-    Tag const PointCoordinatesData(0x0066, 0x0016);
-    Tag const PointPositionAccuracy(0x0066, 0x0017);
-    Tag const MeanPointDistance(0x0066, 0x0018);
-    Tag const MaximumPointDistance(0x0066, 0x0019);
-    Tag const PointsBoundingBoxCoordinates(0x0066, 0x001a);
-    Tag const AxisOfRotation(0x0066, 0x001b);
-    Tag const CenterOfRotation(0x0066, 0x001c);
-    Tag const NumberOfVectors(0x0066, 0x001e);
-    Tag const VectorDimensionality(0x0066, 0x001f);
-    Tag const VectorAccuracy(0x0066, 0x0020);
-    Tag const VectorCoordinateData(0x0066, 0x0021);
-    Tag const TrianglePointIndexList(0x0066, 0x0023);
-    Tag const EdgePointIndexList(0x0066, 0x0024);
-    Tag const VertexPointIndexList(0x0066, 0x0025);
-    Tag const TriangleStripSequence(0x0066, 0x0026);
-    Tag const TriangleFanSequence(0x0066, 0x0027);
-    Tag const LineSequence(0x0066, 0x0028);
-    Tag const PrimitivePointIndexList(0x0066, 0x0029);
-    Tag const SurfaceCount(0x0066, 0x002a);
-    Tag const ReferencedSurfaceSequence(0x0066, 0x002b);
-    Tag const ReferencedSurfaceNumber(0x0066, 0x002c);
-    Tag const SegmentSurfaceGenerationAlgorithmIdentificationSequence(0x0066, 0x002d);
-    Tag const SegmentSurfaceSourceInstanceSequence(0x0066, 0x002e);
-    Tag const AlgorithmFamilyCodeSequence(0x0066, 0x002f);
-    Tag const AlgorithmNameCodeSequence(0x0066, 0x0030);
-    Tag const AlgorithmVersion(0x0066, 0x0031);
-    Tag const AlgorithmParameters(0x0066, 0x0032);
-    Tag const FacetSequence(0x0066, 0x0034);
-    Tag const SurfaceProcessingAlgorithmIdentificationSequence(0x0066, 0x0035);
-    Tag const AlgorithmName(0x0066, 0x0036);
-    Tag const RecommendedPointRadius(0x0066, 0x0037);
-    Tag const RecommendedLineThickness(0x0066, 0x0038);
-    Tag const LongPrimitivePointIndexList(0x0066, 0x0040);
-    Tag const LongTrianglePointIndexList(0x0066, 0x0041);
-    Tag const LongEdgePointIndexList(0x0066, 0x0042);
-    Tag const LongVertexPointIndexList(0x0066, 0x0043);
-    Tag const ImplantSize(0x0068, 0x6210);
-    Tag const ImplantTemplateVersion(0x0068, 0x6221);
-    Tag const ReplacedImplantTemplateSequence(0x0068, 0x6222);
-    Tag const ImplantType(0x0068, 0x6223);
-    Tag const DerivationImplantTemplateSequence(0x0068, 0x6224);
-    Tag const OriginalImplantTemplateSequence(0x0068, 0x6225);
-    Tag const EffectiveDateTime(0x0068, 0x6226);
-    Tag const ImplantTargetAnatomySequence(0x0068, 0x6230);
-    Tag const InformationFromManufacturerSequence(0x0068, 0x6260);
-    Tag const NotificationFromManufacturerSequence(0x0068, 0x6265);
-    Tag const InformationIssueDateTime(0x0068, 0x6270);
-    Tag const InformationSummary(0x0068, 0x6280);
-    Tag const ImplantRegulatoryDisapprovalCodeSequence(0x0068, 0x62a0);
-    Tag const OverallTemplateSpatialTolerance(0x0068, 0x62a5);
-    Tag const HPGLDocumentSequence(0x0068, 0x62c0);
-    Tag const HPGLDocumentID(0x0068, 0x62d0);
-    Tag const HPGLDocumentLabel(0x0068, 0x62d5);
-    Tag const ViewOrientationCodeSequence(0x0068, 0x62e0);
-    Tag const ViewOrientationModifier(0x0068, 0x62f0);
-    Tag const HPGLDocumentScaling(0x0068, 0x62f2);
-    Tag const HPGLDocument(0x0068, 0x6300);
-    Tag const HPGLContourPenNumber(0x0068, 0x6310);
-    Tag const HPGLPenSequence(0x0068, 0x6320);
-    Tag const HPGLPenNumber(0x0068, 0x6330);
-    Tag const HPGLPenLabel(0x0068, 0x6340);
-    Tag const HPGLPenDescription(0x0068, 0x6345);
-    Tag const RecommendedRotationPoint(0x0068, 0x6346);
-    Tag const BoundingRectangle(0x0068, 0x6347);
-    Tag const ImplantTemplate3DModelSurfaceNumber(0x0068, 0x6350);
-    Tag const SurfaceModelDescriptionSequence(0x0068, 0x6360);
-    Tag const SurfaceModelLabel(0x0068, 0x6380);
-    Tag const SurfaceModelScalingFactor(0x0068, 0x6390);
-    Tag const MaterialsCodeSequence(0x0068, 0x63a0);
-    Tag const CoatingMaterialsCodeSequence(0x0068, 0x63a4);
-    Tag const ImplantTypeCodeSequence(0x0068, 0x63a8);
-    Tag const FixationMethodCodeSequence(0x0068, 0x63ac);
-    Tag const MatingFeatureSetsSequence(0x0068, 0x63b0);
-    Tag const MatingFeatureSetID(0x0068, 0x63c0);
-    Tag const MatingFeatureSetLabel(0x0068, 0x63d0);
-    Tag const MatingFeatureSequence(0x0068, 0x63e0);
-    Tag const MatingFeatureID(0x0068, 0x63f0);
-    Tag const MatingFeatureDegreeOfFreedomSequence(0x0068, 0x6400);
-    Tag const DegreeOfFreedomID(0x0068, 0x6410);
-    Tag const DegreeOfFreedomType(0x0068, 0x6420);
-    Tag const TwoDMatingFeatureCoordinatesSequence(0x0068, 0x6430);
-    Tag const ReferencedHPGLDocumentID(0x0068, 0x6440);
-    Tag const TwoDMatingPoint(0x0068, 0x6450);
-    Tag const TwoDMatingAxes(0x0068, 0x6460);
-    Tag const TwoDDegreeOfFreedomSequence(0x0068, 0x6470);
-    Tag const ThreeDDegreeOfFreedomAxis(0x0068, 0x6490);
-    Tag const RangeOfFreedom(0x0068, 0x64a0);
-    Tag const ThreeDMatingPoint(0x0068, 0x64c0);
-    Tag const ThreeDMatingAxes(0x0068, 0x64d0);
-    Tag const TwoDDegreeOfFreedomAxis(0x0068, 0x64f0);
-    Tag const PlanningLandmarkPointSequence(0x0068, 0x6500);
-    Tag const PlanningLandmarkLineSequence(0x0068, 0x6510);
-    Tag const PlanningLandmarkPlaneSequence(0x0068, 0x6520);
-    Tag const PlanningLandmarkID(0x0068, 0x6530);
-    Tag const PlanningLandmarkDescription(0x0068, 0x6540);
-    Tag const PlanningLandmarkIdentificationCodeSequence(0x0068, 0x6545);
-    Tag const TwoDPointCoordinatesSequence(0x0068, 0x6550);
-    Tag const TwoDPointCoordinates(0x0068, 0x6560);
-    Tag const ThreeDPointCoordinates(0x0068, 0x6590);
-    Tag const TwoDLineCoordinatesSequence(0x0068, 0x65a0);
-    Tag const TwoDLineCoordinates(0x0068, 0x65b0);
-    Tag const ThreeDLineCoordinates(0x0068, 0x65d0);
-    Tag const TwoDPlaneCoordinatesSequence(0x0068, 0x65e0);
-    Tag const TwoDPlaneIntersection(0x0068, 0x65f0);
-    Tag const ThreeDPlaneOrigin(0x0068, 0x6610);
-    Tag const ThreeDPlaneNormal(0x0068, 0x6620);
-    Tag const GraphicAnnotationSequence(0x0070, 0x0001);
-    Tag const GraphicLayer(0x0070, 0x0002);
-    Tag const BoundingBoxAnnotationUnits(0x0070, 0x0003);
-    Tag const AnchorPointAnnotationUnits(0x0070, 0x0004);
-    Tag const GraphicAnnotationUnits(0x0070, 0x0005);
-    Tag const UnformattedTextValue(0x0070, 0x0006);
-    Tag const TextObjectSequence(0x0070, 0x0008);
-    Tag const GraphicObjectSequence(0x0070, 0x0009);
-    Tag const BoundingBoxTopLeftHandCorner(0x0070, 0x0010);
-    Tag const BoundingBoxBottomRightHandCorner(0x0070, 0x0011);
-    Tag const BoundingBoxTextHorizontalJustification(0x0070, 0x0012);
-    Tag const AnchorPoint(0x0070, 0x0014);
-    Tag const AnchorPointVisibility(0x0070, 0x0015);
-    Tag const GraphicDimensions(0x0070, 0x0020);
-    Tag const NumberOfGraphicPoints(0x0070, 0x0021);
-    Tag const GraphicData(0x0070, 0x0022);
-    Tag const GraphicType(0x0070, 0x0023);
-    Tag const GraphicFilled(0x0070, 0x0024);
-    Tag const ImageRotationRetired(0x0070, 0x0040);
-    Tag const ImageHorizontalFlip(0x0070, 0x0041);
-    Tag const ImageRotation(0x0070, 0x0042);
-    Tag const DisplayedAreaTopLeftHandCornerTrial(0x0070, 0x0050);
-    Tag const DisplayedAreaBottomRightHandCornerTrial(0x0070, 0x0051);
-    Tag const DisplayedAreaTopLeftHandCorner(0x0070, 0x0052);
-    Tag const DisplayedAreaBottomRightHandCorner(0x0070, 0x0053);
-    Tag const DisplayedAreaSelectionSequence(0x0070, 0x005a);
-    Tag const GraphicLayerSequence(0x0070, 0x0060);
-    Tag const GraphicLayerOrder(0x0070, 0x0062);
-    Tag const GraphicLayerRecommendedDisplayGrayscaleValue(0x0070, 0x0066);
-    Tag const GraphicLayerRecommendedDisplayRGBValue(0x0070, 0x0067);
-    Tag const GraphicLayerDescription(0x0070, 0x0068);
-    Tag const ContentLabel(0x0070, 0x0080);
-    Tag const ContentDescription(0x0070, 0x0081);
-    Tag const PresentationCreationDate(0x0070, 0x0082);
-    Tag const PresentationCreationTime(0x0070, 0x0083);
-    Tag const ContentCreatorName(0x0070, 0x0084);
-    Tag const ContentCreatorIdentificationCodeSequence(0x0070, 0x0086);
-    Tag const AlternateContentDescriptionSequence(0x0070, 0x0087);
-    Tag const PresentationSizeMode(0x0070, 0x0100);
-    Tag const PresentationPixelSpacing(0x0070, 0x0101);
-    Tag const PresentationPixelAspectRatio(0x0070, 0x0102);
-    Tag const PresentationPixelMagnificationRatio(0x0070, 0x0103);
-    Tag const GraphicGroupLabel(0x0070, 0x0207);
-    Tag const GraphicGroupDescription(0x0070, 0x0208);
-    Tag const CompoundGraphicSequence(0x0070, 0x0209);
-    Tag const CompoundGraphicInstanceID(0x0070, 0x0226);
-    Tag const FontName(0x0070, 0x0227);
-    Tag const FontNameType(0x0070, 0x0228);
-    Tag const CSSFontName(0x0070, 0x0229);
-    Tag const RotationAngle(0x0070, 0x0230);
-    Tag const TextStyleSequence(0x0070, 0x0231);
-    Tag const LineStyleSequence(0x0070, 0x0232);
-    Tag const FillStyleSequence(0x0070, 0x0233);
-    Tag const GraphicGroupSequence(0x0070, 0x0234);
-    Tag const TextColorCIELabValue(0x0070, 0x0241);
-    Tag const HorizontalAlignment(0x0070, 0x0242);
-    Tag const VerticalAlignment(0x0070, 0x0243);
-    Tag const ShadowStyle(0x0070, 0x0244);
-    Tag const ShadowOffsetX(0x0070, 0x0245);
-    Tag const ShadowOffsetY(0x0070, 0x0246);
-    Tag const ShadowColorCIELabValue(0x0070, 0x0247);
-    Tag const Underlined(0x0070, 0x0248);
-    Tag const Bold(0x0070, 0x0249);
-    Tag const Italic(0x0070, 0x0250);
-    Tag const PatternOnColorCIELabValue(0x0070, 0x0251);
-    Tag const PatternOffColorCIELabValue(0x0070, 0x0252);
-    Tag const LineThickness(0x0070, 0x0253);
-    Tag const LineDashingStyle(0x0070, 0x0254);
-    Tag const LinePattern(0x0070, 0x0255);
-    Tag const FillPattern(0x0070, 0x0256);
-    Tag const FillMode(0x0070, 0x0257);
-    Tag const ShadowOpacity(0x0070, 0x0258);
-    Tag const GapLength(0x0070, 0x0261);
-    Tag const DiameterOfVisibility(0x0070, 0x0262);
-    Tag const RotationPoint(0x0070, 0x0273);
-    Tag const TickAlignment(0x0070, 0x0274);
-    Tag const ShowTickLabel(0x0070, 0x0278);
-    Tag const TickLabelAlignment(0x0070, 0x0279);
-    Tag const CompoundGraphicUnits(0x0070, 0x0282);
-    Tag const PatternOnOpacity(0x0070, 0x0284);
-    Tag const PatternOffOpacity(0x0070, 0x0285);
-    Tag const MajorTicksSequence(0x0070, 0x0287);
-    Tag const TickPosition(0x0070, 0x0288);
-    Tag const TickLabel(0x0070, 0x0289);
-    Tag const CompoundGraphicType(0x0070, 0x0294);
-    Tag const GraphicGroupID(0x0070, 0x0295);
-    Tag const ShapeType(0x0070, 0x0306);
-    Tag const RegistrationSequence(0x0070, 0x0308);
-    Tag const MatrixRegistrationSequence(0x0070, 0x0309);
-    Tag const MatrixSequence(0x0070, 0x030a);
-    Tag const FrameOfReferenceTransformationMatrixType(0x0070, 0x030c);
-    Tag const RegistrationTypeCodeSequence(0x0070, 0x030d);
-    Tag const FiducialDescription(0x0070, 0x030f);
-    Tag const FiducialIdentifier(0x0070, 0x0310);
-    Tag const FiducialIdentifierCodeSequence(0x0070, 0x0311);
-    Tag const ContourUncertaintyRadius(0x0070, 0x0312);
-    Tag const UsedFiducialsSequence(0x0070, 0x0314);
-    Tag const GraphicCoordinatesDataSequence(0x0070, 0x0318);
-    Tag const FiducialUID(0x0070, 0x031a);
-    Tag const FiducialSetSequence(0x0070, 0x031c);
-    Tag const FiducialSequence(0x0070, 0x031e);
-    Tag const GraphicLayerRecommendedDisplayCIELabValue(0x0070, 0x0401);
-    Tag const BlendingSequence(0x0070, 0x0402);
-    Tag const RelativeOpacity(0x0070, 0x0403);
-    Tag const ReferencedSpatialRegistrationSequence(0x0070, 0x0404);
-    Tag const BlendingPosition(0x0070, 0x0405);
-    Tag const HangingProtocolName(0x0072, 0x0002);
-    Tag const HangingProtocolDescription(0x0072, 0x0004);
-    Tag const HangingProtocolLevel(0x0072, 0x0006);
-    Tag const HangingProtocolCreator(0x0072, 0x0008);
-    Tag const HangingProtocolCreationDateTime(0x0072, 0x000a);
-    Tag const HangingProtocolDefinitionSequence(0x0072, 0x000c);
-    Tag const HangingProtocolUserIdentificationCodeSequence(0x0072, 0x000e);
-    Tag const HangingProtocolUserGroupName(0x0072, 0x0010);
-    Tag const SourceHangingProtocolSequence(0x0072, 0x0012);
-    Tag const NumberOfPriorsReferenced(0x0072, 0x0014);
-    Tag const ImageSetsSequence(0x0072, 0x0020);
-    Tag const ImageSetSelectorSequence(0x0072, 0x0022);
-    Tag const ImageSetSelectorUsageFlag(0x0072, 0x0024);
-    Tag const SelectorAttribute(0x0072, 0x0026);
-    Tag const SelectorValueNumber(0x0072, 0x0028);
-    Tag const TimeBasedImageSetsSequence(0x0072, 0x0030);
-    Tag const ImageSetNumber(0x0072, 0x0032);
-    Tag const ImageSetSelectorCategory(0x0072, 0x0034);
-    Tag const RelativeTime(0x0072, 0x0038);
-    Tag const RelativeTimeUnits(0x0072, 0x003a);
-    Tag const AbstractPriorValue(0x0072, 0x003c);
-    Tag const AbstractPriorCodeSequence(0x0072, 0x003e);
-    Tag const ImageSetLabel(0x0072, 0x0040);
-    Tag const SelectorAttributeVR(0x0072, 0x0050);
-    Tag const SelectorSequencePointer(0x0072, 0x0052);
-    Tag const SelectorSequencePointerPrivateCreator(0x0072, 0x0054);
-    Tag const SelectorAttributePrivateCreator(0x0072, 0x0056);
-    Tag const SelectorATValue(0x0072, 0x0060);
-    Tag const SelectorCSValue(0x0072, 0x0062);
-    Tag const SelectorISValue(0x0072, 0x0064);
-    Tag const SelectorLOValue(0x0072, 0x0066);
-    Tag const SelectorLTValue(0x0072, 0x0068);
-    Tag const SelectorPNValue(0x0072, 0x006a);
-    Tag const SelectorSHValue(0x0072, 0x006c);
-    Tag const SelectorSTValue(0x0072, 0x006e);
-    Tag const SelectorUTValue(0x0072, 0x0070);
-    Tag const SelectorDSValue(0x0072, 0x0072);
-    Tag const SelectorFDValue(0x0072, 0x0074);
-    Tag const SelectorFLValue(0x0072, 0x0076);
-    Tag const SelectorULValue(0x0072, 0x0078);
-    Tag const SelectorUSValue(0x0072, 0x007a);
-    Tag const SelectorSLValue(0x0072, 0x007c);
-    Tag const SelectorSSValue(0x0072, 0x007e);
-    Tag const SelectorCodeSequenceValue(0x0072, 0x0080);
-    Tag const NumberOfScreens(0x0072, 0x0100);
-    Tag const NominalScreenDefinitionSequence(0x0072, 0x0102);
-    Tag const NumberOfVerticalPixels(0x0072, 0x0104);
-    Tag const NumberOfHorizontalPixels(0x0072, 0x0106);
-    Tag const DisplayEnvironmentSpatialPosition(0x0072, 0x0108);
-    Tag const ScreenMinimumGrayscaleBitDepth(0x0072, 0x010a);
-    Tag const ScreenMinimumColorBitDepth(0x0072, 0x010c);
-    Tag const ApplicationMaximumRepaintTime(0x0072, 0x010e);
-    Tag const DisplaySetsSequence(0x0072, 0x0200);
-    Tag const DisplaySetNumber(0x0072, 0x0202);
-    Tag const DisplaySetLabel(0x0072, 0x0203);
-    Tag const DisplaySetPresentationGroup(0x0072, 0x0204);
-    Tag const DisplaySetPresentationGroupDescription(0x0072, 0x0206);
-    Tag const PartialDataDisplayHandling(0x0072, 0x0208);
-    Tag const SynchronizedScrollingSequence(0x0072, 0x0210);
-    Tag const DisplaySetScrollingGroup(0x0072, 0x0212);
-    Tag const NavigationIndicatorSequence(0x0072, 0x0214);
-    Tag const NavigationDisplaySet(0x0072, 0x0216);
-    Tag const ReferenceDisplaySets(0x0072, 0x0218);
-    Tag const ImageBoxesSequence(0x0072, 0x0300);
-    Tag const ImageBoxNumber(0x0072, 0x0302);
-    Tag const ImageBoxLayoutType(0x0072, 0x0304);
-    Tag const ImageBoxTileHorizontalDimension(0x0072, 0x0306);
-    Tag const ImageBoxTileVerticalDimension(0x0072, 0x0308);
-    Tag const ImageBoxScrollDirection(0x0072, 0x0310);
-    Tag const ImageBoxSmallScrollType(0x0072, 0x0312);
-    Tag const ImageBoxSmallScrollAmount(0x0072, 0x0314);
-    Tag const ImageBoxLargeScrollType(0x0072, 0x0316);
-    Tag const ImageBoxLargeScrollAmount(0x0072, 0x0318);
-    Tag const ImageBoxOverlapPriority(0x0072, 0x0320);
-    Tag const CineRelativeToRealTime(0x0072, 0x0330);
-    Tag const FilterOperationsSequence(0x0072, 0x0400);
-    Tag const FilterByCategory(0x0072, 0x0402);
-    Tag const FilterByAttributePresence(0x0072, 0x0404);
-    Tag const FilterByOperator(0x0072, 0x0406);
-    Tag const StructuredDisplayBackgroundCIELabValue(0x0072, 0x0420);
-    Tag const EmptyImageBoxCIELabValue(0x0072, 0x0421);
-    Tag const StructuredDisplayImageBoxSequence(0x0072, 0x0422);
-    Tag const StructuredDisplayTextBoxSequence(0x0072, 0x0424);
-    Tag const ReferencedFirstFrameSequence(0x0072, 0x0427);
-    Tag const ImageBoxSynchronizationSequence(0x0072, 0x0430);
-    Tag const SynchronizedImageBoxList(0x0072, 0x0432);
-    Tag const TypeOfSynchronization(0x0072, 0x0434);
-    Tag const BlendingOperationType(0x0072, 0x0500);
-    Tag const ReformattingOperationType(0x0072, 0x0510);
-    Tag const ReformattingThickness(0x0072, 0x0512);
-    Tag const ReformattingInterval(0x0072, 0x0514);
-    Tag const ReformattingOperationInitialViewDirection(0x0072, 0x0516);
-    Tag const ThreeDRenderingType(0x0072, 0x0520);
-    Tag const SortingOperationsSequence(0x0072, 0x0600);
-    Tag const SortByCategory(0x0072, 0x0602);
-    Tag const SortingDirection(0x0072, 0x0604);
-    Tag const DisplaySetPatientOrientation(0x0072, 0x0700);
-    Tag const VOIType(0x0072, 0x0702);
-    Tag const PseudoColorType(0x0072, 0x0704);
-    Tag const PseudoColorPaletteInstanceReferenceSequence(0x0072, 0x0705);
-    Tag const ShowGrayscaleInverted(0x0072, 0x0706);
-    Tag const ShowImageTrueSizeFlag(0x0072, 0x0710);
-    Tag const ShowGraphicAnnotationFlag(0x0072, 0x0712);
-    Tag const ShowPatientDemographicsFlag(0x0072, 0x0714);
-    Tag const ShowAcquisitionTechniquesFlag(0x0072, 0x0716);
-    Tag const DisplaySetHorizontalJustification(0x0072, 0x0717);
-    Tag const DisplaySetVerticalJustification(0x0072, 0x0718);
-    Tag const ContinuationStartMeterset(0x0074, 0x0120);
-    Tag const ContinuationEndMeterset(0x0074, 0x0121);
-    Tag const ProcedureStepState(0x0074, 0x1000);
-    Tag const ProcedureStepProgressInformationSequence(0x0074, 0x1002);
-    Tag const ProcedureStepProgress(0x0074, 0x1004);
-    Tag const ProcedureStepProgressDescription(0x0074, 0x1006);
-    Tag const ProcedureStepCommunicationsURISequence(0x0074, 0x1008);
-    Tag const ContactURI(0x0074, 0x100a);
-    Tag const ContactDisplayName(0x0074, 0x100c);
-    Tag const ProcedureStepDiscontinuationReasonCodeSequence(0x0074, 0x100e);
-    Tag const BeamTaskSequence(0x0074, 0x1020);
-    Tag const BeamTaskType(0x0074, 0x1022);
-    Tag const BeamOrderIndexTrial(0x0074, 0x1024);
-    Tag const AutosequenceFlag(0x0074, 0x1025);
-    Tag const TableTopVerticalAdjustedPosition(0x0074, 0x1026);
-    Tag const TableTopLongitudinalAdjustedPosition(0x0074, 0x1027);
-    Tag const TableTopLateralAdjustedPosition(0x0074, 0x1028);
-    Tag const PatientSupportAdjustedAngle(0x0074, 0x102a);
-    Tag const TableTopEccentricAdjustedAngle(0x0074, 0x102b);
-    Tag const TableTopPitchAdjustedAngle(0x0074, 0x102c);
-    Tag const TableTopRollAdjustedAngle(0x0074, 0x102d);
-    Tag const DeliveryVerificationImageSequence(0x0074, 0x1030);
-    Tag const VerificationImageTiming(0x0074, 0x1032);
-    Tag const DoubleExposureFlag(0x0074, 0x1034);
-    Tag const DoubleExposureOrdering(0x0074, 0x1036);
-    Tag const DoubleExposureMetersetTrial(0x0074, 0x1038);
-    Tag const DoubleExposureFieldDeltaTrial(0x0074, 0x103a);
-    Tag const RelatedReferenceRTImageSequence(0x0074, 0x1040);
-    Tag const GeneralMachineVerificationSequence(0x0074, 0x1042);
-    Tag const ConventionalMachineVerificationSequence(0x0074, 0x1044);
-    Tag const IonMachineVerificationSequence(0x0074, 0x1046);
-    Tag const FailedAttributesSequence(0x0074, 0x1048);
-    Tag const OverriddenAttributesSequence(0x0074, 0x104a);
-    Tag const ConventionalControlPointVerificationSequence(0x0074, 0x104c);
-    Tag const IonControlPointVerificationSequence(0x0074, 0x104e);
-    Tag const AttributeOccurrenceSequence(0x0074, 0x1050);
-    Tag const AttributeOccurrencePointer(0x0074, 0x1052);
-    Tag const AttributeItemSelector(0x0074, 0x1054);
-    Tag const AttributeOccurrencePrivateCreator(0x0074, 0x1056);
-    Tag const SelectorSequencePointerItems(0x0074, 0x1057);
-    Tag const ScheduledProcedureStepPriority(0x0074, 0x1200);
-    Tag const WorklistLabel(0x0074, 0x1202);
-    Tag const ProcedureStepLabel(0x0074, 0x1204);
-    Tag const ScheduledProcessingParametersSequence(0x0074, 0x1210);
-    Tag const PerformedProcessingParametersSequence(0x0074, 0x1212);
-    Tag const UnifiedProcedureStepPerformedProcedureSequence(0x0074, 0x1216);
-    Tag const RelatedProcedureStepSequence(0x0074, 0x1220);
-    Tag const ProcedureStepRelationshipType(0x0074, 0x1222);
-    Tag const ReplacedProcedureStepSequence(0x0074, 0x1224);
-    Tag const DeletionLock(0x0074, 0x1230);
-    Tag const ReceivingAE(0x0074, 0x1234);
-    Tag const RequestingAE(0x0074, 0x1236);
-    Tag const ReasonForCancellation(0x0074, 0x1238);
-    Tag const SCPStatus(0x0074, 0x1242);
-    Tag const SubscriptionListStatus(0x0074, 0x1244);
-    Tag const UnifiedProcedureStepListStatus(0x0074, 0x1246);
-    Tag const BeamOrderIndex(0x0074, 0x1324);
-    Tag const DoubleExposureMeterset(0x0074, 0x1338);
-    Tag const DoubleExposureFieldDelta(0x0074, 0x133a);
-    Tag const ImplantAssemblyTemplateName(0x0076, 0x0001);
-    Tag const ImplantAssemblyTemplateIssuer(0x0076, 0x0003);
-    Tag const ImplantAssemblyTemplateVersion(0x0076, 0x0006);
-    Tag const ReplacedImplantAssemblyTemplateSequence(0x0076, 0x0008);
-    Tag const ImplantAssemblyTemplateType(0x0076, 0x000a);
-    Tag const OriginalImplantAssemblyTemplateSequence(0x0076, 0x000c);
-    Tag const DerivationImplantAssemblyTemplateSequence(0x0076, 0x000e);
-    Tag const ImplantAssemblyTemplateTargetAnatomySequence(0x0076, 0x0010);
-    Tag const ProcedureTypeCodeSequence(0x0076, 0x0020);
-    Tag const SurgicalTechnique(0x0076, 0x0030);
-    Tag const ComponentTypesSequence(0x0076, 0x0032);
-    Tag const ComponentTypeCodeSequence(0x0076, 0x0034);
-    Tag const ExclusiveComponentType(0x0076, 0x0036);
-    Tag const MandatoryComponentType(0x0076, 0x0038);
-    Tag const ComponentSequence(0x0076, 0x0040);
-    Tag const ComponentID(0x0076, 0x0055);
-    Tag const ComponentAssemblySequence(0x0076, 0x0060);
-    Tag const Component1ReferencedID(0x0076, 0x0070);
-    Tag const Component1ReferencedMatingFeatureSetID(0x0076, 0x0080);
-    Tag const Component1ReferencedMatingFeatureID(0x0076, 0x0090);
-    Tag const Component2ReferencedID(0x0076, 0x00a0);
-    Tag const Component2ReferencedMatingFeatureSetID(0x0076, 0x00b0);
-    Tag const Component2ReferencedMatingFeatureID(0x0076, 0x00c0);
-    Tag const ImplantTemplateGroupName(0x0078, 0x0001);
-    Tag const ImplantTemplateGroupDescription(0x0078, 0x0010);
-    Tag const ImplantTemplateGroupIssuer(0x0078, 0x0020);
-    Tag const ImplantTemplateGroupVersion(0x0078, 0x0024);
-    Tag const ReplacedImplantTemplateGroupSequence(0x0078, 0x0026);
-    Tag const ImplantTemplateGroupTargetAnatomySequence(0x0078, 0x0028);
-    Tag const ImplantTemplateGroupMembersSequence(0x0078, 0x002a);
-    Tag const ImplantTemplateGroupMemberID(0x0078, 0x002e);
-    Tag const ThreeDImplantTemplateGroupMemberMatchingPoint(0x0078, 0x0050);
-    Tag const ThreeDImplantTemplateGroupMemberMatchingAxes(0x0078, 0x0060);
-    Tag const ImplantTemplateGroupMemberMatching2DCoordinatesSequence(0x0078, 0x0070);
-    Tag const TwoDImplantTemplateGroupMemberMatchingPoint(0x0078, 0x0090);
-    Tag const TwoDImplantTemplateGroupMemberMatchingAxes(0x0078, 0x00a0);
-    Tag const ImplantTemplateGroupVariationDimensionSequence(0x0078, 0x00b0);
-    Tag const ImplantTemplateGroupVariationDimensionName(0x0078, 0x00b2);
-    Tag const ImplantTemplateGroupVariationDimensionRankSequence(0x0078, 0x00b4);
-    Tag const ReferencedImplantTemplateGroupMemberID(0x0078, 0x00b6);
-    Tag const ImplantTemplateGroupVariationDimensionRank(0x0078, 0x00b8);
-    Tag const SurfaceScanAcquisitionTypeCodeSequence(0x0080, 0x0001);
-    Tag const SurfaceScanModeCodeSequence(0x0080, 0x0002);
-    Tag const RegistrationMethodCodeSequence(0x0080, 0x0003);
-    Tag const ShotDurationTime(0x0080, 0x0004);
-    Tag const ShotOffsetTime(0x0080, 0x0005);
-    Tag const SurfacePointPresentationValueData(0x0080, 0x0006);
-    Tag const SurfacePointColorCIELabValueData(0x0080, 0x0007);
-    Tag const UVMappingSequence(0x0080, 0x0008);
-    Tag const TextureLabel(0x0080, 0x0009);
-    Tag const UValueData(0x0080, 0x0010);
-    Tag const VValueData(0x0080, 0x0011);
-    Tag const ReferencedTextureSequence(0x0080, 0x0012);
-    Tag const ReferencedSurfaceDataSequence(0x0080, 0x0013);
-    Tag const StorageMediaFileSetID(0x0088, 0x0130);
-    Tag const StorageMediaFileSetUID(0x0088, 0x0140);
-    Tag const IconImageSequence(0x0088, 0x0200);
-    Tag const TopicTitle(0x0088, 0x0904);
-    Tag const TopicSubject(0x0088, 0x0906);
-    Tag const TopicAuthor(0x0088, 0x0910);
-    Tag const TopicKeywords(0x0088, 0x0912);
-    Tag const SOPInstanceStatus(0x0100, 0x0410);
-    Tag const SOPAuthorizationDateTime(0x0100, 0x0420);
-    Tag const SOPAuthorizationComment(0x0100, 0x0424);
-    Tag const AuthorizationEquipmentCertificationNumber(0x0100, 0x0426);
-    Tag const MACIDNumber(0x0400, 0x0005);
-    Tag const MACCalculationTransferSyntaxUID(0x0400, 0x0010);
-    Tag const MACAlgorithm(0x0400, 0x0015);
-    Tag const DataElementsSigned(0x0400, 0x0020);
-    Tag const DigitalSignatureUID(0x0400, 0x0100);
-    Tag const DigitalSignatureDateTime(0x0400, 0x0105);
-    Tag const CertificateType(0x0400, 0x0110);
-    Tag const CertificateOfSigner(0x0400, 0x0115);
-    Tag const Signature(0x0400, 0x0120);
-    Tag const CertifiedTimestampType(0x0400, 0x0305);
-    Tag const CertifiedTimestamp(0x0400, 0x0310);
-    Tag const DigitalSignaturePurposeCodeSequence(0x0400, 0x0401);
-    Tag const ReferencedDigitalSignatureSequence(0x0400, 0x0402);
-    Tag const ReferencedSOPInstanceMACSequence(0x0400, 0x0403);
-    Tag const MAC(0x0400, 0x0404);
-    Tag const EncryptedAttributesSequence(0x0400, 0x0500);
-    Tag const EncryptedContentTransferSyntaxUID(0x0400, 0x0510);
-    Tag const EncryptedContent(0x0400, 0x0520);
-    Tag const ModifiedAttributesSequence(0x0400, 0x0550);
-    Tag const OriginalAttributesSequence(0x0400, 0x0561);
-    Tag const AttributeModificationDateTime(0x0400, 0x0562);
-    Tag const ModifyingSystem(0x0400, 0x0563);
-    Tag const SourceOfPreviousValues(0x0400, 0x0564);
-    Tag const ReasonForTheAttributeModification(0x0400, 0x0565);
-    Tag const NumberOfCopies(0x2000, 0x0010);
-    Tag const PrinterConfigurationSequence(0x2000, 0x001e);
-    Tag const PrintPriority(0x2000, 0x0020);
-    Tag const MediumType(0x2000, 0x0030);
-    Tag const FilmDestination(0x2000, 0x0040);
-    Tag const FilmSessionLabel(0x2000, 0x0050);
-    Tag const MemoryAllocation(0x2000, 0x0060);
-    Tag const MaximumMemoryAllocation(0x2000, 0x0061);
-    Tag const ColorImagePrintingFlag(0x2000, 0x0062);
-    Tag const CollationFlag(0x2000, 0x0063);
-    Tag const AnnotationFlag(0x2000, 0x0065);
-    Tag const ImageOverlayFlag(0x2000, 0x0067);
-    Tag const PresentationLUTFlag(0x2000, 0x0069);
-    Tag const ImageBoxPresentationLUTFlag(0x2000, 0x006a);
-    Tag const MemoryBitDepth(0x2000, 0x00a0);
-    Tag const PrintingBitDepth(0x2000, 0x00a1);
-    Tag const MediaInstalledSequence(0x2000, 0x00a2);
-    Tag const OtherMediaAvailableSequence(0x2000, 0x00a4);
-    Tag const SupportedImageDisplayFormatsSequence(0x2000, 0x00a8);
-    Tag const ReferencedFilmBoxSequence(0x2000, 0x0500);
-    Tag const ReferencedStoredPrintSequence(0x2000, 0x0510);
-    Tag const ImageDisplayFormat(0x2010, 0x0010);
-    Tag const AnnotationDisplayFormatID(0x2010, 0x0030);
-    Tag const FilmOrientation(0x2010, 0x0040);
-    Tag const FilmSizeID(0x2010, 0x0050);
-    Tag const PrinterResolutionID(0x2010, 0x0052);
-    Tag const DefaultPrinterResolutionID(0x2010, 0x0054);
-    Tag const MagnificationType(0x2010, 0x0060);
-    Tag const SmoothingType(0x2010, 0x0080);
-    Tag const DefaultMagnificationType(0x2010, 0x00a6);
-    Tag const OtherMagnificationTypesAvailable(0x2010, 0x00a7);
-    Tag const DefaultSmoothingType(0x2010, 0x00a8);
-    Tag const OtherSmoothingTypesAvailable(0x2010, 0x00a9);
-    Tag const BorderDensity(0x2010, 0x0100);
-    Tag const EmptyImageDensity(0x2010, 0x0110);
-    Tag const MinDensity(0x2010, 0x0120);
-    Tag const MaxDensity(0x2010, 0x0130);
-    Tag const Trim(0x2010, 0x0140);
-    Tag const ConfigurationInformation(0x2010, 0x0150);
-    Tag const ConfigurationInformationDescription(0x2010, 0x0152);
-    Tag const MaximumCollatedFilms(0x2010, 0x0154);
-    Tag const Illumination(0x2010, 0x015e);
-    Tag const ReflectedAmbientLight(0x2010, 0x0160);
-    Tag const PrinterPixelSpacing(0x2010, 0x0376);
-    Tag const ReferencedFilmSessionSequence(0x2010, 0x0500);
-    Tag const ReferencedImageBoxSequence(0x2010, 0x0510);
-    Tag const ReferencedBasicAnnotationBoxSequence(0x2010, 0x0520);
-    Tag const ImageBoxPosition(0x2020, 0x0010);
-    Tag const Polarity(0x2020, 0x0020);
-    Tag const RequestedImageSize(0x2020, 0x0030);
-    Tag const RequestedDecimateCropBehavior(0x2020, 0x0040);
-    Tag const RequestedResolutionID(0x2020, 0x0050);
-    Tag const RequestedImageSizeFlag(0x2020, 0x00a0);
-    Tag const DecimateCropResult(0x2020, 0x00a2);
-    Tag const BasicGrayscaleImageSequence(0x2020, 0x0110);
-    Tag const BasicColorImageSequence(0x2020, 0x0111);
-    Tag const ReferencedImageOverlayBoxSequence(0x2020, 0x0130);
-    Tag const ReferencedVOILUTBoxSequence(0x2020, 0x0140);
-    Tag const AnnotationPosition(0x2030, 0x0010);
-    Tag const TextString(0x2030, 0x0020);
-    Tag const ReferencedOverlayPlaneSequence(0x2040, 0x0010);
-    Tag const ReferencedOverlayPlaneGroups(0x2040, 0x0011);
-    Tag const OverlayPixelDataSequence(0x2040, 0x0020);
-    Tag const OverlayMagnificationType(0x2040, 0x0060);
-    Tag const OverlaySmoothingType(0x2040, 0x0070);
-    Tag const OverlayOrImageMagnification(0x2040, 0x0072);
-    Tag const MagnifyToNumberOfColumns(0x2040, 0x0074);
-    Tag const OverlayForegroundDensity(0x2040, 0x0080);
-    Tag const OverlayBackgroundDensity(0x2040, 0x0082);
-    Tag const OverlayMode(0x2040, 0x0090);
-    Tag const ThresholdDensity(0x2040, 0x0100);
-    Tag const ReferencedImageBoxSequenceRetired(0x2040, 0x0500);
-    Tag const PresentationLUTSequence(0x2050, 0x0010);
-    Tag const PresentationLUTShape(0x2050, 0x0020);
-    Tag const ReferencedPresentationLUTSequence(0x2050, 0x0500);
-    Tag const PrintJobID(0x2100, 0x0010);
-    Tag const ExecutionStatus(0x2100, 0x0020);
-    Tag const ExecutionStatusInfo(0x2100, 0x0030);
-    Tag const CreationDate(0x2100, 0x0040);
-    Tag const CreationTime(0x2100, 0x0050);
-    Tag const Originator(0x2100, 0x0070);
-    Tag const DestinationAE(0x2100, 0x0140);
-    Tag const OwnerID(0x2100, 0x0160);
-    Tag const NumberOfFilms(0x2100, 0x0170);
-    Tag const ReferencedPrintJobSequencePullStoredPrint(0x2100, 0x0500);
-    Tag const PrinterStatus(0x2110, 0x0010);
-    Tag const PrinterStatusInfo(0x2110, 0x0020);
-    Tag const PrinterName(0x2110, 0x0030);
-    Tag const PrintQueueID(0x2110, 0x0099);
-    Tag const QueueStatus(0x2120, 0x0010);
-    Tag const PrintJobDescriptionSequence(0x2120, 0x0050);
-    Tag const ReferencedPrintJobSequence(0x2120, 0x0070);
-    Tag const PrintManagementCapabilitiesSequence(0x2130, 0x0010);
-    Tag const PrinterCharacteristicsSequence(0x2130, 0x0015);
-    Tag const FilmBoxContentSequence(0x2130, 0x0030);
-    Tag const ImageBoxContentSequence(0x2130, 0x0040);
-    Tag const AnnotationContentSequence(0x2130, 0x0050);
-    Tag const ImageOverlayBoxContentSequence(0x2130, 0x0060);
-    Tag const PresentationLUTContentSequence(0x2130, 0x0080);
-    Tag const ProposedStudySequence(0x2130, 0x00a0);
-    Tag const OriginalImageSequence(0x2130, 0x00c0);
-    Tag const LabelUsingInformationExtractedFromInstances(0x2200, 0x0001);
-    Tag const LabelText(0x2200, 0x0002);
-    Tag const LabelStyleSelection(0x2200, 0x0003);
-    Tag const MediaDisposition(0x2200, 0x0004);
-    Tag const BarcodeValue(0x2200, 0x0005);
-    Tag const BarcodeSymbology(0x2200, 0x0006);
-    Tag const AllowMediaSplitting(0x2200, 0x0007);
-    Tag const IncludeNonDICOMObjects(0x2200, 0x0008);
-    Tag const IncludeDisplayApplication(0x2200, 0x0009);
-    Tag const PreserveCompositeInstancesAfterMediaCreation(0x2200, 0x000a);
-    Tag const TotalNumberOfPiecesOfMediaCreated(0x2200, 0x000b);
-    Tag const RequestedMediaApplicationProfile(0x2200, 0x000c);
-    Tag const ReferencedStorageMediaSequence(0x2200, 0x000d);
-    Tag const FailureAttributes(0x2200, 0x000e);
-    Tag const AllowLossyCompression(0x2200, 0x000f);
-    Tag const RequestPriority(0x2200, 0x0020);
-    Tag const RTImageLabel(0x3002, 0x0002);
-    Tag const RTImageName(0x3002, 0x0003);
-    Tag const RTImageDescription(0x3002, 0x0004);
-    Tag const ReportedValuesOrigin(0x3002, 0x000a);
-    Tag const RTImagePlane(0x3002, 0x000c);
-    Tag const XRayImageReceptorTranslation(0x3002, 0x000d);
-    Tag const XRayImageReceptorAngle(0x3002, 0x000e);
-    Tag const RTImageOrientation(0x3002, 0x0010);
-    Tag const ImagePlanePixelSpacing(0x3002, 0x0011);
-    Tag const RTImagePosition(0x3002, 0x0012);
-    Tag const RadiationMachineName(0x3002, 0x0020);
-    Tag const RadiationMachineSAD(0x3002, 0x0022);
-    Tag const RadiationMachineSSD(0x3002, 0x0024);
-    Tag const RTImageSID(0x3002, 0x0026);
-    Tag const SourceToReferenceObjectDistance(0x3002, 0x0028);
-    Tag const FractionNumber(0x3002, 0x0029);
-    Tag const ExposureSequence(0x3002, 0x0030);
-    Tag const MetersetExposure(0x3002, 0x0032);
-    Tag const DiaphragmPosition(0x3002, 0x0034);
-    Tag const FluenceMapSequence(0x3002, 0x0040);
-    Tag const FluenceDataSource(0x3002, 0x0041);
-    Tag const FluenceDataScale(0x3002, 0x0042);
-    Tag const PrimaryFluenceModeSequence(0x3002, 0x0050);
-    Tag const FluenceMode(0x3002, 0x0051);
-    Tag const FluenceModeID(0x3002, 0x0052);
-    Tag const DVHType(0x3004, 0x0001);
-    Tag const DoseUnits(0x3004, 0x0002);
-    Tag const DoseType(0x3004, 0x0004);
-    Tag const SpatialTransformOfDose(0x3004, 0x0005);
-    Tag const DoseComment(0x3004, 0x0006);
-    Tag const NormalizationPoint(0x3004, 0x0008);
-    Tag const DoseSummationType(0x3004, 0x000a);
-    Tag const GridFrameOffsetVector(0x3004, 0x000c);
-    Tag const DoseGridScaling(0x3004, 0x000e);
-    Tag const RTDoseROISequence(0x3004, 0x0010);
-    Tag const DoseValue(0x3004, 0x0012);
-    Tag const TissueHeterogeneityCorrection(0x3004, 0x0014);
-    Tag const DVHNormalizationPoint(0x3004, 0x0040);
-    Tag const DVHNormalizationDoseValue(0x3004, 0x0042);
-    Tag const DVHSequence(0x3004, 0x0050);
-    Tag const DVHDoseScaling(0x3004, 0x0052);
-    Tag const DVHVolumeUnits(0x3004, 0x0054);
-    Tag const DVHNumberOfBins(0x3004, 0x0056);
-    Tag const DVHData(0x3004, 0x0058);
-    Tag const DVHReferencedROISequence(0x3004, 0x0060);
-    Tag const DVHROIContributionType(0x3004, 0x0062);
-    Tag const DVHMinimumDose(0x3004, 0x0070);
-    Tag const DVHMaximumDose(0x3004, 0x0072);
-    Tag const DVHMeanDose(0x3004, 0x0074);
-    Tag const StructureSetLabel(0x3006, 0x0002);
-    Tag const StructureSetName(0x3006, 0x0004);
-    Tag const StructureSetDescription(0x3006, 0x0006);
-    Tag const StructureSetDate(0x3006, 0x0008);
-    Tag const StructureSetTime(0x3006, 0x0009);
-    Tag const ReferencedFrameOfReferenceSequence(0x3006, 0x0010);
-    Tag const RTReferencedStudySequence(0x3006, 0x0012);
-    Tag const RTReferencedSeriesSequence(0x3006, 0x0014);
-    Tag const ContourImageSequence(0x3006, 0x0016);
-    Tag const PredecessorStructureSetSequence(0x3006, 0x0018);
-    Tag const StructureSetROISequence(0x3006, 0x0020);
-    Tag const ROINumber(0x3006, 0x0022);
-    Tag const ReferencedFrameOfReferenceUID(0x3006, 0x0024);
-    Tag const ROIName(0x3006, 0x0026);
-    Tag const ROIDescription(0x3006, 0x0028);
-    Tag const ROIDisplayColor(0x3006, 0x002a);
-    Tag const ROIVolume(0x3006, 0x002c);
-    Tag const RTRelatedROISequence(0x3006, 0x0030);
-    Tag const RTROIRelationship(0x3006, 0x0033);
-    Tag const ROIGenerationAlgorithm(0x3006, 0x0036);
-    Tag const ROIGenerationDescription(0x3006, 0x0038);
-    Tag const ROIContourSequence(0x3006, 0x0039);
-    Tag const ContourSequence(0x3006, 0x0040);
-    Tag const ContourGeometricType(0x3006, 0x0042);
-    Tag const ContourSlabThickness(0x3006, 0x0044);
-    Tag const ContourOffsetVector(0x3006, 0x0045);
-    Tag const NumberOfContourPoints(0x3006, 0x0046);
-    Tag const ContourNumber(0x3006, 0x0048);
-    Tag const AttachedContours(0x3006, 0x0049);
-    Tag const ContourData(0x3006, 0x0050);
-    Tag const RTROIObservationsSequence(0x3006, 0x0080);
-    Tag const ObservationNumber(0x3006, 0x0082);
-    Tag const ReferencedROINumber(0x3006, 0x0084);
-    Tag const ROIObservationLabel(0x3006, 0x0085);
-    Tag const RTROIIdentificationCodeSequence(0x3006, 0x0086);
-    Tag const ROIObservationDescription(0x3006, 0x0088);
-    Tag const RelatedRTROIObservationsSequence(0x3006, 0x00a0);
-    Tag const RTROIInterpretedType(0x3006, 0x00a4);
-    Tag const ROIInterpreter(0x3006, 0x00a6);
-    Tag const ROIPhysicalPropertiesSequence(0x3006, 0x00b0);
-    Tag const ROIPhysicalProperty(0x3006, 0x00b2);
-    Tag const ROIPhysicalPropertyValue(0x3006, 0x00b4);
-    Tag const ROIElementalCompositionSequence(0x3006, 0x00b6);
-    Tag const ROIElementalCompositionAtomicNumber(0x3006, 0x00b7);
-    Tag const ROIElementalCompositionAtomicMassFraction(0x3006, 0x00b8);
-    Tag const AdditionalRTROIIdentificationCodeSequence(0x3006, 0x00b9);
-    Tag const FrameOfReferenceRelationshipSequence(0x3006, 0x00c0);
-    Tag const RelatedFrameOfReferenceUID(0x3006, 0x00c2);
-    Tag const FrameOfReferenceTransformationType(0x3006, 0x00c4);
-    Tag const FrameOfReferenceTransformationMatrix(0x3006, 0x00c6);
-    Tag const FrameOfReferenceTransformationComment(0x3006, 0x00c8);
-    Tag const MeasuredDoseReferenceSequence(0x3008, 0x0010);
-    Tag const MeasuredDoseDescription(0x3008, 0x0012);
-    Tag const MeasuredDoseType(0x3008, 0x0014);
-    Tag const MeasuredDoseValue(0x3008, 0x0016);
-    Tag const TreatmentSessionBeamSequence(0x3008, 0x0020);
-    Tag const TreatmentSessionIonBeamSequence(0x3008, 0x0021);
-    Tag const CurrentFractionNumber(0x3008, 0x0022);
-    Tag const TreatmentControlPointDate(0x3008, 0x0024);
-    Tag const TreatmentControlPointTime(0x3008, 0x0025);
-    Tag const TreatmentTerminationStatus(0x3008, 0x002a);
-    Tag const TreatmentTerminationCode(0x3008, 0x002b);
-    Tag const TreatmentVerificationStatus(0x3008, 0x002c);
-    Tag const ReferencedTreatmentRecordSequence(0x3008, 0x0030);
-    Tag const SpecifiedPrimaryMeterset(0x3008, 0x0032);
-    Tag const SpecifiedSecondaryMeterset(0x3008, 0x0033);
-    Tag const DeliveredPrimaryMeterset(0x3008, 0x0036);
-    Tag const DeliveredSecondaryMeterset(0x3008, 0x0037);
-    Tag const SpecifiedTreatmentTime(0x3008, 0x003a);
-    Tag const DeliveredTreatmentTime(0x3008, 0x003b);
-    Tag const ControlPointDeliverySequence(0x3008, 0x0040);
-    Tag const IonControlPointDeliverySequence(0x3008, 0x0041);
-    Tag const SpecifiedMeterset(0x3008, 0x0042);
-    Tag const DeliveredMeterset(0x3008, 0x0044);
-    Tag const MetersetRateSet(0x3008, 0x0045);
-    Tag const MetersetRateDelivered(0x3008, 0x0046);
-    Tag const ScanSpotMetersetsDelivered(0x3008, 0x0047);
-    Tag const DoseRateDelivered(0x3008, 0x0048);
-    Tag const TreatmentSummaryCalculatedDoseReferenceSequence(0x3008, 0x0050);
-    Tag const CumulativeDoseToDoseReference(0x3008, 0x0052);
-    Tag const FirstTreatmentDate(0x3008, 0x0054);
-    Tag const MostRecentTreatmentDate(0x3008, 0x0056);
-    Tag const NumberOfFractionsDelivered(0x3008, 0x005a);
-    Tag const OverrideSequence(0x3008, 0x0060);
-    Tag const ParameterSequencePointer(0x3008, 0x0061);
-    Tag const OverrideParameterPointer(0x3008, 0x0062);
-    Tag const ParameterItemIndex(0x3008, 0x0063);
-    Tag const MeasuredDoseReferenceNumber(0x3008, 0x0064);
-    Tag const ParameterPointer(0x3008, 0x0065);
-    Tag const OverrideReason(0x3008, 0x0066);
-    Tag const CorrectedParameterSequence(0x3008, 0x0068);
-    Tag const CorrectionValue(0x3008, 0x006a);
-    Tag const CalculatedDoseReferenceSequence(0x3008, 0x0070);
-    Tag const CalculatedDoseReferenceNumber(0x3008, 0x0072);
-    Tag const CalculatedDoseReferenceDescription(0x3008, 0x0074);
-    Tag const CalculatedDoseReferenceDoseValue(0x3008, 0x0076);
-    Tag const StartMeterset(0x3008, 0x0078);
-    Tag const EndMeterset(0x3008, 0x007a);
-    Tag const ReferencedMeasuredDoseReferenceSequence(0x3008, 0x0080);
-    Tag const ReferencedMeasuredDoseReferenceNumber(0x3008, 0x0082);
-    Tag const ReferencedCalculatedDoseReferenceSequence(0x3008, 0x0090);
-    Tag const ReferencedCalculatedDoseReferenceNumber(0x3008, 0x0092);
-    Tag const BeamLimitingDeviceLeafPairsSequence(0x3008, 0x00a0);
-    Tag const RecordedWedgeSequence(0x3008, 0x00b0);
-    Tag const RecordedCompensatorSequence(0x3008, 0x00c0);
-    Tag const RecordedBlockSequence(0x3008, 0x00d0);
-    Tag const TreatmentSummaryMeasuredDoseReferenceSequence(0x3008, 0x00e0);
-    Tag const RecordedSnoutSequence(0x3008, 0x00f0);
-    Tag const RecordedRangeShifterSequence(0x3008, 0x00f2);
-    Tag const RecordedLateralSpreadingDeviceSequence(0x3008, 0x00f4);
-    Tag const RecordedRangeModulatorSequence(0x3008, 0x00f6);
-    Tag const RecordedSourceSequence(0x3008, 0x0100);
-    Tag const SourceSerialNumber(0x3008, 0x0105);
-    Tag const TreatmentSessionApplicationSetupSequence(0x3008, 0x0110);
-    Tag const ApplicationSetupCheck(0x3008, 0x0116);
-    Tag const RecordedBrachyAccessoryDeviceSequence(0x3008, 0x0120);
-    Tag const ReferencedBrachyAccessoryDeviceNumber(0x3008, 0x0122);
-    Tag const RecordedChannelSequence(0x3008, 0x0130);
-    Tag const SpecifiedChannelTotalTime(0x3008, 0x0132);
-    Tag const DeliveredChannelTotalTime(0x3008, 0x0134);
-    Tag const SpecifiedNumberOfPulses(0x3008, 0x0136);
-    Tag const DeliveredNumberOfPulses(0x3008, 0x0138);
-    Tag const SpecifiedPulseRepetitionInterval(0x3008, 0x013a);
-    Tag const DeliveredPulseRepetitionInterval(0x3008, 0x013c);
-    Tag const RecordedSourceApplicatorSequence(0x3008, 0x0140);
-    Tag const ReferencedSourceApplicatorNumber(0x3008, 0x0142);
-    Tag const RecordedChannelShieldSequence(0x3008, 0x0150);
-    Tag const ReferencedChannelShieldNumber(0x3008, 0x0152);
-    Tag const BrachyControlPointDeliveredSequence(0x3008, 0x0160);
-    Tag const SafePositionExitDate(0x3008, 0x0162);
-    Tag const SafePositionExitTime(0x3008, 0x0164);
-    Tag const SafePositionReturnDate(0x3008, 0x0166);
-    Tag const SafePositionReturnTime(0x3008, 0x0168);
-    Tag const PulseSpecificBrachyControlPointDeliveredSequence(0x3008, 0x0171);
-    Tag const PulseNumber(0x3008, 0x0172);
-    Tag const BrachyPulseControlPointDeliveredSequence(0x3008, 0x0173);
-    Tag const CurrentTreatmentStatus(0x3008, 0x0200);
-    Tag const TreatmentStatusComment(0x3008, 0x0202);
-    Tag const FractionGroupSummarySequence(0x3008, 0x0220);
-    Tag const ReferencedFractionNumber(0x3008, 0x0223);
-    Tag const FractionGroupType(0x3008, 0x0224);
-    Tag const BeamStopperPosition(0x3008, 0x0230);
-    Tag const FractionStatusSummarySequence(0x3008, 0x0240);
-    Tag const TreatmentDate(0x3008, 0x0250);
-    Tag const TreatmentTime(0x3008, 0x0251);
-    Tag const RTPlanLabel(0x300a, 0x0002);
-    Tag const RTPlanName(0x300a, 0x0003);
-    Tag const RTPlanDescription(0x300a, 0x0004);
-    Tag const RTPlanDate(0x300a, 0x0006);
-    Tag const RTPlanTime(0x300a, 0x0007);
-    Tag const TreatmentProtocols(0x300a, 0x0009);
-    Tag const PlanIntent(0x300a, 0x000a);
-    Tag const TreatmentSites(0x300a, 0x000b);
-    Tag const RTPlanGeometry(0x300a, 0x000c);
-    Tag const PrescriptionDescription(0x300a, 0x000e);
-    Tag const DoseReferenceSequence(0x300a, 0x0010);
-    Tag const DoseReferenceNumber(0x300a, 0x0012);
-    Tag const DoseReferenceUID(0x300a, 0x0013);
-    Tag const DoseReferenceStructureType(0x300a, 0x0014);
-    Tag const NominalBeamEnergyUnit(0x300a, 0x0015);
-    Tag const DoseReferenceDescription(0x300a, 0x0016);
-    Tag const DoseReferencePointCoordinates(0x300a, 0x0018);
-    Tag const NominalPriorDose(0x300a, 0x001a);
-    Tag const DoseReferenceType(0x300a, 0x0020);
-    Tag const ConstraintWeight(0x300a, 0x0021);
-    Tag const DeliveryWarningDose(0x300a, 0x0022);
-    Tag const DeliveryMaximumDose(0x300a, 0x0023);
-    Tag const TargetMinimumDose(0x300a, 0x0025);
-    Tag const TargetPrescriptionDose(0x300a, 0x0026);
-    Tag const TargetMaximumDose(0x300a, 0x0027);
-    Tag const TargetUnderdoseVolumeFraction(0x300a, 0x0028);
-    Tag const OrganAtRiskFullVolumeDose(0x300a, 0x002a);
-    Tag const OrganAtRiskLimitDose(0x300a, 0x002b);
-    Tag const OrganAtRiskMaximumDose(0x300a, 0x002c);
-    Tag const OrganAtRiskOverdoseVolumeFraction(0x300a, 0x002d);
-    Tag const ToleranceTableSequence(0x300a, 0x0040);
-    Tag const ToleranceTableNumber(0x300a, 0x0042);
-    Tag const ToleranceTableLabel(0x300a, 0x0043);
-    Tag const GantryAngleTolerance(0x300a, 0x0044);
-    Tag const BeamLimitingDeviceAngleTolerance(0x300a, 0x0046);
-    Tag const BeamLimitingDeviceToleranceSequence(0x300a, 0x0048);
-    Tag const BeamLimitingDevicePositionTolerance(0x300a, 0x004a);
-    Tag const SnoutPositionTolerance(0x300a, 0x004b);
-    Tag const PatientSupportAngleTolerance(0x300a, 0x004c);
-    Tag const TableTopEccentricAngleTolerance(0x300a, 0x004e);
-    Tag const TableTopPitchAngleTolerance(0x300a, 0x004f);
-    Tag const TableTopRollAngleTolerance(0x300a, 0x0050);
-    Tag const TableTopVerticalPositionTolerance(0x300a, 0x0051);
-    Tag const TableTopLongitudinalPositionTolerance(0x300a, 0x0052);
-    Tag const TableTopLateralPositionTolerance(0x300a, 0x0053);
-    Tag const RTPlanRelationship(0x300a, 0x0055);
-    Tag const FractionGroupSequence(0x300a, 0x0070);
-    Tag const FractionGroupNumber(0x300a, 0x0071);
-    Tag const FractionGroupDescription(0x300a, 0x0072);
-    Tag const NumberOfFractionsPlanned(0x300a, 0x0078);
-    Tag const NumberOfFractionPatternDigitsPerDay(0x300a, 0x0079);
-    Tag const RepeatFractionCycleLength(0x300a, 0x007a);
-    Tag const FractionPattern(0x300a, 0x007b);
-    Tag const NumberOfBeams(0x300a, 0x0080);
-    Tag const BeamDoseSpecificationPoint(0x300a, 0x0082);
-    Tag const BeamDose(0x300a, 0x0084);
-    Tag const BeamMeterset(0x300a, 0x0086);
-    Tag const BeamDosePointDepth(0x300a, 0x0088);
-    Tag const BeamDosePointEquivalentDepth(0x300a, 0x0089);
-    Tag const BeamDosePointSSD(0x300a, 0x008a);
-    Tag const BeamDoseMeaning(0x300a, 0x008b);
-    Tag const BeamDoseVerificationControlPointSequence(0x300a, 0x008c);
-    Tag const AverageBeamDosePointDepth(0x300a, 0x008d);
-    Tag const AverageBeamDosePointEquivalentDepth(0x300a, 0x008e);
-    Tag const AverageBeamDosePointSSD(0x300a, 0x008f);
-    Tag const NumberOfBrachyApplicationSetups(0x300a, 0x00a0);
-    Tag const BrachyApplicationSetupDoseSpecificationPoint(0x300a, 0x00a2);
-    Tag const BrachyApplicationSetupDose(0x300a, 0x00a4);
-    Tag const BeamSequence(0x300a, 0x00b0);
-    Tag const TreatmentMachineName(0x300a, 0x00b2);
-    Tag const PrimaryDosimeterUnit(0x300a, 0x00b3);
-    Tag const SourceAxisDistance(0x300a, 0x00b4);
-    Tag const BeamLimitingDeviceSequence(0x300a, 0x00b6);
-    Tag const RTBeamLimitingDeviceType(0x300a, 0x00b8);
-    Tag const SourceToBeamLimitingDeviceDistance(0x300a, 0x00ba);
-    Tag const IsocenterToBeamLimitingDeviceDistance(0x300a, 0x00bb);
-    Tag const NumberOfLeafJawPairs(0x300a, 0x00bc);
-    Tag const LeafPositionBoundaries(0x300a, 0x00be);
-    Tag const BeamNumber(0x300a, 0x00c0);
-    Tag const BeamName(0x300a, 0x00c2);
-    Tag const BeamDescription(0x300a, 0x00c3);
-    Tag const BeamType(0x300a, 0x00c4);
-    Tag const BeamDeliveryDurationLimit(0x300a, 0x00c5);
-    Tag const RadiationType(0x300a, 0x00c6);
-    Tag const HighDoseTechniqueType(0x300a, 0x00c7);
-    Tag const ReferenceImageNumber(0x300a, 0x00c8);
-    Tag const PlannedVerificationImageSequence(0x300a, 0x00ca);
-    Tag const ImagingDeviceSpecificAcquisitionParameters(0x300a, 0x00cc);
-    Tag const TreatmentDeliveryType(0x300a, 0x00ce);
-    Tag const NumberOfWedges(0x300a, 0x00d0);
-    Tag const WedgeSequence(0x300a, 0x00d1);
-    Tag const WedgeNumber(0x300a, 0x00d2);
-    Tag const WedgeType(0x300a, 0x00d3);
-    Tag const WedgeID(0x300a, 0x00d4);
-    Tag const WedgeAngle(0x300a, 0x00d5);
-    Tag const WedgeFactor(0x300a, 0x00d6);
-    Tag const TotalWedgeTrayWaterEquivalentThickness(0x300a, 0x00d7);
-    Tag const WedgeOrientation(0x300a, 0x00d8);
-    Tag const IsocenterToWedgeTrayDistance(0x300a, 0x00d9);
-    Tag const SourceToWedgeTrayDistance(0x300a, 0x00da);
-    Tag const WedgeThinEdgePosition(0x300a, 0x00db);
-    Tag const BolusID(0x300a, 0x00dc);
-    Tag const BolusDescription(0x300a, 0x00dd);
-    Tag const EffectiveWedgeAngle(0x300a, 0x00de);
-    Tag const NumberOfCompensators(0x300a, 0x00e0);
-    Tag const MaterialID(0x300a, 0x00e1);
-    Tag const TotalCompensatorTrayFactor(0x300a, 0x00e2);
-    Tag const CompensatorSequence(0x300a, 0x00e3);
-    Tag const CompensatorNumber(0x300a, 0x00e4);
-    Tag const CompensatorID(0x300a, 0x00e5);
-    Tag const SourceToCompensatorTrayDistance(0x300a, 0x00e6);
-    Tag const CompensatorRows(0x300a, 0x00e7);
-    Tag const CompensatorColumns(0x300a, 0x00e8);
-    Tag const CompensatorPixelSpacing(0x300a, 0x00e9);
-    Tag const CompensatorPosition(0x300a, 0x00ea);
-    Tag const CompensatorTransmissionData(0x300a, 0x00eb);
-    Tag const CompensatorThicknessData(0x300a, 0x00ec);
-    Tag const NumberOfBoli(0x300a, 0x00ed);
-    Tag const CompensatorType(0x300a, 0x00ee);
-    Tag const CompensatorTrayID(0x300a, 0x00ef);
-    Tag const NumberOfBlocks(0x300a, 0x00f0);
-    Tag const TotalBlockTrayFactor(0x300a, 0x00f2);
-    Tag const TotalBlockTrayWaterEquivalentThickness(0x300a, 0x00f3);
-    Tag const BlockSequence(0x300a, 0x00f4);
-    Tag const BlockTrayID(0x300a, 0x00f5);
-    Tag const SourceToBlockTrayDistance(0x300a, 0x00f6);
-    Tag const IsocenterToBlockTrayDistance(0x300a, 0x00f7);
-    Tag const BlockType(0x300a, 0x00f8);
-    Tag const AccessoryCode(0x300a, 0x00f9);
-    Tag const BlockDivergence(0x300a, 0x00fa);
-    Tag const BlockMountingPosition(0x300a, 0x00fb);
-    Tag const BlockNumber(0x300a, 0x00fc);
-    Tag const BlockName(0x300a, 0x00fe);
-    Tag const BlockThickness(0x300a, 0x0100);
-    Tag const BlockTransmission(0x300a, 0x0102);
-    Tag const BlockNumberOfPoints(0x300a, 0x0104);
-    Tag const BlockData(0x300a, 0x0106);
-    Tag const ApplicatorSequence(0x300a, 0x0107);
-    Tag const ApplicatorID(0x300a, 0x0108);
-    Tag const ApplicatorType(0x300a, 0x0109);
-    Tag const ApplicatorDescription(0x300a, 0x010a);
-    Tag const CumulativeDoseReferenceCoefficient(0x300a, 0x010c);
-    Tag const FinalCumulativeMetersetWeight(0x300a, 0x010e);
-    Tag const NumberOfControlPoints(0x300a, 0x0110);
-    Tag const ControlPointSequence(0x300a, 0x0111);
-    Tag const ControlPointIndex(0x300a, 0x0112);
-    Tag const NominalBeamEnergy(0x300a, 0x0114);
-    Tag const DoseRateSet(0x300a, 0x0115);
-    Tag const WedgePositionSequence(0x300a, 0x0116);
-    Tag const WedgePosition(0x300a, 0x0118);
-    Tag const BeamLimitingDevicePositionSequence(0x300a, 0x011a);
-    Tag const LeafJawPositions(0x300a, 0x011c);
-    Tag const GantryAngle(0x300a, 0x011e);
-    Tag const GantryRotationDirection(0x300a, 0x011f);
-    Tag const BeamLimitingDeviceAngle(0x300a, 0x0120);
-    Tag const BeamLimitingDeviceRotationDirection(0x300a, 0x0121);
-    Tag const PatientSupportAngle(0x300a, 0x0122);
-    Tag const PatientSupportRotationDirection(0x300a, 0x0123);
-    Tag const TableTopEccentricAxisDistance(0x300a, 0x0124);
-    Tag const TableTopEccentricAngle(0x300a, 0x0125);
-    Tag const TableTopEccentricRotationDirection(0x300a, 0x0126);
-    Tag const TableTopVerticalPosition(0x300a, 0x0128);
-    Tag const TableTopLongitudinalPosition(0x300a, 0x0129);
-    Tag const TableTopLateralPosition(0x300a, 0x012a);
-    Tag const IsocenterPosition(0x300a, 0x012c);
-    Tag const SurfaceEntryPoint(0x300a, 0x012e);
-    Tag const SourceToSurfaceDistance(0x300a, 0x0130);
-    Tag const AverageBeamDosePointSourceToExternalContourSurfaceDistance(0x300a, 0x0131);
-    Tag const SourceToExternalContourDistance(0x300a, 0x0132);
-    Tag const ExternalContourEntryPoint(0x300a, 0x0133);
-    Tag const CumulativeMetersetWeight(0x300a, 0x0134);
-    Tag const TableTopPitchAngle(0x300a, 0x0140);
-    Tag const TableTopPitchRotationDirection(0x300a, 0x0142);
-    Tag const TableTopRollAngle(0x300a, 0x0144);
-    Tag const TableTopRollRotationDirection(0x300a, 0x0146);
-    Tag const HeadFixationAngle(0x300a, 0x0148);
-    Tag const GantryPitchAngle(0x300a, 0x014a);
-    Tag const GantryPitchRotationDirection(0x300a, 0x014c);
-    Tag const GantryPitchAngleTolerance(0x300a, 0x014e);
-    Tag const PatientSetupSequence(0x300a, 0x0180);
-    Tag const PatientSetupNumber(0x300a, 0x0182);
-    Tag const PatientSetupLabel(0x300a, 0x0183);
-    Tag const PatientAdditionalPosition(0x300a, 0x0184);
-    Tag const FixationDeviceSequence(0x300a, 0x0190);
-    Tag const FixationDeviceType(0x300a, 0x0192);
-    Tag const FixationDeviceLabel(0x300a, 0x0194);
-    Tag const FixationDeviceDescription(0x300a, 0x0196);
-    Tag const FixationDevicePosition(0x300a, 0x0198);
-    Tag const FixationDevicePitchAngle(0x300a, 0x0199);
-    Tag const FixationDeviceRollAngle(0x300a, 0x019a);
-    Tag const ShieldingDeviceSequence(0x300a, 0x01a0);
-    Tag const ShieldingDeviceType(0x300a, 0x01a2);
-    Tag const ShieldingDeviceLabel(0x300a, 0x01a4);
-    Tag const ShieldingDeviceDescription(0x300a, 0x01a6);
-    Tag const ShieldingDevicePosition(0x300a, 0x01a8);
-    Tag const SetupTechnique(0x300a, 0x01b0);
-    Tag const SetupTechniqueDescription(0x300a, 0x01b2);
-    Tag const SetupDeviceSequence(0x300a, 0x01b4);
-    Tag const SetupDeviceType(0x300a, 0x01b6);
-    Tag const SetupDeviceLabel(0x300a, 0x01b8);
-    Tag const SetupDeviceDescription(0x300a, 0x01ba);
-    Tag const SetupDeviceParameter(0x300a, 0x01bc);
-    Tag const SetupReferenceDescription(0x300a, 0x01d0);
-    Tag const TableTopVerticalSetupDisplacement(0x300a, 0x01d2);
-    Tag const TableTopLongitudinalSetupDisplacement(0x300a, 0x01d4);
-    Tag const TableTopLateralSetupDisplacement(0x300a, 0x01d6);
-    Tag const BrachyTreatmentTechnique(0x300a, 0x0200);
-    Tag const BrachyTreatmentType(0x300a, 0x0202);
-    Tag const TreatmentMachineSequence(0x300a, 0x0206);
-    Tag const SourceSequence(0x300a, 0x0210);
-    Tag const SourceNumber(0x300a, 0x0212);
-    Tag const SourceType(0x300a, 0x0214);
-    Tag const SourceManufacturer(0x300a, 0x0216);
-    Tag const ActiveSourceDiameter(0x300a, 0x0218);
-    Tag const ActiveSourceLength(0x300a, 0x021a);
-    Tag const SourceModelID(0x300a, 0x021b);
-    Tag const SourceDescription(0x300a, 0x021c);
-    Tag const SourceEncapsulationNominalThickness(0x300a, 0x0222);
-    Tag const SourceEncapsulationNominalTransmission(0x300a, 0x0224);
-    Tag const SourceIsotopeName(0x300a, 0x0226);
-    Tag const SourceIsotopeHalfLife(0x300a, 0x0228);
-    Tag const SourceStrengthUnits(0x300a, 0x0229);
-    Tag const ReferenceAirKermaRate(0x300a, 0x022a);
-    Tag const SourceStrength(0x300a, 0x022b);
-    Tag const SourceStrengthReferenceDate(0x300a, 0x022c);
-    Tag const SourceStrengthReferenceTime(0x300a, 0x022e);
-    Tag const ApplicationSetupSequence(0x300a, 0x0230);
-    Tag const ApplicationSetupType(0x300a, 0x0232);
-    Tag const ApplicationSetupNumber(0x300a, 0x0234);
-    Tag const ApplicationSetupName(0x300a, 0x0236);
-    Tag const ApplicationSetupManufacturer(0x300a, 0x0238);
-    Tag const TemplateNumber(0x300a, 0x0240);
-    Tag const TemplateType(0x300a, 0x0242);
-    Tag const TemplateName(0x300a, 0x0244);
-    Tag const TotalReferenceAirKerma(0x300a, 0x0250);
-    Tag const BrachyAccessoryDeviceSequence(0x300a, 0x0260);
-    Tag const BrachyAccessoryDeviceNumber(0x300a, 0x0262);
-    Tag const BrachyAccessoryDeviceID(0x300a, 0x0263);
-    Tag const BrachyAccessoryDeviceType(0x300a, 0x0264);
-    Tag const BrachyAccessoryDeviceName(0x300a, 0x0266);
-    Tag const BrachyAccessoryDeviceNominalThickness(0x300a, 0x026a);
-    Tag const BrachyAccessoryDeviceNominalTransmission(0x300a, 0x026c);
-    Tag const ChannelSequence(0x300a, 0x0280);
-    Tag const ChannelNumber(0x300a, 0x0282);
-    Tag const ChannelLength(0x300a, 0x0284);
-    Tag const ChannelTotalTime(0x300a, 0x0286);
-    Tag const SourceMovementType(0x300a, 0x0288);
-    Tag const NumberOfPulses(0x300a, 0x028a);
-    Tag const PulseRepetitionInterval(0x300a, 0x028c);
-    Tag const SourceApplicatorNumber(0x300a, 0x0290);
-    Tag const SourceApplicatorID(0x300a, 0x0291);
-    Tag const SourceApplicatorType(0x300a, 0x0292);
-    Tag const SourceApplicatorName(0x300a, 0x0294);
-    Tag const SourceApplicatorLength(0x300a, 0x0296);
-    Tag const SourceApplicatorManufacturer(0x300a, 0x0298);
-    Tag const SourceApplicatorWallNominalThickness(0x300a, 0x029c);
-    Tag const SourceApplicatorWallNominalTransmission(0x300a, 0x029e);
-    Tag const SourceApplicatorStepSize(0x300a, 0x02a0);
-    Tag const TransferTubeNumber(0x300a, 0x02a2);
-    Tag const TransferTubeLength(0x300a, 0x02a4);
-    Tag const ChannelShieldSequence(0x300a, 0x02b0);
-    Tag const ChannelShieldNumber(0x300a, 0x02b2);
-    Tag const ChannelShieldID(0x300a, 0x02b3);
-    Tag const ChannelShieldName(0x300a, 0x02b4);
-    Tag const ChannelShieldNominalThickness(0x300a, 0x02b8);
-    Tag const ChannelShieldNominalTransmission(0x300a, 0x02ba);
-    Tag const FinalCumulativeTimeWeight(0x300a, 0x02c8);
-    Tag const BrachyControlPointSequence(0x300a, 0x02d0);
-    Tag const ControlPointRelativePosition(0x300a, 0x02d2);
-    Tag const ControlPoint3DPosition(0x300a, 0x02d4);
-    Tag const CumulativeTimeWeight(0x300a, 0x02d6);
-    Tag const CompensatorDivergence(0x300a, 0x02e0);
-    Tag const CompensatorMountingPosition(0x300a, 0x02e1);
-    Tag const SourceToCompensatorDistance(0x300a, 0x02e2);
-    Tag const TotalCompensatorTrayWaterEquivalentThickness(0x300a, 0x02e3);
-    Tag const IsocenterToCompensatorTrayDistance(0x300a, 0x02e4);
-    Tag const CompensatorColumnOffset(0x300a, 0x02e5);
-    Tag const IsocenterToCompensatorDistances(0x300a, 0x02e6);
-    Tag const CompensatorRelativeStoppingPowerRatio(0x300a, 0x02e7);
-    Tag const CompensatorMillingToolDiameter(0x300a, 0x02e8);
-    Tag const IonRangeCompensatorSequence(0x300a, 0x02ea);
-    Tag const CompensatorDescription(0x300a, 0x02eb);
-    Tag const RadiationMassNumber(0x300a, 0x0302);
-    Tag const RadiationAtomicNumber(0x300a, 0x0304);
-    Tag const RadiationChargeState(0x300a, 0x0306);
-    Tag const ScanMode(0x300a, 0x0308);
-    Tag const VirtualSourceAxisDistances(0x300a, 0x030a);
-    Tag const SnoutSequence(0x300a, 0x030c);
-    Tag const SnoutPosition(0x300a, 0x030d);
-    Tag const SnoutID(0x300a, 0x030f);
-    Tag const NumberOfRangeShifters(0x300a, 0x0312);
-    Tag const RangeShifterSequence(0x300a, 0x0314);
-    Tag const RangeShifterNumber(0x300a, 0x0316);
-    Tag const RangeShifterID(0x300a, 0x0318);
-    Tag const RangeShifterType(0x300a, 0x0320);
-    Tag const RangeShifterDescription(0x300a, 0x0322);
-    Tag const NumberOfLateralSpreadingDevices(0x300a, 0x0330);
-    Tag const LateralSpreadingDeviceSequence(0x300a, 0x0332);
-    Tag const LateralSpreadingDeviceNumber(0x300a, 0x0334);
-    Tag const LateralSpreadingDeviceID(0x300a, 0x0336);
-    Tag const LateralSpreadingDeviceType(0x300a, 0x0338);
-    Tag const LateralSpreadingDeviceDescription(0x300a, 0x033a);
-    Tag const LateralSpreadingDeviceWaterEquivalentThickness(0x300a, 0x033c);
-    Tag const NumberOfRangeModulators(0x300a, 0x0340);
-    Tag const RangeModulatorSequence(0x300a, 0x0342);
-    Tag const RangeModulatorNumber(0x300a, 0x0344);
-    Tag const RangeModulatorID(0x300a, 0x0346);
-    Tag const RangeModulatorType(0x300a, 0x0348);
-    Tag const RangeModulatorDescription(0x300a, 0x034a);
-    Tag const BeamCurrentModulationID(0x300a, 0x034c);
-    Tag const PatientSupportType(0x300a, 0x0350);
-    Tag const PatientSupportID(0x300a, 0x0352);
-    Tag const PatientSupportAccessoryCode(0x300a, 0x0354);
-    Tag const FixationLightAzimuthalAngle(0x300a, 0x0356);
-    Tag const FixationLightPolarAngle(0x300a, 0x0358);
-    Tag const MetersetRate(0x300a, 0x035a);
-    Tag const RangeShifterSettingsSequence(0x300a, 0x0360);
-    Tag const RangeShifterSetting(0x300a, 0x0362);
-    Tag const IsocenterToRangeShifterDistance(0x300a, 0x0364);
-    Tag const RangeShifterWaterEquivalentThickness(0x300a, 0x0366);
-    Tag const LateralSpreadingDeviceSettingsSequence(0x300a, 0x0370);
-    Tag const LateralSpreadingDeviceSetting(0x300a, 0x0372);
-    Tag const IsocenterToLateralSpreadingDeviceDistance(0x300a, 0x0374);
-    Tag const RangeModulatorSettingsSequence(0x300a, 0x0380);
-    Tag const RangeModulatorGatingStartValue(0x300a, 0x0382);
-    Tag const RangeModulatorGatingStopValue(0x300a, 0x0384);
-    Tag const RangeModulatorGatingStartWaterEquivalentThickness(0x300a, 0x0386);
-    Tag const RangeModulatorGatingStopWaterEquivalentThickness(0x300a, 0x0388);
-    Tag const IsocenterToRangeModulatorDistance(0x300a, 0x038a);
-    Tag const ScanSpotTuneID(0x300a, 0x0390);
-    Tag const NumberOfScanSpotPositions(0x300a, 0x0392);
-    Tag const ScanSpotPositionMap(0x300a, 0x0394);
-    Tag const ScanSpotMetersetWeights(0x300a, 0x0396);
-    Tag const ScanningSpotSize(0x300a, 0x0398);
-    Tag const NumberOfPaintings(0x300a, 0x039a);
-    Tag const IonToleranceTableSequence(0x300a, 0x03a0);
-    Tag const IonBeamSequence(0x300a, 0x03a2);
-    Tag const IonBeamLimitingDeviceSequence(0x300a, 0x03a4);
-    Tag const IonBlockSequence(0x300a, 0x03a6);
-    Tag const IonControlPointSequence(0x300a, 0x03a8);
-    Tag const IonWedgeSequence(0x300a, 0x03aa);
-    Tag const IonWedgePositionSequence(0x300a, 0x03ac);
-    Tag const ReferencedSetupImageSequence(0x300a, 0x0401);
-    Tag const SetupImageComment(0x300a, 0x0402);
-    Tag const MotionSynchronizationSequence(0x300a, 0x0410);
-    Tag const ControlPointOrientation(0x300a, 0x0412);
-    Tag const GeneralAccessorySequence(0x300a, 0x0420);
-    Tag const GeneralAccessoryID(0x300a, 0x0421);
-    Tag const GeneralAccessoryDescription(0x300a, 0x0422);
-    Tag const GeneralAccessoryType(0x300a, 0x0423);
-    Tag const GeneralAccessoryNumber(0x300a, 0x0424);
-    Tag const SourceToGeneralAccessoryDistance(0x300a, 0x0425);
-    Tag const ApplicatorGeometrySequence(0x300a, 0x0431);
-    Tag const ApplicatorApertureShape(0x300a, 0x0432);
-    Tag const ApplicatorOpening(0x300a, 0x0433);
-    Tag const ApplicatorOpeningX(0x300a, 0x0434);
-    Tag const ApplicatorOpeningY(0x300a, 0x0435);
-    Tag const SourceToApplicatorMountingPositionDistance(0x300a, 0x0436);
-    Tag const NumberOfBlockSlabItems(0x300a, 0x0440);
-    Tag const BlockSlabSequence(0x300a, 0x0441);
-    Tag const BlockSlabThickness(0x300a, 0x0442);
-    Tag const BlockSlabNumber(0x300a, 0x0443);
-    Tag const DeviceMotionControlSequence(0x300a, 0x0450);
-    Tag const DeviceMotionExecutionMode(0x300a, 0x0451);
-    Tag const DeviceMotionObservationMode(0x300a, 0x0452);
-    Tag const DeviceMotionParameterCodeSequence(0x300a, 0x0453);
-    Tag const ReferencedRTPlanSequence(0x300c, 0x0002);
-    Tag const ReferencedBeamSequence(0x300c, 0x0004);
-    Tag const ReferencedBeamNumber(0x300c, 0x0006);
-    Tag const ReferencedReferenceImageNumber(0x300c, 0x0007);
-    Tag const StartCumulativeMetersetWeight(0x300c, 0x0008);
-    Tag const EndCumulativeMetersetWeight(0x300c, 0x0009);
-    Tag const ReferencedBrachyApplicationSetupSequence(0x300c, 0x000a);
-    Tag const ReferencedBrachyApplicationSetupNumber(0x300c, 0x000c);
-    Tag const ReferencedSourceNumber(0x300c, 0x000e);
-    Tag const ReferencedFractionGroupSequence(0x300c, 0x0020);
-    Tag const ReferencedFractionGroupNumber(0x300c, 0x0022);
-    Tag const ReferencedVerificationImageSequence(0x300c, 0x0040);
-    Tag const ReferencedReferenceImageSequence(0x300c, 0x0042);
-    Tag const ReferencedDoseReferenceSequence(0x300c, 0x0050);
-    Tag const ReferencedDoseReferenceNumber(0x300c, 0x0051);
-    Tag const BrachyReferencedDoseReferenceSequence(0x300c, 0x0055);
-    Tag const ReferencedStructureSetSequence(0x300c, 0x0060);
-    Tag const ReferencedPatientSetupNumber(0x300c, 0x006a);
-    Tag const ReferencedDoseSequence(0x300c, 0x0080);
-    Tag const ReferencedToleranceTableNumber(0x300c, 0x00a0);
-    Tag const ReferencedBolusSequence(0x300c, 0x00b0);
-    Tag const ReferencedWedgeNumber(0x300c, 0x00c0);
-    Tag const ReferencedCompensatorNumber(0x300c, 0x00d0);
-    Tag const ReferencedBlockNumber(0x300c, 0x00e0);
-    Tag const ReferencedControlPointIndex(0x300c, 0x00f0);
-    Tag const ReferencedControlPointSequence(0x300c, 0x00f2);
-    Tag const ReferencedStartControlPointIndex(0x300c, 0x00f4);
-    Tag const ReferencedStopControlPointIndex(0x300c, 0x00f6);
-    Tag const ReferencedRangeShifterNumber(0x300c, 0x0100);
-    Tag const ReferencedLateralSpreadingDeviceNumber(0x300c, 0x0102);
-    Tag const ReferencedRangeModulatorNumber(0x300c, 0x0104);
-    Tag const ApprovalStatus(0x300e, 0x0002);
-    Tag const ReviewDate(0x300e, 0x0004);
-    Tag const ReviewTime(0x300e, 0x0005);
-    Tag const ReviewerName(0x300e, 0x0008);
-    Tag const Arbitrary(0x4000, 0x0010);
-    Tag const TextComments(0x4000, 0x4000);
-    Tag const ResultsID(0x4008, 0x0040);
-    Tag const ResultsIDIssuer(0x4008, 0x0042);
-    Tag const ReferencedInterpretationSequence(0x4008, 0x0050);
-    Tag const ReportProductionStatusTrial(0x4008, 0x00ff);
-    Tag const InterpretationRecordedDate(0x4008, 0x0100);
-    Tag const InterpretationRecordedTime(0x4008, 0x0101);
-    Tag const InterpretationRecorder(0x4008, 0x0102);
-    Tag const ReferenceToRecordedSound(0x4008, 0x0103);
-    Tag const InterpretationTranscriptionDate(0x4008, 0x0108);
-    Tag const InterpretationTranscriptionTime(0x4008, 0x0109);
-    Tag const InterpretationTranscriber(0x4008, 0x010a);
-    Tag const InterpretationText(0x4008, 0x010b);
-    Tag const InterpretationAuthor(0x4008, 0x010c);
-    Tag const InterpretationApproverSequence(0x4008, 0x0111);
-    Tag const InterpretationApprovalDate(0x4008, 0x0112);
-    Tag const InterpretationApprovalTime(0x4008, 0x0113);
-    Tag const PhysicianApprovingInterpretation(0x4008, 0x0114);
-    Tag const InterpretationDiagnosisDescription(0x4008, 0x0115);
-    Tag const InterpretationDiagnosisCodeSequence(0x4008, 0x0117);
-    Tag const ResultsDistributionListSequence(0x4008, 0x0118);
-    Tag const DistributionName(0x4008, 0x0119);
-    Tag const DistributionAddress(0x4008, 0x011a);
-    Tag const InterpretationID(0x4008, 0x0200);
-    Tag const InterpretationIDIssuer(0x4008, 0x0202);
-    Tag const InterpretationTypeID(0x4008, 0x0210);
-    Tag const InterpretationStatusID(0x4008, 0x0212);
-    Tag const Impressions(0x4008, 0x0300);
-    Tag const ResultsComments(0x4008, 0x4000);
-    Tag const LowEnergyDetectors(0x4010, 0x0001);
-    Tag const HighEnergyDetectors(0x4010, 0x0002);
-    Tag const DetectorGeometrySequence(0x4010, 0x0004);
-    Tag const ThreatROIVoxelSequence(0x4010, 0x1001);
-    Tag const ThreatROIBase(0x4010, 0x1004);
-    Tag const ThreatROIExtents(0x4010, 0x1005);
-    Tag const ThreatROIBitmap(0x4010, 0x1006);
-    Tag const RouteSegmentID(0x4010, 0x1007);
-    Tag const GantryType(0x4010, 0x1008);
-    Tag const OOIOwnerType(0x4010, 0x1009);
-    Tag const RouteSegmentSequence(0x4010, 0x100a);
-    Tag const PotentialThreatObjectID(0x4010, 0x1010);
-    Tag const ThreatSequence(0x4010, 0x1011);
-    Tag const ThreatCategory(0x4010, 0x1012);
-    Tag const ThreatCategoryDescription(0x4010, 0x1013);
-    Tag const ATDAbilityAssessment(0x4010, 0x1014);
-    Tag const ATDAssessmentFlag(0x4010, 0x1015);
-    Tag const ATDAssessmentProbability(0x4010, 0x1016);
-    Tag const Mass(0x4010, 0x1017);
-    Tag const Density(0x4010, 0x1018);
-    Tag const ZEffective(0x4010, 0x1019);
-    Tag const BoardingPassID(0x4010, 0x101a);
-    Tag const CenterOfMass(0x4010, 0x101b);
-    Tag const CenterOfPTO(0x4010, 0x101c);
-    Tag const BoundingPolygon(0x4010, 0x101d);
-    Tag const RouteSegmentStartLocationID(0x4010, 0x101e);
-    Tag const RouteSegmentEndLocationID(0x4010, 0x101f);
-    Tag const RouteSegmentLocationIDType(0x4010, 0x1020);
-    Tag const AbortReason(0x4010, 0x1021);
-    Tag const VolumeOfPTO(0x4010, 0x1023);
-    Tag const AbortFlag(0x4010, 0x1024);
-    Tag const RouteSegmentStartTime(0x4010, 0x1025);
-    Tag const RouteSegmentEndTime(0x4010, 0x1026);
-    Tag const TDRType(0x4010, 0x1027);
-    Tag const InternationalRouteSegment(0x4010, 0x1028);
-    Tag const ThreatDetectionAlgorithmandVersion(0x4010, 0x1029);
-    Tag const AssignedLocation(0x4010, 0x102a);
-    Tag const AlarmDecisionTime(0x4010, 0x102b);
-    Tag const AlarmDecision(0x4010, 0x1031);
-    Tag const NumberOfTotalObjects(0x4010, 0x1033);
-    Tag const NumberOfAlarmObjects(0x4010, 0x1034);
-    Tag const PTORepresentationSequence(0x4010, 0x1037);
-    Tag const ATDAssessmentSequence(0x4010, 0x1038);
-    Tag const TIPType(0x4010, 0x1039);
-    Tag const DICOSVersion(0x4010, 0x103a);
-    Tag const OOIOwnerCreationTime(0x4010, 0x1041);
-    Tag const OOIType(0x4010, 0x1042);
-    Tag const OOISize(0x4010, 0x1043);
-    Tag const AcquisitionStatus(0x4010, 0x1044);
-    Tag const BasisMaterialsCodeSequence(0x4010, 0x1045);
-    Tag const PhantomType(0x4010, 0x1046);
-    Tag const OOIOwnerSequence(0x4010, 0x1047);
-    Tag const ScanType(0x4010, 0x1048);
-    Tag const ItineraryID(0x4010, 0x1051);
-    Tag const ItineraryIDType(0x4010, 0x1052);
-    Tag const ItineraryIDAssigningAuthority(0x4010, 0x1053);
-    Tag const RouteID(0x4010, 0x1054);
-    Tag const RouteIDAssigningAuthority(0x4010, 0x1055);
-    Tag const InboundArrivalType(0x4010, 0x1056);
-    Tag const CarrierID(0x4010, 0x1058);
-    Tag const CarrierIDAssigningAuthority(0x4010, 0x1059);
-    Tag const SourceOrientation(0x4010, 0x1060);
-    Tag const SourcePosition(0x4010, 0x1061);
-    Tag const BeltHeight(0x4010, 0x1062);
-    Tag const AlgorithmRoutingCodeSequence(0x4010, 0x1064);
-    Tag const TransportClassification(0x4010, 0x1067);
-    Tag const OOITypeDescriptor(0x4010, 0x1068);
-    Tag const TotalProcessingTime(0x4010, 0x1069);
-    Tag const DetectorCalibrationData(0x4010, 0x106c);
-    Tag const AdditionalScreeningPerformed(0x4010, 0x106d);
-    Tag const AdditionalInspectionSelectionCriteria(0x4010, 0x106e);
-    Tag const AdditionalInspectionMethodSequence(0x4010, 0x106f);
-    Tag const AITDeviceType(0x4010, 0x1070);
-    Tag const QRMeasurementsSequence(0x4010, 0x1071);
-    Tag const TargetMaterialSequence(0x4010, 0x1072);
-    Tag const SNRThreshold(0x4010, 0x1073);
-    Tag const ImageScaleRepresentation(0x4010, 0x1075);
-    Tag const ReferencedPTOSequence(0x4010, 0x1076);
-    Tag const ReferencedTDRInstanceSequence(0x4010, 0x1077);
-    Tag const PTOLocationDescription(0x4010, 0x1078);
-    Tag const AnomalyLocatorIndicatorSequence(0x4010, 0x1079);
-    Tag const AnomalyLocatorIndicator(0x4010, 0x107a);
-    Tag const PTORegionSequence(0x4010, 0x107b);
-    Tag const InspectionSelectionCriteria(0x4010, 0x107c);
-    Tag const SecondaryInspectionMethodSequence(0x4010, 0x107d);
-    Tag const PRCSToRCSOrientation(0x4010, 0x107e);
-    Tag const MACParametersSequence(0x4ffe, 0x0001);
-    Tag const SharedFunctionalGroupsSequence(0x5200, 0x9229);
-    Tag const PerFrameFunctionalGroupsSequence(0x5200, 0x9230);
-    Tag const WaveformSequence(0x5400, 0x0100);
-    Tag const ChannelMinimumValue(0x5400, 0x0110);
-    Tag const ChannelMaximumValue(0x5400, 0x0112);
-    Tag const WaveformBitsAllocated(0x5400, 0x1004);
-    Tag const WaveformSampleInterpretation(0x5400, 0x1006);
-    Tag const WaveformPaddingValue(0x5400, 0x100a);
-    Tag const WaveformData(0x5400, 0x1010);
-    Tag const FirstOrderPhaseCorrectionAngle(0x5600, 0x0010);
-    Tag const SpectroscopyData(0x5600, 0x0020);
-    Tag const FloatPixelData(0x7fe0, 0x0008);
-    Tag const DoubleFloatPixelData(0x7fe0, 0x0009);
-    Tag const PixelData(0x7fe0, 0x0010);
-    Tag const CoefficientsSDVN(0x7fe0, 0x0020);
-    Tag const CoefficientsSDHN(0x7fe0, 0x0030);
-    Tag const CoefficientsSDDN(0x7fe0, 0x0040);
-    Tag const DigitalSignaturesSequence(0xfffa, 0xfffa);
-    Tag const DataSetTrailingPadding(0xfffc, 0xfffc);
-    Tag const Item(0xfffe, 0xe000);
-    Tag const ItemDelimitationItem(0xfffe, 0xe00d);
-    Tag const SequenceDelimitationItem(0xfffe, 0xe0dd);
+Tag const CommandGroupLength(0x0000, 0x0000);
+Tag const AffectedSOPClassUID(0x0000, 0x0002);
+Tag const RequestedSOPClassUID(0x0000, 0x0003);
+Tag const CommandField(0x0000, 0x0100);
+Tag const MessageID(0x0000, 0x0110);
+Tag const MessageIDBeingRespondedTo(0x0000, 0x0120);
+Tag const MoveDestination(0x0000, 0x0600);
+Tag const Priority(0x0000, 0x0700);
+Tag const CommandDataSetType(0x0000, 0x0800);
+Tag const Status(0x0000, 0x0900);
+Tag const OffendingElement(0x0000, 0x0901);
+Tag const ErrorComment(0x0000, 0x0902);
+Tag const ErrorID(0x0000, 0x0903);
+Tag const AffectedSOPInstanceUID(0x0000, 0x1000);
+Tag const RequestedSOPInstanceUID(0x0000, 0x1001);
+Tag const EventTypeID(0x0000, 0x1002);
+Tag const AttributeIdentifierList(0x0000, 0x1005);
+Tag const ActionTypeID(0x0000, 0x1008);
+Tag const NumberOfRemainingSuboperations(0x0000, 0x1020);
+Tag const NumberOfCompletedSuboperations(0x0000, 0x1021);
+Tag const NumberOfFailedSuboperations(0x0000, 0x1022);
+Tag const NumberOfWarningSuboperations(0x0000, 0x1023);
+Tag const MoveOriginatorApplicationEntityTitle(0x0000, 0x1030);
+Tag const MoveOriginatorMessageID(0x0000, 0x1031);
+Tag const FileMetaInformationGroupLength(0x0002, 0x0000);
+Tag const FileMetaInformationVersion(0x0002, 0x0001);
+Tag const MediaStorageSOPClassUID(0x0002, 0x0002);
+Tag const MediaStorageSOPInstanceUID(0x0002, 0x0003);
+Tag const TransferSyntaxUID(0x0002, 0x0010);
+Tag const ImplementationClassUID(0x0002, 0x0012);
+Tag const ImplementationVersionName(0x0002, 0x0013);
+Tag const SourceApplicationEntityTitle(0x0002, 0x0016);
+Tag const SendingApplicationEntityTitle(0x0002, 0x0017);
+Tag const ReceivingApplicationEntityTitle(0x0002, 0x0018);
+Tag const PrivateInformationCreatorUID(0x0002, 0x0100);
+Tag const PrivateInformation(0x0002, 0x0102);
+Tag const FileSetID(0x0004, 0x1130);
+Tag const FileSetDescriptorFileID(0x0004, 0x1141);
+Tag const SpecificCharacterSetOfFileSetDescriptorFile(0x0004, 0x1142);
+Tag const OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity(0x0004, 0x1200);
+Tag const OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity(0x0004, 0x1202);
+Tag const FileSetConsistencyFlag(0x0004, 0x1212);
+Tag const DirectoryRecordSequence(0x0004, 0x1220);
+Tag const OffsetOfTheNextDirectoryRecord(0x0004, 0x1400);
+Tag const RecordInUseFlag(0x0004, 0x1410);
+Tag const OffsetOfReferencedLowerLevelDirectoryEntity(0x0004, 0x1420);
+Tag const DirectoryRecordType(0x0004, 0x1430);
+Tag const PrivateRecordUID(0x0004, 0x1432);
+Tag const ReferencedFileID(0x0004, 0x1500);
+Tag const MRDRDirectoryRecordOffset(0x0004, 0x1504);
+Tag const ReferencedSOPClassUIDInFile(0x0004, 0x1510);
+Tag const ReferencedSOPInstanceUIDInFile(0x0004, 0x1511);
+Tag const ReferencedTransferSyntaxUIDInFile(0x0004, 0x1512);
+Tag const ReferencedRelatedGeneralSOPClassUIDInFile(0x0004, 0x151a);
+Tag const NumberOfReferences(0x0004, 0x1600);
+Tag const LengthToEnd(0x0008, 0x0001);
+Tag const SpecificCharacterSet(0x0008, 0x0005);
+Tag const LanguageCodeSequence(0x0008, 0x0006);
+Tag const ImageType(0x0008, 0x0008);
+Tag const RecognitionCode(0x0008, 0x0010);
+Tag const InstanceCreationDate(0x0008, 0x0012);
+Tag const InstanceCreationTime(0x0008, 0x0013);
+Tag const InstanceCreatorUID(0x0008, 0x0014);
+Tag const InstanceCoercionDateTime(0x0008, 0x0015);
+Tag const SOPClassUID(0x0008, 0x0016);
+Tag const SOPInstanceUID(0x0008, 0x0018);
+Tag const RelatedGeneralSOPClassUID(0x0008, 0x001a);
+Tag const OriginalSpecializedSOPClassUID(0x0008, 0x001b);
+Tag const StudyDate(0x0008, 0x0020);
+Tag const SeriesDate(0x0008, 0x0021);
+Tag const AcquisitionDate(0x0008, 0x0022);
+Tag const ContentDate(0x0008, 0x0023);
+Tag const OverlayDate(0x0008, 0x0024);
+Tag const CurveDate(0x0008, 0x0025);
+Tag const AcquisitionDateTime(0x0008, 0x002a);
+Tag const StudyTime(0x0008, 0x0030);
+Tag const SeriesTime(0x0008, 0x0031);
+Tag const AcquisitionTime(0x0008, 0x0032);
+Tag const ContentTime(0x0008, 0x0033);
+Tag const OverlayTime(0x0008, 0x0034);
+Tag const CurveTime(0x0008, 0x0035);
+Tag const DataSetType(0x0008, 0x0040);
+Tag const DataSetSubtype(0x0008, 0x0041);
+Tag const NuclearMedicineSeriesType(0x0008, 0x0042);
+Tag const AccessionNumber(0x0008, 0x0050);
+Tag const IssuerOfAccessionNumberSequence(0x0008, 0x0051);
+Tag const QueryRetrieveLevel(0x0008, 0x0052);
+Tag const QueryRetrieveView(0x0008, 0x0053);
+Tag const RetrieveAETitle(0x0008, 0x0054);
+Tag const InstanceAvailability(0x0008, 0x0056);
+Tag const FailedSOPInstanceUIDList(0x0008, 0x0058);
+Tag const Modality(0x0008, 0x0060);
+Tag const ModalitiesInStudy(0x0008, 0x0061);
+Tag const SOPClassesInStudy(0x0008, 0x0062);
+Tag const ConversionType(0x0008, 0x0064);
+Tag const PresentationIntentType(0x0008, 0x0068);
+Tag const Manufacturer(0x0008, 0x0070);
+Tag const InstitutionName(0x0008, 0x0080);
+Tag const InstitutionAddress(0x0008, 0x0081);
+Tag const InstitutionCodeSequence(0x0008, 0x0082);
+Tag const ReferringPhysicianName(0x0008, 0x0090);
+Tag const ReferringPhysicianAddress(0x0008, 0x0092);
+Tag const ReferringPhysicianTelephoneNumbers(0x0008, 0x0094);
+Tag const ReferringPhysicianIdentificationSequence(0x0008, 0x0096);
+Tag const ConsultingPhysicianName(0x0008, 0x009c);
+Tag const ConsultingPhysicianIdentificationSequence(0x0008, 0x009d);
+Tag const CodeValue(0x0008, 0x0100);
+Tag const ExtendedCodeValue(0x0008, 0x0101);
+Tag const CodingSchemeDesignator(0x0008, 0x0102);
+Tag const CodingSchemeVersion(0x0008, 0x0103);
+Tag const CodeMeaning(0x0008, 0x0104);
+Tag const MappingResource(0x0008, 0x0105);
+Tag const ContextGroupVersion(0x0008, 0x0106);
+Tag const ContextGroupLocalVersion(0x0008, 0x0107);
+Tag const ExtendedCodeMeaning(0x0008, 0x0108);
+Tag const ContextGroupExtensionFlag(0x0008, 0x010b);
+Tag const CodingSchemeUID(0x0008, 0x010c);
+Tag const ContextGroupExtensionCreatorUID(0x0008, 0x010d);
+Tag const ContextIdentifier(0x0008, 0x010f);
+Tag const CodingSchemeIdentificationSequence(0x0008, 0x0110);
+Tag const CodingSchemeRegistry(0x0008, 0x0112);
+Tag const CodingSchemeExternalID(0x0008, 0x0114);
+Tag const CodingSchemeName(0x0008, 0x0115);
+Tag const CodingSchemeResponsibleOrganization(0x0008, 0x0116);
+Tag const ContextUID(0x0008, 0x0117);
+Tag const MappingResourceUID(0x0008, 0x0118);
+Tag const LongCodeValue(0x0008, 0x0119);
+Tag const URNCodeValue(0x0008, 0x0120);
+Tag const EquivalentCodeSequence(0x0008, 0x0121);
+Tag const TimezoneOffsetFromUTC(0x0008, 0x0201);
+Tag const PrivateDataElementCharacteristicsSequence(0x0008, 0x0300);
+Tag const PrivateGroupReference(0x0008, 0x0301);
+Tag const PrivateCreatorReference(0x0008, 0x0302);
+Tag const BlockIdentifyingInformationStatus(0x0008, 0x0303);
+Tag const NonidentifyingPrivateElements(0x0008, 0x0304);
+Tag const IdentifyingPrivateElements(0x0008, 0x0306);
+Tag const DeidentificationActionSequence(0x0008, 0x0305);
+Tag const DeidentificationAction(0x0008, 0x0307);
+Tag const NetworkID(0x0008, 0x1000);
+Tag const StationName(0x0008, 0x1010);
+Tag const StudyDescription(0x0008, 0x1030);
+Tag const ProcedureCodeSequence(0x0008, 0x1032);
+Tag const SeriesDescription(0x0008, 0x103e);
+Tag const SeriesDescriptionCodeSequence(0x0008, 0x103f);
+Tag const InstitutionalDepartmentName(0x0008, 0x1040);
+Tag const PhysiciansOfRecord(0x0008, 0x1048);
+Tag const PhysiciansOfRecordIdentificationSequence(0x0008, 0x1049);
+Tag const PerformingPhysicianName(0x0008, 0x1050);
+Tag const PerformingPhysicianIdentificationSequence(0x0008, 0x1052);
+Tag const NameOfPhysiciansReadingStudy(0x0008, 0x1060);
+Tag const PhysiciansReadingStudyIdentificationSequence(0x0008, 0x1062);
+Tag const OperatorsName(0x0008, 0x1070);
+Tag const OperatorIdentificationSequence(0x0008, 0x1072);
+Tag const AdmittingDiagnosesDescription(0x0008, 0x1080);
+Tag const AdmittingDiagnosesCodeSequence(0x0008, 0x1084);
+Tag const ManufacturerModelName(0x0008, 0x1090);
+Tag const ReferencedResultsSequence(0x0008, 0x1100);
+Tag const ReferencedStudySequence(0x0008, 0x1110);
+Tag const ReferencedPerformedProcedureStepSequence(0x0008, 0x1111);
+Tag const ReferencedSeriesSequence(0x0008, 0x1115);
+Tag const ReferencedPatientSequence(0x0008, 0x1120);
+Tag const ReferencedVisitSequence(0x0008, 0x1125);
+Tag const ReferencedOverlaySequence(0x0008, 0x1130);
+Tag const ReferencedStereometricInstanceSequence(0x0008, 0x1134);
+Tag const ReferencedWaveformSequence(0x0008, 0x113a);
+Tag const ReferencedImageSequence(0x0008, 0x1140);
+Tag const ReferencedCurveSequence(0x0008, 0x1145);
+Tag const ReferencedInstanceSequence(0x0008, 0x114a);
+Tag const ReferencedRealWorldValueMappingInstanceSequence(0x0008, 0x114b);
+Tag const ReferencedSOPClassUID(0x0008, 0x1150);
+Tag const ReferencedSOPInstanceUID(0x0008, 0x1155);
+Tag const SOPClassesSupported(0x0008, 0x115a);
+Tag const ReferencedFrameNumber(0x0008, 0x1160);
+Tag const SimpleFrameList(0x0008, 0x1161);
+Tag const CalculatedFrameList(0x0008, 0x1162);
+Tag const TimeRange(0x0008, 0x1163);
+Tag const FrameExtractionSequence(0x0008, 0x1164);
+Tag const MultiFrameSourceSOPInstanceUID(0x0008, 0x1167);
+Tag const RetrieveURL(0x0008, 0x1190);
+Tag const TransactionUID(0x0008, 0x1195);
+Tag const WarningReason(0x0008, 0x1196);
+Tag const FailureReason(0x0008, 0x1197);
+Tag const FailedSOPSequence(0x0008, 0x1198);
+Tag const ReferencedSOPSequence(0x0008, 0x1199);
+Tag const StudiesContainingOtherReferencedInstancesSequence(0x0008, 0x1200);
+Tag const RelatedSeriesSequence(0x0008, 0x1250);
+Tag const LossyImageCompressionRetired(0x0008, 0x2110);
+Tag const DerivationDescription(0x0008, 0x2111);
+Tag const SourceImageSequence(0x0008, 0x2112);
+Tag const StageName(0x0008, 0x2120);
+Tag const StageNumber(0x0008, 0x2122);
+Tag const NumberOfStages(0x0008, 0x2124);
+Tag const ViewName(0x0008, 0x2127);
+Tag const ViewNumber(0x0008, 0x2128);
+Tag const NumberOfEventTimers(0x0008, 0x2129);
+Tag const NumberOfViewsInStage(0x0008, 0x212a);
+Tag const EventElapsedTimes(0x0008, 0x2130);
+Tag const EventTimerNames(0x0008, 0x2132);
+Tag const EventTimerSequence(0x0008, 0x2133);
+Tag const EventTimeOffset(0x0008, 0x2134);
+Tag const EventCodeSequence(0x0008, 0x2135);
+Tag const StartTrim(0x0008, 0x2142);
+Tag const StopTrim(0x0008, 0x2143);
+Tag const RecommendedDisplayFrameRate(0x0008, 0x2144);
+Tag const TransducerPosition(0x0008, 0x2200);
+Tag const TransducerOrientation(0x0008, 0x2204);
+Tag const AnatomicStructure(0x0008, 0x2208);
+Tag const AnatomicRegionSequence(0x0008, 0x2218);
+Tag const AnatomicRegionModifierSequence(0x0008, 0x2220);
+Tag const PrimaryAnatomicStructureSequence(0x0008, 0x2228);
+Tag const AnatomicStructureSpaceOrRegionSequence(0x0008, 0x2229);
+Tag const PrimaryAnatomicStructureModifierSequence(0x0008, 0x2230);
+Tag const TransducerPositionSequence(0x0008, 0x2240);
+Tag const TransducerPositionModifierSequence(0x0008, 0x2242);
+Tag const TransducerOrientationSequence(0x0008, 0x2244);
+Tag const TransducerOrientationModifierSequence(0x0008, 0x2246);
+Tag const AnatomicStructureSpaceOrRegionCodeSequenceTrial(0x0008, 0x2251);
+Tag const AnatomicPortalOfEntranceCodeSequenceTrial(0x0008, 0x2253);
+Tag const AnatomicApproachDirectionCodeSequenceTrial(0x0008, 0x2255);
+Tag const AnatomicPerspectiveDescriptionTrial(0x0008, 0x2256);
+Tag const AnatomicPerspectiveCodeSequenceTrial(0x0008, 0x2257);
+Tag const AnatomicLocationOfExaminingInstrumentDescriptionTrial(0x0008, 0x2258);
+Tag const AnatomicLocationOfExaminingInstrumentCodeSequenceTrial(0x0008, 0x2259);
+Tag const AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial(0x0008, 0x225a);
+Tag const OnAxisBackgroundAnatomicStructureCodeSequenceTrial(0x0008, 0x225c);
+Tag const AlternateRepresentationSequence(0x0008, 0x3001);
+Tag const IrradiationEventUID(0x0008, 0x3010);
+Tag const SourceIrradiationEventSequence(0x0008, 0x3011);
+Tag const RadiopharmaceuticalAdministrationEventUID(0x0008, 0x3012);
+Tag const IdentifyingComments(0x0008, 0x4000);
+Tag const FrameType(0x0008, 0x9007);
+Tag const ReferencedImageEvidenceSequence(0x0008, 0x9092);
+Tag const ReferencedRawDataSequence(0x0008, 0x9121);
+Tag const CreatorVersionUID(0x0008, 0x9123);
+Tag const DerivationImageSequence(0x0008, 0x9124);
+Tag const SourceImageEvidenceSequence(0x0008, 0x9154);
+Tag const PixelPresentation(0x0008, 0x9205);
+Tag const VolumetricProperties(0x0008, 0x9206);
+Tag const VolumeBasedCalculationTechnique(0x0008, 0x9207);
+Tag const ComplexImageComponent(0x0008, 0x9208);
+Tag const AcquisitionContrast(0x0008, 0x9209);
+Tag const DerivationCodeSequence(0x0008, 0x9215);
+Tag const ReferencedPresentationStateSequence(0x0008, 0x9237);
+Tag const ReferencedOtherPlaneSequence(0x0008, 0x9410);
+Tag const FrameDisplaySequence(0x0008, 0x9458);
+Tag const RecommendedDisplayFrameRateInFloat(0x0008, 0x9459);
+Tag const SkipFrameRangeFlag(0x0008, 0x9460);
+Tag const PatientName(0x0010, 0x0010);
+Tag const PatientID(0x0010, 0x0020);
+Tag const IssuerOfPatientID(0x0010, 0x0021);
+Tag const TypeOfPatientID(0x0010, 0x0022);
+Tag const IssuerOfPatientIDQualifiersSequence(0x0010, 0x0024);
+Tag const PatientBirthDate(0x0010, 0x0030);
+Tag const PatientBirthTime(0x0010, 0x0032);
+Tag const PatientSex(0x0010, 0x0040);
+Tag const PatientInsurancePlanCodeSequence(0x0010, 0x0050);
+Tag const PatientPrimaryLanguageCodeSequence(0x0010, 0x0101);
+Tag const PatientPrimaryLanguageModifierCodeSequence(0x0010, 0x0102);
+Tag const QualityControlSubject(0x0010, 0x0200);
+Tag const QualityControlSubjectTypeCodeSequence(0x0010, 0x0201);
+Tag const OtherPatientIDs(0x0010, 0x1000);
+Tag const OtherPatientNames(0x0010, 0x1001);
+Tag const OtherPatientIDsSequence(0x0010, 0x1002);
+Tag const PatientBirthName(0x0010, 0x1005);
+Tag const PatientAge(0x0010, 0x1010);
+Tag const PatientSize(0x0010, 0x1020);
+Tag const PatientSizeCodeSequence(0x0010, 0x1021);
+Tag const PatientWeight(0x0010, 0x1030);
+Tag const PatientAddress(0x0010, 0x1040);
+Tag const InsurancePlanIdentification(0x0010, 0x1050);
+Tag const PatientMotherBirthName(0x0010, 0x1060);
+Tag const MilitaryRank(0x0010, 0x1080);
+Tag const BranchOfService(0x0010, 0x1081);
+Tag const MedicalRecordLocator(0x0010, 0x1090);
+Tag const ReferencedPatientPhotoSequence(0x0010, 0x1100);
+Tag const MedicalAlerts(0x0010, 0x2000);
+Tag const Allergies(0x0010, 0x2110);
+Tag const CountryOfResidence(0x0010, 0x2150);
+Tag const RegionOfResidence(0x0010, 0x2152);
+Tag const PatientTelephoneNumbers(0x0010, 0x2154);
+Tag const PatientTelecomInformation(0x0010, 0x2155);
+Tag const EthnicGroup(0x0010, 0x2160);
+Tag const Occupation(0x0010, 0x2180);
+Tag const SmokingStatus(0x0010, 0x21a0);
+Tag const AdditionalPatientHistory(0x0010, 0x21b0);
+Tag const PregnancyStatus(0x0010, 0x21c0);
+Tag const LastMenstrualDate(0x0010, 0x21d0);
+Tag const PatientReligiousPreference(0x0010, 0x21f0);
+Tag const PatientSpeciesDescription(0x0010, 0x2201);
+Tag const PatientSpeciesCodeSequence(0x0010, 0x2202);
+Tag const PatientSexNeutered(0x0010, 0x2203);
+Tag const AnatomicalOrientationType(0x0010, 0x2210);
+Tag const PatientBreedDescription(0x0010, 0x2292);
+Tag const PatientBreedCodeSequence(0x0010, 0x2293);
+Tag const BreedRegistrationSequence(0x0010, 0x2294);
+Tag const BreedRegistrationNumber(0x0010, 0x2295);
+Tag const BreedRegistryCodeSequence(0x0010, 0x2296);
+Tag const ResponsiblePerson(0x0010, 0x2297);
+Tag const ResponsiblePersonRole(0x0010, 0x2298);
+Tag const ResponsibleOrganization(0x0010, 0x2299);
+Tag const PatientComments(0x0010, 0x4000);
+Tag const ExaminedBodyThickness(0x0010, 0x9431);
+Tag const ClinicalTrialSponsorName(0x0012, 0x0010);
+Tag const ClinicalTrialProtocolID(0x0012, 0x0020);
+Tag const ClinicalTrialProtocolName(0x0012, 0x0021);
+Tag const ClinicalTrialSiteID(0x0012, 0x0030);
+Tag const ClinicalTrialSiteName(0x0012, 0x0031);
+Tag const ClinicalTrialSubjectID(0x0012, 0x0040);
+Tag const ClinicalTrialSubjectReadingID(0x0012, 0x0042);
+Tag const ClinicalTrialTimePointID(0x0012, 0x0050);
+Tag const ClinicalTrialTimePointDescription(0x0012, 0x0051);
+Tag const ClinicalTrialCoordinatingCenterName(0x0012, 0x0060);
+Tag const PatientIdentityRemoved(0x0012, 0x0062);
+Tag const DeidentificationMethod(0x0012, 0x0063);
+Tag const DeidentificationMethodCodeSequence(0x0012, 0x0064);
+Tag const ClinicalTrialSeriesID(0x0012, 0x0071);
+Tag const ClinicalTrialSeriesDescription(0x0012, 0x0072);
+Tag const ClinicalTrialProtocolEthicsCommitteeName(0x0012, 0x0081);
+Tag const ClinicalTrialProtocolEthicsCommitteeApprovalNumber(0x0012, 0x0082);
+Tag const ConsentForClinicalTrialUseSequence(0x0012, 0x0083);
+Tag const DistributionType(0x0012, 0x0084);
+Tag const ConsentForDistributionFlag(0x0012, 0x0085);
+Tag const CADFileFormat(0x0014, 0x0023);
+Tag const ComponentReferenceSystem(0x0014, 0x0024);
+Tag const ComponentManufacturingProcedure(0x0014, 0x0025);
+Tag const ComponentManufacturer(0x0014, 0x0028);
+Tag const MaterialThickness(0x0014, 0x0030);
+Tag const MaterialPipeDiameter(0x0014, 0x0032);
+Tag const MaterialIsolationDiameter(0x0014, 0x0034);
+Tag const MaterialGrade(0x0014, 0x0042);
+Tag const MaterialPropertiesDescription(0x0014, 0x0044);
+Tag const MaterialPropertiesFileFormatRetired(0x0014, 0x0045);
+Tag const MaterialNotes(0x0014, 0x0046);
+Tag const ComponentShape(0x0014, 0x0050);
+Tag const CurvatureType(0x0014, 0x0052);
+Tag const OuterDiameter(0x0014, 0x0054);
+Tag const InnerDiameter(0x0014, 0x0056);
+Tag const ActualEnvironmentalConditions(0x0014, 0x1010);
+Tag const ExpiryDate(0x0014, 0x1020);
+Tag const EnvironmentalConditions(0x0014, 0x1040);
+Tag const EvaluatorSequence(0x0014, 0x2002);
+Tag const EvaluatorNumber(0x0014, 0x2004);
+Tag const EvaluatorName(0x0014, 0x2006);
+Tag const EvaluationAttempt(0x0014, 0x2008);
+Tag const IndicationSequence(0x0014, 0x2012);
+Tag const IndicationNumber(0x0014, 0x2014);
+Tag const IndicationLabel(0x0014, 0x2016);
+Tag const IndicationDescription(0x0014, 0x2018);
+Tag const IndicationType(0x0014, 0x201a);
+Tag const IndicationDisposition(0x0014, 0x201c);
+Tag const IndicationROISequence(0x0014, 0x201e);
+Tag const IndicationPhysicalPropertySequence(0x0014, 0x2030);
+Tag const PropertyLabel(0x0014, 0x2032);
+Tag const CoordinateSystemNumberOfAxes(0x0014, 0x2202);
+Tag const CoordinateSystemAxesSequence(0x0014, 0x2204);
+Tag const CoordinateSystemAxisDescription(0x0014, 0x2206);
+Tag const CoordinateSystemDataSetMapping(0x0014, 0x2208);
+Tag const CoordinateSystemAxisNumber(0x0014, 0x220a);
+Tag const CoordinateSystemAxisType(0x0014, 0x220c);
+Tag const CoordinateSystemAxisUnits(0x0014, 0x220e);
+Tag const CoordinateSystemAxisValues(0x0014, 0x2210);
+Tag const CoordinateSystemTransformSequence(0x0014, 0x2220);
+Tag const TransformDescription(0x0014, 0x2222);
+Tag const TransformNumberOfAxes(0x0014, 0x2224);
+Tag const TransformOrderOfAxes(0x0014, 0x2226);
+Tag const TransformedAxisUnits(0x0014, 0x2228);
+Tag const CoordinateSystemTransformRotationAndScaleMatrix(0x0014, 0x222a);
+Tag const CoordinateSystemTransformTranslationMatrix(0x0014, 0x222c);
+Tag const InternalDetectorFrameTime(0x0014, 0x3011);
+Tag const NumberOfFramesIntegrated(0x0014, 0x3012);
+Tag const DetectorTemperatureSequence(0x0014, 0x3020);
+Tag const SensorName(0x0014, 0x3022);
+Tag const HorizontalOffsetOfSensor(0x0014, 0x3024);
+Tag const VerticalOffsetOfSensor(0x0014, 0x3026);
+Tag const SensorTemperature(0x0014, 0x3028);
+Tag const DarkCurrentSequence(0x0014, 0x3040);
+Tag const DarkCurrentCounts(0x0014, 0x3050);
+Tag const GainCorrectionReferenceSequence(0x0014, 0x3060);
+Tag const AirCounts(0x0014, 0x3070);
+Tag const KVUsedInGainCalibration(0x0014, 0x3071);
+Tag const MAUsedInGainCalibration(0x0014, 0x3072);
+Tag const NumberOfFramesUsedForIntegration(0x0014, 0x3073);
+Tag const FilterMaterialUsedInGainCalibration(0x0014, 0x3074);
+Tag const FilterThicknessUsedInGainCalibration(0x0014, 0x3075);
+Tag const DateOfGainCalibration(0x0014, 0x3076);
+Tag const TimeOfGainCalibration(0x0014, 0x3077);
+Tag const BadPixelImage(0x0014, 0x3080);
+Tag const CalibrationNotes(0x0014, 0x3099);
+Tag const PulserEquipmentSequence(0x0014, 0x4002);
+Tag const PulserType(0x0014, 0x4004);
+Tag const PulserNotes(0x0014, 0x4006);
+Tag const ReceiverEquipmentSequence(0x0014, 0x4008);
+Tag const AmplifierType(0x0014, 0x400a);
+Tag const ReceiverNotes(0x0014, 0x400c);
+Tag const PreAmplifierEquipmentSequence(0x0014, 0x400e);
+Tag const PreAmplifierNotes(0x0014, 0x400f);
+Tag const TransmitTransducerSequence(0x0014, 0x4010);
+Tag const ReceiveTransducerSequence(0x0014, 0x4011);
+Tag const NumberOfElements(0x0014, 0x4012);
+Tag const ElementShape(0x0014, 0x4013);
+Tag const ElementDimensionA(0x0014, 0x4014);
+Tag const ElementDimensionB(0x0014, 0x4015);
+Tag const ElementPitchA(0x0014, 0x4016);
+Tag const MeasuredBeamDimensionA(0x0014, 0x4017);
+Tag const MeasuredBeamDimensionB(0x0014, 0x4018);
+Tag const LocationOfMeasuredBeamDiameter(0x0014, 0x4019);
+Tag const NominalFrequency(0x0014, 0x401a);
+Tag const MeasuredCenterFrequency(0x0014, 0x401b);
+Tag const MeasuredBandwidth(0x0014, 0x401c);
+Tag const ElementPitchB(0x0014, 0x401d);
+Tag const PulserSettingsSequence(0x0014, 0x4020);
+Tag const PulseWidth(0x0014, 0x4022);
+Tag const ExcitationFrequency(0x0014, 0x4024);
+Tag const ModulationType(0x0014, 0x4026);
+Tag const Damping(0x0014, 0x4028);
+Tag const ReceiverSettingsSequence(0x0014, 0x4030);
+Tag const AcquiredSoundpathLength(0x0014, 0x4031);
+Tag const AcquisitionCompressionType(0x0014, 0x4032);
+Tag const AcquisitionSampleSize(0x0014, 0x4033);
+Tag const RectifierSmoothing(0x0014, 0x4034);
+Tag const DACSequence(0x0014, 0x4035);
+Tag const DACType(0x0014, 0x4036);
+Tag const DACGainPoints(0x0014, 0x4038);
+Tag const DACTimePoints(0x0014, 0x403a);
+Tag const DACAmplitude(0x0014, 0x403c);
+Tag const PreAmplifierSettingsSequence(0x0014, 0x4040);
+Tag const TransmitTransducerSettingsSequence(0x0014, 0x4050);
+Tag const ReceiveTransducerSettingsSequence(0x0014, 0x4051);
+Tag const IncidentAngle(0x0014, 0x4052);
+Tag const CouplingTechnique(0x0014, 0x4054);
+Tag const CouplingMedium(0x0014, 0x4056);
+Tag const CouplingVelocity(0x0014, 0x4057);
+Tag const ProbeCenterLocationX(0x0014, 0x4058);
+Tag const ProbeCenterLocationZ(0x0014, 0x4059);
+Tag const SoundPathLength(0x0014, 0x405a);
+Tag const DelayLawIdentifier(0x0014, 0x405c);
+Tag const GateSettingsSequence(0x0014, 0x4060);
+Tag const GateThreshold(0x0014, 0x4062);
+Tag const VelocityOfSound(0x0014, 0x4064);
+Tag const CalibrationSettingsSequence(0x0014, 0x4070);
+Tag const CalibrationProcedure(0x0014, 0x4072);
+Tag const ProcedureVersion(0x0014, 0x4074);
+Tag const ProcedureCreationDate(0x0014, 0x4076);
+Tag const ProcedureExpirationDate(0x0014, 0x4078);
+Tag const ProcedureLastModifiedDate(0x0014, 0x407a);
+Tag const CalibrationTime(0x0014, 0x407c);
+Tag const CalibrationDate(0x0014, 0x407e);
+Tag const ProbeDriveEquipmentSequence(0x0014, 0x4080);
+Tag const DriveType(0x0014, 0x4081);
+Tag const ProbeDriveNotes(0x0014, 0x4082);
+Tag const DriveProbeSequence(0x0014, 0x4083);
+Tag const ProbeInductance(0x0014, 0x4084);
+Tag const ProbeResistance(0x0014, 0x4085);
+Tag const ReceiveProbeSequence(0x0014, 0x4086);
+Tag const ProbeDriveSettingsSequence(0x0014, 0x4087);
+Tag const BridgeResistors(0x0014, 0x4088);
+Tag const ProbeOrientationAngle(0x0014, 0x4089);
+Tag const UserSelectedGainY(0x0014, 0x408b);
+Tag const UserSelectedPhase(0x0014, 0x408c);
+Tag const UserSelectedOffsetX(0x0014, 0x408d);
+Tag const UserSelectedOffsetY(0x0014, 0x408e);
+Tag const ChannelSettingsSequence(0x0014, 0x4091);
+Tag const ChannelThreshold(0x0014, 0x4092);
+Tag const ScannerSettingsSequence(0x0014, 0x409a);
+Tag const ScanProcedure(0x0014, 0x409b);
+Tag const TranslationRateX(0x0014, 0x409c);
+Tag const TranslationRateY(0x0014, 0x409d);
+Tag const ChannelOverlap(0x0014, 0x409f);
+Tag const ImageQualityIndicatorType(0x0014, 0x40a0);
+Tag const ImageQualityIndicatorMaterial(0x0014, 0x40a1);
+Tag const ImageQualityIndicatorSize(0x0014, 0x40a2);
+Tag const LINACEnergy(0x0014, 0x5002);
+Tag const LINACOutput(0x0014, 0x5004);
+Tag const ActiveAperture(0x0014, 0x5100);
+Tag const TotalAperture(0x0014, 0x5101);
+Tag const ApertureElevation(0x0014, 0x5102);
+Tag const MainLobeAngle(0x0014, 0x5103);
+Tag const MainRoofAngle(0x0014, 0x5104);
+Tag const ConnectorType(0x0014, 0x5105);
+Tag const WedgeModelNumber(0x0014, 0x5106);
+Tag const WedgeAngleFloat(0x0014, 0x5107);
+Tag const WedgeRoofAngle(0x0014, 0x5108);
+Tag const WedgeElement1Position(0x0014, 0x5109);
+Tag const WedgeMaterialVelocity(0x0014, 0x510a);
+Tag const WedgeMaterial(0x0014, 0x510b);
+Tag const WedgeOffsetZ(0x0014, 0x510c);
+Tag const WedgeOriginOffsetX(0x0014, 0x510d);
+Tag const WedgeTimeDelay(0x0014, 0x510e);
+Tag const WedgeName(0x0014, 0x510f);
+Tag const WedgeManufacturerName(0x0014, 0x5110);
+Tag const WedgeDescription(0x0014, 0x5111);
+Tag const NominalBeamAngle(0x0014, 0x5112);
+Tag const WedgeOffsetX(0x0014, 0x5113);
+Tag const WedgeOffsetY(0x0014, 0x5114);
+Tag const WedgeTotalLength(0x0014, 0x5115);
+Tag const WedgeInContactLength(0x0014, 0x5116);
+Tag const WedgeFrontGap(0x0014, 0x5117);
+Tag const WedgeTotalHeight(0x0014, 0x5118);
+Tag const WedgeFrontHeight(0x0014, 0x5119);
+Tag const WedgeRearHeight(0x0014, 0x511a);
+Tag const WedgeTotalWidth(0x0014, 0x511b);
+Tag const WedgeInContactWidth(0x0014, 0x511c);
+Tag const WedgeChamferHeight(0x0014, 0x511d);
+Tag const WedgeCurve(0x0014, 0x511e);
+Tag const RadiusAlongWedge(0x0014, 0x511f);
+Tag const ContrastBolusAgent(0x0018, 0x0010);
+Tag const ContrastBolusAgentSequence(0x0018, 0x0012);
+Tag const ContrastBolusT1Relaxivity(0x0018, 0x0013);
+Tag const ContrastBolusAdministrationRouteSequence(0x0018, 0x0014);
+Tag const BodyPartExamined(0x0018, 0x0015);
+Tag const ScanningSequence(0x0018, 0x0020);
+Tag const SequenceVariant(0x0018, 0x0021);
+Tag const ScanOptions(0x0018, 0x0022);
+Tag const MRAcquisitionType(0x0018, 0x0023);
+Tag const SequenceName(0x0018, 0x0024);
+Tag const AngioFlag(0x0018, 0x0025);
+Tag const InterventionDrugInformationSequence(0x0018, 0x0026);
+Tag const InterventionDrugStopTime(0x0018, 0x0027);
+Tag const InterventionDrugDose(0x0018, 0x0028);
+Tag const InterventionDrugCodeSequence(0x0018, 0x0029);
+Tag const AdditionalDrugSequence(0x0018, 0x002a);
+Tag const Radionuclide(0x0018, 0x0030);
+Tag const Radiopharmaceutical(0x0018, 0x0031);
+Tag const EnergyWindowCenterline(0x0018, 0x0032);
+Tag const EnergyWindowTotalWidth(0x0018, 0x0033);
+Tag const InterventionDrugName(0x0018, 0x0034);
+Tag const InterventionDrugStartTime(0x0018, 0x0035);
+Tag const InterventionSequence(0x0018, 0x0036);
+Tag const TherapyType(0x0018, 0x0037);
+Tag const InterventionStatus(0x0018, 0x0038);
+Tag const TherapyDescription(0x0018, 0x0039);
+Tag const InterventionDescription(0x0018, 0x003a);
+Tag const CineRate(0x0018, 0x0040);
+Tag const InitialCineRunState(0x0018, 0x0042);
+Tag const SliceThickness(0x0018, 0x0050);
+Tag const KVP(0x0018, 0x0060);
+Tag const CountsAccumulated(0x0018, 0x0070);
+Tag const AcquisitionTerminationCondition(0x0018, 0x0071);
+Tag const EffectiveDuration(0x0018, 0x0072);
+Tag const AcquisitionStartCondition(0x0018, 0x0073);
+Tag const AcquisitionStartConditionData(0x0018, 0x0074);
+Tag const AcquisitionTerminationConditionData(0x0018, 0x0075);
+Tag const RepetitionTime(0x0018, 0x0080);
+Tag const EchoTime(0x0018, 0x0081);
+Tag const InversionTime(0x0018, 0x0082);
+Tag const NumberOfAverages(0x0018, 0x0083);
+Tag const ImagingFrequency(0x0018, 0x0084);
+Tag const ImagedNucleus(0x0018, 0x0085);
+Tag const EchoNumbers(0x0018, 0x0086);
+Tag const MagneticFieldStrength(0x0018, 0x0087);
+Tag const SpacingBetweenSlices(0x0018, 0x0088);
+Tag const NumberOfPhaseEncodingSteps(0x0018, 0x0089);
+Tag const DataCollectionDiameter(0x0018, 0x0090);
+Tag const EchoTrainLength(0x0018, 0x0091);
+Tag const PercentSampling(0x0018, 0x0093);
+Tag const PercentPhaseFieldOfView(0x0018, 0x0094);
+Tag const PixelBandwidth(0x0018, 0x0095);
+Tag const DeviceSerialNumber(0x0018, 0x1000);
+Tag const DeviceUID(0x0018, 0x1002);
+Tag const DeviceID(0x0018, 0x1003);
+Tag const PlateID(0x0018, 0x1004);
+Tag const GeneratorID(0x0018, 0x1005);
+Tag const GridID(0x0018, 0x1006);
+Tag const CassetteID(0x0018, 0x1007);
+Tag const GantryID(0x0018, 0x1008);
+Tag const SecondaryCaptureDeviceID(0x0018, 0x1010);
+Tag const HardcopyCreationDeviceID(0x0018, 0x1011);
+Tag const DateOfSecondaryCapture(0x0018, 0x1012);
+Tag const TimeOfSecondaryCapture(0x0018, 0x1014);
+Tag const SecondaryCaptureDeviceManufacturer(0x0018, 0x1016);
+Tag const HardcopyDeviceManufacturer(0x0018, 0x1017);
+Tag const SecondaryCaptureDeviceManufacturerModelName(0x0018, 0x1018);
+Tag const SecondaryCaptureDeviceSoftwareVersions(0x0018, 0x1019);
+Tag const HardcopyDeviceSoftwareVersion(0x0018, 0x101a);
+Tag const HardcopyDeviceManufacturerModelName(0x0018, 0x101b);
+Tag const SoftwareVersions(0x0018, 0x1020);
+Tag const VideoImageFormatAcquired(0x0018, 0x1022);
+Tag const DigitalImageFormatAcquired(0x0018, 0x1023);
+Tag const ProtocolName(0x0018, 0x1030);
+Tag const ContrastBolusRoute(0x0018, 0x1040);
+Tag const ContrastBolusVolume(0x0018, 0x1041);
+Tag const ContrastBolusStartTime(0x0018, 0x1042);
+Tag const ContrastBolusStopTime(0x0018, 0x1043);
+Tag const ContrastBolusTotalDose(0x0018, 0x1044);
+Tag const SyringeCounts(0x0018, 0x1045);
+Tag const ContrastFlowRate(0x0018, 0x1046);
+Tag const ContrastFlowDuration(0x0018, 0x1047);
+Tag const ContrastBolusIngredient(0x0018, 0x1048);
+Tag const ContrastBolusIngredientConcentration(0x0018, 0x1049);
+Tag const SpatialResolution(0x0018, 0x1050);
+Tag const TriggerTime(0x0018, 0x1060);
+Tag const TriggerSourceOrType(0x0018, 0x1061);
+Tag const NominalInterval(0x0018, 0x1062);
+Tag const FrameTime(0x0018, 0x1063);
+Tag const CardiacFramingType(0x0018, 0x1064);
+Tag const FrameTimeVector(0x0018, 0x1065);
+Tag const FrameDelay(0x0018, 0x1066);
+Tag const ImageTriggerDelay(0x0018, 0x1067);
+Tag const MultiplexGroupTimeOffset(0x0018, 0x1068);
+Tag const TriggerTimeOffset(0x0018, 0x1069);
+Tag const SynchronizationTrigger(0x0018, 0x106a);
+Tag const SynchronizationChannel(0x0018, 0x106c);
+Tag const TriggerSamplePosition(0x0018, 0x106e);
+Tag const RadiopharmaceuticalRoute(0x0018, 0x1070);
+Tag const RadiopharmaceuticalVolume(0x0018, 0x1071);
+Tag const RadiopharmaceuticalStartTime(0x0018, 0x1072);
+Tag const RadiopharmaceuticalStopTime(0x0018, 0x1073);
+Tag const RadionuclideTotalDose(0x0018, 0x1074);
+Tag const RadionuclideHalfLife(0x0018, 0x1075);
+Tag const RadionuclidePositronFraction(0x0018, 0x1076);
+Tag const RadiopharmaceuticalSpecificActivity(0x0018, 0x1077);
+Tag const RadiopharmaceuticalStartDateTime(0x0018, 0x1078);
+Tag const RadiopharmaceuticalStopDateTime(0x0018, 0x1079);
+Tag const BeatRejectionFlag(0x0018, 0x1080);
+Tag const LowRRValue(0x0018, 0x1081);
+Tag const HighRRValue(0x0018, 0x1082);
+Tag const IntervalsAcquired(0x0018, 0x1083);
+Tag const IntervalsRejected(0x0018, 0x1084);
+Tag const PVCRejection(0x0018, 0x1085);
+Tag const SkipBeats(0x0018, 0x1086);
+Tag const HeartRate(0x0018, 0x1088);
+Tag const CardiacNumberOfImages(0x0018, 0x1090);
+Tag const TriggerWindow(0x0018, 0x1094);
+Tag const ReconstructionDiameter(0x0018, 0x1100);
+Tag const DistanceSourceToDetector(0x0018, 0x1110);
+Tag const DistanceSourceToPatient(0x0018, 0x1111);
+Tag const EstimatedRadiographicMagnificationFactor(0x0018, 0x1114);
+Tag const GantryDetectorTilt(0x0018, 0x1120);
+Tag const GantryDetectorSlew(0x0018, 0x1121);
+Tag const TableHeight(0x0018, 0x1130);
+Tag const TableTraverse(0x0018, 0x1131);
+Tag const TableMotion(0x0018, 0x1134);
+Tag const TableVerticalIncrement(0x0018, 0x1135);
+Tag const TableLateralIncrement(0x0018, 0x1136);
+Tag const TableLongitudinalIncrement(0x0018, 0x1137);
+Tag const TableAngle(0x0018, 0x1138);
+Tag const TableType(0x0018, 0x113a);
+Tag const RotationDirection(0x0018, 0x1140);
+Tag const AngularPosition(0x0018, 0x1141);
+Tag const RadialPosition(0x0018, 0x1142);
+Tag const ScanArc(0x0018, 0x1143);
+Tag const AngularStep(0x0018, 0x1144);
+Tag const CenterOfRotationOffset(0x0018, 0x1145);
+Tag const RotationOffset(0x0018, 0x1146);
+Tag const FieldOfViewShape(0x0018, 0x1147);
+Tag const FieldOfViewDimensions(0x0018, 0x1149);
+Tag const ExposureTime(0x0018, 0x1150);
+Tag const XRayTubeCurrent(0x0018, 0x1151);
+Tag const Exposure(0x0018, 0x1152);
+Tag const ExposureInuAs(0x0018, 0x1153);
+Tag const AveragePulseWidth(0x0018, 0x1154);
+Tag const RadiationSetting(0x0018, 0x1155);
+Tag const RectificationType(0x0018, 0x1156);
+Tag const RadiationMode(0x0018, 0x115a);
+Tag const ImageAndFluoroscopyAreaDoseProduct(0x0018, 0x115e);
+Tag const FilterType(0x0018, 0x1160);
+Tag const TypeOfFilters(0x0018, 0x1161);
+Tag const IntensifierSize(0x0018, 0x1162);
+Tag const ImagerPixelSpacing(0x0018, 0x1164);
+Tag const Grid(0x0018, 0x1166);
+Tag const GeneratorPower(0x0018, 0x1170);
+Tag const CollimatorGridName(0x0018, 0x1180);
+Tag const CollimatorType(0x0018, 0x1181);
+Tag const FocalDistance(0x0018, 0x1182);
+Tag const XFocusCenter(0x0018, 0x1183);
+Tag const YFocusCenter(0x0018, 0x1184);
+Tag const FocalSpots(0x0018, 0x1190);
+Tag const AnodeTargetMaterial(0x0018, 0x1191);
+Tag const BodyPartThickness(0x0018, 0x11a0);
+Tag const CompressionForce(0x0018, 0x11a2);
+Tag const PaddleDescription(0x0018, 0x11a4);
+Tag const DateOfLastCalibration(0x0018, 0x1200);
+Tag const TimeOfLastCalibration(0x0018, 0x1201);
+Tag const DateTimeOfLastCalibration(0x0018, 0x1202);
+Tag const ConvolutionKernel(0x0018, 0x1210);
+Tag const UpperLowerPixelValues(0x0018, 0x1240);
+Tag const ActualFrameDuration(0x0018, 0x1242);
+Tag const CountRate(0x0018, 0x1243);
+Tag const PreferredPlaybackSequencing(0x0018, 0x1244);
+Tag const ReceiveCoilName(0x0018, 0x1250);
+Tag const TransmitCoilName(0x0018, 0x1251);
+Tag const PlateType(0x0018, 0x1260);
+Tag const PhosphorType(0x0018, 0x1261);
+Tag const ScanVelocity(0x0018, 0x1300);
+Tag const WholeBodyTechnique(0x0018, 0x1301);
+Tag const ScanLength(0x0018, 0x1302);
+Tag const AcquisitionMatrix(0x0018, 0x1310);
+Tag const InPlanePhaseEncodingDirection(0x0018, 0x1312);
+Tag const FlipAngle(0x0018, 0x1314);
+Tag const VariableFlipAngleFlag(0x0018, 0x1315);
+Tag const SAR(0x0018, 0x1316);
+Tag const dBdt(0x0018, 0x1318);
+Tag const AcquisitionDeviceProcessingDescription(0x0018, 0x1400);
+Tag const AcquisitionDeviceProcessingCode(0x0018, 0x1401);
+Tag const CassetteOrientation(0x0018, 0x1402);
+Tag const CassetteSize(0x0018, 0x1403);
+Tag const ExposuresOnPlate(0x0018, 0x1404);
+Tag const RelativeXRayExposure(0x0018, 0x1405);
+Tag const ExposureIndex(0x0018, 0x1411);
+Tag const TargetExposureIndex(0x0018, 0x1412);
+Tag const DeviationIndex(0x0018, 0x1413);
+Tag const ColumnAngulation(0x0018, 0x1450);
+Tag const TomoLayerHeight(0x0018, 0x1460);
+Tag const TomoAngle(0x0018, 0x1470);
+Tag const TomoTime(0x0018, 0x1480);
+Tag const TomoType(0x0018, 0x1490);
+Tag const TomoClass(0x0018, 0x1491);
+Tag const NumberOfTomosynthesisSourceImages(0x0018, 0x1495);
+Tag const PositionerMotion(0x0018, 0x1500);
+Tag const PositionerType(0x0018, 0x1508);
+Tag const PositionerPrimaryAngle(0x0018, 0x1510);
+Tag const PositionerSecondaryAngle(0x0018, 0x1511);
+Tag const PositionerPrimaryAngleIncrement(0x0018, 0x1520);
+Tag const PositionerSecondaryAngleIncrement(0x0018, 0x1521);
+Tag const DetectorPrimaryAngle(0x0018, 0x1530);
+Tag const DetectorSecondaryAngle(0x0018, 0x1531);
+Tag const ShutterShape(0x0018, 0x1600);
+Tag const ShutterLeftVerticalEdge(0x0018, 0x1602);
+Tag const ShutterRightVerticalEdge(0x0018, 0x1604);
+Tag const ShutterUpperHorizontalEdge(0x0018, 0x1606);
+Tag const ShutterLowerHorizontalEdge(0x0018, 0x1608);
+Tag const CenterOfCircularShutter(0x0018, 0x1610);
+Tag const RadiusOfCircularShutter(0x0018, 0x1612);
+Tag const VerticesOfThePolygonalShutter(0x0018, 0x1620);
+Tag const ShutterPresentationValue(0x0018, 0x1622);
+Tag const ShutterOverlayGroup(0x0018, 0x1623);
+Tag const ShutterPresentationColorCIELabValue(0x0018, 0x1624);
+Tag const CollimatorShape(0x0018, 0x1700);
+Tag const CollimatorLeftVerticalEdge(0x0018, 0x1702);
+Tag const CollimatorRightVerticalEdge(0x0018, 0x1704);
+Tag const CollimatorUpperHorizontalEdge(0x0018, 0x1706);
+Tag const CollimatorLowerHorizontalEdge(0x0018, 0x1708);
+Tag const CenterOfCircularCollimator(0x0018, 0x1710);
+Tag const RadiusOfCircularCollimator(0x0018, 0x1712);
+Tag const VerticesOfThePolygonalCollimator(0x0018, 0x1720);
+Tag const AcquisitionTimeSynchronized(0x0018, 0x1800);
+Tag const TimeSource(0x0018, 0x1801);
+Tag const TimeDistributionProtocol(0x0018, 0x1802);
+Tag const NTPSourceAddress(0x0018, 0x1803);
+Tag const PageNumberVector(0x0018, 0x2001);
+Tag const FrameLabelVector(0x0018, 0x2002);
+Tag const FramePrimaryAngleVector(0x0018, 0x2003);
+Tag const FrameSecondaryAngleVector(0x0018, 0x2004);
+Tag const SliceLocationVector(0x0018, 0x2005);
+Tag const DisplayWindowLabelVector(0x0018, 0x2006);
+Tag const NominalScannedPixelSpacing(0x0018, 0x2010);
+Tag const DigitizingDeviceTransportDirection(0x0018, 0x2020);
+Tag const RotationOfScannedFilm(0x0018, 0x2030);
+Tag const BiopsyTargetSequence(0x0018, 0x2041);
+Tag const TargetUID(0x0018, 0x2042);
+Tag const LocalizingCursorPosition(0x0018, 0x2043);
+Tag const CalculatedTargetPosition(0x0018, 0x2044);
+Tag const TargetLabel(0x0018, 0x2045);
+Tag const DisplayedZValue(0x0018, 0x2046);
+Tag const IVUSAcquisition(0x0018, 0x3100);
+Tag const IVUSPullbackRate(0x0018, 0x3101);
+Tag const IVUSGatedRate(0x0018, 0x3102);
+Tag const IVUSPullbackStartFrameNumber(0x0018, 0x3103);
+Tag const IVUSPullbackStopFrameNumber(0x0018, 0x3104);
+Tag const LesionNumber(0x0018, 0x3105);
+Tag const AcquisitionComments(0x0018, 0x4000);
+Tag const OutputPower(0x0018, 0x5000);
+Tag const TransducerData(0x0018, 0x5010);
+Tag const FocusDepth(0x0018, 0x5012);
+Tag const ProcessingFunction(0x0018, 0x5020);
+Tag const PostprocessingFunction(0x0018, 0x5021);
+Tag const MechanicalIndex(0x0018, 0x5022);
+Tag const BoneThermalIndex(0x0018, 0x5024);
+Tag const CranialThermalIndex(0x0018, 0x5026);
+Tag const SoftTissueThermalIndex(0x0018, 0x5027);
+Tag const SoftTissueFocusThermalIndex(0x0018, 0x5028);
+Tag const SoftTissueSurfaceThermalIndex(0x0018, 0x5029);
+Tag const DynamicRange(0x0018, 0x5030);
+Tag const TotalGain(0x0018, 0x5040);
+Tag const DepthOfScanField(0x0018, 0x5050);
+Tag const PatientPosition(0x0018, 0x5100);
+Tag const ViewPosition(0x0018, 0x5101);
+Tag const ProjectionEponymousNameCodeSequence(0x0018, 0x5104);
+Tag const ImageTransformationMatrix(0x0018, 0x5210);
+Tag const ImageTranslationVector(0x0018, 0x5212);
+Tag const Sensitivity(0x0018, 0x6000);
+Tag const SequenceOfUltrasoundRegions(0x0018, 0x6011);
+Tag const RegionSpatialFormat(0x0018, 0x6012);
+Tag const RegionDataType(0x0018, 0x6014);
+Tag const RegionFlags(0x0018, 0x6016);
+Tag const RegionLocationMinX0(0x0018, 0x6018);
+Tag const RegionLocationMinY0(0x0018, 0x601a);
+Tag const RegionLocationMaxX1(0x0018, 0x601c);
+Tag const RegionLocationMaxY1(0x0018, 0x601e);
+Tag const ReferencePixelX0(0x0018, 0x6020);
+Tag const ReferencePixelY0(0x0018, 0x6022);
+Tag const PhysicalUnitsXDirection(0x0018, 0x6024);
+Tag const PhysicalUnitsYDirection(0x0018, 0x6026);
+Tag const ReferencePixelPhysicalValueX(0x0018, 0x6028);
+Tag const ReferencePixelPhysicalValueY(0x0018, 0x602a);
+Tag const PhysicalDeltaX(0x0018, 0x602c);
+Tag const PhysicalDeltaY(0x0018, 0x602e);
+Tag const TransducerFrequency(0x0018, 0x6030);
+Tag const TransducerType(0x0018, 0x6031);
+Tag const PulseRepetitionFrequency(0x0018, 0x6032);
+Tag const DopplerCorrectionAngle(0x0018, 0x6034);
+Tag const SteeringAngle(0x0018, 0x6036);
+Tag const DopplerSampleVolumeXPositionRetired(0x0018, 0x6038);
+Tag const DopplerSampleVolumeXPosition(0x0018, 0x6039);
+Tag const DopplerSampleVolumeYPositionRetired(0x0018, 0x603a);
+Tag const DopplerSampleVolumeYPosition(0x0018, 0x603b);
+Tag const TMLinePositionX0Retired(0x0018, 0x603c);
+Tag const TMLinePositionX0(0x0018, 0x603d);
+Tag const TMLinePositionY0Retired(0x0018, 0x603e);
+Tag const TMLinePositionY0(0x0018, 0x603f);
+Tag const TMLinePositionX1Retired(0x0018, 0x6040);
+Tag const TMLinePositionX1(0x0018, 0x6041);
+Tag const TMLinePositionY1Retired(0x0018, 0x6042);
+Tag const TMLinePositionY1(0x0018, 0x6043);
+Tag const PixelComponentOrganization(0x0018, 0x6044);
+Tag const PixelComponentMask(0x0018, 0x6046);
+Tag const PixelComponentRangeStart(0x0018, 0x6048);
+Tag const PixelComponentRangeStop(0x0018, 0x604a);
+Tag const PixelComponentPhysicalUnits(0x0018, 0x604c);
+Tag const PixelComponentDataType(0x0018, 0x604e);
+Tag const NumberOfTableBreakPoints(0x0018, 0x6050);
+Tag const TableOfXBreakPoints(0x0018, 0x6052);
+Tag const TableOfYBreakPoints(0x0018, 0x6054);
+Tag const NumberOfTableEntries(0x0018, 0x6056);
+Tag const TableOfPixelValues(0x0018, 0x6058);
+Tag const TableOfParameterValues(0x0018, 0x605a);
+Tag const RWaveTimeVector(0x0018, 0x6060);
+Tag const DetectorConditionsNominalFlag(0x0018, 0x7000);
+Tag const DetectorTemperature(0x0018, 0x7001);
+Tag const DetectorType(0x0018, 0x7004);
+Tag const DetectorConfiguration(0x0018, 0x7005);
+Tag const DetectorDescription(0x0018, 0x7006);
+Tag const DetectorMode(0x0018, 0x7008);
+Tag const DetectorID(0x0018, 0x700a);
+Tag const DateOfLastDetectorCalibration(0x0018, 0x700c);
+Tag const TimeOfLastDetectorCalibration(0x0018, 0x700e);
+Tag const ExposuresOnDetectorSinceLastCalibration(0x0018, 0x7010);
+Tag const ExposuresOnDetectorSinceManufactured(0x0018, 0x7011);
+Tag const DetectorTimeSinceLastExposure(0x0018, 0x7012);
+Tag const DetectorActiveTime(0x0018, 0x7014);
+Tag const DetectorActivationOffsetFromExposure(0x0018, 0x7016);
+Tag const DetectorBinning(0x0018, 0x701a);
+Tag const DetectorElementPhysicalSize(0x0018, 0x7020);
+Tag const DetectorElementSpacing(0x0018, 0x7022);
+Tag const DetectorActiveShape(0x0018, 0x7024);
+Tag const DetectorActiveDimensions(0x0018, 0x7026);
+Tag const DetectorActiveOrigin(0x0018, 0x7028);
+Tag const DetectorManufacturerName(0x0018, 0x702a);
+Tag const DetectorManufacturerModelName(0x0018, 0x702b);
+Tag const FieldOfViewOrigin(0x0018, 0x7030);
+Tag const FieldOfViewRotation(0x0018, 0x7032);
+Tag const FieldOfViewHorizontalFlip(0x0018, 0x7034);
+Tag const PixelDataAreaOriginRelativeToFOV(0x0018, 0x7036);
+Tag const PixelDataAreaRotationAngleRelativeToFOV(0x0018, 0x7038);
+Tag const GridAbsorbingMaterial(0x0018, 0x7040);
+Tag const GridSpacingMaterial(0x0018, 0x7041);
+Tag const GridThickness(0x0018, 0x7042);
+Tag const GridPitch(0x0018, 0x7044);
+Tag const GridAspectRatio(0x0018, 0x7046);
+Tag const GridPeriod(0x0018, 0x7048);
+Tag const GridFocalDistance(0x0018, 0x704c);
+Tag const FilterMaterial(0x0018, 0x7050);
+Tag const FilterThicknessMinimum(0x0018, 0x7052);
+Tag const FilterThicknessMaximum(0x0018, 0x7054);
+Tag const FilterBeamPathLengthMinimum(0x0018, 0x7056);
+Tag const FilterBeamPathLengthMaximum(0x0018, 0x7058);
+Tag const ExposureControlMode(0x0018, 0x7060);
+Tag const ExposureControlModeDescription(0x0018, 0x7062);
+Tag const ExposureStatus(0x0018, 0x7064);
+Tag const PhototimerSetting(0x0018, 0x7065);
+Tag const ExposureTimeInuS(0x0018, 0x8150);
+Tag const XRayTubeCurrentInuA(0x0018, 0x8151);
+Tag const ContentQualification(0x0018, 0x9004);
+Tag const PulseSequenceName(0x0018, 0x9005);
+Tag const MRImagingModifierSequence(0x0018, 0x9006);
+Tag const EchoPulseSequence(0x0018, 0x9008);
+Tag const InversionRecovery(0x0018, 0x9009);
+Tag const FlowCompensation(0x0018, 0x9010);
+Tag const MultipleSpinEcho(0x0018, 0x9011);
+Tag const MultiPlanarExcitation(0x0018, 0x9012);
+Tag const PhaseContrast(0x0018, 0x9014);
+Tag const TimeOfFlightContrast(0x0018, 0x9015);
+Tag const Spoiling(0x0018, 0x9016);
+Tag const SteadyStatePulseSequence(0x0018, 0x9017);
+Tag const EchoPlanarPulseSequence(0x0018, 0x9018);
+Tag const TagAngleFirstAxis(0x0018, 0x9019);
+Tag const MagnetizationTransfer(0x0018, 0x9020);
+Tag const T2Preparation(0x0018, 0x9021);
+Tag const BloodSignalNulling(0x0018, 0x9022);
+Tag const SaturationRecovery(0x0018, 0x9024);
+Tag const SpectrallySelectedSuppression(0x0018, 0x9025);
+Tag const SpectrallySelectedExcitation(0x0018, 0x9026);
+Tag const SpatialPresaturation(0x0018, 0x9027);
+Tag const Tagging(0x0018, 0x9028);
+Tag const OversamplingPhase(0x0018, 0x9029);
+Tag const TagSpacingFirstDimension(0x0018, 0x9030);
+Tag const GeometryOfKSpaceTraversal(0x0018, 0x9032);
+Tag const SegmentedKSpaceTraversal(0x0018, 0x9033);
+Tag const RectilinearPhaseEncodeReordering(0x0018, 0x9034);
+Tag const TagThickness(0x0018, 0x9035);
+Tag const PartialFourierDirection(0x0018, 0x9036);
+Tag const CardiacSynchronizationTechnique(0x0018, 0x9037);
+Tag const ReceiveCoilManufacturerName(0x0018, 0x9041);
+Tag const MRReceiveCoilSequence(0x0018, 0x9042);
+Tag const ReceiveCoilType(0x0018, 0x9043);
+Tag const QuadratureReceiveCoil(0x0018, 0x9044);
+Tag const MultiCoilDefinitionSequence(0x0018, 0x9045);
+Tag const MultiCoilConfiguration(0x0018, 0x9046);
+Tag const MultiCoilElementName(0x0018, 0x9047);
+Tag const MultiCoilElementUsed(0x0018, 0x9048);
+Tag const MRTransmitCoilSequence(0x0018, 0x9049);
+Tag const TransmitCoilManufacturerName(0x0018, 0x9050);
+Tag const TransmitCoilType(0x0018, 0x9051);
+Tag const SpectralWidth(0x0018, 0x9052);
+Tag const ChemicalShiftReference(0x0018, 0x9053);
+Tag const VolumeLocalizationTechnique(0x0018, 0x9054);
+Tag const MRAcquisitionFrequencyEncodingSteps(0x0018, 0x9058);
+Tag const Decoupling(0x0018, 0x9059);
+Tag const DecoupledNucleus(0x0018, 0x9060);
+Tag const DecouplingFrequency(0x0018, 0x9061);
+Tag const DecouplingMethod(0x0018, 0x9062);
+Tag const DecouplingChemicalShiftReference(0x0018, 0x9063);
+Tag const KSpaceFiltering(0x0018, 0x9064);
+Tag const TimeDomainFiltering(0x0018, 0x9065);
+Tag const NumberOfZeroFills(0x0018, 0x9066);
+Tag const BaselineCorrection(0x0018, 0x9067);
+Tag const ParallelReductionFactorInPlane(0x0018, 0x9069);
+Tag const CardiacRRIntervalSpecified(0x0018, 0x9070);
+Tag const AcquisitionDuration(0x0018, 0x9073);
+Tag const FrameAcquisitionDateTime(0x0018, 0x9074);
+Tag const DiffusionDirectionality(0x0018, 0x9075);
+Tag const DiffusionGradientDirectionSequence(0x0018, 0x9076);
+Tag const ParallelAcquisition(0x0018, 0x9077);
+Tag const ParallelAcquisitionTechnique(0x0018, 0x9078);
+Tag const InversionTimes(0x0018, 0x9079);
+Tag const MetaboliteMapDescription(0x0018, 0x9080);
+Tag const PartialFourier(0x0018, 0x9081);
+Tag const EffectiveEchoTime(0x0018, 0x9082);
+Tag const MetaboliteMapCodeSequence(0x0018, 0x9083);
+Tag const ChemicalShiftSequence(0x0018, 0x9084);
+Tag const CardiacSignalSource(0x0018, 0x9085);
+Tag const DiffusionBValue(0x0018, 0x9087);
+Tag const DiffusionGradientOrientation(0x0018, 0x9089);
+Tag const VelocityEncodingDirection(0x0018, 0x9090);
+Tag const VelocityEncodingMinimumValue(0x0018, 0x9091);
+Tag const VelocityEncodingAcquisitionSequence(0x0018, 0x9092);
+Tag const NumberOfKSpaceTrajectories(0x0018, 0x9093);
+Tag const CoverageOfKSpace(0x0018, 0x9094);
+Tag const SpectroscopyAcquisitionPhaseRows(0x0018, 0x9095);
+Tag const ParallelReductionFactorInPlaneRetired(0x0018, 0x9096);
+Tag const TransmitterFrequency(0x0018, 0x9098);
+Tag const ResonantNucleus(0x0018, 0x9100);
+Tag const FrequencyCorrection(0x0018, 0x9101);
+Tag const MRSpectroscopyFOVGeometrySequence(0x0018, 0x9103);
+Tag const SlabThickness(0x0018, 0x9104);
+Tag const SlabOrientation(0x0018, 0x9105);
+Tag const MidSlabPosition(0x0018, 0x9106);
+Tag const MRSpatialSaturationSequence(0x0018, 0x9107);
+Tag const MRTimingAndRelatedParametersSequence(0x0018, 0x9112);
+Tag const MREchoSequence(0x0018, 0x9114);
+Tag const MRModifierSequence(0x0018, 0x9115);
+Tag const MRDiffusionSequence(0x0018, 0x9117);
+Tag const CardiacSynchronizationSequence(0x0018, 0x9118);
+Tag const MRAveragesSequence(0x0018, 0x9119);
+Tag const MRFOVGeometrySequence(0x0018, 0x9125);
+Tag const VolumeLocalizationSequence(0x0018, 0x9126);
+Tag const SpectroscopyAcquisitionDataColumns(0x0018, 0x9127);
+Tag const DiffusionAnisotropyType(0x0018, 0x9147);
+Tag const FrameReferenceDateTime(0x0018, 0x9151);
+Tag const MRMetaboliteMapSequence(0x0018, 0x9152);
+Tag const ParallelReductionFactorOutOfPlane(0x0018, 0x9155);
+Tag const SpectroscopyAcquisitionOutOfPlanePhaseSteps(0x0018, 0x9159);
+Tag const BulkMotionStatus(0x0018, 0x9166);
+Tag const ParallelReductionFactorSecondInPlane(0x0018, 0x9168);
+Tag const CardiacBeatRejectionTechnique(0x0018, 0x9169);
+Tag const RespiratoryMotionCompensationTechnique(0x0018, 0x9170);
+Tag const RespiratorySignalSource(0x0018, 0x9171);
+Tag const BulkMotionCompensationTechnique(0x0018, 0x9172);
+Tag const BulkMotionSignalSource(0x0018, 0x9173);
+Tag const ApplicableSafetyStandardAgency(0x0018, 0x9174);
+Tag const ApplicableSafetyStandardDescription(0x0018, 0x9175);
+Tag const OperatingModeSequence(0x0018, 0x9176);
+Tag const OperatingModeType(0x0018, 0x9177);
+Tag const OperatingMode(0x0018, 0x9178);
+Tag const SpecificAbsorptionRateDefinition(0x0018, 0x9179);
+Tag const GradientOutputType(0x0018, 0x9180);
+Tag const SpecificAbsorptionRateValue(0x0018, 0x9181);
+Tag const GradientOutput(0x0018, 0x9182);
+Tag const FlowCompensationDirection(0x0018, 0x9183);
+Tag const TaggingDelay(0x0018, 0x9184);
+Tag const RespiratoryMotionCompensationTechniqueDescription(0x0018, 0x9185);
+Tag const RespiratorySignalSourceID(0x0018, 0x9186);
+Tag const ChemicalShiftMinimumIntegrationLimitInHz(0x0018, 0x9195);
+Tag const ChemicalShiftMaximumIntegrationLimitInHz(0x0018, 0x9196);
+Tag const MRVelocityEncodingSequence(0x0018, 0x9197);
+Tag const FirstOrderPhaseCorrection(0x0018, 0x9198);
+Tag const WaterReferencedPhaseCorrection(0x0018, 0x9199);
+Tag const MRSpectroscopyAcquisitionType(0x0018, 0x9200);
+Tag const RespiratoryCyclePosition(0x0018, 0x9214);
+Tag const VelocityEncodingMaximumValue(0x0018, 0x9217);
+Tag const TagSpacingSecondDimension(0x0018, 0x9218);
+Tag const TagAngleSecondAxis(0x0018, 0x9219);
+Tag const FrameAcquisitionDuration(0x0018, 0x9220);
+Tag const MRImageFrameTypeSequence(0x0018, 0x9226);
+Tag const MRSpectroscopyFrameTypeSequence(0x0018, 0x9227);
+Tag const MRAcquisitionPhaseEncodingStepsInPlane(0x0018, 0x9231);
+Tag const MRAcquisitionPhaseEncodingStepsOutOfPlane(0x0018, 0x9232);
+Tag const SpectroscopyAcquisitionPhaseColumns(0x0018, 0x9234);
+Tag const CardiacCyclePosition(0x0018, 0x9236);
+Tag const SpecificAbsorptionRateSequence(0x0018, 0x9239);
+Tag const RFEchoTrainLength(0x0018, 0x9240);
+Tag const GradientEchoTrainLength(0x0018, 0x9241);
+Tag const ArterialSpinLabelingContrast(0x0018, 0x9250);
+Tag const MRArterialSpinLabelingSequence(0x0018, 0x9251);
+Tag const ASLTechniqueDescription(0x0018, 0x9252);
+Tag const ASLSlabNumber(0x0018, 0x9253);
+Tag const ASLSlabThickness(0x0018, 0x9254);
+Tag const ASLSlabOrientation(0x0018, 0x9255);
+Tag const ASLMidSlabPosition(0x0018, 0x9256);
+Tag const ASLContext(0x0018, 0x9257);
+Tag const ASLPulseTrainDuration(0x0018, 0x9258);
+Tag const ASLCrusherFlag(0x0018, 0x9259);
+Tag const ASLCrusherFlowLimit(0x0018, 0x925a);
+Tag const ASLCrusherDescription(0x0018, 0x925b);
+Tag const ASLBolusCutoffFlag(0x0018, 0x925c);
+Tag const ASLBolusCutoffTimingSequence(0x0018, 0x925d);
+Tag const ASLBolusCutoffTechnique(0x0018, 0x925e);
+Tag const ASLBolusCutoffDelayTime(0x0018, 0x925f);
+Tag const ASLSlabSequence(0x0018, 0x9260);
+Tag const ChemicalShiftMinimumIntegrationLimitInppm(0x0018, 0x9295);
+Tag const ChemicalShiftMaximumIntegrationLimitInppm(0x0018, 0x9296);
+Tag const WaterReferenceAcquisition(0x0018, 0x9297);
+Tag const EchoPeakPosition(0x0018, 0x9298);
+Tag const CTAcquisitionTypeSequence(0x0018, 0x9301);
+Tag const AcquisitionType(0x0018, 0x9302);
+Tag const TubeAngle(0x0018, 0x9303);
+Tag const CTAcquisitionDetailsSequence(0x0018, 0x9304);
+Tag const RevolutionTime(0x0018, 0x9305);
+Tag const SingleCollimationWidth(0x0018, 0x9306);
+Tag const TotalCollimationWidth(0x0018, 0x9307);
+Tag const CTTableDynamicsSequence(0x0018, 0x9308);
+Tag const TableSpeed(0x0018, 0x9309);
+Tag const TableFeedPerRotation(0x0018, 0x9310);
+Tag const SpiralPitchFactor(0x0018, 0x9311);
+Tag const CTGeometrySequence(0x0018, 0x9312);
+Tag const DataCollectionCenterPatient(0x0018, 0x9313);
+Tag const CTReconstructionSequence(0x0018, 0x9314);
+Tag const ReconstructionAlgorithm(0x0018, 0x9315);
+Tag const ConvolutionKernelGroup(0x0018, 0x9316);
+Tag const ReconstructionFieldOfView(0x0018, 0x9317);
+Tag const ReconstructionTargetCenterPatient(0x0018, 0x9318);
+Tag const ReconstructionAngle(0x0018, 0x9319);
+Tag const ImageFilter(0x0018, 0x9320);
+Tag const CTExposureSequence(0x0018, 0x9321);
+Tag const ReconstructionPixelSpacing(0x0018, 0x9322);
+Tag const ExposureModulationType(0x0018, 0x9323);
+Tag const EstimatedDoseSaving(0x0018, 0x9324);
+Tag const CTXRayDetailsSequence(0x0018, 0x9325);
+Tag const CTPositionSequence(0x0018, 0x9326);
+Tag const TablePosition(0x0018, 0x9327);
+Tag const ExposureTimeInms(0x0018, 0x9328);
+Tag const CTImageFrameTypeSequence(0x0018, 0x9329);
+Tag const XRayTubeCurrentInmA(0x0018, 0x9330);
+Tag const ExposureInmAs(0x0018, 0x9332);
+Tag const ConstantVolumeFlag(0x0018, 0x9333);
+Tag const FluoroscopyFlag(0x0018, 0x9334);
+Tag const DistanceSourceToDataCollectionCenter(0x0018, 0x9335);
+Tag const ContrastBolusAgentNumber(0x0018, 0x9337);
+Tag const ContrastBolusIngredientCodeSequence(0x0018, 0x9338);
+Tag const ContrastAdministrationProfileSequence(0x0018, 0x9340);
+Tag const ContrastBolusUsageSequence(0x0018, 0x9341);
+Tag const ContrastBolusAgentAdministered(0x0018, 0x9342);
+Tag const ContrastBolusAgentDetected(0x0018, 0x9343);
+Tag const ContrastBolusAgentPhase(0x0018, 0x9344);
+Tag const CTDIvol(0x0018, 0x9345);
+Tag const CTDIPhantomTypeCodeSequence(0x0018, 0x9346);
+Tag const CalciumScoringMassFactorPatient(0x0018, 0x9351);
+Tag const CalciumScoringMassFactorDevice(0x0018, 0x9352);
+Tag const EnergyWeightingFactor(0x0018, 0x9353);
+Tag const CTAdditionalXRaySourceSequence(0x0018, 0x9360);
+Tag const ProjectionPixelCalibrationSequence(0x0018, 0x9401);
+Tag const DistanceSourceToIsocenter(0x0018, 0x9402);
+Tag const DistanceObjectToTableTop(0x0018, 0x9403);
+Tag const ObjectPixelSpacingInCenterOfBeam(0x0018, 0x9404);
+Tag const PositionerPositionSequence(0x0018, 0x9405);
+Tag const TablePositionSequence(0x0018, 0x9406);
+Tag const CollimatorShapeSequence(0x0018, 0x9407);
+Tag const PlanesInAcquisition(0x0018, 0x9410);
+Tag const XAXRFFrameCharacteristicsSequence(0x0018, 0x9412);
+Tag const FrameAcquisitionSequence(0x0018, 0x9417);
+Tag const XRayReceptorType(0x0018, 0x9420);
+Tag const AcquisitionProtocolName(0x0018, 0x9423);
+Tag const AcquisitionProtocolDescription(0x0018, 0x9424);
+Tag const ContrastBolusIngredientOpaque(0x0018, 0x9425);
+Tag const DistanceReceptorPlaneToDetectorHousing(0x0018, 0x9426);
+Tag const IntensifierActiveShape(0x0018, 0x9427);
+Tag const IntensifierActiveDimensions(0x0018, 0x9428);
+Tag const PhysicalDetectorSize(0x0018, 0x9429);
+Tag const PositionOfIsocenterProjection(0x0018, 0x9430);
+Tag const FieldOfViewSequence(0x0018, 0x9432);
+Tag const FieldOfViewDescription(0x0018, 0x9433);
+Tag const ExposureControlSensingRegionsSequence(0x0018, 0x9434);
+Tag const ExposureControlSensingRegionShape(0x0018, 0x9435);
+Tag const ExposureControlSensingRegionLeftVerticalEdge(0x0018, 0x9436);
+Tag const ExposureControlSensingRegionRightVerticalEdge(0x0018, 0x9437);
+Tag const ExposureControlSensingRegionUpperHorizontalEdge(0x0018, 0x9438);
+Tag const ExposureControlSensingRegionLowerHorizontalEdge(0x0018, 0x9439);
+Tag const CenterOfCircularExposureControlSensingRegion(0x0018, 0x9440);
+Tag const RadiusOfCircularExposureControlSensingRegion(0x0018, 0x9441);
+Tag const VerticesOfThePolygonalExposureControlSensingRegion(0x0018, 0x9442);
+Tag const ColumnAngulationPatient(0x0018, 0x9447);
+Tag const BeamAngle(0x0018, 0x9449);
+Tag const FrameDetectorParametersSequence(0x0018, 0x9451);
+Tag const CalculatedAnatomyThickness(0x0018, 0x9452);
+Tag const CalibrationSequence(0x0018, 0x9455);
+Tag const ObjectThicknessSequence(0x0018, 0x9456);
+Tag const PlaneIdentification(0x0018, 0x9457);
+Tag const FieldOfViewDimensionsInFloat(0x0018, 0x9461);
+Tag const IsocenterReferenceSystemSequence(0x0018, 0x9462);
+Tag const PositionerIsocenterPrimaryAngle(0x0018, 0x9463);
+Tag const PositionerIsocenterSecondaryAngle(0x0018, 0x9464);
+Tag const PositionerIsocenterDetectorRotationAngle(0x0018, 0x9465);
+Tag const TableXPositionToIsocenter(0x0018, 0x9466);
+Tag const TableYPositionToIsocenter(0x0018, 0x9467);
+Tag const TableZPositionToIsocenter(0x0018, 0x9468);
+Tag const TableHorizontalRotationAngle(0x0018, 0x9469);
+Tag const TableHeadTiltAngle(0x0018, 0x9470);
+Tag const TableCradleTiltAngle(0x0018, 0x9471);
+Tag const FrameDisplayShutterSequence(0x0018, 0x9472);
+Tag const AcquiredImageAreaDoseProduct(0x0018, 0x9473);
+Tag const CArmPositionerTabletopRelationship(0x0018, 0x9474);
+Tag const XRayGeometrySequence(0x0018, 0x9476);
+Tag const IrradiationEventIdentificationSequence(0x0018, 0x9477);
+Tag const XRay3DFrameTypeSequence(0x0018, 0x9504);
+Tag const ContributingSourcesSequence(0x0018, 0x9506);
+Tag const XRay3DAcquisitionSequence(0x0018, 0x9507);
+Tag const PrimaryPositionerScanArc(0x0018, 0x9508);
+Tag const SecondaryPositionerScanArc(0x0018, 0x9509);
+Tag const PrimaryPositionerScanStartAngle(0x0018, 0x9510);
+Tag const SecondaryPositionerScanStartAngle(0x0018, 0x9511);
+Tag const PrimaryPositionerIncrement(0x0018, 0x9514);
+Tag const SecondaryPositionerIncrement(0x0018, 0x9515);
+Tag const StartAcquisitionDateTime(0x0018, 0x9516);
+Tag const EndAcquisitionDateTime(0x0018, 0x9517);
+Tag const PrimaryPositionerIncrementSign(0x0018, 0x9518);
+Tag const SecondaryPositionerIncrementSign(0x0018, 0x9519);
+Tag const ApplicationName(0x0018, 0x9524);
+Tag const ApplicationVersion(0x0018, 0x9525);
+Tag const ApplicationManufacturer(0x0018, 0x9526);
+Tag const AlgorithmType(0x0018, 0x9527);
+Tag const AlgorithmDescription(0x0018, 0x9528);
+Tag const XRay3DReconstructionSequence(0x0018, 0x9530);
+Tag const ReconstructionDescription(0x0018, 0x9531);
+Tag const PerProjectionAcquisitionSequence(0x0018, 0x9538);
+Tag const DetectorPositionSequence(0x0018, 0x9541);
+Tag const XRayAcquisitionDoseSequence(0x0018, 0x9542);
+Tag const XRaySourceIsocenterPrimaryAngle(0x0018, 0x9543);
+Tag const XRaySourceIsocenterSecondaryAngle(0x0018, 0x9544);
+Tag const BreastSupportIsocenterPrimaryAngle(0x0018, 0x9545);
+Tag const BreastSupportIsocenterSecondaryAngle(0x0018, 0x9546);
+Tag const BreastSupportXPositionToIsocenter(0x0018, 0x9547);
+Tag const BreastSupportYPositionToIsocenter(0x0018, 0x9548);
+Tag const BreastSupportZPositionToIsocenter(0x0018, 0x9549);
+Tag const DetectorIsocenterPrimaryAngle(0x0018, 0x9550);
+Tag const DetectorIsocenterSecondaryAngle(0x0018, 0x9551);
+Tag const DetectorXPositionToIsocenter(0x0018, 0x9552);
+Tag const DetectorYPositionToIsocenter(0x0018, 0x9553);
+Tag const DetectorZPositionToIsocenter(0x0018, 0x9554);
+Tag const XRayGridSequence(0x0018, 0x9555);
+Tag const XRayFilterSequence(0x0018, 0x9556);
+Tag const DetectorActiveAreaTLHCPosition(0x0018, 0x9557);
+Tag const DetectorActiveAreaOrientation(0x0018, 0x9558);
+Tag const PositionerPrimaryAngleDirection(0x0018, 0x9559);
+Tag const DiffusionBMatrixSequence(0x0018, 0x9601);
+Tag const DiffusionBValueXX(0x0018, 0x9602);
+Tag const DiffusionBValueXY(0x0018, 0x9603);
+Tag const DiffusionBValueXZ(0x0018, 0x9604);
+Tag const DiffusionBValueYY(0x0018, 0x9605);
+Tag const DiffusionBValueYZ(0x0018, 0x9606);
+Tag const DiffusionBValueZZ(0x0018, 0x9607);
+Tag const DecayCorrectionDateTime(0x0018, 0x9701);
+Tag const StartDensityThreshold(0x0018, 0x9715);
+Tag const StartRelativeDensityDifferenceThreshold(0x0018, 0x9716);
+Tag const StartCardiacTriggerCountThreshold(0x0018, 0x9717);
+Tag const StartRespiratoryTriggerCountThreshold(0x0018, 0x9718);
+Tag const TerminationCountsThreshold(0x0018, 0x9719);
+Tag const TerminationDensityThreshold(0x0018, 0x9720);
+Tag const TerminationRelativeDensityThreshold(0x0018, 0x9721);
+Tag const TerminationTimeThreshold(0x0018, 0x9722);
+Tag const TerminationCardiacTriggerCountThreshold(0x0018, 0x9723);
+Tag const TerminationRespiratoryTriggerCountThreshold(0x0018, 0x9724);
+Tag const DetectorGeometry(0x0018, 0x9725);
+Tag const TransverseDetectorSeparation(0x0018, 0x9726);
+Tag const AxialDetectorDimension(0x0018, 0x9727);
+Tag const RadiopharmaceuticalAgentNumber(0x0018, 0x9729);
+Tag const PETFrameAcquisitionSequence(0x0018, 0x9732);
+Tag const PETDetectorMotionDetailsSequence(0x0018, 0x9733);
+Tag const PETTableDynamicsSequence(0x0018, 0x9734);
+Tag const PETPositionSequence(0x0018, 0x9735);
+Tag const PETFrameCorrectionFactorsSequence(0x0018, 0x9736);
+Tag const RadiopharmaceuticalUsageSequence(0x0018, 0x9737);
+Tag const AttenuationCorrectionSource(0x0018, 0x9738);
+Tag const NumberOfIterations(0x0018, 0x9739);
+Tag const NumberOfSubsets(0x0018, 0x9740);
+Tag const PETReconstructionSequence(0x0018, 0x9749);
+Tag const PETFrameTypeSequence(0x0018, 0x9751);
+Tag const TimeOfFlightInformationUsed(0x0018, 0x9755);
+Tag const ReconstructionType(0x0018, 0x9756);
+Tag const DecayCorrected(0x0018, 0x9758);
+Tag const AttenuationCorrected(0x0018, 0x9759);
+Tag const ScatterCorrected(0x0018, 0x9760);
+Tag const DeadTimeCorrected(0x0018, 0x9761);
+Tag const GantryMotionCorrected(0x0018, 0x9762);
+Tag const PatientMotionCorrected(0x0018, 0x9763);
+Tag const CountLossNormalizationCorrected(0x0018, 0x9764);
+Tag const RandomsCorrected(0x0018, 0x9765);
+Tag const NonUniformRadialSamplingCorrected(0x0018, 0x9766);
+Tag const SensitivityCalibrated(0x0018, 0x9767);
+Tag const DetectorNormalizationCorrection(0x0018, 0x9768);
+Tag const IterativeReconstructionMethod(0x0018, 0x9769);
+Tag const AttenuationCorrectionTemporalRelationship(0x0018, 0x9770);
+Tag const PatientPhysiologicalStateSequence(0x0018, 0x9771);
+Tag const PatientPhysiologicalStateCodeSequence(0x0018, 0x9772);
+Tag const DepthsOfFocus(0x0018, 0x9801);
+Tag const ExcludedIntervalsSequence(0x0018, 0x9803);
+Tag const ExclusionStartDateTime(0x0018, 0x9804);
+Tag const ExclusionDuration(0x0018, 0x9805);
+Tag const USImageDescriptionSequence(0x0018, 0x9806);
+Tag const ImageDataTypeSequence(0x0018, 0x9807);
+Tag const DataType(0x0018, 0x9808);
+Tag const TransducerScanPatternCodeSequence(0x0018, 0x9809);
+Tag const AliasedDataType(0x0018, 0x980b);
+Tag const PositionMeasuringDeviceUsed(0x0018, 0x980c);
+Tag const TransducerGeometryCodeSequence(0x0018, 0x980d);
+Tag const TransducerBeamSteeringCodeSequence(0x0018, 0x980e);
+Tag const TransducerApplicationCodeSequence(0x0018, 0x980f);
+Tag const ZeroVelocityPixelValue(0x0018, 0x9810);
+Tag const ContributingEquipmentSequence(0x0018, 0xa001);
+Tag const ContributionDateTime(0x0018, 0xa002);
+Tag const ContributionDescription(0x0018, 0xa003);
+Tag const StudyInstanceUID(0x0020, 0x000d);
+Tag const SeriesInstanceUID(0x0020, 0x000e);
+Tag const StudyID(0x0020, 0x0010);
+Tag const SeriesNumber(0x0020, 0x0011);
+Tag const AcquisitionNumber(0x0020, 0x0012);
+Tag const InstanceNumber(0x0020, 0x0013);
+Tag const IsotopeNumber(0x0020, 0x0014);
+Tag const PhaseNumber(0x0020, 0x0015);
+Tag const IntervalNumber(0x0020, 0x0016);
+Tag const TimeSlotNumber(0x0020, 0x0017);
+Tag const AngleNumber(0x0020, 0x0018);
+Tag const ItemNumber(0x0020, 0x0019);
+Tag const PatientOrientation(0x0020, 0x0020);
+Tag const OverlayNumber(0x0020, 0x0022);
+Tag const CurveNumber(0x0020, 0x0024);
+Tag const LUTNumber(0x0020, 0x0026);
+Tag const ImagePosition(0x0020, 0x0030);
+Tag const ImagePositionPatient(0x0020, 0x0032);
+Tag const ImageOrientation(0x0020, 0x0035);
+Tag const ImageOrientationPatient(0x0020, 0x0037);
+Tag const Location(0x0020, 0x0050);
+Tag const FrameOfReferenceUID(0x0020, 0x0052);
+Tag const Laterality(0x0020, 0x0060);
+Tag const ImageLaterality(0x0020, 0x0062);
+Tag const ImageGeometryType(0x0020, 0x0070);
+Tag const MaskingImage(0x0020, 0x0080);
+Tag const ReportNumber(0x0020, 0x00aa);
+Tag const TemporalPositionIdentifier(0x0020, 0x0100);
+Tag const NumberOfTemporalPositions(0x0020, 0x0105);
+Tag const TemporalResolution(0x0020, 0x0110);
+Tag const SynchronizationFrameOfReferenceUID(0x0020, 0x0200);
+Tag const SOPInstanceUIDOfConcatenationSource(0x0020, 0x0242);
+Tag const SeriesInStudy(0x0020, 0x1000);
+Tag const AcquisitionsInSeries(0x0020, 0x1001);
+Tag const ImagesInAcquisition(0x0020, 0x1002);
+Tag const ImagesInSeries(0x0020, 0x1003);
+Tag const AcquisitionsInStudy(0x0020, 0x1004);
+Tag const ImagesInStudy(0x0020, 0x1005);
+Tag const Reference(0x0020, 0x1020);
+Tag const PositionReferenceIndicator(0x0020, 0x1040);
+Tag const SliceLocation(0x0020, 0x1041);
+Tag const OtherStudyNumbers(0x0020, 0x1070);
+Tag const NumberOfPatientRelatedStudies(0x0020, 0x1200);
+Tag const NumberOfPatientRelatedSeries(0x0020, 0x1202);
+Tag const NumberOfPatientRelatedInstances(0x0020, 0x1204);
+Tag const NumberOfStudyRelatedSeries(0x0020, 0x1206);
+Tag const NumberOfStudyRelatedInstances(0x0020, 0x1208);
+Tag const NumberOfSeriesRelatedInstances(0x0020, 0x1209);
+Tag const ModifyingDeviceID(0x0020, 0x3401);
+Tag const ModifiedImageID(0x0020, 0x3402);
+Tag const ModifiedImageDate(0x0020, 0x3403);
+Tag const ModifyingDeviceManufacturer(0x0020, 0x3404);
+Tag const ModifiedImageTime(0x0020, 0x3405);
+Tag const ModifiedImageDescription(0x0020, 0x3406);
+Tag const ImageComments(0x0020, 0x4000);
+Tag const OriginalImageIdentification(0x0020, 0x5000);
+Tag const OriginalImageIdentificationNomenclature(0x0020, 0x5002);
+Tag const StackID(0x0020, 0x9056);
+Tag const InStackPositionNumber(0x0020, 0x9057);
+Tag const FrameAnatomySequence(0x0020, 0x9071);
+Tag const FrameLaterality(0x0020, 0x9072);
+Tag const FrameContentSequence(0x0020, 0x9111);
+Tag const PlanePositionSequence(0x0020, 0x9113);
+Tag const PlaneOrientationSequence(0x0020, 0x9116);
+Tag const TemporalPositionIndex(0x0020, 0x9128);
+Tag const NominalCardiacTriggerDelayTime(0x0020, 0x9153);
+Tag const NominalCardiacTriggerTimePriorToRPeak(0x0020, 0x9154);
+Tag const ActualCardiacTriggerTimePriorToRPeak(0x0020, 0x9155);
+Tag const FrameAcquisitionNumber(0x0020, 0x9156);
+Tag const DimensionIndexValues(0x0020, 0x9157);
+Tag const FrameComments(0x0020, 0x9158);
+Tag const ConcatenationUID(0x0020, 0x9161);
+Tag const InConcatenationNumber(0x0020, 0x9162);
+Tag const InConcatenationTotalNumber(0x0020, 0x9163);
+Tag const DimensionOrganizationUID(0x0020, 0x9164);
+Tag const DimensionIndexPointer(0x0020, 0x9165);
+Tag const FunctionalGroupPointer(0x0020, 0x9167);
+Tag const UnassignedSharedConvertedAttributesSequence(0x0020, 0x9170);
+Tag const UnassignedPerFrameConvertedAttributesSequence(0x0020, 0x9171);
+Tag const ConversionSourceAttributesSequence(0x0020, 0x9172);
+Tag const DimensionIndexPrivateCreator(0x0020, 0x9213);
+Tag const DimensionOrganizationSequence(0x0020, 0x9221);
+Tag const DimensionIndexSequence(0x0020, 0x9222);
+Tag const ConcatenationFrameOffsetNumber(0x0020, 0x9228);
+Tag const FunctionalGroupPrivateCreator(0x0020, 0x9238);
+Tag const NominalPercentageOfCardiacPhase(0x0020, 0x9241);
+Tag const NominalPercentageOfRespiratoryPhase(0x0020, 0x9245);
+Tag const StartingRespiratoryAmplitude(0x0020, 0x9246);
+Tag const StartingRespiratoryPhase(0x0020, 0x9247);
+Tag const EndingRespiratoryAmplitude(0x0020, 0x9248);
+Tag const EndingRespiratoryPhase(0x0020, 0x9249);
+Tag const RespiratoryTriggerType(0x0020, 0x9250);
+Tag const RRIntervalTimeNominal(0x0020, 0x9251);
+Tag const ActualCardiacTriggerDelayTime(0x0020, 0x9252);
+Tag const RespiratorySynchronizationSequence(0x0020, 0x9253);
+Tag const RespiratoryIntervalTime(0x0020, 0x9254);
+Tag const NominalRespiratoryTriggerDelayTime(0x0020, 0x9255);
+Tag const RespiratoryTriggerDelayThreshold(0x0020, 0x9256);
+Tag const ActualRespiratoryTriggerDelayTime(0x0020, 0x9257);
+Tag const ImagePositionVolume(0x0020, 0x9301);
+Tag const ImageOrientationVolume(0x0020, 0x9302);
+Tag const UltrasoundAcquisitionGeometry(0x0020, 0x9307);
+Tag const ApexPosition(0x0020, 0x9308);
+Tag const VolumeToTransducerMappingMatrix(0x0020, 0x9309);
+Tag const VolumeToTableMappingMatrix(0x0020, 0x930a);
+Tag const VolumeToTransducerRelationship(0x0020, 0x930b);
+Tag const PatientFrameOfReferenceSource(0x0020, 0x930c);
+Tag const TemporalPositionTimeOffset(0x0020, 0x930d);
+Tag const PlanePositionVolumeSequence(0x0020, 0x930e);
+Tag const PlaneOrientationVolumeSequence(0x0020, 0x930f);
+Tag const TemporalPositionSequence(0x0020, 0x9310);
+Tag const DimensionOrganizationType(0x0020, 0x9311);
+Tag const VolumeFrameOfReferenceUID(0x0020, 0x9312);
+Tag const TableFrameOfReferenceUID(0x0020, 0x9313);
+Tag const DimensionDescriptionLabel(0x0020, 0x9421);
+Tag const PatientOrientationInFrameSequence(0x0020, 0x9450);
+Tag const FrameLabel(0x0020, 0x9453);
+Tag const AcquisitionIndex(0x0020, 0x9518);
+Tag const ContributingSOPInstancesReferenceSequence(0x0020, 0x9529);
+Tag const ReconstructionIndex(0x0020, 0x9536);
+Tag const LightPathFilterPassThroughWavelength(0x0022, 0x0001);
+Tag const LightPathFilterPassBand(0x0022, 0x0002);
+Tag const ImagePathFilterPassThroughWavelength(0x0022, 0x0003);
+Tag const ImagePathFilterPassBand(0x0022, 0x0004);
+Tag const PatientEyeMovementCommanded(0x0022, 0x0005);
+Tag const PatientEyeMovementCommandCodeSequence(0x0022, 0x0006);
+Tag const SphericalLensPower(0x0022, 0x0007);
+Tag const CylinderLensPower(0x0022, 0x0008);
+Tag const CylinderAxis(0x0022, 0x0009);
+Tag const EmmetropicMagnification(0x0022, 0x000a);
+Tag const IntraOcularPressure(0x0022, 0x000b);
+Tag const HorizontalFieldOfView(0x0022, 0x000c);
+Tag const PupilDilated(0x0022, 0x000d);
+Tag const DegreeOfDilation(0x0022, 0x000e);
+Tag const StereoBaselineAngle(0x0022, 0x0010);
+Tag const StereoBaselineDisplacement(0x0022, 0x0011);
+Tag const StereoHorizontalPixelOffset(0x0022, 0x0012);
+Tag const StereoVerticalPixelOffset(0x0022, 0x0013);
+Tag const StereoRotation(0x0022, 0x0014);
+Tag const AcquisitionDeviceTypeCodeSequence(0x0022, 0x0015);
+Tag const IlluminationTypeCodeSequence(0x0022, 0x0016);
+Tag const LightPathFilterTypeStackCodeSequence(0x0022, 0x0017);
+Tag const ImagePathFilterTypeStackCodeSequence(0x0022, 0x0018);
+Tag const LensesCodeSequence(0x0022, 0x0019);
+Tag const ChannelDescriptionCodeSequence(0x0022, 0x001a);
+Tag const RefractiveStateSequence(0x0022, 0x001b);
+Tag const MydriaticAgentCodeSequence(0x0022, 0x001c);
+Tag const RelativeImagePositionCodeSequence(0x0022, 0x001d);
+Tag const CameraAngleOfView(0x0022, 0x001e);
+Tag const StereoPairsSequence(0x0022, 0x0020);
+Tag const LeftImageSequence(0x0022, 0x0021);
+Tag const RightImageSequence(0x0022, 0x0022);
+Tag const StereoPairsPresent(0x0022, 0x0028);
+Tag const AxialLengthOfTheEye(0x0022, 0x0030);
+Tag const OphthalmicFrameLocationSequence(0x0022, 0x0031);
+Tag const ReferenceCoordinates(0x0022, 0x0032);
+Tag const DepthSpatialResolution(0x0022, 0x0035);
+Tag const MaximumDepthDistortion(0x0022, 0x0036);
+Tag const AlongScanSpatialResolution(0x0022, 0x0037);
+Tag const MaximumAlongScanDistortion(0x0022, 0x0038);
+Tag const OphthalmicImageOrientation(0x0022, 0x0039);
+Tag const DepthOfTransverseImage(0x0022, 0x0041);
+Tag const MydriaticAgentConcentrationUnitsSequence(0x0022, 0x0042);
+Tag const AcrossScanSpatialResolution(0x0022, 0x0048);
+Tag const MaximumAcrossScanDistortion(0x0022, 0x0049);
+Tag const MydriaticAgentConcentration(0x0022, 0x004e);
+Tag const IlluminationWaveLength(0x0022, 0x0055);
+Tag const IlluminationPower(0x0022, 0x0056);
+Tag const IlluminationBandwidth(0x0022, 0x0057);
+Tag const MydriaticAgentSequence(0x0022, 0x0058);
+Tag const OphthalmicAxialMeasurementsRightEyeSequence(0x0022, 0x1007);
+Tag const OphthalmicAxialMeasurementsLeftEyeSequence(0x0022, 0x1008);
+Tag const OphthalmicAxialMeasurementsDeviceType(0x0022, 0x1009);
+Tag const OphthalmicAxialLengthMeasurementsType(0x0022, 0x1010);
+Tag const OphthalmicAxialLengthSequence(0x0022, 0x1012);
+Tag const OphthalmicAxialLength(0x0022, 0x1019);
+Tag const LensStatusCodeSequence(0x0022, 0x1024);
+Tag const VitreousStatusCodeSequence(0x0022, 0x1025);
+Tag const IOLFormulaCodeSequence(0x0022, 0x1028);
+Tag const IOLFormulaDetail(0x0022, 0x1029);
+Tag const KeratometerIndex(0x0022, 0x1033);
+Tag const SourceOfOphthalmicAxialLengthCodeSequence(0x0022, 0x1035);
+Tag const TargetRefraction(0x0022, 0x1037);
+Tag const RefractiveProcedureOccurred(0x0022, 0x1039);
+Tag const RefractiveSurgeryTypeCodeSequence(0x0022, 0x1040);
+Tag const OphthalmicUltrasoundMethodCodeSequence(0x0022, 0x1044);
+Tag const OphthalmicAxialLengthMeasurementsSequence(0x0022, 0x1050);
+Tag const IOLPower(0x0022, 0x1053);
+Tag const PredictedRefractiveError(0x0022, 0x1054);
+Tag const OphthalmicAxialLengthVelocity(0x0022, 0x1059);
+Tag const LensStatusDescription(0x0022, 0x1065);
+Tag const VitreousStatusDescription(0x0022, 0x1066);
+Tag const IOLPowerSequence(0x0022, 0x1090);
+Tag const LensConstantSequence(0x0022, 0x1092);
+Tag const IOLManufacturer(0x0022, 0x1093);
+Tag const LensConstantDescription(0x0022, 0x1094);
+Tag const ImplantName(0x0022, 0x1095);
+Tag const KeratometryMeasurementTypeCodeSequence(0x0022, 0x1096);
+Tag const ImplantPartNumber(0x0022, 0x1097);
+Tag const ReferencedOphthalmicAxialMeasurementsSequence(0x0022, 0x1100);
+Tag const OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence(0x0022, 0x1101);
+Tag const RefractiveErrorBeforeRefractiveSurgeryCodeSequence(0x0022, 0x1103);
+Tag const IOLPowerForExactEmmetropia(0x0022, 0x1121);
+Tag const IOLPowerForExactTargetRefraction(0x0022, 0x1122);
+Tag const AnteriorChamberDepthDefinitionCodeSequence(0x0022, 0x1125);
+Tag const LensThicknessSequence(0x0022, 0x1127);
+Tag const AnteriorChamberDepthSequence(0x0022, 0x1128);
+Tag const LensThickness(0x0022, 0x1130);
+Tag const AnteriorChamberDepth(0x0022, 0x1131);
+Tag const SourceOfLensThicknessDataCodeSequence(0x0022, 0x1132);
+Tag const SourceOfAnteriorChamberDepthDataCodeSequence(0x0022, 0x1133);
+Tag const SourceOfRefractiveMeasurementsSequence(0x0022, 0x1134);
+Tag const SourceOfRefractiveMeasurementsCodeSequence(0x0022, 0x1135);
+Tag const OphthalmicAxialLengthMeasurementModified(0x0022, 0x1140);
+Tag const OphthalmicAxialLengthDataSourceCodeSequence(0x0022, 0x1150);
+Tag const OphthalmicAxialLengthAcquisitionMethodCodeSequence(0x0022, 0x1153);
+Tag const SignalToNoiseRatio(0x0022, 0x1155);
+Tag const OphthalmicAxialLengthDataSourceDescription(0x0022, 0x1159);
+Tag const OphthalmicAxialLengthMeasurementsTotalLengthSequence(0x0022, 0x1210);
+Tag const OphthalmicAxialLengthMeasurementsSegmentalLengthSequence(0x0022, 0x1211);
+Tag const OphthalmicAxialLengthMeasurementsLengthSummationSequence(0x0022, 0x1212);
+Tag const UltrasoundOphthalmicAxialLengthMeasurementsSequence(0x0022, 0x1220);
+Tag const OpticalOphthalmicAxialLengthMeasurementsSequence(0x0022, 0x1225);
+Tag const UltrasoundSelectedOphthalmicAxialLengthSequence(0x0022, 0x1230);
+Tag const OphthalmicAxialLengthSelectionMethodCodeSequence(0x0022, 0x1250);
+Tag const OpticalSelectedOphthalmicAxialLengthSequence(0x0022, 0x1255);
+Tag const SelectedSegmentalOphthalmicAxialLengthSequence(0x0022, 0x1257);
+Tag const SelectedTotalOphthalmicAxialLengthSequence(0x0022, 0x1260);
+Tag const OphthalmicAxialLengthQualityMetricSequence(0x0022, 0x1262);
+Tag const OphthalmicAxialLengthQualityMetricTypeCodeSequence(0x0022, 0x1265);
+Tag const OphthalmicAxialLengthQualityMetricTypeDescription(0x0022, 0x1273);
+Tag const IntraocularLensCalculationsRightEyeSequence(0x0022, 0x1300);
+Tag const IntraocularLensCalculationsLeftEyeSequence(0x0022, 0x1310);
+Tag const ReferencedOphthalmicAxialLengthMeasurementQCImageSequence(0x0022, 0x1330);
+Tag const OphthalmicMappingDeviceType(0x0022, 0x1415);
+Tag const AcquisitionMethodCodeSequence(0x0022, 0x1420);
+Tag const AcquisitionMethodAlgorithmSequence(0x0022, 0x1423);
+Tag const OphthalmicThicknessMapTypeCodeSequence(0x0022, 0x1436);
+Tag const OphthalmicThicknessMappingNormalsSequence(0x0022, 0x1443);
+Tag const RetinalThicknessDefinitionCodeSequence(0x0022, 0x1445);
+Tag const PixelValueMappingToCodedConceptSequence(0x0022, 0x1450);
+Tag const MappedPixelValue(0x0022, 0x1452);
+Tag const PixelValueMappingExplanation(0x0022, 0x1454);
+Tag const OphthalmicThicknessMapQualityThresholdSequence(0x0022, 0x1458);
+Tag const OphthalmicThicknessMapThresholdQualityRating(0x0022, 0x1460);
+Tag const AnatomicStructureReferencePoint(0x0022, 0x1463);
+Tag const RegistrationToLocalizerSequence(0x0022, 0x1465);
+Tag const RegisteredLocalizerUnits(0x0022, 0x1466);
+Tag const RegisteredLocalizerTopLeftHandCorner(0x0022, 0x1467);
+Tag const RegisteredLocalizerBottomRightHandCorner(0x0022, 0x1468);
+Tag const OphthalmicThicknessMapQualityRatingSequence(0x0022, 0x1470);
+Tag const RelevantOPTAttributesSequence(0x0022, 0x1472);
+Tag const TransformationMethodCodeSequence(0x0022, 0x1512);
+Tag const TransformationAlgorithmSequence(0x0022, 0x1513);
+Tag const OphthalmicAxialLengthMethod(0x0022, 0x1515);
+Tag const OphthalmicFOV(0x0022, 0x1517);
+Tag const TwoDimensionalToThreeDimensionalMapSequence(0x0022, 0x1518);
+Tag const WideFieldOphthalmicPhotographyQualityRatingSequence(0x0022, 0x1525);
+Tag const WideFieldOphthalmicPhotographyQualityThresholdSequence(0x0022, 0x1526);
+Tag const WideFieldOphthalmicPhotographyThresholdQualityRating(0x0022, 0x1527);
+Tag const XCoordinatesCenterPixelViewAngle(0x0022, 0x1528);
+Tag const YCoordinatesCenterPixelViewAngle(0x0022, 0x1529);
+Tag const NumberOfMapPoints(0x0022, 0x1530);
+Tag const TwoDimensionalToThreeDimensionalMapData(0x0022, 0x1531);
+Tag const VisualFieldHorizontalExtent(0x0024, 0x0010);
+Tag const VisualFieldVerticalExtent(0x0024, 0x0011);
+Tag const VisualFieldShape(0x0024, 0x0012);
+Tag const ScreeningTestModeCodeSequence(0x0024, 0x0016);
+Tag const MaximumStimulusLuminance(0x0024, 0x0018);
+Tag const BackgroundLuminance(0x0024, 0x0020);
+Tag const StimulusColorCodeSequence(0x0024, 0x0021);
+Tag const BackgroundIlluminationColorCodeSequence(0x0024, 0x0024);
+Tag const StimulusArea(0x0024, 0x0025);
+Tag const StimulusPresentationTime(0x0024, 0x0028);
+Tag const FixationSequence(0x0024, 0x0032);
+Tag const FixationMonitoringCodeSequence(0x0024, 0x0033);
+Tag const VisualFieldCatchTrialSequence(0x0024, 0x0034);
+Tag const FixationCheckedQuantity(0x0024, 0x0035);
+Tag const PatientNotProperlyFixatedQuantity(0x0024, 0x0036);
+Tag const PresentedVisualStimuliDataFlag(0x0024, 0x0037);
+Tag const NumberOfVisualStimuli(0x0024, 0x0038);
+Tag const ExcessiveFixationLossesDataFlag(0x0024, 0x0039);
+Tag const ExcessiveFixationLosses(0x0024, 0x0040);
+Tag const StimuliRetestingQuantity(0x0024, 0x0042);
+Tag const CommentsOnPatientPerformanceOfVisualField(0x0024, 0x0044);
+Tag const FalseNegativesEstimateFlag(0x0024, 0x0045);
+Tag const FalseNegativesEstimate(0x0024, 0x0046);
+Tag const NegativeCatchTrialsQuantity(0x0024, 0x0048);
+Tag const FalseNegativesQuantity(0x0024, 0x0050);
+Tag const ExcessiveFalseNegativesDataFlag(0x0024, 0x0051);
+Tag const ExcessiveFalseNegatives(0x0024, 0x0052);
+Tag const FalsePositivesEstimateFlag(0x0024, 0x0053);
+Tag const FalsePositivesEstimate(0x0024, 0x0054);
+Tag const CatchTrialsDataFlag(0x0024, 0x0055);
+Tag const PositiveCatchTrialsQuantity(0x0024, 0x0056);
+Tag const TestPointNormalsDataFlag(0x0024, 0x0057);
+Tag const TestPointNormalsSequence(0x0024, 0x0058);
+Tag const GlobalDeviationProbabilityNormalsFlag(0x0024, 0x0059);
+Tag const FalsePositivesQuantity(0x0024, 0x0060);
+Tag const ExcessiveFalsePositivesDataFlag(0x0024, 0x0061);
+Tag const ExcessiveFalsePositives(0x0024, 0x0062);
+Tag const VisualFieldTestNormalsFlag(0x0024, 0x0063);
+Tag const ResultsNormalsSequence(0x0024, 0x0064);
+Tag const AgeCorrectedSensitivityDeviationAlgorithmSequence(0x0024, 0x0065);
+Tag const GlobalDeviationFromNormal(0x0024, 0x0066);
+Tag const GeneralizedDefectSensitivityDeviationAlgorithmSequence(0x0024, 0x0067);
+Tag const LocalizedDeviationFromNormal(0x0024, 0x0068);
+Tag const PatientReliabilityIndicator(0x0024, 0x0069);
+Tag const VisualFieldMeanSensitivity(0x0024, 0x0070);
+Tag const GlobalDeviationProbability(0x0024, 0x0071);
+Tag const LocalDeviationProbabilityNormalsFlag(0x0024, 0x0072);
+Tag const LocalizedDeviationProbability(0x0024, 0x0073);
+Tag const ShortTermFluctuationCalculated(0x0024, 0x0074);
+Tag const ShortTermFluctuation(0x0024, 0x0075);
+Tag const ShortTermFluctuationProbabilityCalculated(0x0024, 0x0076);
+Tag const ShortTermFluctuationProbability(0x0024, 0x0077);
+Tag const CorrectedLocalizedDeviationFromNormalCalculated(0x0024, 0x0078);
+Tag const CorrectedLocalizedDeviationFromNormal(0x0024, 0x0079);
+Tag const CorrectedLocalizedDeviationFromNormalProbabilityCalculated(0x0024, 0x0080);
+Tag const CorrectedLocalizedDeviationFromNormalProbability(0x0024, 0x0081);
+Tag const GlobalDeviationProbabilitySequence(0x0024, 0x0083);
+Tag const LocalizedDeviationProbabilitySequence(0x0024, 0x0085);
+Tag const FovealSensitivityMeasured(0x0024, 0x0086);
+Tag const FovealSensitivity(0x0024, 0x0087);
+Tag const VisualFieldTestDuration(0x0024, 0x0088);
+Tag const VisualFieldTestPointSequence(0x0024, 0x0089);
+Tag const VisualFieldTestPointXCoordinate(0x0024, 0x0090);
+Tag const VisualFieldTestPointYCoordinate(0x0024, 0x0091);
+Tag const AgeCorrectedSensitivityDeviationValue(0x0024, 0x0092);
+Tag const StimulusResults(0x0024, 0x0093);
+Tag const SensitivityValue(0x0024, 0x0094);
+Tag const RetestStimulusSeen(0x0024, 0x0095);
+Tag const RetestSensitivityValue(0x0024, 0x0096);
+Tag const VisualFieldTestPointNormalsSequence(0x0024, 0x0097);
+Tag const QuantifiedDefect(0x0024, 0x0098);
+Tag const AgeCorrectedSensitivityDeviationProbabilityValue(0x0024, 0x0100);
+Tag const GeneralizedDefectCorrectedSensitivityDeviationFlag(0x0024, 0x0102);
+Tag const GeneralizedDefectCorrectedSensitivityDeviationValue(0x0024, 0x0103);
+Tag const GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue(0x0024, 0x0104);
+Tag const MinimumSensitivityValue(0x0024, 0x0105);
+Tag const BlindSpotLocalized(0x0024, 0x0106);
+Tag const BlindSpotXCoordinate(0x0024, 0x0107);
+Tag const BlindSpotYCoordinate(0x0024, 0x0108);
+Tag const VisualAcuityMeasurementSequence(0x0024, 0x0110);
+Tag const RefractiveParametersUsedOnPatientSequence(0x0024, 0x0112);
+Tag const MeasurementLaterality(0x0024, 0x0113);
+Tag const OphthalmicPatientClinicalInformationLeftEyeSequence(0x0024, 0x0114);
+Tag const OphthalmicPatientClinicalInformationRightEyeSequence(0x0024, 0x0115);
+Tag const FovealPointNormativeDataFlag(0x0024, 0x0117);
+Tag const FovealPointProbabilityValue(0x0024, 0x0118);
+Tag const ScreeningBaselineMeasured(0x0024, 0x0120);
+Tag const ScreeningBaselineMeasuredSequence(0x0024, 0x0122);
+Tag const ScreeningBaselineType(0x0024, 0x0124);
+Tag const ScreeningBaselineValue(0x0024, 0x0126);
+Tag const AlgorithmSource(0x0024, 0x0202);
+Tag const DataSetName(0x0024, 0x0306);
+Tag const DataSetVersion(0x0024, 0x0307);
+Tag const DataSetSource(0x0024, 0x0308);
+Tag const DataSetDescription(0x0024, 0x0309);
+Tag const VisualFieldTestReliabilityGlobalIndexSequence(0x0024, 0x0317);
+Tag const VisualFieldGlobalResultsIndexSequence(0x0024, 0x0320);
+Tag const DataObservationSequence(0x0024, 0x0325);
+Tag const IndexNormalsFlag(0x0024, 0x0338);
+Tag const IndexProbability(0x0024, 0x0341);
+Tag const IndexProbabilitySequence(0x0024, 0x0344);
+Tag const SamplesPerPixel(0x0028, 0x0002);
+Tag const SamplesPerPixelUsed(0x0028, 0x0003);
+Tag const PhotometricInterpretation(0x0028, 0x0004);
+Tag const ImageDimensions(0x0028, 0x0005);
+Tag const PlanarConfiguration(0x0028, 0x0006);
+Tag const NumberOfFrames(0x0028, 0x0008);
+Tag const FrameIncrementPointer(0x0028, 0x0009);
+Tag const FrameDimensionPointer(0x0028, 0x000a);
+Tag const Rows(0x0028, 0x0010);
+Tag const Columns(0x0028, 0x0011);
+Tag const Planes(0x0028, 0x0012);
+Tag const UltrasoundColorDataPresent(0x0028, 0x0014);
+Tag const PixelSpacing(0x0028, 0x0030);
+Tag const ZoomFactor(0x0028, 0x0031);
+Tag const ZoomCenter(0x0028, 0x0032);
+Tag const PixelAspectRatio(0x0028, 0x0034);
+Tag const ImageFormat(0x0028, 0x0040);
+Tag const ManipulatedImage(0x0028, 0x0050);
+Tag const CorrectedImage(0x0028, 0x0051);
+Tag const CompressionRecognitionCode(0x0028, 0x005f);
+Tag const CompressionCode(0x0028, 0x0060);
+Tag const CompressionOriginator(0x0028, 0x0061);
+Tag const CompressionLabel(0x0028, 0x0062);
+Tag const CompressionDescription(0x0028, 0x0063);
+Tag const CompressionSequence(0x0028, 0x0065);
+Tag const CompressionStepPointers(0x0028, 0x0066);
+Tag const RepeatInterval(0x0028, 0x0068);
+Tag const BitsGrouped(0x0028, 0x0069);
+Tag const PerimeterTable(0x0028, 0x0070);
+Tag const PerimeterValue(0x0028, 0x0071);
+Tag const PredictorRows(0x0028, 0x0080);
+Tag const PredictorColumns(0x0028, 0x0081);
+Tag const PredictorConstants(0x0028, 0x0082);
+Tag const BlockedPixels(0x0028, 0x0090);
+Tag const BlockRows(0x0028, 0x0091);
+Tag const BlockColumns(0x0028, 0x0092);
+Tag const RowOverlap(0x0028, 0x0093);
+Tag const ColumnOverlap(0x0028, 0x0094);
+Tag const BitsAllocated(0x0028, 0x0100);
+Tag const BitsStored(0x0028, 0x0101);
+Tag const HighBit(0x0028, 0x0102);
+Tag const PixelRepresentation(0x0028, 0x0103);
+Tag const SmallestValidPixelValue(0x0028, 0x0104);
+Tag const LargestValidPixelValue(0x0028, 0x0105);
+Tag const SmallestImagePixelValue(0x0028, 0x0106);
+Tag const LargestImagePixelValue(0x0028, 0x0107);
+Tag const SmallestPixelValueInSeries(0x0028, 0x0108);
+Tag const LargestPixelValueInSeries(0x0028, 0x0109);
+Tag const SmallestImagePixelValueInPlane(0x0028, 0x0110);
+Tag const LargestImagePixelValueInPlane(0x0028, 0x0111);
+Tag const PixelPaddingValue(0x0028, 0x0120);
+Tag const PixelPaddingRangeLimit(0x0028, 0x0121);
+Tag const FloatPixelPaddingValue(0x0028, 0x0122);
+Tag const DoubleFloatPixelPaddingValue(0x0028, 0x0123);
+Tag const FloatPixelPaddingRangeLimit(0x0028, 0x0124);
+Tag const DoubleFloatPixelPaddingRangeLimit(0x0028, 0x0125);
+Tag const ImageLocation(0x0028, 0x0200);
+Tag const QualityControlImage(0x0028, 0x0300);
+Tag const BurnedInAnnotation(0x0028, 0x0301);
+Tag const RecognizableVisualFeatures(0x0028, 0x0302);
+Tag const LongitudinalTemporalInformationModified(0x0028, 0x0303);
+Tag const ReferencedColorPaletteInstanceUID(0x0028, 0x0304);
+Tag const TransformLabel(0x0028, 0x0400);
+Tag const TransformVersionNumber(0x0028, 0x0401);
+Tag const NumberOfTransformSteps(0x0028, 0x0402);
+Tag const SequenceOfCompressedData(0x0028, 0x0403);
+Tag const DetailsOfCoefficients(0x0028, 0x0404);
+Tag const DCTLabel(0x0028, 0x0700);
+Tag const DataBlockDescription(0x0028, 0x0701);
+Tag const DataBlock(0x0028, 0x0702);
+Tag const NormalizationFactorFormat(0x0028, 0x0710);
+Tag const ZonalMapNumberFormat(0x0028, 0x0720);
+Tag const ZonalMapLocation(0x0028, 0x0721);
+Tag const ZonalMapFormat(0x0028, 0x0722);
+Tag const AdaptiveMapFormat(0x0028, 0x0730);
+Tag const CodeNumberFormat(0x0028, 0x0740);
+Tag const PixelSpacingCalibrationType(0x0028, 0x0a02);
+Tag const PixelSpacingCalibrationDescription(0x0028, 0x0a04);
+Tag const PixelIntensityRelationship(0x0028, 0x1040);
+Tag const PixelIntensityRelationshipSign(0x0028, 0x1041);
+Tag const WindowCenter(0x0028, 0x1050);
+Tag const WindowWidth(0x0028, 0x1051);
+Tag const RescaleIntercept(0x0028, 0x1052);
+Tag const RescaleSlope(0x0028, 0x1053);
+Tag const RescaleType(0x0028, 0x1054);
+Tag const WindowCenterWidthExplanation(0x0028, 0x1055);
+Tag const VOILUTFunction(0x0028, 0x1056);
+Tag const GrayScale(0x0028, 0x1080);
+Tag const RecommendedViewingMode(0x0028, 0x1090);
+Tag const GrayLookupTableDescriptor(0x0028, 0x1100);
+Tag const RedPaletteColorLookupTableDescriptor(0x0028, 0x1101);
+Tag const GreenPaletteColorLookupTableDescriptor(0x0028, 0x1102);
+Tag const BluePaletteColorLookupTableDescriptor(0x0028, 0x1103);
+Tag const AlphaPaletteColorLookupTableDescriptor(0x0028, 0x1104);
+Tag const LargeRedPaletteColorLookupTableDescriptor(0x0028, 0x1111);
+Tag const LargeGreenPaletteColorLookupTableDescriptor(0x0028, 0x1112);
+Tag const LargeBluePaletteColorLookupTableDescriptor(0x0028, 0x1113);
+Tag const PaletteColorLookupTableUID(0x0028, 0x1199);
+Tag const GrayLookupTableData(0x0028, 0x1200);
+Tag const RedPaletteColorLookupTableData(0x0028, 0x1201);
+Tag const GreenPaletteColorLookupTableData(0x0028, 0x1202);
+Tag const BluePaletteColorLookupTableData(0x0028, 0x1203);
+Tag const AlphaPaletteColorLookupTableData(0x0028, 0x1204);
+Tag const LargeRedPaletteColorLookupTableData(0x0028, 0x1211);
+Tag const LargeGreenPaletteColorLookupTableData(0x0028, 0x1212);
+Tag const LargeBluePaletteColorLookupTableData(0x0028, 0x1213);
+Tag const LargePaletteColorLookupTableUID(0x0028, 0x1214);
+Tag const SegmentedRedPaletteColorLookupTableData(0x0028, 0x1221);
+Tag const SegmentedGreenPaletteColorLookupTableData(0x0028, 0x1222);
+Tag const SegmentedBluePaletteColorLookupTableData(0x0028, 0x1223);
+Tag const BreastImplantPresent(0x0028, 0x1300);
+Tag const PartialView(0x0028, 0x1350);
+Tag const PartialViewDescription(0x0028, 0x1351);
+Tag const PartialViewCodeSequence(0x0028, 0x1352);
+Tag const SpatialLocationsPreserved(0x0028, 0x135a);
+Tag const DataFrameAssignmentSequence(0x0028, 0x1401);
+Tag const DataPathAssignment(0x0028, 0x1402);
+Tag const BitsMappedToColorLookupTable(0x0028, 0x1403);
+Tag const BlendingLUT1Sequence(0x0028, 0x1404);
+Tag const BlendingLUT1TransferFunction(0x0028, 0x1405);
+Tag const BlendingWeightConstant(0x0028, 0x1406);
+Tag const BlendingLookupTableDescriptor(0x0028, 0x1407);
+Tag const BlendingLookupTableData(0x0028, 0x1408);
+Tag const EnhancedPaletteColorLookupTableSequence(0x0028, 0x140b);
+Tag const BlendingLUT2Sequence(0x0028, 0x140c);
+Tag const BlendingLUT2TransferFunction(0x0028, 0x140d);
+Tag const DataPathID(0x0028, 0x140e);
+Tag const RGBLUTTransferFunction(0x0028, 0x140f);
+Tag const AlphaLUTTransferFunction(0x0028, 0x1410);
+Tag const ICCProfile(0x0028, 0x2000);
+Tag const LossyImageCompression(0x0028, 0x2110);
+Tag const LossyImageCompressionRatio(0x0028, 0x2112);
+Tag const LossyImageCompressionMethod(0x0028, 0x2114);
+Tag const ModalityLUTSequence(0x0028, 0x3000);
+Tag const LUTDescriptor(0x0028, 0x3002);
+Tag const LUTExplanation(0x0028, 0x3003);
+Tag const ModalityLUTType(0x0028, 0x3004);
+Tag const LUTData(0x0028, 0x3006);
+Tag const VOILUTSequence(0x0028, 0x3010);
+Tag const SoftcopyVOILUTSequence(0x0028, 0x3110);
+Tag const ImagePresentationComments(0x0028, 0x4000);
+Tag const BiPlaneAcquisitionSequence(0x0028, 0x5000);
+Tag const RepresentativeFrameNumber(0x0028, 0x6010);
+Tag const FrameNumbersOfInterest(0x0028, 0x6020);
+Tag const FrameOfInterestDescription(0x0028, 0x6022);
+Tag const FrameOfInterestType(0x0028, 0x6023);
+Tag const MaskPointers(0x0028, 0x6030);
+Tag const RWavePointer(0x0028, 0x6040);
+Tag const MaskSubtractionSequence(0x0028, 0x6100);
+Tag const MaskOperation(0x0028, 0x6101);
+Tag const ApplicableFrameRange(0x0028, 0x6102);
+Tag const MaskFrameNumbers(0x0028, 0x6110);
+Tag const ContrastFrameAveraging(0x0028, 0x6112);
+Tag const MaskSubPixelShift(0x0028, 0x6114);
+Tag const TIDOffset(0x0028, 0x6120);
+Tag const MaskOperationExplanation(0x0028, 0x6190);
+Tag const EquipmentAdministratorSequence(0x0028, 0x7000);
+Tag const NumberOfDisplaySubsystems(0x0028, 0x7001);
+Tag const CurrentConfigurationID(0x0028, 0x7002);
+Tag const DisplaySubsystemID(0x0028, 0x7003);
+Tag const DisplaySubsystemName(0x0028, 0x7004);
+Tag const DisplaySubsystemDescription(0x0028, 0x7005);
+Tag const SystemStatus(0x0028, 0x7006);
+Tag const SystemStatusComment(0x0028, 0x7007);
+Tag const TargetLuminanceCharacteristicsSequence(0x0028, 0x7008);
+Tag const LuminanceCharacteristicsID(0x0028, 0x7009);
+Tag const DisplaySubsystemConfigurationSequence(0x0028, 0x700a);
+Tag const ConfigurationID(0x0028, 0x700b);
+Tag const ConfigurationName(0x0028, 0x700c);
+Tag const ConfigurationDescription(0x0028, 0x700d);
+Tag const ReferencedTargetLuminanceCharacteristicsID(0x0028, 0x700e);
+Tag const QAResultsSequence(0x0028, 0x700f);
+Tag const DisplaySubsystemQAResultsSequence(0x0028, 0x7010);
+Tag const ConfigurationQAResultsSequence(0x0028, 0x7011);
+Tag const MeasurementEquipmentSequence(0x0028, 0x7012);
+Tag const MeasurementFunctions(0x0028, 0x7013);
+Tag const MeasurementEquipmentType(0x0028, 0x7014);
+Tag const VisualEvaluationResultSequence(0x0028, 0x7015);
+Tag const DisplayCalibrationResultSequence(0x0028, 0x7016);
+Tag const DDLValue(0x0028, 0x7017);
+Tag const CIExyWhitePoint(0x0028, 0x7018);
+Tag const DisplayFunctionType(0x0028, 0x7019);
+Tag const GammaValue(0x0028, 0x701a);
+Tag const NumberOfLuminancePoints(0x0028, 0x701b);
+Tag const LuminanceResponseSequence(0x0028, 0x701c);
+Tag const TargetMinimumLuminance(0x0028, 0x701d);
+Tag const TargetMaximumLuminance(0x0028, 0x701e);
+Tag const LuminanceValue(0x0028, 0x701f);
+Tag const LuminanceResponseDescription(0x0028, 0x7020);
+Tag const WhitePointFlag(0x0028, 0x7021);
+Tag const DisplayDeviceTypeCodeSequence(0x0028, 0x7022);
+Tag const DisplaySubsystemSequence(0x0028, 0x7023);
+Tag const LuminanceResultSequence(0x0028, 0x7024);
+Tag const AmbientLightValueSource(0x0028, 0x7025);
+Tag const MeasuredCharacteristics(0x0028, 0x7026);
+Tag const LuminanceUniformityResultSequence(0x0028, 0x7027);
+Tag const VisualEvaluationTestSequence(0x0028, 0x7028);
+Tag const TestResult(0x0028, 0x7029);
+Tag const TestResultComment(0x0028, 0x702a);
+Tag const TestImageValidation(0x0028, 0x702b);
+Tag const TestPatternCodeSequence(0x0028, 0x702c);
+Tag const MeasurementPatternCodeSequence(0x0028, 0x702d);
+Tag const VisualEvaluationMethodCodeSequence(0x0028, 0x702e);
+Tag const PixelDataProviderURL(0x0028, 0x7fe0);
+Tag const DataPointRows(0x0028, 0x9001);
+Tag const DataPointColumns(0x0028, 0x9002);
+Tag const SignalDomainColumns(0x0028, 0x9003);
+Tag const LargestMonochromePixelValue(0x0028, 0x9099);
+Tag const DataRepresentation(0x0028, 0x9108);
+Tag const PixelMeasuresSequence(0x0028, 0x9110);
+Tag const FrameVOILUTSequence(0x0028, 0x9132);
+Tag const PixelValueTransformationSequence(0x0028, 0x9145);
+Tag const SignalDomainRows(0x0028, 0x9235);
+Tag const DisplayFilterPercentage(0x0028, 0x9411);
+Tag const FramePixelShiftSequence(0x0028, 0x9415);
+Tag const SubtractionItemID(0x0028, 0x9416);
+Tag const PixelIntensityRelationshipLUTSequence(0x0028, 0x9422);
+Tag const FramePixelDataPropertiesSequence(0x0028, 0x9443);
+Tag const GeometricalProperties(0x0028, 0x9444);
+Tag const GeometricMaximumDistortion(0x0028, 0x9445);
+Tag const ImageProcessingApplied(0x0028, 0x9446);
+Tag const MaskSelectionMode(0x0028, 0x9454);
+Tag const LUTFunction(0x0028, 0x9474);
+Tag const MaskVisibilityPercentage(0x0028, 0x9478);
+Tag const PixelShiftSequence(0x0028, 0x9501);
+Tag const RegionPixelShiftSequence(0x0028, 0x9502);
+Tag const VerticesOfTheRegion(0x0028, 0x9503);
+Tag const MultiFramePresentationSequence(0x0028, 0x9505);
+Tag const PixelShiftFrameRange(0x0028, 0x9506);
+Tag const LUTFrameRange(0x0028, 0x9507);
+Tag const ImageToEquipmentMappingMatrix(0x0028, 0x9520);
+Tag const EquipmentCoordinateSystemIdentification(0x0028, 0x9537);
+Tag const StudyStatusID(0x0032, 0x000a);
+Tag const StudyPriorityID(0x0032, 0x000c);
+Tag const StudyIDIssuer(0x0032, 0x0012);
+Tag const StudyVerifiedDate(0x0032, 0x0032);
+Tag const StudyVerifiedTime(0x0032, 0x0033);
+Tag const StudyReadDate(0x0032, 0x0034);
+Tag const StudyReadTime(0x0032, 0x0035);
+Tag const ScheduledStudyStartDate(0x0032, 0x1000);
+Tag const ScheduledStudyStartTime(0x0032, 0x1001);
+Tag const ScheduledStudyStopDate(0x0032, 0x1010);
+Tag const ScheduledStudyStopTime(0x0032, 0x1011);
+Tag const ScheduledStudyLocation(0x0032, 0x1020);
+Tag const ScheduledStudyLocationAETitle(0x0032, 0x1021);
+Tag const ReasonForStudy(0x0032, 0x1030);
+Tag const RequestingPhysicianIdentificationSequence(0x0032, 0x1031);
+Tag const RequestingPhysician(0x0032, 0x1032);
+Tag const RequestingService(0x0032, 0x1033);
+Tag const RequestingServiceCodeSequence(0x0032, 0x1034);
+Tag const StudyArrivalDate(0x0032, 0x1040);
+Tag const StudyArrivalTime(0x0032, 0x1041);
+Tag const StudyCompletionDate(0x0032, 0x1050);
+Tag const StudyCompletionTime(0x0032, 0x1051);
+Tag const StudyComponentStatusID(0x0032, 0x1055);
+Tag const RequestedProcedureDescription(0x0032, 0x1060);
+Tag const RequestedProcedureCodeSequence(0x0032, 0x1064);
+Tag const RequestedContrastAgent(0x0032, 0x1070);
+Tag const StudyComments(0x0032, 0x4000);
+Tag const ReferencedPatientAliasSequence(0x0038, 0x0004);
+Tag const VisitStatusID(0x0038, 0x0008);
+Tag const AdmissionID(0x0038, 0x0010);
+Tag const IssuerOfAdmissionID(0x0038, 0x0011);
+Tag const IssuerOfAdmissionIDSequence(0x0038, 0x0014);
+Tag const RouteOfAdmissions(0x0038, 0x0016);
+Tag const ScheduledAdmissionDate(0x0038, 0x001a);
+Tag const ScheduledAdmissionTime(0x0038, 0x001b);
+Tag const ScheduledDischargeDate(0x0038, 0x001c);
+Tag const ScheduledDischargeTime(0x0038, 0x001d);
+Tag const ScheduledPatientInstitutionResidence(0x0038, 0x001e);
+Tag const AdmittingDate(0x0038, 0x0020);
+Tag const AdmittingTime(0x0038, 0x0021);
+Tag const DischargeDate(0x0038, 0x0030);
+Tag const DischargeTime(0x0038, 0x0032);
+Tag const DischargeDiagnosisDescription(0x0038, 0x0040);
+Tag const DischargeDiagnosisCodeSequence(0x0038, 0x0044);
+Tag const SpecialNeeds(0x0038, 0x0050);
+Tag const ServiceEpisodeID(0x0038, 0x0060);
+Tag const IssuerOfServiceEpisodeID(0x0038, 0x0061);
+Tag const ServiceEpisodeDescription(0x0038, 0x0062);
+Tag const IssuerOfServiceEpisodeIDSequence(0x0038, 0x0064);
+Tag const PertinentDocumentsSequence(0x0038, 0x0100);
+Tag const PertinentResourcesSequence(0x0038, 0x0101);
+Tag const ResourceDescription(0x0038, 0x0102);
+Tag const CurrentPatientLocation(0x0038, 0x0300);
+Tag const PatientInstitutionResidence(0x0038, 0x0400);
+Tag const PatientState(0x0038, 0x0500);
+Tag const PatientClinicalTrialParticipationSequence(0x0038, 0x0502);
+Tag const VisitComments(0x0038, 0x4000);
+Tag const WaveformOriginality(0x003a, 0x0004);
+Tag const NumberOfWaveformChannels(0x003a, 0x0005);
+Tag const NumberOfWaveformSamples(0x003a, 0x0010);
+Tag const SamplingFrequency(0x003a, 0x001a);
+Tag const MultiplexGroupLabel(0x003a, 0x0020);
+Tag const ChannelDefinitionSequence(0x003a, 0x0200);
+Tag const WaveformChannelNumber(0x003a, 0x0202);
+Tag const ChannelLabel(0x003a, 0x0203);
+Tag const ChannelStatus(0x003a, 0x0205);
+Tag const ChannelSourceSequence(0x003a, 0x0208);
+Tag const ChannelSourceModifiersSequence(0x003a, 0x0209);
+Tag const SourceWaveformSequence(0x003a, 0x020a);
+Tag const ChannelDerivationDescription(0x003a, 0x020c);
+Tag const ChannelSensitivity(0x003a, 0x0210);
+Tag const ChannelSensitivityUnitsSequence(0x003a, 0x0211);
+Tag const ChannelSensitivityCorrectionFactor(0x003a, 0x0212);
+Tag const ChannelBaseline(0x003a, 0x0213);
+Tag const ChannelTimeSkew(0x003a, 0x0214);
+Tag const ChannelSampleSkew(0x003a, 0x0215);
+Tag const ChannelOffset(0x003a, 0x0218);
+Tag const WaveformBitsStored(0x003a, 0x021a);
+Tag const FilterLowFrequency(0x003a, 0x0220);
+Tag const FilterHighFrequency(0x003a, 0x0221);
+Tag const NotchFilterFrequency(0x003a, 0x0222);
+Tag const NotchFilterBandwidth(0x003a, 0x0223);
+Tag const WaveformDataDisplayScale(0x003a, 0x0230);
+Tag const WaveformDisplayBackgroundCIELabValue(0x003a, 0x0231);
+Tag const WaveformPresentationGroupSequence(0x003a, 0x0240);
+Tag const PresentationGroupNumber(0x003a, 0x0241);
+Tag const ChannelDisplaySequence(0x003a, 0x0242);
+Tag const ChannelRecommendedDisplayCIELabValue(0x003a, 0x0244);
+Tag const ChannelPosition(0x003a, 0x0245);
+Tag const DisplayShadingFlag(0x003a, 0x0246);
+Tag const FractionalChannelDisplayScale(0x003a, 0x0247);
+Tag const AbsoluteChannelDisplayScale(0x003a, 0x0248);
+Tag const MultiplexedAudioChannelsDescriptionCodeSequence(0x003a, 0x0300);
+Tag const ChannelIdentificationCode(0x003a, 0x0301);
+Tag const ChannelMode(0x003a, 0x0302);
+Tag const ScheduledStationAETitle(0x0040, 0x0001);
+Tag const ScheduledProcedureStepStartDate(0x0040, 0x0002);
+Tag const ScheduledProcedureStepStartTime(0x0040, 0x0003);
+Tag const ScheduledProcedureStepEndDate(0x0040, 0x0004);
+Tag const ScheduledProcedureStepEndTime(0x0040, 0x0005);
+Tag const ScheduledPerformingPhysicianName(0x0040, 0x0006);
+Tag const ScheduledProcedureStepDescription(0x0040, 0x0007);
+Tag const ScheduledProtocolCodeSequence(0x0040, 0x0008);
+Tag const ScheduledProcedureStepID(0x0040, 0x0009);
+Tag const StageCodeSequence(0x0040, 0x000a);
+Tag const ScheduledPerformingPhysicianIdentificationSequence(0x0040, 0x000b);
+Tag const ScheduledStationName(0x0040, 0x0010);
+Tag const ScheduledProcedureStepLocation(0x0040, 0x0011);
+Tag const PreMedication(0x0040, 0x0012);
+Tag const ScheduledProcedureStepStatus(0x0040, 0x0020);
+Tag const OrderPlacerIdentifierSequence(0x0040, 0x0026);
+Tag const OrderFillerIdentifierSequence(0x0040, 0x0027);
+Tag const LocalNamespaceEntityID(0x0040, 0x0031);
+Tag const UniversalEntityID(0x0040, 0x0032);
+Tag const UniversalEntityIDType(0x0040, 0x0033);
+Tag const IdentifierTypeCode(0x0040, 0x0035);
+Tag const AssigningFacilitySequence(0x0040, 0x0036);
+Tag const AssigningJurisdictionCodeSequence(0x0040, 0x0039);
+Tag const AssigningAgencyOrDepartmentCodeSequence(0x0040, 0x003a);
+Tag const ScheduledProcedureStepSequence(0x0040, 0x0100);
+Tag const ReferencedNonImageCompositeSOPInstanceSequence(0x0040, 0x0220);
+Tag const PerformedStationAETitle(0x0040, 0x0241);
+Tag const PerformedStationName(0x0040, 0x0242);
+Tag const PerformedLocation(0x0040, 0x0243);
+Tag const PerformedProcedureStepStartDate(0x0040, 0x0244);
+Tag const PerformedProcedureStepStartTime(0x0040, 0x0245);
+Tag const PerformedProcedureStepEndDate(0x0040, 0x0250);
+Tag const PerformedProcedureStepEndTime(0x0040, 0x0251);
+Tag const PerformedProcedureStepStatus(0x0040, 0x0252);
+Tag const PerformedProcedureStepID(0x0040, 0x0253);
+Tag const PerformedProcedureStepDescription(0x0040, 0x0254);
+Tag const PerformedProcedureTypeDescription(0x0040, 0x0255);
+Tag const PerformedProtocolCodeSequence(0x0040, 0x0260);
+Tag const PerformedProtocolType(0x0040, 0x0261);
+Tag const ScheduledStepAttributesSequence(0x0040, 0x0270);
+Tag const RequestAttributesSequence(0x0040, 0x0275);
+Tag const CommentsOnThePerformedProcedureStep(0x0040, 0x0280);
+Tag const PerformedProcedureStepDiscontinuationReasonCodeSequence(0x0040, 0x0281);
+Tag const QuantitySequence(0x0040, 0x0293);
+Tag const Quantity(0x0040, 0x0294);
+Tag const MeasuringUnitsSequence(0x0040, 0x0295);
+Tag const BillingItemSequence(0x0040, 0x0296);
+Tag const TotalTimeOfFluoroscopy(0x0040, 0x0300);
+Tag const TotalNumberOfExposures(0x0040, 0x0301);
+Tag const EntranceDose(0x0040, 0x0302);
+Tag const ExposedArea(0x0040, 0x0303);
+Tag const DistanceSourceToEntrance(0x0040, 0x0306);
+Tag const DistanceSourceToSupport(0x0040, 0x0307);
+Tag const ExposureDoseSequence(0x0040, 0x030e);
+Tag const CommentsOnRadiationDose(0x0040, 0x0310);
+Tag const XRayOutput(0x0040, 0x0312);
+Tag const HalfValueLayer(0x0040, 0x0314);
+Tag const OrganDose(0x0040, 0x0316);
+Tag const OrganExposed(0x0040, 0x0318);
+Tag const BillingProcedureStepSequence(0x0040, 0x0320);
+Tag const FilmConsumptionSequence(0x0040, 0x0321);
+Tag const BillingSuppliesAndDevicesSequence(0x0040, 0x0324);
+Tag const ReferencedProcedureStepSequence(0x0040, 0x0330);
+Tag const PerformedSeriesSequence(0x0040, 0x0340);
+Tag const CommentsOnTheScheduledProcedureStep(0x0040, 0x0400);
+Tag const ProtocolContextSequence(0x0040, 0x0440);
+Tag const ContentItemModifierSequence(0x0040, 0x0441);
+Tag const ScheduledSpecimenSequence(0x0040, 0x0500);
+Tag const SpecimenAccessionNumber(0x0040, 0x050a);
+Tag const ContainerIdentifier(0x0040, 0x0512);
+Tag const IssuerOfTheContainerIdentifierSequence(0x0040, 0x0513);
+Tag const AlternateContainerIdentifierSequence(0x0040, 0x0515);
+Tag const ContainerTypeCodeSequence(0x0040, 0x0518);
+Tag const ContainerDescription(0x0040, 0x051a);
+Tag const ContainerComponentSequence(0x0040, 0x0520);
+Tag const SpecimenSequence(0x0040, 0x0550);
+Tag const SpecimenIdentifier(0x0040, 0x0551);
+Tag const SpecimenDescriptionSequenceTrial(0x0040, 0x0552);
+Tag const SpecimenDescriptionTrial(0x0040, 0x0553);
+Tag const SpecimenUID(0x0040, 0x0554);
+Tag const AcquisitionContextSequence(0x0040, 0x0555);
+Tag const AcquisitionContextDescription(0x0040, 0x0556);
+Tag const SpecimenTypeCodeSequence(0x0040, 0x059a);
+Tag const SpecimenDescriptionSequence(0x0040, 0x0560);
+Tag const IssuerOfTheSpecimenIdentifierSequence(0x0040, 0x0562);
+Tag const SpecimenShortDescription(0x0040, 0x0600);
+Tag const SpecimenDetailedDescription(0x0040, 0x0602);
+Tag const SpecimenPreparationSequence(0x0040, 0x0610);
+Tag const SpecimenPreparationStepContentItemSequence(0x0040, 0x0612);
+Tag const SpecimenLocalizationContentItemSequence(0x0040, 0x0620);
+Tag const SlideIdentifier(0x0040, 0x06fa);
+Tag const ImageCenterPointCoordinatesSequence(0x0040, 0x071a);
+Tag const XOffsetInSlideCoordinateSystem(0x0040, 0x072a);
+Tag const YOffsetInSlideCoordinateSystem(0x0040, 0x073a);
+Tag const ZOffsetInSlideCoordinateSystem(0x0040, 0x074a);
+Tag const PixelSpacingSequence(0x0040, 0x08d8);
+Tag const CoordinateSystemAxisCodeSequence(0x0040, 0x08da);
+Tag const MeasurementUnitsCodeSequence(0x0040, 0x08ea);
+Tag const VitalStainCodeSequenceTrial(0x0040, 0x09f8);
+Tag const RequestedProcedureID(0x0040, 0x1001);
+Tag const ReasonForTheRequestedProcedure(0x0040, 0x1002);
+Tag const RequestedProcedurePriority(0x0040, 0x1003);
+Tag const PatientTransportArrangements(0x0040, 0x1004);
+Tag const RequestedProcedureLocation(0x0040, 0x1005);
+Tag const PlacerOrderNumberProcedure(0x0040, 0x1006);
+Tag const FillerOrderNumberProcedure(0x0040, 0x1007);
+Tag const ConfidentialityCode(0x0040, 0x1008);
+Tag const ReportingPriority(0x0040, 0x1009);
+Tag const ReasonForRequestedProcedureCodeSequence(0x0040, 0x100a);
+Tag const NamesOfIntendedRecipientsOfResults(0x0040, 0x1010);
+Tag const IntendedRecipientsOfResultsIdentificationSequence(0x0040, 0x1011);
+Tag const ReasonForPerformedProcedureCodeSequence(0x0040, 0x1012);
+Tag const RequestedProcedureDescriptionTrial(0x0040, 0x1060);
+Tag const PersonIdentificationCodeSequence(0x0040, 0x1101);
+Tag const PersonAddress(0x0040, 0x1102);
+Tag const PersonTelephoneNumbers(0x0040, 0x1103);
+Tag const PersonTelecomInformation(0x0040, 0x1104);
+Tag const RequestedProcedureComments(0x0040, 0x1400);
+Tag const ReasonForTheImagingServiceRequest(0x0040, 0x2001);
+Tag const IssueDateOfImagingServiceRequest(0x0040, 0x2004);
+Tag const IssueTimeOfImagingServiceRequest(0x0040, 0x2005);
+Tag const PlacerOrderNumberImagingServiceRequestRetired(0x0040, 0x2006);
+Tag const FillerOrderNumberImagingServiceRequestRetired(0x0040, 0x2007);
+Tag const OrderEnteredBy(0x0040, 0x2008);
+Tag const OrderEntererLocation(0x0040, 0x2009);
+Tag const OrderCallbackPhoneNumber(0x0040, 0x2010);
+Tag const OrderCallbackTelecomInformation(0x0040, 0x2011);
+Tag const PlacerOrderNumberImagingServiceRequest(0x0040, 0x2016);
+Tag const FillerOrderNumberImagingServiceRequest(0x0040, 0x2017);
+Tag const ImagingServiceRequestComments(0x0040, 0x2400);
+Tag const ConfidentialityConstraintOnPatientDataDescription(0x0040, 0x3001);
+Tag const GeneralPurposeScheduledProcedureStepStatus(0x0040, 0x4001);
+Tag const GeneralPurposePerformedProcedureStepStatus(0x0040, 0x4002);
+Tag const GeneralPurposeScheduledProcedureStepPriority(0x0040, 0x4003);
+Tag const ScheduledProcessingApplicationsCodeSequence(0x0040, 0x4004);
+Tag const ScheduledProcedureStepStartDateTime(0x0040, 0x4005);
+Tag const MultipleCopiesFlag(0x0040, 0x4006);
+Tag const PerformedProcessingApplicationsCodeSequence(0x0040, 0x4007);
+Tag const HumanPerformerCodeSequence(0x0040, 0x4009);
+Tag const ScheduledProcedureStepModificationDateTime(0x0040, 0x4010);
+Tag const ExpectedCompletionDateTime(0x0040, 0x4011);
+Tag const ResultingGeneralPurposePerformedProcedureStepsSequence(0x0040, 0x4015);
+Tag const ReferencedGeneralPurposeScheduledProcedureStepSequence(0x0040, 0x4016);
+Tag const ScheduledWorkitemCodeSequence(0x0040, 0x4018);
+Tag const PerformedWorkitemCodeSequence(0x0040, 0x4019);
+Tag const InputAvailabilityFlag(0x0040, 0x4020);
+Tag const InputInformationSequence(0x0040, 0x4021);
+Tag const RelevantInformationSequence(0x0040, 0x4022);
+Tag const ReferencedGeneralPurposeScheduledProcedureStepTransactionUID(0x0040, 0x4023);
+Tag const ScheduledStationNameCodeSequence(0x0040, 0x4025);
+Tag const ScheduledStationClassCodeSequence(0x0040, 0x4026);
+Tag const ScheduledStationGeographicLocationCodeSequence(0x0040, 0x4027);
+Tag const PerformedStationNameCodeSequence(0x0040, 0x4028);
+Tag const PerformedStationClassCodeSequence(0x0040, 0x4029);
+Tag const PerformedStationGeographicLocationCodeSequence(0x0040, 0x4030);
+Tag const RequestedSubsequentWorkitemCodeSequence(0x0040, 0x4031);
+Tag const NonDICOMOutputCodeSequence(0x0040, 0x4032);
+Tag const OutputInformationSequence(0x0040, 0x4033);
+Tag const ScheduledHumanPerformersSequence(0x0040, 0x4034);
+Tag const ActualHumanPerformersSequence(0x0040, 0x4035);
+Tag const HumanPerformerOrganization(0x0040, 0x4036);
+Tag const HumanPerformerName(0x0040, 0x4037);
+Tag const RawDataHandling(0x0040, 0x4040);
+Tag const InputReadinessState(0x0040, 0x4041);
+Tag const PerformedProcedureStepStartDateTime(0x0040, 0x4050);
+Tag const PerformedProcedureStepEndDateTime(0x0040, 0x4051);
+Tag const ProcedureStepCancellationDateTime(0x0040, 0x4052);
+Tag const EntranceDoseInmGy(0x0040, 0x8302);
+Tag const ParametricMapFrameTypeSequence(0x0040, 0x9092);
+Tag const ReferencedImageRealWorldValueMappingSequence(0x0040, 0x9094);
+Tag const RealWorldValueMappingSequence(0x0040, 0x9096);
+Tag const PixelValueMappingCodeSequence(0x0040, 0x9098);
+Tag const LUTLabel(0x0040, 0x9210);
+Tag const RealWorldValueLastValueMapped(0x0040, 0x9211);
+Tag const RealWorldValueLUTData(0x0040, 0x9212);
+Tag const RealWorldValueFirstValueMapped(0x0040, 0x9216);
+Tag const QuantityDefinitionSequence(0x0040, 0x9220);
+Tag const RealWorldValueIntercept(0x0040, 0x9224);
+Tag const RealWorldValueSlope(0x0040, 0x9225);
+Tag const FindingsFlagTrial(0x0040, 0xa007);
+Tag const RelationshipType(0x0040, 0xa010);
+Tag const FindingsSequenceTrial(0x0040, 0xa020);
+Tag const FindingsGroupUIDTrial(0x0040, 0xa021);
+Tag const ReferencedFindingsGroupUIDTrial(0x0040, 0xa022);
+Tag const FindingsGroupRecordingDateTrial(0x0040, 0xa023);
+Tag const FindingsGroupRecordingTimeTrial(0x0040, 0xa024);
+Tag const FindingsSourceCategoryCodeSequenceTrial(0x0040, 0xa026);
+Tag const VerifyingOrganization(0x0040, 0xa027);
+Tag const DocumentingOrganizationIdentifierCodeSequenceTrial(0x0040, 0xa028);
+Tag const VerificationDateTime(0x0040, 0xa030);
+Tag const ObservationDateTime(0x0040, 0xa032);
+Tag const ValueType(0x0040, 0xa040);
+Tag const ConceptNameCodeSequence(0x0040, 0xa043);
+Tag const MeasurementPrecisionDescriptionTrial(0x0040, 0xa047);
+Tag const ContinuityOfContent(0x0040, 0xa050);
+Tag const UrgencyOrPriorityAlertsTrial(0x0040, 0xa057);
+Tag const SequencingIndicatorTrial(0x0040, 0xa060);
+Tag const DocumentIdentifierCodeSequenceTrial(0x0040, 0xa066);
+Tag const DocumentAuthorTrial(0x0040, 0xa067);
+Tag const DocumentAuthorIdentifierCodeSequenceTrial(0x0040, 0xa068);
+Tag const IdentifierCodeSequenceTrial(0x0040, 0xa070);
+Tag const VerifyingObserverSequence(0x0040, 0xa073);
+Tag const ObjectBinaryIdentifierTrial(0x0040, 0xa074);
+Tag const VerifyingObserverName(0x0040, 0xa075);
+Tag const DocumentingObserverIdentifierCodeSequenceTrial(0x0040, 0xa076);
+Tag const AuthorObserverSequence(0x0040, 0xa078);
+Tag const ParticipantSequence(0x0040, 0xa07a);
+Tag const CustodialOrganizationSequence(0x0040, 0xa07c);
+Tag const ParticipationType(0x0040, 0xa080);
+Tag const ParticipationDateTime(0x0040, 0xa082);
+Tag const ObserverType(0x0040, 0xa084);
+Tag const ProcedureIdentifierCodeSequenceTrial(0x0040, 0xa085);
+Tag const VerifyingObserverIdentificationCodeSequence(0x0040, 0xa088);
+Tag const ObjectDirectoryBinaryIdentifierTrial(0x0040, 0xa089);
+Tag const EquivalentCDADocumentSequence(0x0040, 0xa090);
+Tag const ReferencedWaveformChannels(0x0040, 0xa0b0);
+Tag const DateOfDocumentOrVerbalTransactionTrial(0x0040, 0xa110);
+Tag const TimeOfDocumentCreationOrVerbalTransactionTrial(0x0040, 0xa112);
+Tag const DateTime(0x0040, 0xa120);
+Tag const Date(0x0040, 0xa121);
+Tag const Time(0x0040, 0xa122);
+Tag const PersonName(0x0040, 0xa123);
+Tag const UID(0x0040, 0xa124);
+Tag const ReportStatusIDTrial(0x0040, 0xa125);
+Tag const TemporalRangeType(0x0040, 0xa130);
+Tag const ReferencedSamplePositions(0x0040, 0xa132);
+Tag const ReferencedFrameNumbers(0x0040, 0xa136);
+Tag const ReferencedTimeOffsets(0x0040, 0xa138);
+Tag const ReferencedDateTime(0x0040, 0xa13a);
+Tag const TextValue(0x0040, 0xa160);
+Tag const FloatingPointValue(0x0040, 0xa161);
+Tag const RationalNumeratorValue(0x0040, 0xa162);
+Tag const RationalDenominatorValue(0x0040, 0xa163);
+Tag const ObservationCategoryCodeSequenceTrial(0x0040, 0xa167);
+Tag const ConceptCodeSequence(0x0040, 0xa168);
+Tag const BibliographicCitationTrial(0x0040, 0xa16a);
+Tag const PurposeOfReferenceCodeSequence(0x0040, 0xa170);
+Tag const ObservationUID(0x0040, 0xa171);
+Tag const ReferencedObservationUIDTrial(0x0040, 0xa172);
+Tag const ReferencedObservationClassTrial(0x0040, 0xa173);
+Tag const ReferencedObjectObservationClassTrial(0x0040, 0xa174);
+Tag const AnnotationGroupNumber(0x0040, 0xa180);
+Tag const ObservationDateTrial(0x0040, 0xa192);
+Tag const ObservationTimeTrial(0x0040, 0xa193);
+Tag const MeasurementAutomationTrial(0x0040, 0xa194);
+Tag const ModifierCodeSequence(0x0040, 0xa195);
+Tag const IdentificationDescriptionTrial(0x0040, 0xa224);
+Tag const CoordinatesSetGeometricTypeTrial(0x0040, 0xa290);
+Tag const AlgorithmCodeSequenceTrial(0x0040, 0xa296);
+Tag const AlgorithmDescriptionTrial(0x0040, 0xa297);
+Tag const PixelCoordinatesSetTrial(0x0040, 0xa29a);
+Tag const MeasuredValueSequence(0x0040, 0xa300);
+Tag const NumericValueQualifierCodeSequence(0x0040, 0xa301);
+Tag const CurrentObserverTrial(0x0040, 0xa307);
+Tag const NumericValue(0x0040, 0xa30a);
+Tag const ReferencedAccessionSequenceTrial(0x0040, 0xa313);
+Tag const ReportStatusCommentTrial(0x0040, 0xa33a);
+Tag const ProcedureContextSequenceTrial(0x0040, 0xa340);
+Tag const VerbalSourceTrial(0x0040, 0xa352);
+Tag const AddressTrial(0x0040, 0xa353);
+Tag const TelephoneNumberTrial(0x0040, 0xa354);
+Tag const VerbalSourceIdentifierCodeSequenceTrial(0x0040, 0xa358);
+Tag const PredecessorDocumentsSequence(0x0040, 0xa360);
+Tag const ReferencedRequestSequence(0x0040, 0xa370);
+Tag const PerformedProcedureCodeSequence(0x0040, 0xa372);
+Tag const CurrentRequestedProcedureEvidenceSequence(0x0040, 0xa375);
+Tag const ReportDetailSequenceTrial(0x0040, 0xa380);
+Tag const PertinentOtherEvidenceSequence(0x0040, 0xa385);
+Tag const HL7StructuredDocumentReferenceSequence(0x0040, 0xa390);
+Tag const ObservationSubjectUIDTrial(0x0040, 0xa402);
+Tag const ObservationSubjectClassTrial(0x0040, 0xa403);
+Tag const ObservationSubjectTypeCodeSequenceTrial(0x0040, 0xa404);
+Tag const CompletionFlag(0x0040, 0xa491);
+Tag const CompletionFlagDescription(0x0040, 0xa492);
+Tag const VerificationFlag(0x0040, 0xa493);
+Tag const ArchiveRequested(0x0040, 0xa494);
+Tag const PreliminaryFlag(0x0040, 0xa496);
+Tag const ContentTemplateSequence(0x0040, 0xa504);
+Tag const IdenticalDocumentsSequence(0x0040, 0xa525);
+Tag const ObservationSubjectContextFlagTrial(0x0040, 0xa600);
+Tag const ObserverContextFlagTrial(0x0040, 0xa601);
+Tag const ProcedureContextFlagTrial(0x0040, 0xa603);
+Tag const ContentSequence(0x0040, 0xa730);
+Tag const RelationshipSequenceTrial(0x0040, 0xa731);
+Tag const RelationshipTypeCodeSequenceTrial(0x0040, 0xa732);
+Tag const LanguageCodeSequenceTrial(0x0040, 0xa744);
+Tag const UniformResourceLocatorTrial(0x0040, 0xa992);
+Tag const WaveformAnnotationSequence(0x0040, 0xb020);
+Tag const TemplateIdentifier(0x0040, 0xdb00);
+Tag const TemplateVersion(0x0040, 0xdb06);
+Tag const TemplateLocalVersion(0x0040, 0xdb07);
+Tag const TemplateExtensionFlag(0x0040, 0xdb0b);
+Tag const TemplateExtensionOrganizationUID(0x0040, 0xdb0c);
+Tag const TemplateExtensionCreatorUID(0x0040, 0xdb0d);
+Tag const ReferencedContentItemIdentifier(0x0040, 0xdb73);
+Tag const HL7InstanceIdentifier(0x0040, 0xe001);
+Tag const HL7DocumentEffectiveTime(0x0040, 0xe004);
+Tag const HL7DocumentTypeCodeSequence(0x0040, 0xe006);
+Tag const DocumentClassCodeSequence(0x0040, 0xe008);
+Tag const RetrieveURI(0x0040, 0xe010);
+Tag const RetrieveLocationUID(0x0040, 0xe011);
+Tag const TypeOfInstances(0x0040, 0xe020);
+Tag const DICOMRetrievalSequence(0x0040, 0xe021);
+Tag const DICOMMediaRetrievalSequence(0x0040, 0xe022);
+Tag const WADORetrievalSequence(0x0040, 0xe023);
+Tag const XDSRetrievalSequence(0x0040, 0xe024);
+Tag const WADORSRetrievalSequence(0x0040, 0xe025);
+Tag const RepositoryUniqueID(0x0040, 0xe030);
+Tag const HomeCommunityID(0x0040, 0xe031);
+Tag const DocumentTitle(0x0042, 0x0010);
+Tag const EncapsulatedDocument(0x0042, 0x0011);
+Tag const MIMETypeOfEncapsulatedDocument(0x0042, 0x0012);
+Tag const SourceInstanceSequence(0x0042, 0x0013);
+Tag const ListOfMIMETypes(0x0042, 0x0014);
+Tag const ProductPackageIdentifier(0x0044, 0x0001);
+Tag const SubstanceAdministrationApproval(0x0044, 0x0002);
+Tag const ApprovalStatusFurtherDescription(0x0044, 0x0003);
+Tag const ApprovalStatusDateTime(0x0044, 0x0004);
+Tag const ProductTypeCodeSequence(0x0044, 0x0007);
+Tag const ProductName(0x0044, 0x0008);
+Tag const ProductDescription(0x0044, 0x0009);
+Tag const ProductLotIdentifier(0x0044, 0x000a);
+Tag const ProductExpirationDateTime(0x0044, 0x000b);
+Tag const SubstanceAdministrationDateTime(0x0044, 0x0010);
+Tag const SubstanceAdministrationNotes(0x0044, 0x0011);
+Tag const SubstanceAdministrationDeviceID(0x0044, 0x0012);
+Tag const ProductParameterSequence(0x0044, 0x0013);
+Tag const SubstanceAdministrationParameterSequence(0x0044, 0x0019);
+Tag const LensDescription(0x0046, 0x0012);
+Tag const RightLensSequence(0x0046, 0x0014);
+Tag const LeftLensSequence(0x0046, 0x0015);
+Tag const UnspecifiedLateralityLensSequence(0x0046, 0x0016);
+Tag const CylinderSequence(0x0046, 0x0018);
+Tag const PrismSequence(0x0046, 0x0028);
+Tag const HorizontalPrismPower(0x0046, 0x0030);
+Tag const HorizontalPrismBase(0x0046, 0x0032);
+Tag const VerticalPrismPower(0x0046, 0x0034);
+Tag const VerticalPrismBase(0x0046, 0x0036);
+Tag const LensSegmentType(0x0046, 0x0038);
+Tag const OpticalTransmittance(0x0046, 0x0040);
+Tag const ChannelWidth(0x0046, 0x0042);
+Tag const PupilSize(0x0046, 0x0044);
+Tag const CornealSize(0x0046, 0x0046);
+Tag const AutorefractionRightEyeSequence(0x0046, 0x0050);
+Tag const AutorefractionLeftEyeSequence(0x0046, 0x0052);
+Tag const DistancePupillaryDistance(0x0046, 0x0060);
+Tag const NearPupillaryDistance(0x0046, 0x0062);
+Tag const IntermediatePupillaryDistance(0x0046, 0x0063);
+Tag const OtherPupillaryDistance(0x0046, 0x0064);
+Tag const KeratometryRightEyeSequence(0x0046, 0x0070);
+Tag const KeratometryLeftEyeSequence(0x0046, 0x0071);
+Tag const SteepKeratometricAxisSequence(0x0046, 0x0074);
+Tag const RadiusOfCurvature(0x0046, 0x0075);
+Tag const KeratometricPower(0x0046, 0x0076);
+Tag const KeratometricAxis(0x0046, 0x0077);
+Tag const FlatKeratometricAxisSequence(0x0046, 0x0080);
+Tag const BackgroundColor(0x0046, 0x0092);
+Tag const Optotype(0x0046, 0x0094);
+Tag const OptotypePresentation(0x0046, 0x0095);
+Tag const SubjectiveRefractionRightEyeSequence(0x0046, 0x0097);
+Tag const SubjectiveRefractionLeftEyeSequence(0x0046, 0x0098);
+Tag const AddNearSequence(0x0046, 0x0100);
+Tag const AddIntermediateSequence(0x0046, 0x0101);
+Tag const AddOtherSequence(0x0046, 0x0102);
+Tag const AddPower(0x0046, 0x0104);
+Tag const ViewingDistance(0x0046, 0x0106);
+Tag const VisualAcuityTypeCodeSequence(0x0046, 0x0121);
+Tag const VisualAcuityRightEyeSequence(0x0046, 0x0122);
+Tag const VisualAcuityLeftEyeSequence(0x0046, 0x0123);
+Tag const VisualAcuityBothEyesOpenSequence(0x0046, 0x0124);
+Tag const ViewingDistanceType(0x0046, 0x0125);
+Tag const VisualAcuityModifiers(0x0046, 0x0135);
+Tag const DecimalVisualAcuity(0x0046, 0x0137);
+Tag const OptotypeDetailedDefinition(0x0046, 0x0139);
+Tag const ReferencedRefractiveMeasurementsSequence(0x0046, 0x0145);
+Tag const SpherePower(0x0046, 0x0146);
+Tag const CylinderPower(0x0046, 0x0147);
+Tag const CornealTopographySurface(0x0046, 0x0201);
+Tag const CornealVertexLocation(0x0046, 0x0202);
+Tag const PupilCentroidXCoordinate(0x0046, 0x0203);
+Tag const PupilCentroidYCoordinate(0x0046, 0x0204);
+Tag const EquivalentPupilRadius(0x0046, 0x0205);
+Tag const CornealTopographyMapTypeCodeSequence(0x0046, 0x0207);
+Tag const VerticesOfTheOutlineOfPupil(0x0046, 0x0208);
+Tag const CornealTopographyMappingNormalsSequence(0x0046, 0x0210);
+Tag const MaximumCornealCurvatureSequence(0x0046, 0x0211);
+Tag const MaximumCornealCurvature(0x0046, 0x0212);
+Tag const MaximumCornealCurvatureLocation(0x0046, 0x0213);
+Tag const MinimumKeratometricSequence(0x0046, 0x0215);
+Tag const SimulatedKeratometricCylinderSequence(0x0046, 0x0218);
+Tag const AverageCornealPower(0x0046, 0x0220);
+Tag const CornealISValue(0x0046, 0x0224);
+Tag const AnalyzedArea(0x0046, 0x0227);
+Tag const SurfaceRegularityIndex(0x0046, 0x0230);
+Tag const SurfaceAsymmetryIndex(0x0046, 0x0232);
+Tag const CornealEccentricityIndex(0x0046, 0x0234);
+Tag const KeratoconusPredictionIndex(0x0046, 0x0236);
+Tag const DecimalPotentialVisualAcuity(0x0046, 0x0238);
+Tag const CornealTopographyMapQualityEvaluation(0x0046, 0x0242);
+Tag const SourceImageCornealProcessedDataSequence(0x0046, 0x0244);
+Tag const CornealPointLocation(0x0046, 0x0247);
+Tag const CornealPointEstimated(0x0046, 0x0248);
+Tag const AxialPower(0x0046, 0x0249);
+Tag const TangentialPower(0x0046, 0x0250);
+Tag const RefractivePower(0x0046, 0x0251);
+Tag const RelativeElevation(0x0046, 0x0252);
+Tag const CornealWavefront(0x0046, 0x0253);
+Tag const ImagedVolumeWidth(0x0048, 0x0001);
+Tag const ImagedVolumeHeight(0x0048, 0x0002);
+Tag const ImagedVolumeDepth(0x0048, 0x0003);
+Tag const TotalPixelMatrixColumns(0x0048, 0x0006);
+Tag const TotalPixelMatrixRows(0x0048, 0x0007);
+Tag const TotalPixelMatrixOriginSequence(0x0048, 0x0008);
+Tag const SpecimenLabelInImage(0x0048, 0x0010);
+Tag const FocusMethod(0x0048, 0x0011);
+Tag const ExtendedDepthOfField(0x0048, 0x0012);
+Tag const NumberOfFocalPlanes(0x0048, 0x0013);
+Tag const DistanceBetweenFocalPlanes(0x0048, 0x0014);
+Tag const RecommendedAbsentPixelCIELabValue(0x0048, 0x0015);
+Tag const IlluminatorTypeCodeSequence(0x0048, 0x0100);
+Tag const ImageOrientationSlide(0x0048, 0x0102);
+Tag const OpticalPathSequence(0x0048, 0x0105);
+Tag const OpticalPathIdentifier(0x0048, 0x0106);
+Tag const OpticalPathDescription(0x0048, 0x0107);
+Tag const IlluminationColorCodeSequence(0x0048, 0x0108);
+Tag const SpecimenReferenceSequence(0x0048, 0x0110);
+Tag const CondenserLensPower(0x0048, 0x0111);
+Tag const ObjectiveLensPower(0x0048, 0x0112);
+Tag const ObjectiveLensNumericalAperture(0x0048, 0x0113);
+Tag const PaletteColorLookupTableSequence(0x0048, 0x0120);
+Tag const ReferencedImageNavigationSequence(0x0048, 0x0200);
+Tag const TopLeftHandCornerOfLocalizerArea(0x0048, 0x0201);
+Tag const BottomRightHandCornerOfLocalizerArea(0x0048, 0x0202);
+Tag const OpticalPathIdentificationSequence(0x0048, 0x0207);
+Tag const PlanePositionSlideSequence(0x0048, 0x021a);
+Tag const ColumnPositionInTotalImagePixelMatrix(0x0048, 0x021e);
+Tag const RowPositionInTotalImagePixelMatrix(0x0048, 0x021f);
+Tag const PixelOriginInterpretation(0x0048, 0x0301);
+Tag const CalibrationImage(0x0050, 0x0004);
+Tag const DeviceSequence(0x0050, 0x0010);
+Tag const ContainerComponentTypeCodeSequence(0x0050, 0x0012);
+Tag const ContainerComponentThickness(0x0050, 0x0013);
+Tag const DeviceLength(0x0050, 0x0014);
+Tag const ContainerComponentWidth(0x0050, 0x0015);
+Tag const DeviceDiameter(0x0050, 0x0016);
+Tag const DeviceDiameterUnits(0x0050, 0x0017);
+Tag const DeviceVolume(0x0050, 0x0018);
+Tag const InterMarkerDistance(0x0050, 0x0019);
+Tag const ContainerComponentMaterial(0x0050, 0x001a);
+Tag const ContainerComponentID(0x0050, 0x001b);
+Tag const ContainerComponentLength(0x0050, 0x001c);
+Tag const ContainerComponentDiameter(0x0050, 0x001d);
+Tag const ContainerComponentDescription(0x0050, 0x001e);
+Tag const DeviceDescription(0x0050, 0x0020);
+Tag const ContrastBolusIngredientPercentByVolume(0x0052, 0x0001);
+Tag const OCTFocalDistance(0x0052, 0x0002);
+Tag const BeamSpotSize(0x0052, 0x0003);
+Tag const EffectiveRefractiveIndex(0x0052, 0x0004);
+Tag const OCTAcquisitionDomain(0x0052, 0x0006);
+Tag const OCTOpticalCenterWavelength(0x0052, 0x0007);
+Tag const AxialResolution(0x0052, 0x0008);
+Tag const RangingDepth(0x0052, 0x0009);
+Tag const ALineRate(0x0052, 0x0011);
+Tag const ALinesPerFrame(0x0052, 0x0012);
+Tag const CatheterRotationalRate(0x0052, 0x0013);
+Tag const ALinePixelSpacing(0x0052, 0x0014);
+Tag const ModeOfPercutaneousAccessSequence(0x0052, 0x0016);
+Tag const IntravascularOCTFrameTypeSequence(0x0052, 0x0025);
+Tag const OCTZOffsetApplied(0x0052, 0x0026);
+Tag const IntravascularFrameContentSequence(0x0052, 0x0027);
+Tag const IntravascularLongitudinalDistance(0x0052, 0x0028);
+Tag const IntravascularOCTFrameContentSequence(0x0052, 0x0029);
+Tag const OCTZOffsetCorrection(0x0052, 0x0030);
+Tag const CatheterDirectionOfRotation(0x0052, 0x0031);
+Tag const SeamLineLocation(0x0052, 0x0033);
+Tag const FirstALineLocation(0x0052, 0x0034);
+Tag const SeamLineIndex(0x0052, 0x0036);
+Tag const NumberOfPaddedALines(0x0052, 0x0038);
+Tag const InterpolationType(0x0052, 0x0039);
+Tag const RefractiveIndexApplied(0x0052, 0x003a);
+Tag const EnergyWindowVector(0x0054, 0x0010);
+Tag const NumberOfEnergyWindows(0x0054, 0x0011);
+Tag const EnergyWindowInformationSequence(0x0054, 0x0012);
+Tag const EnergyWindowRangeSequence(0x0054, 0x0013);
+Tag const EnergyWindowLowerLimit(0x0054, 0x0014);
+Tag const EnergyWindowUpperLimit(0x0054, 0x0015);
+Tag const RadiopharmaceuticalInformationSequence(0x0054, 0x0016);
+Tag const ResidualSyringeCounts(0x0054, 0x0017);
+Tag const EnergyWindowName(0x0054, 0x0018);
+Tag const DetectorVector(0x0054, 0x0020);
+Tag const NumberOfDetectors(0x0054, 0x0021);
+Tag const DetectorInformationSequence(0x0054, 0x0022);
+Tag const PhaseVector(0x0054, 0x0030);
+Tag const NumberOfPhases(0x0054, 0x0031);
+Tag const PhaseInformationSequence(0x0054, 0x0032);
+Tag const NumberOfFramesInPhase(0x0054, 0x0033);
+Tag const PhaseDelay(0x0054, 0x0036);
+Tag const PauseBetweenFrames(0x0054, 0x0038);
+Tag const PhaseDescription(0x0054, 0x0039);
+Tag const RotationVector(0x0054, 0x0050);
+Tag const NumberOfRotations(0x0054, 0x0051);
+Tag const RotationInformationSequence(0x0054, 0x0052);
+Tag const NumberOfFramesInRotation(0x0054, 0x0053);
+Tag const RRIntervalVector(0x0054, 0x0060);
+Tag const NumberOfRRIntervals(0x0054, 0x0061);
+Tag const GatedInformationSequence(0x0054, 0x0062);
+Tag const DataInformationSequence(0x0054, 0x0063);
+Tag const TimeSlotVector(0x0054, 0x0070);
+Tag const NumberOfTimeSlots(0x0054, 0x0071);
+Tag const TimeSlotInformationSequence(0x0054, 0x0072);
+Tag const TimeSlotTime(0x0054, 0x0073);
+Tag const SliceVector(0x0054, 0x0080);
+Tag const NumberOfSlices(0x0054, 0x0081);
+Tag const AngularViewVector(0x0054, 0x0090);
+Tag const TimeSliceVector(0x0054, 0x0100);
+Tag const NumberOfTimeSlices(0x0054, 0x0101);
+Tag const StartAngle(0x0054, 0x0200);
+Tag const TypeOfDetectorMotion(0x0054, 0x0202);
+Tag const TriggerVector(0x0054, 0x0210);
+Tag const NumberOfTriggersInPhase(0x0054, 0x0211);
+Tag const ViewCodeSequence(0x0054, 0x0220);
+Tag const ViewModifierCodeSequence(0x0054, 0x0222);
+Tag const RadionuclideCodeSequence(0x0054, 0x0300);
+Tag const AdministrationRouteCodeSequence(0x0054, 0x0302);
+Tag const RadiopharmaceuticalCodeSequence(0x0054, 0x0304);
+Tag const CalibrationDataSequence(0x0054, 0x0306);
+Tag const EnergyWindowNumber(0x0054, 0x0308);
+Tag const ImageID(0x0054, 0x0400);
+Tag const PatientOrientationCodeSequence(0x0054, 0x0410);
+Tag const PatientOrientationModifierCodeSequence(0x0054, 0x0412);
+Tag const PatientGantryRelationshipCodeSequence(0x0054, 0x0414);
+Tag const SliceProgressionDirection(0x0054, 0x0500);
+Tag const ScanProgressionDirection(0x0054, 0x0501);
+Tag const SeriesType(0x0054, 0x1000);
+Tag const Units(0x0054, 0x1001);
+Tag const CountsSource(0x0054, 0x1002);
+Tag const ReprojectionMethod(0x0054, 0x1004);
+Tag const SUVType(0x0054, 0x1006);
+Tag const RandomsCorrectionMethod(0x0054, 0x1100);
+Tag const AttenuationCorrectionMethod(0x0054, 0x1101);
+Tag const DecayCorrection(0x0054, 0x1102);
+Tag const ReconstructionMethod(0x0054, 0x1103);
+Tag const DetectorLinesOfResponseUsed(0x0054, 0x1104);
+Tag const ScatterCorrectionMethod(0x0054, 0x1105);
+Tag const AxialAcceptance(0x0054, 0x1200);
+Tag const AxialMash(0x0054, 0x1201);
+Tag const TransverseMash(0x0054, 0x1202);
+Tag const DetectorElementSize(0x0054, 0x1203);
+Tag const CoincidenceWindowWidth(0x0054, 0x1210);
+Tag const SecondaryCountsType(0x0054, 0x1220);
+Tag const FrameReferenceTime(0x0054, 0x1300);
+Tag const PrimaryPromptsCountsAccumulated(0x0054, 0x1310);
+Tag const SecondaryCountsAccumulated(0x0054, 0x1311);
+Tag const SliceSensitivityFactor(0x0054, 0x1320);
+Tag const DecayFactor(0x0054, 0x1321);
+Tag const DoseCalibrationFactor(0x0054, 0x1322);
+Tag const ScatterFractionFactor(0x0054, 0x1323);
+Tag const DeadTimeFactor(0x0054, 0x1324);
+Tag const ImageIndex(0x0054, 0x1330);
+Tag const CountsIncluded(0x0054, 0x1400);
+Tag const DeadTimeCorrectionFlag(0x0054, 0x1401);
+Tag const HistogramSequence(0x0060, 0x3000);
+Tag const HistogramNumberOfBins(0x0060, 0x3002);
+Tag const HistogramFirstBinValue(0x0060, 0x3004);
+Tag const HistogramLastBinValue(0x0060, 0x3006);
+Tag const HistogramBinWidth(0x0060, 0x3008);
+Tag const HistogramExplanation(0x0060, 0x3010);
+Tag const HistogramData(0x0060, 0x3020);
+Tag const SegmentationType(0x0062, 0x0001);
+Tag const SegmentSequence(0x0062, 0x0002);
+Tag const SegmentedPropertyCategoryCodeSequence(0x0062, 0x0003);
+Tag const SegmentNumber(0x0062, 0x0004);
+Tag const SegmentLabel(0x0062, 0x0005);
+Tag const SegmentDescription(0x0062, 0x0006);
+Tag const SegmentAlgorithmType(0x0062, 0x0008);
+Tag const SegmentAlgorithmName(0x0062, 0x0009);
+Tag const SegmentIdentificationSequence(0x0062, 0x000a);
+Tag const ReferencedSegmentNumber(0x0062, 0x000b);
+Tag const RecommendedDisplayGrayscaleValue(0x0062, 0x000c);
+Tag const RecommendedDisplayCIELabValue(0x0062, 0x000d);
+Tag const MaximumFractionalValue(0x0062, 0x000e);
+Tag const SegmentedPropertyTypeCodeSequence(0x0062, 0x000f);
+Tag const SegmentationFractionalType(0x0062, 0x0010);
+Tag const SegmentedPropertyTypeModifierCodeSequence(0x0062, 0x0011);
+Tag const UsedSegmentsSequence(0x0062, 0x0012);
+Tag const DeformableRegistrationSequence(0x0064, 0x0002);
+Tag const SourceFrameOfReferenceUID(0x0064, 0x0003);
+Tag const DeformableRegistrationGridSequence(0x0064, 0x0005);
+Tag const GridDimensions(0x0064, 0x0007);
+Tag const GridResolution(0x0064, 0x0008);
+Tag const VectorGridData(0x0064, 0x0009);
+Tag const PreDeformationMatrixRegistrationSequence(0x0064, 0x000f);
+Tag const PostDeformationMatrixRegistrationSequence(0x0064, 0x0010);
+Tag const NumberOfSurfaces(0x0066, 0x0001);
+Tag const SurfaceSequence(0x0066, 0x0002);
+Tag const SurfaceNumber(0x0066, 0x0003);
+Tag const SurfaceComments(0x0066, 0x0004);
+Tag const SurfaceProcessing(0x0066, 0x0009);
+Tag const SurfaceProcessingRatio(0x0066, 0x000a);
+Tag const SurfaceProcessingDescription(0x0066, 0x000b);
+Tag const RecommendedPresentationOpacity(0x0066, 0x000c);
+Tag const RecommendedPresentationType(0x0066, 0x000d);
+Tag const FiniteVolume(0x0066, 0x000e);
+Tag const Manifold(0x0066, 0x0010);
+Tag const SurfacePointsSequence(0x0066, 0x0011);
+Tag const SurfacePointsNormalsSequence(0x0066, 0x0012);
+Tag const SurfaceMeshPrimitivesSequence(0x0066, 0x0013);
+Tag const NumberOfSurfacePoints(0x0066, 0x0015);
+Tag const PointCoordinatesData(0x0066, 0x0016);
+Tag const PointPositionAccuracy(0x0066, 0x0017);
+Tag const MeanPointDistance(0x0066, 0x0018);
+Tag const MaximumPointDistance(0x0066, 0x0019);
+Tag const PointsBoundingBoxCoordinates(0x0066, 0x001a);
+Tag const AxisOfRotation(0x0066, 0x001b);
+Tag const CenterOfRotation(0x0066, 0x001c);
+Tag const NumberOfVectors(0x0066, 0x001e);
+Tag const VectorDimensionality(0x0066, 0x001f);
+Tag const VectorAccuracy(0x0066, 0x0020);
+Tag const VectorCoordinateData(0x0066, 0x0021);
+Tag const TrianglePointIndexList(0x0066, 0x0023);
+Tag const EdgePointIndexList(0x0066, 0x0024);
+Tag const VertexPointIndexList(0x0066, 0x0025);
+Tag const TriangleStripSequence(0x0066, 0x0026);
+Tag const TriangleFanSequence(0x0066, 0x0027);
+Tag const LineSequence(0x0066, 0x0028);
+Tag const PrimitivePointIndexList(0x0066, 0x0029);
+Tag const SurfaceCount(0x0066, 0x002a);
+Tag const ReferencedSurfaceSequence(0x0066, 0x002b);
+Tag const ReferencedSurfaceNumber(0x0066, 0x002c);
+Tag const SegmentSurfaceGenerationAlgorithmIdentificationSequence(0x0066, 0x002d);
+Tag const SegmentSurfaceSourceInstanceSequence(0x0066, 0x002e);
+Tag const AlgorithmFamilyCodeSequence(0x0066, 0x002f);
+Tag const AlgorithmNameCodeSequence(0x0066, 0x0030);
+Tag const AlgorithmVersion(0x0066, 0x0031);
+Tag const AlgorithmParameters(0x0066, 0x0032);
+Tag const FacetSequence(0x0066, 0x0034);
+Tag const SurfaceProcessingAlgorithmIdentificationSequence(0x0066, 0x0035);
+Tag const AlgorithmName(0x0066, 0x0036);
+Tag const RecommendedPointRadius(0x0066, 0x0037);
+Tag const RecommendedLineThickness(0x0066, 0x0038);
+Tag const LongPrimitivePointIndexList(0x0066, 0x0040);
+Tag const LongTrianglePointIndexList(0x0066, 0x0041);
+Tag const LongEdgePointIndexList(0x0066, 0x0042);
+Tag const LongVertexPointIndexList(0x0066, 0x0043);
+Tag const ImplantSize(0x0068, 0x6210);
+Tag const ImplantTemplateVersion(0x0068, 0x6221);
+Tag const ReplacedImplantTemplateSequence(0x0068, 0x6222);
+Tag const ImplantType(0x0068, 0x6223);
+Tag const DerivationImplantTemplateSequence(0x0068, 0x6224);
+Tag const OriginalImplantTemplateSequence(0x0068, 0x6225);
+Tag const EffectiveDateTime(0x0068, 0x6226);
+Tag const ImplantTargetAnatomySequence(0x0068, 0x6230);
+Tag const InformationFromManufacturerSequence(0x0068, 0x6260);
+Tag const NotificationFromManufacturerSequence(0x0068, 0x6265);
+Tag const InformationIssueDateTime(0x0068, 0x6270);
+Tag const InformationSummary(0x0068, 0x6280);
+Tag const ImplantRegulatoryDisapprovalCodeSequence(0x0068, 0x62a0);
+Tag const OverallTemplateSpatialTolerance(0x0068, 0x62a5);
+Tag const HPGLDocumentSequence(0x0068, 0x62c0);
+Tag const HPGLDocumentID(0x0068, 0x62d0);
+Tag const HPGLDocumentLabel(0x0068, 0x62d5);
+Tag const ViewOrientationCodeSequence(0x0068, 0x62e0);
+Tag const ViewOrientationModifier(0x0068, 0x62f0);
+Tag const HPGLDocumentScaling(0x0068, 0x62f2);
+Tag const HPGLDocument(0x0068, 0x6300);
+Tag const HPGLContourPenNumber(0x0068, 0x6310);
+Tag const HPGLPenSequence(0x0068, 0x6320);
+Tag const HPGLPenNumber(0x0068, 0x6330);
+Tag const HPGLPenLabel(0x0068, 0x6340);
+Tag const HPGLPenDescription(0x0068, 0x6345);
+Tag const RecommendedRotationPoint(0x0068, 0x6346);
+Tag const BoundingRectangle(0x0068, 0x6347);
+Tag const ImplantTemplate3DModelSurfaceNumber(0x0068, 0x6350);
+Tag const SurfaceModelDescriptionSequence(0x0068, 0x6360);
+Tag const SurfaceModelLabel(0x0068, 0x6380);
+Tag const SurfaceModelScalingFactor(0x0068, 0x6390);
+Tag const MaterialsCodeSequence(0x0068, 0x63a0);
+Tag const CoatingMaterialsCodeSequence(0x0068, 0x63a4);
+Tag const ImplantTypeCodeSequence(0x0068, 0x63a8);
+Tag const FixationMethodCodeSequence(0x0068, 0x63ac);
+Tag const MatingFeatureSetsSequence(0x0068, 0x63b0);
+Tag const MatingFeatureSetID(0x0068, 0x63c0);
+Tag const MatingFeatureSetLabel(0x0068, 0x63d0);
+Tag const MatingFeatureSequence(0x0068, 0x63e0);
+Tag const MatingFeatureID(0x0068, 0x63f0);
+Tag const MatingFeatureDegreeOfFreedomSequence(0x0068, 0x6400);
+Tag const DegreeOfFreedomID(0x0068, 0x6410);
+Tag const DegreeOfFreedomType(0x0068, 0x6420);
+Tag const TwoDMatingFeatureCoordinatesSequence(0x0068, 0x6430);
+Tag const ReferencedHPGLDocumentID(0x0068, 0x6440);
+Tag const TwoDMatingPoint(0x0068, 0x6450);
+Tag const TwoDMatingAxes(0x0068, 0x6460);
+Tag const TwoDDegreeOfFreedomSequence(0x0068, 0x6470);
+Tag const ThreeDDegreeOfFreedomAxis(0x0068, 0x6490);
+Tag const RangeOfFreedom(0x0068, 0x64a0);
+Tag const ThreeDMatingPoint(0x0068, 0x64c0);
+Tag const ThreeDMatingAxes(0x0068, 0x64d0);
+Tag const TwoDDegreeOfFreedomAxis(0x0068, 0x64f0);
+Tag const PlanningLandmarkPointSequence(0x0068, 0x6500);
+Tag const PlanningLandmarkLineSequence(0x0068, 0x6510);
+Tag const PlanningLandmarkPlaneSequence(0x0068, 0x6520);
+Tag const PlanningLandmarkID(0x0068, 0x6530);
+Tag const PlanningLandmarkDescription(0x0068, 0x6540);
+Tag const PlanningLandmarkIdentificationCodeSequence(0x0068, 0x6545);
+Tag const TwoDPointCoordinatesSequence(0x0068, 0x6550);
+Tag const TwoDPointCoordinates(0x0068, 0x6560);
+Tag const ThreeDPointCoordinates(0x0068, 0x6590);
+Tag const TwoDLineCoordinatesSequence(0x0068, 0x65a0);
+Tag const TwoDLineCoordinates(0x0068, 0x65b0);
+Tag const ThreeDLineCoordinates(0x0068, 0x65d0);
+Tag const TwoDPlaneCoordinatesSequence(0x0068, 0x65e0);
+Tag const TwoDPlaneIntersection(0x0068, 0x65f0);
+Tag const ThreeDPlaneOrigin(0x0068, 0x6610);
+Tag const ThreeDPlaneNormal(0x0068, 0x6620);
+Tag const GraphicAnnotationSequence(0x0070, 0x0001);
+Tag const GraphicLayer(0x0070, 0x0002);
+Tag const BoundingBoxAnnotationUnits(0x0070, 0x0003);
+Tag const AnchorPointAnnotationUnits(0x0070, 0x0004);
+Tag const GraphicAnnotationUnits(0x0070, 0x0005);
+Tag const UnformattedTextValue(0x0070, 0x0006);
+Tag const TextObjectSequence(0x0070, 0x0008);
+Tag const GraphicObjectSequence(0x0070, 0x0009);
+Tag const BoundingBoxTopLeftHandCorner(0x0070, 0x0010);
+Tag const BoundingBoxBottomRightHandCorner(0x0070, 0x0011);
+Tag const BoundingBoxTextHorizontalJustification(0x0070, 0x0012);
+Tag const AnchorPoint(0x0070, 0x0014);
+Tag const AnchorPointVisibility(0x0070, 0x0015);
+Tag const GraphicDimensions(0x0070, 0x0020);
+Tag const NumberOfGraphicPoints(0x0070, 0x0021);
+Tag const GraphicData(0x0070, 0x0022);
+Tag const GraphicType(0x0070, 0x0023);
+Tag const GraphicFilled(0x0070, 0x0024);
+Tag const ImageRotationRetired(0x0070, 0x0040);
+Tag const ImageHorizontalFlip(0x0070, 0x0041);
+Tag const ImageRotation(0x0070, 0x0042);
+Tag const DisplayedAreaTopLeftHandCornerTrial(0x0070, 0x0050);
+Tag const DisplayedAreaBottomRightHandCornerTrial(0x0070, 0x0051);
+Tag const DisplayedAreaTopLeftHandCorner(0x0070, 0x0052);
+Tag const DisplayedAreaBottomRightHandCorner(0x0070, 0x0053);
+Tag const DisplayedAreaSelectionSequence(0x0070, 0x005a);
+Tag const GraphicLayerSequence(0x0070, 0x0060);
+Tag const GraphicLayerOrder(0x0070, 0x0062);
+Tag const GraphicLayerRecommendedDisplayGrayscaleValue(0x0070, 0x0066);
+Tag const GraphicLayerRecommendedDisplayRGBValue(0x0070, 0x0067);
+Tag const GraphicLayerDescription(0x0070, 0x0068);
+Tag const ContentLabel(0x0070, 0x0080);
+Tag const ContentDescription(0x0070, 0x0081);
+Tag const PresentationCreationDate(0x0070, 0x0082);
+Tag const PresentationCreationTime(0x0070, 0x0083);
+Tag const ContentCreatorName(0x0070, 0x0084);
+Tag const ContentCreatorIdentificationCodeSequence(0x0070, 0x0086);
+Tag const AlternateContentDescriptionSequence(0x0070, 0x0087);
+Tag const PresentationSizeMode(0x0070, 0x0100);
+Tag const PresentationPixelSpacing(0x0070, 0x0101);
+Tag const PresentationPixelAspectRatio(0x0070, 0x0102);
+Tag const PresentationPixelMagnificationRatio(0x0070, 0x0103);
+Tag const GraphicGroupLabel(0x0070, 0x0207);
+Tag const GraphicGroupDescription(0x0070, 0x0208);
+Tag const CompoundGraphicSequence(0x0070, 0x0209);
+Tag const CompoundGraphicInstanceID(0x0070, 0x0226);
+Tag const FontName(0x0070, 0x0227);
+Tag const FontNameType(0x0070, 0x0228);
+Tag const CSSFontName(0x0070, 0x0229);
+Tag const RotationAngle(0x0070, 0x0230);
+Tag const TextStyleSequence(0x0070, 0x0231);
+Tag const LineStyleSequence(0x0070, 0x0232);
+Tag const FillStyleSequence(0x0070, 0x0233);
+Tag const GraphicGroupSequence(0x0070, 0x0234);
+Tag const TextColorCIELabValue(0x0070, 0x0241);
+Tag const HorizontalAlignment(0x0070, 0x0242);
+Tag const VerticalAlignment(0x0070, 0x0243);
+Tag const ShadowStyle(0x0070, 0x0244);
+Tag const ShadowOffsetX(0x0070, 0x0245);
+Tag const ShadowOffsetY(0x0070, 0x0246);
+Tag const ShadowColorCIELabValue(0x0070, 0x0247);
+Tag const Underlined(0x0070, 0x0248);
+Tag const Bold(0x0070, 0x0249);
+Tag const Italic(0x0070, 0x0250);
+Tag const PatternOnColorCIELabValue(0x0070, 0x0251);
+Tag const PatternOffColorCIELabValue(0x0070, 0x0252);
+Tag const LineThickness(0x0070, 0x0253);
+Tag const LineDashingStyle(0x0070, 0x0254);
+Tag const LinePattern(0x0070, 0x0255);
+Tag const FillPattern(0x0070, 0x0256);
+Tag const FillMode(0x0070, 0x0257);
+Tag const ShadowOpacity(0x0070, 0x0258);
+Tag const GapLength(0x0070, 0x0261);
+Tag const DiameterOfVisibility(0x0070, 0x0262);
+Tag const RotationPoint(0x0070, 0x0273);
+Tag const TickAlignment(0x0070, 0x0274);
+Tag const ShowTickLabel(0x0070, 0x0278);
+Tag const TickLabelAlignment(0x0070, 0x0279);
+Tag const CompoundGraphicUnits(0x0070, 0x0282);
+Tag const PatternOnOpacity(0x0070, 0x0284);
+Tag const PatternOffOpacity(0x0070, 0x0285);
+Tag const MajorTicksSequence(0x0070, 0x0287);
+Tag const TickPosition(0x0070, 0x0288);
+Tag const TickLabel(0x0070, 0x0289);
+Tag const CompoundGraphicType(0x0070, 0x0294);
+Tag const GraphicGroupID(0x0070, 0x0295);
+Tag const ShapeType(0x0070, 0x0306);
+Tag const RegistrationSequence(0x0070, 0x0308);
+Tag const MatrixRegistrationSequence(0x0070, 0x0309);
+Tag const MatrixSequence(0x0070, 0x030a);
+Tag const FrameOfReferenceTransformationMatrixType(0x0070, 0x030c);
+Tag const RegistrationTypeCodeSequence(0x0070, 0x030d);
+Tag const FiducialDescription(0x0070, 0x030f);
+Tag const FiducialIdentifier(0x0070, 0x0310);
+Tag const FiducialIdentifierCodeSequence(0x0070, 0x0311);
+Tag const ContourUncertaintyRadius(0x0070, 0x0312);
+Tag const UsedFiducialsSequence(0x0070, 0x0314);
+Tag const GraphicCoordinatesDataSequence(0x0070, 0x0318);
+Tag const FiducialUID(0x0070, 0x031a);
+Tag const FiducialSetSequence(0x0070, 0x031c);
+Tag const FiducialSequence(0x0070, 0x031e);
+Tag const GraphicLayerRecommendedDisplayCIELabValue(0x0070, 0x0401);
+Tag const BlendingSequence(0x0070, 0x0402);
+Tag const RelativeOpacity(0x0070, 0x0403);
+Tag const ReferencedSpatialRegistrationSequence(0x0070, 0x0404);
+Tag const BlendingPosition(0x0070, 0x0405);
+Tag const HangingProtocolName(0x0072, 0x0002);
+Tag const HangingProtocolDescription(0x0072, 0x0004);
+Tag const HangingProtocolLevel(0x0072, 0x0006);
+Tag const HangingProtocolCreator(0x0072, 0x0008);
+Tag const HangingProtocolCreationDateTime(0x0072, 0x000a);
+Tag const HangingProtocolDefinitionSequence(0x0072, 0x000c);
+Tag const HangingProtocolUserIdentificationCodeSequence(0x0072, 0x000e);
+Tag const HangingProtocolUserGroupName(0x0072, 0x0010);
+Tag const SourceHangingProtocolSequence(0x0072, 0x0012);
+Tag const NumberOfPriorsReferenced(0x0072, 0x0014);
+Tag const ImageSetsSequence(0x0072, 0x0020);
+Tag const ImageSetSelectorSequence(0x0072, 0x0022);
+Tag const ImageSetSelectorUsageFlag(0x0072, 0x0024);
+Tag const SelectorAttribute(0x0072, 0x0026);
+Tag const SelectorValueNumber(0x0072, 0x0028);
+Tag const TimeBasedImageSetsSequence(0x0072, 0x0030);
+Tag const ImageSetNumber(0x0072, 0x0032);
+Tag const ImageSetSelectorCategory(0x0072, 0x0034);
+Tag const RelativeTime(0x0072, 0x0038);
+Tag const RelativeTimeUnits(0x0072, 0x003a);
+Tag const AbstractPriorValue(0x0072, 0x003c);
+Tag const AbstractPriorCodeSequence(0x0072, 0x003e);
+Tag const ImageSetLabel(0x0072, 0x0040);
+Tag const SelectorAttributeVR(0x0072, 0x0050);
+Tag const SelectorSequencePointer(0x0072, 0x0052);
+Tag const SelectorSequencePointerPrivateCreator(0x0072, 0x0054);
+Tag const SelectorAttributePrivateCreator(0x0072, 0x0056);
+Tag const SelectorATValue(0x0072, 0x0060);
+Tag const SelectorCSValue(0x0072, 0x0062);
+Tag const SelectorISValue(0x0072, 0x0064);
+Tag const SelectorLOValue(0x0072, 0x0066);
+Tag const SelectorLTValue(0x0072, 0x0068);
+Tag const SelectorPNValue(0x0072, 0x006a);
+Tag const SelectorSHValue(0x0072, 0x006c);
+Tag const SelectorSTValue(0x0072, 0x006e);
+Tag const SelectorUTValue(0x0072, 0x0070);
+Tag const SelectorDSValue(0x0072, 0x0072);
+Tag const SelectorFDValue(0x0072, 0x0074);
+Tag const SelectorFLValue(0x0072, 0x0076);
+Tag const SelectorULValue(0x0072, 0x0078);
+Tag const SelectorUSValue(0x0072, 0x007a);
+Tag const SelectorSLValue(0x0072, 0x007c);
+Tag const SelectorSSValue(0x0072, 0x007e);
+Tag const SelectorUIValue(0x0072, 0x007f);
+Tag const SelectorCodeSequenceValue(0x0072, 0x0080);
+Tag const NumberOfScreens(0x0072, 0x0100);
+Tag const NominalScreenDefinitionSequence(0x0072, 0x0102);
+Tag const NumberOfVerticalPixels(0x0072, 0x0104);
+Tag const NumberOfHorizontalPixels(0x0072, 0x0106);
+Tag const DisplayEnvironmentSpatialPosition(0x0072, 0x0108);
+Tag const ScreenMinimumGrayscaleBitDepth(0x0072, 0x010a);
+Tag const ScreenMinimumColorBitDepth(0x0072, 0x010c);
+Tag const ApplicationMaximumRepaintTime(0x0072, 0x010e);
+Tag const DisplaySetsSequence(0x0072, 0x0200);
+Tag const DisplaySetNumber(0x0072, 0x0202);
+Tag const DisplaySetLabel(0x0072, 0x0203);
+Tag const DisplaySetPresentationGroup(0x0072, 0x0204);
+Tag const DisplaySetPresentationGroupDescription(0x0072, 0x0206);
+Tag const PartialDataDisplayHandling(0x0072, 0x0208);
+Tag const SynchronizedScrollingSequence(0x0072, 0x0210);
+Tag const DisplaySetScrollingGroup(0x0072, 0x0212);
+Tag const NavigationIndicatorSequence(0x0072, 0x0214);
+Tag const NavigationDisplaySet(0x0072, 0x0216);
+Tag const ReferenceDisplaySets(0x0072, 0x0218);
+Tag const ImageBoxesSequence(0x0072, 0x0300);
+Tag const ImageBoxNumber(0x0072, 0x0302);
+Tag const ImageBoxLayoutType(0x0072, 0x0304);
+Tag const ImageBoxTileHorizontalDimension(0x0072, 0x0306);
+Tag const ImageBoxTileVerticalDimension(0x0072, 0x0308);
+Tag const ImageBoxScrollDirection(0x0072, 0x0310);
+Tag const ImageBoxSmallScrollType(0x0072, 0x0312);
+Tag const ImageBoxSmallScrollAmount(0x0072, 0x0314);
+Tag const ImageBoxLargeScrollType(0x0072, 0x0316);
+Tag const ImageBoxLargeScrollAmount(0x0072, 0x0318);
+Tag const ImageBoxOverlapPriority(0x0072, 0x0320);
+Tag const CineRelativeToRealTime(0x0072, 0x0330);
+Tag const FilterOperationsSequence(0x0072, 0x0400);
+Tag const FilterByCategory(0x0072, 0x0402);
+Tag const FilterByAttributePresence(0x0072, 0x0404);
+Tag const FilterByOperator(0x0072, 0x0406);
+Tag const StructuredDisplayBackgroundCIELabValue(0x0072, 0x0420);
+Tag const EmptyImageBoxCIELabValue(0x0072, 0x0421);
+Tag const StructuredDisplayImageBoxSequence(0x0072, 0x0422);
+Tag const StructuredDisplayTextBoxSequence(0x0072, 0x0424);
+Tag const ReferencedFirstFrameSequence(0x0072, 0x0427);
+Tag const ImageBoxSynchronizationSequence(0x0072, 0x0430);
+Tag const SynchronizedImageBoxList(0x0072, 0x0432);
+Tag const TypeOfSynchronization(0x0072, 0x0434);
+Tag const BlendingOperationType(0x0072, 0x0500);
+Tag const ReformattingOperationType(0x0072, 0x0510);
+Tag const ReformattingThickness(0x0072, 0x0512);
+Tag const ReformattingInterval(0x0072, 0x0514);
+Tag const ReformattingOperationInitialViewDirection(0x0072, 0x0516);
+Tag const ThreeDRenderingType(0x0072, 0x0520);
+Tag const SortingOperationsSequence(0x0072, 0x0600);
+Tag const SortByCategory(0x0072, 0x0602);
+Tag const SortingDirection(0x0072, 0x0604);
+Tag const DisplaySetPatientOrientation(0x0072, 0x0700);
+Tag const VOIType(0x0072, 0x0702);
+Tag const PseudoColorType(0x0072, 0x0704);
+Tag const PseudoColorPaletteInstanceReferenceSequence(0x0072, 0x0705);
+Tag const ShowGrayscaleInverted(0x0072, 0x0706);
+Tag const ShowImageTrueSizeFlag(0x0072, 0x0710);
+Tag const ShowGraphicAnnotationFlag(0x0072, 0x0712);
+Tag const ShowPatientDemographicsFlag(0x0072, 0x0714);
+Tag const ShowAcquisitionTechniquesFlag(0x0072, 0x0716);
+Tag const DisplaySetHorizontalJustification(0x0072, 0x0717);
+Tag const DisplaySetVerticalJustification(0x0072, 0x0718);
+Tag const ContinuationStartMeterset(0x0074, 0x0120);
+Tag const ContinuationEndMeterset(0x0074, 0x0121);
+Tag const ProcedureStepState(0x0074, 0x1000);
+Tag const ProcedureStepProgressInformationSequence(0x0074, 0x1002);
+Tag const ProcedureStepProgress(0x0074, 0x1004);
+Tag const ProcedureStepProgressDescription(0x0074, 0x1006);
+Tag const ProcedureStepCommunicationsURISequence(0x0074, 0x1008);
+Tag const ContactURI(0x0074, 0x100a);
+Tag const ContactDisplayName(0x0074, 0x100c);
+Tag const ProcedureStepDiscontinuationReasonCodeSequence(0x0074, 0x100e);
+Tag const BeamTaskSequence(0x0074, 0x1020);
+Tag const BeamTaskType(0x0074, 0x1022);
+Tag const BeamOrderIndexTrial(0x0074, 0x1024);
+Tag const AutosequenceFlag(0x0074, 0x1025);
+Tag const TableTopVerticalAdjustedPosition(0x0074, 0x1026);
+Tag const TableTopLongitudinalAdjustedPosition(0x0074, 0x1027);
+Tag const TableTopLateralAdjustedPosition(0x0074, 0x1028);
+Tag const PatientSupportAdjustedAngle(0x0074, 0x102a);
+Tag const TableTopEccentricAdjustedAngle(0x0074, 0x102b);
+Tag const TableTopPitchAdjustedAngle(0x0074, 0x102c);
+Tag const TableTopRollAdjustedAngle(0x0074, 0x102d);
+Tag const DeliveryVerificationImageSequence(0x0074, 0x1030);
+Tag const VerificationImageTiming(0x0074, 0x1032);
+Tag const DoubleExposureFlag(0x0074, 0x1034);
+Tag const DoubleExposureOrdering(0x0074, 0x1036);
+Tag const DoubleExposureMetersetTrial(0x0074, 0x1038);
+Tag const DoubleExposureFieldDeltaTrial(0x0074, 0x103a);
+Tag const RelatedReferenceRTImageSequence(0x0074, 0x1040);
+Tag const GeneralMachineVerificationSequence(0x0074, 0x1042);
+Tag const ConventionalMachineVerificationSequence(0x0074, 0x1044);
+Tag const IonMachineVerificationSequence(0x0074, 0x1046);
+Tag const FailedAttributesSequence(0x0074, 0x1048);
+Tag const OverriddenAttributesSequence(0x0074, 0x104a);
+Tag const ConventionalControlPointVerificationSequence(0x0074, 0x104c);
+Tag const IonControlPointVerificationSequence(0x0074, 0x104e);
+Tag const AttributeOccurrenceSequence(0x0074, 0x1050);
+Tag const AttributeOccurrencePointer(0x0074, 0x1052);
+Tag const AttributeItemSelector(0x0074, 0x1054);
+Tag const AttributeOccurrencePrivateCreator(0x0074, 0x1056);
+Tag const SelectorSequencePointerItems(0x0074, 0x1057);
+Tag const ScheduledProcedureStepPriority(0x0074, 0x1200);
+Tag const WorklistLabel(0x0074, 0x1202);
+Tag const ProcedureStepLabel(0x0074, 0x1204);
+Tag const ScheduledProcessingParametersSequence(0x0074, 0x1210);
+Tag const PerformedProcessingParametersSequence(0x0074, 0x1212);
+Tag const UnifiedProcedureStepPerformedProcedureSequence(0x0074, 0x1216);
+Tag const RelatedProcedureStepSequence(0x0074, 0x1220);
+Tag const ProcedureStepRelationshipType(0x0074, 0x1222);
+Tag const ReplacedProcedureStepSequence(0x0074, 0x1224);
+Tag const DeletionLock(0x0074, 0x1230);
+Tag const ReceivingAE(0x0074, 0x1234);
+Tag const RequestingAE(0x0074, 0x1236);
+Tag const ReasonForCancellation(0x0074, 0x1238);
+Tag const SCPStatus(0x0074, 0x1242);
+Tag const SubscriptionListStatus(0x0074, 0x1244);
+Tag const UnifiedProcedureStepListStatus(0x0074, 0x1246);
+Tag const BeamOrderIndex(0x0074, 0x1324);
+Tag const DoubleExposureMeterset(0x0074, 0x1338);
+Tag const DoubleExposureFieldDelta(0x0074, 0x133a);
+Tag const ImplantAssemblyTemplateName(0x0076, 0x0001);
+Tag const ImplantAssemblyTemplateIssuer(0x0076, 0x0003);
+Tag const ImplantAssemblyTemplateVersion(0x0076, 0x0006);
+Tag const ReplacedImplantAssemblyTemplateSequence(0x0076, 0x0008);
+Tag const ImplantAssemblyTemplateType(0x0076, 0x000a);
+Tag const OriginalImplantAssemblyTemplateSequence(0x0076, 0x000c);
+Tag const DerivationImplantAssemblyTemplateSequence(0x0076, 0x000e);
+Tag const ImplantAssemblyTemplateTargetAnatomySequence(0x0076, 0x0010);
+Tag const ProcedureTypeCodeSequence(0x0076, 0x0020);
+Tag const SurgicalTechnique(0x0076, 0x0030);
+Tag const ComponentTypesSequence(0x0076, 0x0032);
+Tag const ComponentTypeCodeSequence(0x0076, 0x0034);
+Tag const ExclusiveComponentType(0x0076, 0x0036);
+Tag const MandatoryComponentType(0x0076, 0x0038);
+Tag const ComponentSequence(0x0076, 0x0040);
+Tag const ComponentID(0x0076, 0x0055);
+Tag const ComponentAssemblySequence(0x0076, 0x0060);
+Tag const Component1ReferencedID(0x0076, 0x0070);
+Tag const Component1ReferencedMatingFeatureSetID(0x0076, 0x0080);
+Tag const Component1ReferencedMatingFeatureID(0x0076, 0x0090);
+Tag const Component2ReferencedID(0x0076, 0x00a0);
+Tag const Component2ReferencedMatingFeatureSetID(0x0076, 0x00b0);
+Tag const Component2ReferencedMatingFeatureID(0x0076, 0x00c0);
+Tag const ImplantTemplateGroupName(0x0078, 0x0001);
+Tag const ImplantTemplateGroupDescription(0x0078, 0x0010);
+Tag const ImplantTemplateGroupIssuer(0x0078, 0x0020);
+Tag const ImplantTemplateGroupVersion(0x0078, 0x0024);
+Tag const ReplacedImplantTemplateGroupSequence(0x0078, 0x0026);
+Tag const ImplantTemplateGroupTargetAnatomySequence(0x0078, 0x0028);
+Tag const ImplantTemplateGroupMembersSequence(0x0078, 0x002a);
+Tag const ImplantTemplateGroupMemberID(0x0078, 0x002e);
+Tag const ThreeDImplantTemplateGroupMemberMatchingPoint(0x0078, 0x0050);
+Tag const ThreeDImplantTemplateGroupMemberMatchingAxes(0x0078, 0x0060);
+Tag const ImplantTemplateGroupMemberMatching2DCoordinatesSequence(0x0078, 0x0070);
+Tag const TwoDImplantTemplateGroupMemberMatchingPoint(0x0078, 0x0090);
+Tag const TwoDImplantTemplateGroupMemberMatchingAxes(0x0078, 0x00a0);
+Tag const ImplantTemplateGroupVariationDimensionSequence(0x0078, 0x00b0);
+Tag const ImplantTemplateGroupVariationDimensionName(0x0078, 0x00b2);
+Tag const ImplantTemplateGroupVariationDimensionRankSequence(0x0078, 0x00b4);
+Tag const ReferencedImplantTemplateGroupMemberID(0x0078, 0x00b6);
+Tag const ImplantTemplateGroupVariationDimensionRank(0x0078, 0x00b8);
+Tag const SurfaceScanAcquisitionTypeCodeSequence(0x0080, 0x0001);
+Tag const SurfaceScanModeCodeSequence(0x0080, 0x0002);
+Tag const RegistrationMethodCodeSequence(0x0080, 0x0003);
+Tag const ShotDurationTime(0x0080, 0x0004);
+Tag const ShotOffsetTime(0x0080, 0x0005);
+Tag const SurfacePointPresentationValueData(0x0080, 0x0006);
+Tag const SurfacePointColorCIELabValueData(0x0080, 0x0007);
+Tag const UVMappingSequence(0x0080, 0x0008);
+Tag const TextureLabel(0x0080, 0x0009);
+Tag const UValueData(0x0080, 0x0010);
+Tag const VValueData(0x0080, 0x0011);
+Tag const ReferencedTextureSequence(0x0080, 0x0012);
+Tag const ReferencedSurfaceDataSequence(0x0080, 0x0013);
+Tag const StorageMediaFileSetID(0x0088, 0x0130);
+Tag const StorageMediaFileSetUID(0x0088, 0x0140);
+Tag const IconImageSequence(0x0088, 0x0200);
+Tag const TopicTitle(0x0088, 0x0904);
+Tag const TopicSubject(0x0088, 0x0906);
+Tag const TopicAuthor(0x0088, 0x0910);
+Tag const TopicKeywords(0x0088, 0x0912);
+Tag const SOPInstanceStatus(0x0100, 0x0410);
+Tag const SOPAuthorizationDateTime(0x0100, 0x0420);
+Tag const SOPAuthorizationComment(0x0100, 0x0424);
+Tag const AuthorizationEquipmentCertificationNumber(0x0100, 0x0426);
+Tag const MACIDNumber(0x0400, 0x0005);
+Tag const MACCalculationTransferSyntaxUID(0x0400, 0x0010);
+Tag const MACAlgorithm(0x0400, 0x0015);
+Tag const DataElementsSigned(0x0400, 0x0020);
+Tag const DigitalSignatureUID(0x0400, 0x0100);
+Tag const DigitalSignatureDateTime(0x0400, 0x0105);
+Tag const CertificateType(0x0400, 0x0110);
+Tag const CertificateOfSigner(0x0400, 0x0115);
+Tag const Signature(0x0400, 0x0120);
+Tag const CertifiedTimestampType(0x0400, 0x0305);
+Tag const CertifiedTimestamp(0x0400, 0x0310);
+Tag const DigitalSignaturePurposeCodeSequence(0x0400, 0x0401);
+Tag const ReferencedDigitalSignatureSequence(0x0400, 0x0402);
+Tag const ReferencedSOPInstanceMACSequence(0x0400, 0x0403);
+Tag const MAC(0x0400, 0x0404);
+Tag const EncryptedAttributesSequence(0x0400, 0x0500);
+Tag const EncryptedContentTransferSyntaxUID(0x0400, 0x0510);
+Tag const EncryptedContent(0x0400, 0x0520);
+Tag const ModifiedAttributesSequence(0x0400, 0x0550);
+Tag const OriginalAttributesSequence(0x0400, 0x0561);
+Tag const AttributeModificationDateTime(0x0400, 0x0562);
+Tag const ModifyingSystem(0x0400, 0x0563);
+Tag const SourceOfPreviousValues(0x0400, 0x0564);
+Tag const ReasonForTheAttributeModification(0x0400, 0x0565);
+Tag const NumberOfCopies(0x2000, 0x0010);
+Tag const PrinterConfigurationSequence(0x2000, 0x001e);
+Tag const PrintPriority(0x2000, 0x0020);
+Tag const MediumType(0x2000, 0x0030);
+Tag const FilmDestination(0x2000, 0x0040);
+Tag const FilmSessionLabel(0x2000, 0x0050);
+Tag const MemoryAllocation(0x2000, 0x0060);
+Tag const MaximumMemoryAllocation(0x2000, 0x0061);
+Tag const ColorImagePrintingFlag(0x2000, 0x0062);
+Tag const CollationFlag(0x2000, 0x0063);
+Tag const AnnotationFlag(0x2000, 0x0065);
+Tag const ImageOverlayFlag(0x2000, 0x0067);
+Tag const PresentationLUTFlag(0x2000, 0x0069);
+Tag const ImageBoxPresentationLUTFlag(0x2000, 0x006a);
+Tag const MemoryBitDepth(0x2000, 0x00a0);
+Tag const PrintingBitDepth(0x2000, 0x00a1);
+Tag const MediaInstalledSequence(0x2000, 0x00a2);
+Tag const OtherMediaAvailableSequence(0x2000, 0x00a4);
+Tag const SupportedImageDisplayFormatsSequence(0x2000, 0x00a8);
+Tag const ReferencedFilmBoxSequence(0x2000, 0x0500);
+Tag const ReferencedStoredPrintSequence(0x2000, 0x0510);
+Tag const ImageDisplayFormat(0x2010, 0x0010);
+Tag const AnnotationDisplayFormatID(0x2010, 0x0030);
+Tag const FilmOrientation(0x2010, 0x0040);
+Tag const FilmSizeID(0x2010, 0x0050);
+Tag const PrinterResolutionID(0x2010, 0x0052);
+Tag const DefaultPrinterResolutionID(0x2010, 0x0054);
+Tag const MagnificationType(0x2010, 0x0060);
+Tag const SmoothingType(0x2010, 0x0080);
+Tag const DefaultMagnificationType(0x2010, 0x00a6);
+Tag const OtherMagnificationTypesAvailable(0x2010, 0x00a7);
+Tag const DefaultSmoothingType(0x2010, 0x00a8);
+Tag const OtherSmoothingTypesAvailable(0x2010, 0x00a9);
+Tag const BorderDensity(0x2010, 0x0100);
+Tag const EmptyImageDensity(0x2010, 0x0110);
+Tag const MinDensity(0x2010, 0x0120);
+Tag const MaxDensity(0x2010, 0x0130);
+Tag const Trim(0x2010, 0x0140);
+Tag const ConfigurationInformation(0x2010, 0x0150);
+Tag const ConfigurationInformationDescription(0x2010, 0x0152);
+Tag const MaximumCollatedFilms(0x2010, 0x0154);
+Tag const Illumination(0x2010, 0x015e);
+Tag const ReflectedAmbientLight(0x2010, 0x0160);
+Tag const PrinterPixelSpacing(0x2010, 0x0376);
+Tag const ReferencedFilmSessionSequence(0x2010, 0x0500);
+Tag const ReferencedImageBoxSequence(0x2010, 0x0510);
+Tag const ReferencedBasicAnnotationBoxSequence(0x2010, 0x0520);
+Tag const ImageBoxPosition(0x2020, 0x0010);
+Tag const Polarity(0x2020, 0x0020);
+Tag const RequestedImageSize(0x2020, 0x0030);
+Tag const RequestedDecimateCropBehavior(0x2020, 0x0040);
+Tag const RequestedResolutionID(0x2020, 0x0050);
+Tag const RequestedImageSizeFlag(0x2020, 0x00a0);
+Tag const DecimateCropResult(0x2020, 0x00a2);
+Tag const BasicGrayscaleImageSequence(0x2020, 0x0110);
+Tag const BasicColorImageSequence(0x2020, 0x0111);
+Tag const ReferencedImageOverlayBoxSequence(0x2020, 0x0130);
+Tag const ReferencedVOILUTBoxSequence(0x2020, 0x0140);
+Tag const AnnotationPosition(0x2030, 0x0010);
+Tag const TextString(0x2030, 0x0020);
+Tag const ReferencedOverlayPlaneSequence(0x2040, 0x0010);
+Tag const ReferencedOverlayPlaneGroups(0x2040, 0x0011);
+Tag const OverlayPixelDataSequence(0x2040, 0x0020);
+Tag const OverlayMagnificationType(0x2040, 0x0060);
+Tag const OverlaySmoothingType(0x2040, 0x0070);
+Tag const OverlayOrImageMagnification(0x2040, 0x0072);
+Tag const MagnifyToNumberOfColumns(0x2040, 0x0074);
+Tag const OverlayForegroundDensity(0x2040, 0x0080);
+Tag const OverlayBackgroundDensity(0x2040, 0x0082);
+Tag const OverlayMode(0x2040, 0x0090);
+Tag const ThresholdDensity(0x2040, 0x0100);
+Tag const ReferencedImageBoxSequenceRetired(0x2040, 0x0500);
+Tag const PresentationLUTSequence(0x2050, 0x0010);
+Tag const PresentationLUTShape(0x2050, 0x0020);
+Tag const ReferencedPresentationLUTSequence(0x2050, 0x0500);
+Tag const PrintJobID(0x2100, 0x0010);
+Tag const ExecutionStatus(0x2100, 0x0020);
+Tag const ExecutionStatusInfo(0x2100, 0x0030);
+Tag const CreationDate(0x2100, 0x0040);
+Tag const CreationTime(0x2100, 0x0050);
+Tag const Originator(0x2100, 0x0070);
+Tag const DestinationAE(0x2100, 0x0140);
+Tag const OwnerID(0x2100, 0x0160);
+Tag const NumberOfFilms(0x2100, 0x0170);
+Tag const ReferencedPrintJobSequencePullStoredPrint(0x2100, 0x0500);
+Tag const PrinterStatus(0x2110, 0x0010);
+Tag const PrinterStatusInfo(0x2110, 0x0020);
+Tag const PrinterName(0x2110, 0x0030);
+Tag const PrintQueueID(0x2110, 0x0099);
+Tag const QueueStatus(0x2120, 0x0010);
+Tag const PrintJobDescriptionSequence(0x2120, 0x0050);
+Tag const ReferencedPrintJobSequence(0x2120, 0x0070);
+Tag const PrintManagementCapabilitiesSequence(0x2130, 0x0010);
+Tag const PrinterCharacteristicsSequence(0x2130, 0x0015);
+Tag const FilmBoxContentSequence(0x2130, 0x0030);
+Tag const ImageBoxContentSequence(0x2130, 0x0040);
+Tag const AnnotationContentSequence(0x2130, 0x0050);
+Tag const ImageOverlayBoxContentSequence(0x2130, 0x0060);
+Tag const PresentationLUTContentSequence(0x2130, 0x0080);
+Tag const ProposedStudySequence(0x2130, 0x00a0);
+Tag const OriginalImageSequence(0x2130, 0x00c0);
+Tag const LabelUsingInformationExtractedFromInstances(0x2200, 0x0001);
+Tag const LabelText(0x2200, 0x0002);
+Tag const LabelStyleSelection(0x2200, 0x0003);
+Tag const MediaDisposition(0x2200, 0x0004);
+Tag const BarcodeValue(0x2200, 0x0005);
+Tag const BarcodeSymbology(0x2200, 0x0006);
+Tag const AllowMediaSplitting(0x2200, 0x0007);
+Tag const IncludeNonDICOMObjects(0x2200, 0x0008);
+Tag const IncludeDisplayApplication(0x2200, 0x0009);
+Tag const PreserveCompositeInstancesAfterMediaCreation(0x2200, 0x000a);
+Tag const TotalNumberOfPiecesOfMediaCreated(0x2200, 0x000b);
+Tag const RequestedMediaApplicationProfile(0x2200, 0x000c);
+Tag const ReferencedStorageMediaSequence(0x2200, 0x000d);
+Tag const FailureAttributes(0x2200, 0x000e);
+Tag const AllowLossyCompression(0x2200, 0x000f);
+Tag const RequestPriority(0x2200, 0x0020);
+Tag const RTImageLabel(0x3002, 0x0002);
+Tag const RTImageName(0x3002, 0x0003);
+Tag const RTImageDescription(0x3002, 0x0004);
+Tag const ReportedValuesOrigin(0x3002, 0x000a);
+Tag const RTImagePlane(0x3002, 0x000c);
+Tag const XRayImageReceptorTranslation(0x3002, 0x000d);
+Tag const XRayImageReceptorAngle(0x3002, 0x000e);
+Tag const RTImageOrientation(0x3002, 0x0010);
+Tag const ImagePlanePixelSpacing(0x3002, 0x0011);
+Tag const RTImagePosition(0x3002, 0x0012);
+Tag const RadiationMachineName(0x3002, 0x0020);
+Tag const RadiationMachineSAD(0x3002, 0x0022);
+Tag const RadiationMachineSSD(0x3002, 0x0024);
+Tag const RTImageSID(0x3002, 0x0026);
+Tag const SourceToReferenceObjectDistance(0x3002, 0x0028);
+Tag const FractionNumber(0x3002, 0x0029);
+Tag const ExposureSequence(0x3002, 0x0030);
+Tag const MetersetExposure(0x3002, 0x0032);
+Tag const DiaphragmPosition(0x3002, 0x0034);
+Tag const FluenceMapSequence(0x3002, 0x0040);
+Tag const FluenceDataSource(0x3002, 0x0041);
+Tag const FluenceDataScale(0x3002, 0x0042);
+Tag const PrimaryFluenceModeSequence(0x3002, 0x0050);
+Tag const FluenceMode(0x3002, 0x0051);
+Tag const FluenceModeID(0x3002, 0x0052);
+Tag const DVHType(0x3004, 0x0001);
+Tag const DoseUnits(0x3004, 0x0002);
+Tag const DoseType(0x3004, 0x0004);
+Tag const SpatialTransformOfDose(0x3004, 0x0005);
+Tag const DoseComment(0x3004, 0x0006);
+Tag const NormalizationPoint(0x3004, 0x0008);
+Tag const DoseSummationType(0x3004, 0x000a);
+Tag const GridFrameOffsetVector(0x3004, 0x000c);
+Tag const DoseGridScaling(0x3004, 0x000e);
+Tag const RTDoseROISequence(0x3004, 0x0010);
+Tag const DoseValue(0x3004, 0x0012);
+Tag const TissueHeterogeneityCorrection(0x3004, 0x0014);
+Tag const DVHNormalizationPoint(0x3004, 0x0040);
+Tag const DVHNormalizationDoseValue(0x3004, 0x0042);
+Tag const DVHSequence(0x3004, 0x0050);
+Tag const DVHDoseScaling(0x3004, 0x0052);
+Tag const DVHVolumeUnits(0x3004, 0x0054);
+Tag const DVHNumberOfBins(0x3004, 0x0056);
+Tag const DVHData(0x3004, 0x0058);
+Tag const DVHReferencedROISequence(0x3004, 0x0060);
+Tag const DVHROIContributionType(0x3004, 0x0062);
+Tag const DVHMinimumDose(0x3004, 0x0070);
+Tag const DVHMaximumDose(0x3004, 0x0072);
+Tag const DVHMeanDose(0x3004, 0x0074);
+Tag const StructureSetLabel(0x3006, 0x0002);
+Tag const StructureSetName(0x3006, 0x0004);
+Tag const StructureSetDescription(0x3006, 0x0006);
+Tag const StructureSetDate(0x3006, 0x0008);
+Tag const StructureSetTime(0x3006, 0x0009);
+Tag const ReferencedFrameOfReferenceSequence(0x3006, 0x0010);
+Tag const RTReferencedStudySequence(0x3006, 0x0012);
+Tag const RTReferencedSeriesSequence(0x3006, 0x0014);
+Tag const ContourImageSequence(0x3006, 0x0016);
+Tag const PredecessorStructureSetSequence(0x3006, 0x0018);
+Tag const StructureSetROISequence(0x3006, 0x0020);
+Tag const ROINumber(0x3006, 0x0022);
+Tag const ReferencedFrameOfReferenceUID(0x3006, 0x0024);
+Tag const ROIName(0x3006, 0x0026);
+Tag const ROIDescription(0x3006, 0x0028);
+Tag const ROIDisplayColor(0x3006, 0x002a);
+Tag const ROIVolume(0x3006, 0x002c);
+Tag const RTRelatedROISequence(0x3006, 0x0030);
+Tag const RTROIRelationship(0x3006, 0x0033);
+Tag const ROIGenerationAlgorithm(0x3006, 0x0036);
+Tag const ROIGenerationDescription(0x3006, 0x0038);
+Tag const ROIContourSequence(0x3006, 0x0039);
+Tag const ContourSequence(0x3006, 0x0040);
+Tag const ContourGeometricType(0x3006, 0x0042);
+Tag const ContourSlabThickness(0x3006, 0x0044);
+Tag const ContourOffsetVector(0x3006, 0x0045);
+Tag const NumberOfContourPoints(0x3006, 0x0046);
+Tag const ContourNumber(0x3006, 0x0048);
+Tag const AttachedContours(0x3006, 0x0049);
+Tag const ContourData(0x3006, 0x0050);
+Tag const RTROIObservationsSequence(0x3006, 0x0080);
+Tag const ObservationNumber(0x3006, 0x0082);
+Tag const ReferencedROINumber(0x3006, 0x0084);
+Tag const ROIObservationLabel(0x3006, 0x0085);
+Tag const RTROIIdentificationCodeSequence(0x3006, 0x0086);
+Tag const ROIObservationDescription(0x3006, 0x0088);
+Tag const RelatedRTROIObservationsSequence(0x3006, 0x00a0);
+Tag const RTROIInterpretedType(0x3006, 0x00a4);
+Tag const ROIInterpreter(0x3006, 0x00a6);
+Tag const ROIPhysicalPropertiesSequence(0x3006, 0x00b0);
+Tag const ROIPhysicalProperty(0x3006, 0x00b2);
+Tag const ROIPhysicalPropertyValue(0x3006, 0x00b4);
+Tag const ROIElementalCompositionSequence(0x3006, 0x00b6);
+Tag const ROIElementalCompositionAtomicNumber(0x3006, 0x00b7);
+Tag const ROIElementalCompositionAtomicMassFraction(0x3006, 0x00b8);
+Tag const AdditionalRTROIIdentificationCodeSequence(0x3006, 0x00b9);
+Tag const FrameOfReferenceRelationshipSequence(0x3006, 0x00c0);
+Tag const RelatedFrameOfReferenceUID(0x3006, 0x00c2);
+Tag const FrameOfReferenceTransformationType(0x3006, 0x00c4);
+Tag const FrameOfReferenceTransformationMatrix(0x3006, 0x00c6);
+Tag const FrameOfReferenceTransformationComment(0x3006, 0x00c8);
+Tag const MeasuredDoseReferenceSequence(0x3008, 0x0010);
+Tag const MeasuredDoseDescription(0x3008, 0x0012);
+Tag const MeasuredDoseType(0x3008, 0x0014);
+Tag const MeasuredDoseValue(0x3008, 0x0016);
+Tag const TreatmentSessionBeamSequence(0x3008, 0x0020);
+Tag const TreatmentSessionIonBeamSequence(0x3008, 0x0021);
+Tag const CurrentFractionNumber(0x3008, 0x0022);
+Tag const TreatmentControlPointDate(0x3008, 0x0024);
+Tag const TreatmentControlPointTime(0x3008, 0x0025);
+Tag const TreatmentTerminationStatus(0x3008, 0x002a);
+Tag const TreatmentTerminationCode(0x3008, 0x002b);
+Tag const TreatmentVerificationStatus(0x3008, 0x002c);
+Tag const ReferencedTreatmentRecordSequence(0x3008, 0x0030);
+Tag const SpecifiedPrimaryMeterset(0x3008, 0x0032);
+Tag const SpecifiedSecondaryMeterset(0x3008, 0x0033);
+Tag const DeliveredPrimaryMeterset(0x3008, 0x0036);
+Tag const DeliveredSecondaryMeterset(0x3008, 0x0037);
+Tag const SpecifiedTreatmentTime(0x3008, 0x003a);
+Tag const DeliveredTreatmentTime(0x3008, 0x003b);
+Tag const ControlPointDeliverySequence(0x3008, 0x0040);
+Tag const IonControlPointDeliverySequence(0x3008, 0x0041);
+Tag const SpecifiedMeterset(0x3008, 0x0042);
+Tag const DeliveredMeterset(0x3008, 0x0044);
+Tag const MetersetRateSet(0x3008, 0x0045);
+Tag const MetersetRateDelivered(0x3008, 0x0046);
+Tag const ScanSpotMetersetsDelivered(0x3008, 0x0047);
+Tag const DoseRateDelivered(0x3008, 0x0048);
+Tag const TreatmentSummaryCalculatedDoseReferenceSequence(0x3008, 0x0050);
+Tag const CumulativeDoseToDoseReference(0x3008, 0x0052);
+Tag const FirstTreatmentDate(0x3008, 0x0054);
+Tag const MostRecentTreatmentDate(0x3008, 0x0056);
+Tag const NumberOfFractionsDelivered(0x3008, 0x005a);
+Tag const OverrideSequence(0x3008, 0x0060);
+Tag const ParameterSequencePointer(0x3008, 0x0061);
+Tag const OverrideParameterPointer(0x3008, 0x0062);
+Tag const ParameterItemIndex(0x3008, 0x0063);
+Tag const MeasuredDoseReferenceNumber(0x3008, 0x0064);
+Tag const ParameterPointer(0x3008, 0x0065);
+Tag const OverrideReason(0x3008, 0x0066);
+Tag const CorrectedParameterSequence(0x3008, 0x0068);
+Tag const CorrectionValue(0x3008, 0x006a);
+Tag const CalculatedDoseReferenceSequence(0x3008, 0x0070);
+Tag const CalculatedDoseReferenceNumber(0x3008, 0x0072);
+Tag const CalculatedDoseReferenceDescription(0x3008, 0x0074);
+Tag const CalculatedDoseReferenceDoseValue(0x3008, 0x0076);
+Tag const StartMeterset(0x3008, 0x0078);
+Tag const EndMeterset(0x3008, 0x007a);
+Tag const ReferencedMeasuredDoseReferenceSequence(0x3008, 0x0080);
+Tag const ReferencedMeasuredDoseReferenceNumber(0x3008, 0x0082);
+Tag const ReferencedCalculatedDoseReferenceSequence(0x3008, 0x0090);
+Tag const ReferencedCalculatedDoseReferenceNumber(0x3008, 0x0092);
+Tag const BeamLimitingDeviceLeafPairsSequence(0x3008, 0x00a0);
+Tag const RecordedWedgeSequence(0x3008, 0x00b0);
+Tag const RecordedCompensatorSequence(0x3008, 0x00c0);
+Tag const RecordedBlockSequence(0x3008, 0x00d0);
+Tag const TreatmentSummaryMeasuredDoseReferenceSequence(0x3008, 0x00e0);
+Tag const RecordedSnoutSequence(0x3008, 0x00f0);
+Tag const RecordedRangeShifterSequence(0x3008, 0x00f2);
+Tag const RecordedLateralSpreadingDeviceSequence(0x3008, 0x00f4);
+Tag const RecordedRangeModulatorSequence(0x3008, 0x00f6);
+Tag const RecordedSourceSequence(0x3008, 0x0100);
+Tag const SourceSerialNumber(0x3008, 0x0105);
+Tag const TreatmentSessionApplicationSetupSequence(0x3008, 0x0110);
+Tag const ApplicationSetupCheck(0x3008, 0x0116);
+Tag const RecordedBrachyAccessoryDeviceSequence(0x3008, 0x0120);
+Tag const ReferencedBrachyAccessoryDeviceNumber(0x3008, 0x0122);
+Tag const RecordedChannelSequence(0x3008, 0x0130);
+Tag const SpecifiedChannelTotalTime(0x3008, 0x0132);
+Tag const DeliveredChannelTotalTime(0x3008, 0x0134);
+Tag const SpecifiedNumberOfPulses(0x3008, 0x0136);
+Tag const DeliveredNumberOfPulses(0x3008, 0x0138);
+Tag const SpecifiedPulseRepetitionInterval(0x3008, 0x013a);
+Tag const DeliveredPulseRepetitionInterval(0x3008, 0x013c);
+Tag const RecordedSourceApplicatorSequence(0x3008, 0x0140);
+Tag const ReferencedSourceApplicatorNumber(0x3008, 0x0142);
+Tag const RecordedChannelShieldSequence(0x3008, 0x0150);
+Tag const ReferencedChannelShieldNumber(0x3008, 0x0152);
+Tag const BrachyControlPointDeliveredSequence(0x3008, 0x0160);
+Tag const SafePositionExitDate(0x3008, 0x0162);
+Tag const SafePositionExitTime(0x3008, 0x0164);
+Tag const SafePositionReturnDate(0x3008, 0x0166);
+Tag const SafePositionReturnTime(0x3008, 0x0168);
+Tag const PulseSpecificBrachyControlPointDeliveredSequence(0x3008, 0x0171);
+Tag const PulseNumber(0x3008, 0x0172);
+Tag const BrachyPulseControlPointDeliveredSequence(0x3008, 0x0173);
+Tag const CurrentTreatmentStatus(0x3008, 0x0200);
+Tag const TreatmentStatusComment(0x3008, 0x0202);
+Tag const FractionGroupSummarySequence(0x3008, 0x0220);
+Tag const ReferencedFractionNumber(0x3008, 0x0223);
+Tag const FractionGroupType(0x3008, 0x0224);
+Tag const BeamStopperPosition(0x3008, 0x0230);
+Tag const FractionStatusSummarySequence(0x3008, 0x0240);
+Tag const TreatmentDate(0x3008, 0x0250);
+Tag const TreatmentTime(0x3008, 0x0251);
+Tag const RTPlanLabel(0x300a, 0x0002);
+Tag const RTPlanName(0x300a, 0x0003);
+Tag const RTPlanDescription(0x300a, 0x0004);
+Tag const RTPlanDate(0x300a, 0x0006);
+Tag const RTPlanTime(0x300a, 0x0007);
+Tag const TreatmentProtocols(0x300a, 0x0009);
+Tag const PlanIntent(0x300a, 0x000a);
+Tag const TreatmentSites(0x300a, 0x000b);
+Tag const RTPlanGeometry(0x300a, 0x000c);
+Tag const PrescriptionDescription(0x300a, 0x000e);
+Tag const DoseReferenceSequence(0x300a, 0x0010);
+Tag const DoseReferenceNumber(0x300a, 0x0012);
+Tag const DoseReferenceUID(0x300a, 0x0013);
+Tag const DoseReferenceStructureType(0x300a, 0x0014);
+Tag const NominalBeamEnergyUnit(0x300a, 0x0015);
+Tag const DoseReferenceDescription(0x300a, 0x0016);
+Tag const DoseReferencePointCoordinates(0x300a, 0x0018);
+Tag const NominalPriorDose(0x300a, 0x001a);
+Tag const DoseReferenceType(0x300a, 0x0020);
+Tag const ConstraintWeight(0x300a, 0x0021);
+Tag const DeliveryWarningDose(0x300a, 0x0022);
+Tag const DeliveryMaximumDose(0x300a, 0x0023);
+Tag const TargetMinimumDose(0x300a, 0x0025);
+Tag const TargetPrescriptionDose(0x300a, 0x0026);
+Tag const TargetMaximumDose(0x300a, 0x0027);
+Tag const TargetUnderdoseVolumeFraction(0x300a, 0x0028);
+Tag const OrganAtRiskFullVolumeDose(0x300a, 0x002a);
+Tag const OrganAtRiskLimitDose(0x300a, 0x002b);
+Tag const OrganAtRiskMaximumDose(0x300a, 0x002c);
+Tag const OrganAtRiskOverdoseVolumeFraction(0x300a, 0x002d);
+Tag const ToleranceTableSequence(0x300a, 0x0040);
+Tag const ToleranceTableNumber(0x300a, 0x0042);
+Tag const ToleranceTableLabel(0x300a, 0x0043);
+Tag const GantryAngleTolerance(0x300a, 0x0044);
+Tag const BeamLimitingDeviceAngleTolerance(0x300a, 0x0046);
+Tag const BeamLimitingDeviceToleranceSequence(0x300a, 0x0048);
+Tag const BeamLimitingDevicePositionTolerance(0x300a, 0x004a);
+Tag const SnoutPositionTolerance(0x300a, 0x004b);
+Tag const PatientSupportAngleTolerance(0x300a, 0x004c);
+Tag const TableTopEccentricAngleTolerance(0x300a, 0x004e);
+Tag const TableTopPitchAngleTolerance(0x300a, 0x004f);
+Tag const TableTopRollAngleTolerance(0x300a, 0x0050);
+Tag const TableTopVerticalPositionTolerance(0x300a, 0x0051);
+Tag const TableTopLongitudinalPositionTolerance(0x300a, 0x0052);
+Tag const TableTopLateralPositionTolerance(0x300a, 0x0053);
+Tag const RTPlanRelationship(0x300a, 0x0055);
+Tag const FractionGroupSequence(0x300a, 0x0070);
+Tag const FractionGroupNumber(0x300a, 0x0071);
+Tag const FractionGroupDescription(0x300a, 0x0072);
+Tag const NumberOfFractionsPlanned(0x300a, 0x0078);
+Tag const NumberOfFractionPatternDigitsPerDay(0x300a, 0x0079);
+Tag const RepeatFractionCycleLength(0x300a, 0x007a);
+Tag const FractionPattern(0x300a, 0x007b);
+Tag const NumberOfBeams(0x300a, 0x0080);
+Tag const BeamDoseSpecificationPoint(0x300a, 0x0082);
+Tag const BeamDose(0x300a, 0x0084);
+Tag const BeamMeterset(0x300a, 0x0086);
+Tag const BeamDosePointDepth(0x300a, 0x0088);
+Tag const BeamDosePointEquivalentDepth(0x300a, 0x0089);
+Tag const BeamDosePointSSD(0x300a, 0x008a);
+Tag const BeamDoseMeaning(0x300a, 0x008b);
+Tag const BeamDoseVerificationControlPointSequence(0x300a, 0x008c);
+Tag const AverageBeamDosePointDepth(0x300a, 0x008d);
+Tag const AverageBeamDosePointEquivalentDepth(0x300a, 0x008e);
+Tag const AverageBeamDosePointSSD(0x300a, 0x008f);
+Tag const NumberOfBrachyApplicationSetups(0x300a, 0x00a0);
+Tag const BrachyApplicationSetupDoseSpecificationPoint(0x300a, 0x00a2);
+Tag const BrachyApplicationSetupDose(0x300a, 0x00a4);
+Tag const BeamSequence(0x300a, 0x00b0);
+Tag const TreatmentMachineName(0x300a, 0x00b2);
+Tag const PrimaryDosimeterUnit(0x300a, 0x00b3);
+Tag const SourceAxisDistance(0x300a, 0x00b4);
+Tag const BeamLimitingDeviceSequence(0x300a, 0x00b6);
+Tag const RTBeamLimitingDeviceType(0x300a, 0x00b8);
+Tag const SourceToBeamLimitingDeviceDistance(0x300a, 0x00ba);
+Tag const IsocenterToBeamLimitingDeviceDistance(0x300a, 0x00bb);
+Tag const NumberOfLeafJawPairs(0x300a, 0x00bc);
+Tag const LeafPositionBoundaries(0x300a, 0x00be);
+Tag const BeamNumber(0x300a, 0x00c0);
+Tag const BeamName(0x300a, 0x00c2);
+Tag const BeamDescription(0x300a, 0x00c3);
+Tag const BeamType(0x300a, 0x00c4);
+Tag const BeamDeliveryDurationLimit(0x300a, 0x00c5);
+Tag const RadiationType(0x300a, 0x00c6);
+Tag const HighDoseTechniqueType(0x300a, 0x00c7);
+Tag const ReferenceImageNumber(0x300a, 0x00c8);
+Tag const PlannedVerificationImageSequence(0x300a, 0x00ca);
+Tag const ImagingDeviceSpecificAcquisitionParameters(0x300a, 0x00cc);
+Tag const TreatmentDeliveryType(0x300a, 0x00ce);
+Tag const NumberOfWedges(0x300a, 0x00d0);
+Tag const WedgeSequence(0x300a, 0x00d1);
+Tag const WedgeNumber(0x300a, 0x00d2);
+Tag const WedgeType(0x300a, 0x00d3);
+Tag const WedgeID(0x300a, 0x00d4);
+Tag const WedgeAngle(0x300a, 0x00d5);
+Tag const WedgeFactor(0x300a, 0x00d6);
+Tag const TotalWedgeTrayWaterEquivalentThickness(0x300a, 0x00d7);
+Tag const WedgeOrientation(0x300a, 0x00d8);
+Tag const IsocenterToWedgeTrayDistance(0x300a, 0x00d9);
+Tag const SourceToWedgeTrayDistance(0x300a, 0x00da);
+Tag const WedgeThinEdgePosition(0x300a, 0x00db);
+Tag const BolusID(0x300a, 0x00dc);
+Tag const BolusDescription(0x300a, 0x00dd);
+Tag const EffectiveWedgeAngle(0x300a, 0x00de);
+Tag const NumberOfCompensators(0x300a, 0x00e0);
+Tag const MaterialID(0x300a, 0x00e1);
+Tag const TotalCompensatorTrayFactor(0x300a, 0x00e2);
+Tag const CompensatorSequence(0x300a, 0x00e3);
+Tag const CompensatorNumber(0x300a, 0x00e4);
+Tag const CompensatorID(0x300a, 0x00e5);
+Tag const SourceToCompensatorTrayDistance(0x300a, 0x00e6);
+Tag const CompensatorRows(0x300a, 0x00e7);
+Tag const CompensatorColumns(0x300a, 0x00e8);
+Tag const CompensatorPixelSpacing(0x300a, 0x00e9);
+Tag const CompensatorPosition(0x300a, 0x00ea);
+Tag const CompensatorTransmissionData(0x300a, 0x00eb);
+Tag const CompensatorThicknessData(0x300a, 0x00ec);
+Tag const NumberOfBoli(0x300a, 0x00ed);
+Tag const CompensatorType(0x300a, 0x00ee);
+Tag const CompensatorTrayID(0x300a, 0x00ef);
+Tag const NumberOfBlocks(0x300a, 0x00f0);
+Tag const TotalBlockTrayFactor(0x300a, 0x00f2);
+Tag const TotalBlockTrayWaterEquivalentThickness(0x300a, 0x00f3);
+Tag const BlockSequence(0x300a, 0x00f4);
+Tag const BlockTrayID(0x300a, 0x00f5);
+Tag const SourceToBlockTrayDistance(0x300a, 0x00f6);
+Tag const IsocenterToBlockTrayDistance(0x300a, 0x00f7);
+Tag const BlockType(0x300a, 0x00f8);
+Tag const AccessoryCode(0x300a, 0x00f9);
+Tag const BlockDivergence(0x300a, 0x00fa);
+Tag const BlockMountingPosition(0x300a, 0x00fb);
+Tag const BlockNumber(0x300a, 0x00fc);
+Tag const BlockName(0x300a, 0x00fe);
+Tag const BlockThickness(0x300a, 0x0100);
+Tag const BlockTransmission(0x300a, 0x0102);
+Tag const BlockNumberOfPoints(0x300a, 0x0104);
+Tag const BlockData(0x300a, 0x0106);
+Tag const ApplicatorSequence(0x300a, 0x0107);
+Tag const ApplicatorID(0x300a, 0x0108);
+Tag const ApplicatorType(0x300a, 0x0109);
+Tag const ApplicatorDescription(0x300a, 0x010a);
+Tag const CumulativeDoseReferenceCoefficient(0x300a, 0x010c);
+Tag const FinalCumulativeMetersetWeight(0x300a, 0x010e);
+Tag const NumberOfControlPoints(0x300a, 0x0110);
+Tag const ControlPointSequence(0x300a, 0x0111);
+Tag const ControlPointIndex(0x300a, 0x0112);
+Tag const NominalBeamEnergy(0x300a, 0x0114);
+Tag const DoseRateSet(0x300a, 0x0115);
+Tag const WedgePositionSequence(0x300a, 0x0116);
+Tag const WedgePosition(0x300a, 0x0118);
+Tag const BeamLimitingDevicePositionSequence(0x300a, 0x011a);
+Tag const LeafJawPositions(0x300a, 0x011c);
+Tag const GantryAngle(0x300a, 0x011e);
+Tag const GantryRotationDirection(0x300a, 0x011f);
+Tag const BeamLimitingDeviceAngle(0x300a, 0x0120);
+Tag const BeamLimitingDeviceRotationDirection(0x300a, 0x0121);
+Tag const PatientSupportAngle(0x300a, 0x0122);
+Tag const PatientSupportRotationDirection(0x300a, 0x0123);
+Tag const TableTopEccentricAxisDistance(0x300a, 0x0124);
+Tag const TableTopEccentricAngle(0x300a, 0x0125);
+Tag const TableTopEccentricRotationDirection(0x300a, 0x0126);
+Tag const TableTopVerticalPosition(0x300a, 0x0128);
+Tag const TableTopLongitudinalPosition(0x300a, 0x0129);
+Tag const TableTopLateralPosition(0x300a, 0x012a);
+Tag const IsocenterPosition(0x300a, 0x012c);
+Tag const SurfaceEntryPoint(0x300a, 0x012e);
+Tag const SourceToSurfaceDistance(0x300a, 0x0130);
+Tag const AverageBeamDosePointSourceToExternalContourSurfaceDistance(0x300a, 0x0131);
+Tag const SourceToExternalContourDistance(0x300a, 0x0132);
+Tag const ExternalContourEntryPoint(0x300a, 0x0133);
+Tag const CumulativeMetersetWeight(0x300a, 0x0134);
+Tag const TableTopPitchAngle(0x300a, 0x0140);
+Tag const TableTopPitchRotationDirection(0x300a, 0x0142);
+Tag const TableTopRollAngle(0x300a, 0x0144);
+Tag const TableTopRollRotationDirection(0x300a, 0x0146);
+Tag const HeadFixationAngle(0x300a, 0x0148);
+Tag const GantryPitchAngle(0x300a, 0x014a);
+Tag const GantryPitchRotationDirection(0x300a, 0x014c);
+Tag const GantryPitchAngleTolerance(0x300a, 0x014e);
+Tag const PatientSetupSequence(0x300a, 0x0180);
+Tag const PatientSetupNumber(0x300a, 0x0182);
+Tag const PatientSetupLabel(0x300a, 0x0183);
+Tag const PatientAdditionalPosition(0x300a, 0x0184);
+Tag const FixationDeviceSequence(0x300a, 0x0190);
+Tag const FixationDeviceType(0x300a, 0x0192);
+Tag const FixationDeviceLabel(0x300a, 0x0194);
+Tag const FixationDeviceDescription(0x300a, 0x0196);
+Tag const FixationDevicePosition(0x300a, 0x0198);
+Tag const FixationDevicePitchAngle(0x300a, 0x0199);
+Tag const FixationDeviceRollAngle(0x300a, 0x019a);
+Tag const ShieldingDeviceSequence(0x300a, 0x01a0);
+Tag const ShieldingDeviceType(0x300a, 0x01a2);
+Tag const ShieldingDeviceLabel(0x300a, 0x01a4);
+Tag const ShieldingDeviceDescription(0x300a, 0x01a6);
+Tag const ShieldingDevicePosition(0x300a, 0x01a8);
+Tag const SetupTechnique(0x300a, 0x01b0);
+Tag const SetupTechniqueDescription(0x300a, 0x01b2);
+Tag const SetupDeviceSequence(0x300a, 0x01b4);
+Tag const SetupDeviceType(0x300a, 0x01b6);
+Tag const SetupDeviceLabel(0x300a, 0x01b8);
+Tag const SetupDeviceDescription(0x300a, 0x01ba);
+Tag const SetupDeviceParameter(0x300a, 0x01bc);
+Tag const SetupReferenceDescription(0x300a, 0x01d0);
+Tag const TableTopVerticalSetupDisplacement(0x300a, 0x01d2);
+Tag const TableTopLongitudinalSetupDisplacement(0x300a, 0x01d4);
+Tag const TableTopLateralSetupDisplacement(0x300a, 0x01d6);
+Tag const BrachyTreatmentTechnique(0x300a, 0x0200);
+Tag const BrachyTreatmentType(0x300a, 0x0202);
+Tag const TreatmentMachineSequence(0x300a, 0x0206);
+Tag const SourceSequence(0x300a, 0x0210);
+Tag const SourceNumber(0x300a, 0x0212);
+Tag const SourceType(0x300a, 0x0214);
+Tag const SourceManufacturer(0x300a, 0x0216);
+Tag const ActiveSourceDiameter(0x300a, 0x0218);
+Tag const ActiveSourceLength(0x300a, 0x021a);
+Tag const SourceModelID(0x300a, 0x021b);
+Tag const SourceDescription(0x300a, 0x021c);
+Tag const SourceEncapsulationNominalThickness(0x300a, 0x0222);
+Tag const SourceEncapsulationNominalTransmission(0x300a, 0x0224);
+Tag const SourceIsotopeName(0x300a, 0x0226);
+Tag const SourceIsotopeHalfLife(0x300a, 0x0228);
+Tag const SourceStrengthUnits(0x300a, 0x0229);
+Tag const ReferenceAirKermaRate(0x300a, 0x022a);
+Tag const SourceStrength(0x300a, 0x022b);
+Tag const SourceStrengthReferenceDate(0x300a, 0x022c);
+Tag const SourceStrengthReferenceTime(0x300a, 0x022e);
+Tag const ApplicationSetupSequence(0x300a, 0x0230);
+Tag const ApplicationSetupType(0x300a, 0x0232);
+Tag const ApplicationSetupNumber(0x300a, 0x0234);
+Tag const ApplicationSetupName(0x300a, 0x0236);
+Tag const ApplicationSetupManufacturer(0x300a, 0x0238);
+Tag const TemplateNumber(0x300a, 0x0240);
+Tag const TemplateType(0x300a, 0x0242);
+Tag const TemplateName(0x300a, 0x0244);
+Tag const TotalReferenceAirKerma(0x300a, 0x0250);
+Tag const BrachyAccessoryDeviceSequence(0x300a, 0x0260);
+Tag const BrachyAccessoryDeviceNumber(0x300a, 0x0262);
+Tag const BrachyAccessoryDeviceID(0x300a, 0x0263);
+Tag const BrachyAccessoryDeviceType(0x300a, 0x0264);
+Tag const BrachyAccessoryDeviceName(0x300a, 0x0266);
+Tag const BrachyAccessoryDeviceNominalThickness(0x300a, 0x026a);
+Tag const BrachyAccessoryDeviceNominalTransmission(0x300a, 0x026c);
+Tag const ChannelSequence(0x300a, 0x0280);
+Tag const ChannelNumber(0x300a, 0x0282);
+Tag const ChannelLength(0x300a, 0x0284);
+Tag const ChannelTotalTime(0x300a, 0x0286);
+Tag const SourceMovementType(0x300a, 0x0288);
+Tag const NumberOfPulses(0x300a, 0x028a);
+Tag const PulseRepetitionInterval(0x300a, 0x028c);
+Tag const SourceApplicatorNumber(0x300a, 0x0290);
+Tag const SourceApplicatorID(0x300a, 0x0291);
+Tag const SourceApplicatorType(0x300a, 0x0292);
+Tag const SourceApplicatorName(0x300a, 0x0294);
+Tag const SourceApplicatorLength(0x300a, 0x0296);
+Tag const SourceApplicatorManufacturer(0x300a, 0x0298);
+Tag const SourceApplicatorWallNominalThickness(0x300a, 0x029c);
+Tag const SourceApplicatorWallNominalTransmission(0x300a, 0x029e);
+Tag const SourceApplicatorStepSize(0x300a, 0x02a0);
+Tag const TransferTubeNumber(0x300a, 0x02a2);
+Tag const TransferTubeLength(0x300a, 0x02a4);
+Tag const ChannelShieldSequence(0x300a, 0x02b0);
+Tag const ChannelShieldNumber(0x300a, 0x02b2);
+Tag const ChannelShieldID(0x300a, 0x02b3);
+Tag const ChannelShieldName(0x300a, 0x02b4);
+Tag const ChannelShieldNominalThickness(0x300a, 0x02b8);
+Tag const ChannelShieldNominalTransmission(0x300a, 0x02ba);
+Tag const FinalCumulativeTimeWeight(0x300a, 0x02c8);
+Tag const BrachyControlPointSequence(0x300a, 0x02d0);
+Tag const ControlPointRelativePosition(0x300a, 0x02d2);
+Tag const ControlPoint3DPosition(0x300a, 0x02d4);
+Tag const CumulativeTimeWeight(0x300a, 0x02d6);
+Tag const CompensatorDivergence(0x300a, 0x02e0);
+Tag const CompensatorMountingPosition(0x300a, 0x02e1);
+Tag const SourceToCompensatorDistance(0x300a, 0x02e2);
+Tag const TotalCompensatorTrayWaterEquivalentThickness(0x300a, 0x02e3);
+Tag const IsocenterToCompensatorTrayDistance(0x300a, 0x02e4);
+Tag const CompensatorColumnOffset(0x300a, 0x02e5);
+Tag const IsocenterToCompensatorDistances(0x300a, 0x02e6);
+Tag const CompensatorRelativeStoppingPowerRatio(0x300a, 0x02e7);
+Tag const CompensatorMillingToolDiameter(0x300a, 0x02e8);
+Tag const IonRangeCompensatorSequence(0x300a, 0x02ea);
+Tag const CompensatorDescription(0x300a, 0x02eb);
+Tag const RadiationMassNumber(0x300a, 0x0302);
+Tag const RadiationAtomicNumber(0x300a, 0x0304);
+Tag const RadiationChargeState(0x300a, 0x0306);
+Tag const ScanMode(0x300a, 0x0308);
+Tag const VirtualSourceAxisDistances(0x300a, 0x030a);
+Tag const SnoutSequence(0x300a, 0x030c);
+Tag const SnoutPosition(0x300a, 0x030d);
+Tag const SnoutID(0x300a, 0x030f);
+Tag const NumberOfRangeShifters(0x300a, 0x0312);
+Tag const RangeShifterSequence(0x300a, 0x0314);
+Tag const RangeShifterNumber(0x300a, 0x0316);
+Tag const RangeShifterID(0x300a, 0x0318);
+Tag const RangeShifterType(0x300a, 0x0320);
+Tag const RangeShifterDescription(0x300a, 0x0322);
+Tag const NumberOfLateralSpreadingDevices(0x300a, 0x0330);
+Tag const LateralSpreadingDeviceSequence(0x300a, 0x0332);
+Tag const LateralSpreadingDeviceNumber(0x300a, 0x0334);
+Tag const LateralSpreadingDeviceID(0x300a, 0x0336);
+Tag const LateralSpreadingDeviceType(0x300a, 0x0338);
+Tag const LateralSpreadingDeviceDescription(0x300a, 0x033a);
+Tag const LateralSpreadingDeviceWaterEquivalentThickness(0x300a, 0x033c);
+Tag const NumberOfRangeModulators(0x300a, 0x0340);
+Tag const RangeModulatorSequence(0x300a, 0x0342);
+Tag const RangeModulatorNumber(0x300a, 0x0344);
+Tag const RangeModulatorID(0x300a, 0x0346);
+Tag const RangeModulatorType(0x300a, 0x0348);
+Tag const RangeModulatorDescription(0x300a, 0x034a);
+Tag const BeamCurrentModulationID(0x300a, 0x034c);
+Tag const PatientSupportType(0x300a, 0x0350);
+Tag const PatientSupportID(0x300a, 0x0352);
+Tag const PatientSupportAccessoryCode(0x300a, 0x0354);
+Tag const FixationLightAzimuthalAngle(0x300a, 0x0356);
+Tag const FixationLightPolarAngle(0x300a, 0x0358);
+Tag const MetersetRate(0x300a, 0x035a);
+Tag const RangeShifterSettingsSequence(0x300a, 0x0360);
+Tag const RangeShifterSetting(0x300a, 0x0362);
+Tag const IsocenterToRangeShifterDistance(0x300a, 0x0364);
+Tag const RangeShifterWaterEquivalentThickness(0x300a, 0x0366);
+Tag const LateralSpreadingDeviceSettingsSequence(0x300a, 0x0370);
+Tag const LateralSpreadingDeviceSetting(0x300a, 0x0372);
+Tag const IsocenterToLateralSpreadingDeviceDistance(0x300a, 0x0374);
+Tag const RangeModulatorSettingsSequence(0x300a, 0x0380);
+Tag const RangeModulatorGatingStartValue(0x300a, 0x0382);
+Tag const RangeModulatorGatingStopValue(0x300a, 0x0384);
+Tag const RangeModulatorGatingStartWaterEquivalentThickness(0x300a, 0x0386);
+Tag const RangeModulatorGatingStopWaterEquivalentThickness(0x300a, 0x0388);
+Tag const IsocenterToRangeModulatorDistance(0x300a, 0x038a);
+Tag const ScanSpotTuneID(0x300a, 0x0390);
+Tag const NumberOfScanSpotPositions(0x300a, 0x0392);
+Tag const ScanSpotPositionMap(0x300a, 0x0394);
+Tag const ScanSpotMetersetWeights(0x300a, 0x0396);
+Tag const ScanningSpotSize(0x300a, 0x0398);
+Tag const NumberOfPaintings(0x300a, 0x039a);
+Tag const IonToleranceTableSequence(0x300a, 0x03a0);
+Tag const IonBeamSequence(0x300a, 0x03a2);
+Tag const IonBeamLimitingDeviceSequence(0x300a, 0x03a4);
+Tag const IonBlockSequence(0x300a, 0x03a6);
+Tag const IonControlPointSequence(0x300a, 0x03a8);
+Tag const IonWedgeSequence(0x300a, 0x03aa);
+Tag const IonWedgePositionSequence(0x300a, 0x03ac);
+Tag const ReferencedSetupImageSequence(0x300a, 0x0401);
+Tag const SetupImageComment(0x300a, 0x0402);
+Tag const MotionSynchronizationSequence(0x300a, 0x0410);
+Tag const ControlPointOrientation(0x300a, 0x0412);
+Tag const GeneralAccessorySequence(0x300a, 0x0420);
+Tag const GeneralAccessoryID(0x300a, 0x0421);
+Tag const GeneralAccessoryDescription(0x300a, 0x0422);
+Tag const GeneralAccessoryType(0x300a, 0x0423);
+Tag const GeneralAccessoryNumber(0x300a, 0x0424);
+Tag const SourceToGeneralAccessoryDistance(0x300a, 0x0425);
+Tag const ApplicatorGeometrySequence(0x300a, 0x0431);
+Tag const ApplicatorApertureShape(0x300a, 0x0432);
+Tag const ApplicatorOpening(0x300a, 0x0433);
+Tag const ApplicatorOpeningX(0x300a, 0x0434);
+Tag const ApplicatorOpeningY(0x300a, 0x0435);
+Tag const SourceToApplicatorMountingPositionDistance(0x300a, 0x0436);
+Tag const NumberOfBlockSlabItems(0x300a, 0x0440);
+Tag const BlockSlabSequence(0x300a, 0x0441);
+Tag const BlockSlabThickness(0x300a, 0x0442);
+Tag const BlockSlabNumber(0x300a, 0x0443);
+Tag const DeviceMotionControlSequence(0x300a, 0x0450);
+Tag const DeviceMotionExecutionMode(0x300a, 0x0451);
+Tag const DeviceMotionObservationMode(0x300a, 0x0452);
+Tag const DeviceMotionParameterCodeSequence(0x300a, 0x0453);
+Tag const ReferencedRTPlanSequence(0x300c, 0x0002);
+Tag const ReferencedBeamSequence(0x300c, 0x0004);
+Tag const ReferencedBeamNumber(0x300c, 0x0006);
+Tag const ReferencedReferenceImageNumber(0x300c, 0x0007);
+Tag const StartCumulativeMetersetWeight(0x300c, 0x0008);
+Tag const EndCumulativeMetersetWeight(0x300c, 0x0009);
+Tag const ReferencedBrachyApplicationSetupSequence(0x300c, 0x000a);
+Tag const ReferencedBrachyApplicationSetupNumber(0x300c, 0x000c);
+Tag const ReferencedSourceNumber(0x300c, 0x000e);
+Tag const ReferencedFractionGroupSequence(0x300c, 0x0020);
+Tag const ReferencedFractionGroupNumber(0x300c, 0x0022);
+Tag const ReferencedVerificationImageSequence(0x300c, 0x0040);
+Tag const ReferencedReferenceImageSequence(0x300c, 0x0042);
+Tag const ReferencedDoseReferenceSequence(0x300c, 0x0050);
+Tag const ReferencedDoseReferenceNumber(0x300c, 0x0051);
+Tag const BrachyReferencedDoseReferenceSequence(0x300c, 0x0055);
+Tag const ReferencedStructureSetSequence(0x300c, 0x0060);
+Tag const ReferencedPatientSetupNumber(0x300c, 0x006a);
+Tag const ReferencedDoseSequence(0x300c, 0x0080);
+Tag const ReferencedToleranceTableNumber(0x300c, 0x00a0);
+Tag const ReferencedBolusSequence(0x300c, 0x00b0);
+Tag const ReferencedWedgeNumber(0x300c, 0x00c0);
+Tag const ReferencedCompensatorNumber(0x300c, 0x00d0);
+Tag const ReferencedBlockNumber(0x300c, 0x00e0);
+Tag const ReferencedControlPointIndex(0x300c, 0x00f0);
+Tag const ReferencedControlPointSequence(0x300c, 0x00f2);
+Tag const ReferencedStartControlPointIndex(0x300c, 0x00f4);
+Tag const ReferencedStopControlPointIndex(0x300c, 0x00f6);
+Tag const ReferencedRangeShifterNumber(0x300c, 0x0100);
+Tag const ReferencedLateralSpreadingDeviceNumber(0x300c, 0x0102);
+Tag const ReferencedRangeModulatorNumber(0x300c, 0x0104);
+Tag const OmittedBeamTaskSequence(0x300c, 0x0111);
+Tag const ReasonForOmission(0x300c, 0x0112);
+Tag const ReasonForOmissionDescription(0x300c, 0x0113);
+Tag const ApprovalStatus(0x300e, 0x0002);
+Tag const ReviewDate(0x300e, 0x0004);
+Tag const ReviewTime(0x300e, 0x0005);
+Tag const ReviewerName(0x300e, 0x0008);
+Tag const Arbitrary(0x4000, 0x0010);
+Tag const TextComments(0x4000, 0x4000);
+Tag const ResultsID(0x4008, 0x0040);
+Tag const ResultsIDIssuer(0x4008, 0x0042);
+Tag const ReferencedInterpretationSequence(0x4008, 0x0050);
+Tag const ReportProductionStatusTrial(0x4008, 0x00ff);
+Tag const InterpretationRecordedDate(0x4008, 0x0100);
+Tag const InterpretationRecordedTime(0x4008, 0x0101);
+Tag const InterpretationRecorder(0x4008, 0x0102);
+Tag const ReferenceToRecordedSound(0x4008, 0x0103);
+Tag const InterpretationTranscriptionDate(0x4008, 0x0108);
+Tag const InterpretationTranscriptionTime(0x4008, 0x0109);
+Tag const InterpretationTranscriber(0x4008, 0x010a);
+Tag const InterpretationText(0x4008, 0x010b);
+Tag const InterpretationAuthor(0x4008, 0x010c);
+Tag const InterpretationApproverSequence(0x4008, 0x0111);
+Tag const InterpretationApprovalDate(0x4008, 0x0112);
+Tag const InterpretationApprovalTime(0x4008, 0x0113);
+Tag const PhysicianApprovingInterpretation(0x4008, 0x0114);
+Tag const InterpretationDiagnosisDescription(0x4008, 0x0115);
+Tag const InterpretationDiagnosisCodeSequence(0x4008, 0x0117);
+Tag const ResultsDistributionListSequence(0x4008, 0x0118);
+Tag const DistributionName(0x4008, 0x0119);
+Tag const DistributionAddress(0x4008, 0x011a);
+Tag const InterpretationID(0x4008, 0x0200);
+Tag const InterpretationIDIssuer(0x4008, 0x0202);
+Tag const InterpretationTypeID(0x4008, 0x0210);
+Tag const InterpretationStatusID(0x4008, 0x0212);
+Tag const Impressions(0x4008, 0x0300);
+Tag const ResultsComments(0x4008, 0x4000);
+Tag const LowEnergyDetectors(0x4010, 0x0001);
+Tag const HighEnergyDetectors(0x4010, 0x0002);
+Tag const DetectorGeometrySequence(0x4010, 0x0004);
+Tag const ThreatROIVoxelSequence(0x4010, 0x1001);
+Tag const ThreatROIBase(0x4010, 0x1004);
+Tag const ThreatROIExtents(0x4010, 0x1005);
+Tag const ThreatROIBitmap(0x4010, 0x1006);
+Tag const RouteSegmentID(0x4010, 0x1007);
+Tag const GantryType(0x4010, 0x1008);
+Tag const OOIOwnerType(0x4010, 0x1009);
+Tag const RouteSegmentSequence(0x4010, 0x100a);
+Tag const PotentialThreatObjectID(0x4010, 0x1010);
+Tag const ThreatSequence(0x4010, 0x1011);
+Tag const ThreatCategory(0x4010, 0x1012);
+Tag const ThreatCategoryDescription(0x4010, 0x1013);
+Tag const ATDAbilityAssessment(0x4010, 0x1014);
+Tag const ATDAssessmentFlag(0x4010, 0x1015);
+Tag const ATDAssessmentProbability(0x4010, 0x1016);
+Tag const Mass(0x4010, 0x1017);
+Tag const Density(0x4010, 0x1018);
+Tag const ZEffective(0x4010, 0x1019);
+Tag const BoardingPassID(0x4010, 0x101a);
+Tag const CenterOfMass(0x4010, 0x101b);
+Tag const CenterOfPTO(0x4010, 0x101c);
+Tag const BoundingPolygon(0x4010, 0x101d);
+Tag const RouteSegmentStartLocationID(0x4010, 0x101e);
+Tag const RouteSegmentEndLocationID(0x4010, 0x101f);
+Tag const RouteSegmentLocationIDType(0x4010, 0x1020);
+Tag const AbortReason(0x4010, 0x1021);
+Tag const VolumeOfPTO(0x4010, 0x1023);
+Tag const AbortFlag(0x4010, 0x1024);
+Tag const RouteSegmentStartTime(0x4010, 0x1025);
+Tag const RouteSegmentEndTime(0x4010, 0x1026);
+Tag const TDRType(0x4010, 0x1027);
+Tag const InternationalRouteSegment(0x4010, 0x1028);
+Tag const ThreatDetectionAlgorithmandVersion(0x4010, 0x1029);
+Tag const AssignedLocation(0x4010, 0x102a);
+Tag const AlarmDecisionTime(0x4010, 0x102b);
+Tag const AlarmDecision(0x4010, 0x1031);
+Tag const NumberOfTotalObjects(0x4010, 0x1033);
+Tag const NumberOfAlarmObjects(0x4010, 0x1034);
+Tag const PTORepresentationSequence(0x4010, 0x1037);
+Tag const ATDAssessmentSequence(0x4010, 0x1038);
+Tag const TIPType(0x4010, 0x1039);
+Tag const DICOSVersion(0x4010, 0x103a);
+Tag const OOIOwnerCreationTime(0x4010, 0x1041);
+Tag const OOIType(0x4010, 0x1042);
+Tag const OOISize(0x4010, 0x1043);
+Tag const AcquisitionStatus(0x4010, 0x1044);
+Tag const BasisMaterialsCodeSequence(0x4010, 0x1045);
+Tag const PhantomType(0x4010, 0x1046);
+Tag const OOIOwnerSequence(0x4010, 0x1047);
+Tag const ScanType(0x4010, 0x1048);
+Tag const ItineraryID(0x4010, 0x1051);
+Tag const ItineraryIDType(0x4010, 0x1052);
+Tag const ItineraryIDAssigningAuthority(0x4010, 0x1053);
+Tag const RouteID(0x4010, 0x1054);
+Tag const RouteIDAssigningAuthority(0x4010, 0x1055);
+Tag const InboundArrivalType(0x4010, 0x1056);
+Tag const CarrierID(0x4010, 0x1058);
+Tag const CarrierIDAssigningAuthority(0x4010, 0x1059);
+Tag const SourceOrientation(0x4010, 0x1060);
+Tag const SourcePosition(0x4010, 0x1061);
+Tag const BeltHeight(0x4010, 0x1062);
+Tag const AlgorithmRoutingCodeSequence(0x4010, 0x1064);
+Tag const TransportClassification(0x4010, 0x1067);
+Tag const OOITypeDescriptor(0x4010, 0x1068);
+Tag const TotalProcessingTime(0x4010, 0x1069);
+Tag const DetectorCalibrationData(0x4010, 0x106c);
+Tag const AdditionalScreeningPerformed(0x4010, 0x106d);
+Tag const AdditionalInspectionSelectionCriteria(0x4010, 0x106e);
+Tag const AdditionalInspectionMethodSequence(0x4010, 0x106f);
+Tag const AITDeviceType(0x4010, 0x1070);
+Tag const QRMeasurementsSequence(0x4010, 0x1071);
+Tag const TargetMaterialSequence(0x4010, 0x1072);
+Tag const SNRThreshold(0x4010, 0x1073);
+Tag const ImageScaleRepresentation(0x4010, 0x1075);
+Tag const ReferencedPTOSequence(0x4010, 0x1076);
+Tag const ReferencedTDRInstanceSequence(0x4010, 0x1077);
+Tag const PTOLocationDescription(0x4010, 0x1078);
+Tag const AnomalyLocatorIndicatorSequence(0x4010, 0x1079);
+Tag const AnomalyLocatorIndicator(0x4010, 0x107a);
+Tag const PTORegionSequence(0x4010, 0x107b);
+Tag const InspectionSelectionCriteria(0x4010, 0x107c);
+Tag const SecondaryInspectionMethodSequence(0x4010, 0x107d);
+Tag const PRCSToRCSOrientation(0x4010, 0x107e);
+Tag const MACParametersSequence(0x4ffe, 0x0001);
+Tag const SharedFunctionalGroupsSequence(0x5200, 0x9229);
+Tag const PerFrameFunctionalGroupsSequence(0x5200, 0x9230);
+Tag const WaveformSequence(0x5400, 0x0100);
+Tag const ChannelMinimumValue(0x5400, 0x0110);
+Tag const ChannelMaximumValue(0x5400, 0x0112);
+Tag const WaveformBitsAllocated(0x5400, 0x1004);
+Tag const WaveformSampleInterpretation(0x5400, 0x1006);
+Tag const WaveformPaddingValue(0x5400, 0x100a);
+Tag const WaveformData(0x5400, 0x1010);
+Tag const FirstOrderPhaseCorrectionAngle(0x5600, 0x0010);
+Tag const SpectroscopyData(0x5600, 0x0020);
+Tag const FloatPixelData(0x7fe0, 0x0008);
+Tag const DoubleFloatPixelData(0x7fe0, 0x0009);
+Tag const PixelData(0x7fe0, 0x0010);
+Tag const CoefficientsSDVN(0x7fe0, 0x0020);
+Tag const CoefficientsSDHN(0x7fe0, 0x0030);
+Tag const CoefficientsSDDN(0x7fe0, 0x0040);
+Tag const DigitalSignaturesSequence(0xfffa, 0xfffa);
+Tag const DataSetTrailingPadding(0xfffc, 0xfffc);
+Tag const Item(0xfffe, 0xe000);
+Tag const ItemDelimitationItem(0xfffe, 0xe00d);
+Tag const SequenceDelimitationItem(0xfffe, 0xe0dd);
+
+std::string const VerificationSOPClass("1.2.840.10008.1.1");
+std::string const ImplicitVRLittleEndian("1.2.840.10008.1.2");
+std::string const ExplicitVRLittleEndian("1.2.840.10008.1.2.1");
+std::string const DeflatedExplicitVRLittleEndian("1.2.840.10008.1.2.1.99");
+std::string const ExplicitVRBigEndian_Retired("1.2.840.10008.1.2.2");
+std::string const JPEGBaselineProcess1("1.2.840.10008.1.2.4.50");
+std::string const JPEGExtendedProcess24("1.2.840.10008.1.2.4.51");
+std::string const JPEGExtendedProcess35_Retired("1.2.840.10008.1.2.4.52");
+std::string const JPEGSpectralSelectionNonHierarchicalProcess68_Retired("1.2.840.10008.1.2.4.53");
+std::string const JPEGSpectralSelectionNonHierarchicalProcess79_Retired("1.2.840.10008.1.2.4.54");
+std::string const JPEGFullProgressionNonHierarchicalProcess1012_Retired("1.2.840.10008.1.2.4.55");
+std::string const JPEGFullProgressionNonHierarchicalProcess1113_Retired("1.2.840.10008.1.2.4.56");
+std::string const JPEGLosslessNonHierarchicalProcess14("1.2.840.10008.1.2.4.57");
+std::string const JPEGLosslessNonHierarchicalProcess15_Retired("1.2.840.10008.1.2.4.58");
+std::string const JPEGExtendedHierarchicalProcess1618_Retired("1.2.840.10008.1.2.4.59");
+std::string const JPEGExtendedHierarchicalProcess1719_Retired("1.2.840.10008.1.2.4.60");
+std::string const JPEGSpectralSelectionHierarchicalProcess2022_Retired("1.2.840.10008.1.2.4.61");
+std::string const JPEGSpectralSelectionHierarchicalProcess2123_Retired("1.2.840.10008.1.2.4.62");
+std::string const JPEGFullProgressionHierarchicalProcess2426_Retired("1.2.840.10008.1.2.4.63");
+std::string const JPEGFullProgressionHierarchicalProcess2527_Retired("1.2.840.10008.1.2.4.64");
+std::string const JPEGLosslessHierarchicalProcess28_Retired("1.2.840.10008.1.2.4.65");
+std::string const JPEGLosslessHierarchicalProcess29_Retired("1.2.840.10008.1.2.4.66");
+std::string const JPEGLosslessNonHierarchicalFirstOrderPredictionProcess14SelectionValue1("1.2.840.10008.1.2.4.70");
+std::string const JPEGLSLosslessImageCompression("1.2.840.10008.1.2.4.80");
+std::string const JPEGLSLossyNearLosslessImageCompression("1.2.840.10008.1.2.4.81");
+std::string const JPEG2000ImageCompressionLosslessOnly("1.2.840.10008.1.2.4.90");
+std::string const JPEG2000ImageCompression("1.2.840.10008.1.2.4.91");
+std::string const JPEG2000Part2MulticomponentImageCompressionLosslessOnly("1.2.840.10008.1.2.4.92");
+std::string const JPEG2000Part2MulticomponentImageCompression("1.2.840.10008.1.2.4.93");
+std::string const JPIPReferenced("1.2.840.10008.1.2.4.94");
+std::string const JPIPReferencedDeflate("1.2.840.10008.1.2.4.95");
+std::string const MPEG2MainProfileMainLevel("1.2.840.10008.1.2.4.100");
+std::string const MPEG2MainProfileHighLevel("1.2.840.10008.1.2.4.101");
+std::string const MPEG4AVCH264HighProfileLevel41("1.2.840.10008.1.2.4.102");
+std::string const MPEG4AVCH264BDcompatibleHighProfileLevel41("1.2.840.10008.1.2.4.103");
+std::string const MPEG4AVCH264HighProfileLevel42For2DVideo("1.2.840.10008.1.2.4.104");
+std::string const MPEG4AVCH264HighProfileLevel42For3DVideo("1.2.840.10008.1.2.4.105");
+std::string const MPEG4AVCH264StereoHighProfileLevel42("1.2.840.10008.1.2.4.106");
+std::string const RLELossless("1.2.840.10008.1.2.5");
+std::string const RFC2557MIMEencapsulation("1.2.840.10008.1.2.6.1");
+std::string const XMLEncoding("1.2.840.10008.1.2.6.2");
+std::string const MediaStorageDirectoryStorage("1.2.840.10008.1.3.10");
+std::string const TalairachBrainAtlasFrameofReference("1.2.840.10008.1.4.1.1");
+std::string const SPM2T1FrameofReference("1.2.840.10008.1.4.1.2");
+std::string const SPM2T2FrameofReference("1.2.840.10008.1.4.1.3");
+std::string const SPM2PDFrameofReference("1.2.840.10008.1.4.1.4");
+std::string const SPM2EPIFrameofReference("1.2.840.10008.1.4.1.5");
+std::string const SPM2FILT1FrameofReference("1.2.840.10008.1.4.1.6");
+std::string const SPM2PETFrameofReference("1.2.840.10008.1.4.1.7");
+std::string const SPM2TRANSMFrameofReference("1.2.840.10008.1.4.1.8");
+std::string const SPM2SPECTFrameofReference("1.2.840.10008.1.4.1.9");
+std::string const SPM2GRAYFrameofReference("1.2.840.10008.1.4.1.10");
+std::string const SPM2WHITEFrameofReference("1.2.840.10008.1.4.1.11");
+std::string const SPM2CSFFrameofReference("1.2.840.10008.1.4.1.12");
+std::string const SPM2BRAINMASKFrameofReference("1.2.840.10008.1.4.1.13");
+std::string const SPM2AVG305T1FrameofReference("1.2.840.10008.1.4.1.14");
+std::string const SPM2AVG152T1FrameofReference("1.2.840.10008.1.4.1.15");
+std::string const SPM2AVG152T2FrameofReference("1.2.840.10008.1.4.1.16");
+std::string const SPM2AVG152PDFrameofReference("1.2.840.10008.1.4.1.17");
+std::string const SPM2SINGLESUBJT1FrameofReference("1.2.840.10008.1.4.1.18");
+std::string const ICBM452T1FrameofReference("1.2.840.10008.1.4.2.1");
+std::string const ICBMSingleSubjectMRIFrameofReference("1.2.840.10008.1.4.2.2");
+std::string const HotIronColorPaletteSOPInstance("1.2.840.10008.1.5.1");
+std::string const PETColorPaletteSOPInstance("1.2.840.10008.1.5.2");
+std::string const HotMetalBlueColorPaletteSOPInstance("1.2.840.10008.1.5.3");
+std::string const PET20StepColorPaletteSOPInstance("1.2.840.10008.1.5.4");
+std::string const BasicStudyContentNotificationSOPClass_Retired("1.2.840.10008.1.9");
+std::string const StorageCommitmentPushModelSOPClass("1.2.840.10008.1.20.1");
+std::string const StorageCommitmentPushModelSOPInstance("1.2.840.10008.1.20.1.1");
+std::string const StorageCommitmentPullModelSOPClass_Retired("1.2.840.10008.1.20.2");
+std::string const StorageCommitmentPullModelSOPInstance_Retired("1.2.840.10008.1.20.2.1");
+std::string const ProceduralEventLoggingSOPClass("1.2.840.10008.1.40");
+std::string const ProceduralEventLoggingSOPInstance("1.2.840.10008.1.40.1");
+std::string const SubstanceAdministrationLoggingSOPClass("1.2.840.10008.1.42");
+std::string const SubstanceAdministrationLoggingSOPInstance("1.2.840.10008.1.42.1");
+std::string const DICOMUIDRegistry("1.2.840.10008.2.6.1");
+std::string const DICOMControlledTerminology("1.2.840.10008.2.16.4");
+std::string const DICOMApplicationContextName("1.2.840.10008.3.1.1.1");
+std::string const DetachedPatientManagementSOPClass_Retired("1.2.840.10008.3.1.2.1.1");
+std::string const DetachedPatientManagementMetaSOPClass_Retired("1.2.840.10008.3.1.2.1.4");
+std::string const DetachedVisitManagementSOPClass_Retired("1.2.840.10008.3.1.2.2.1");
+std::string const DetachedStudyManagementSOPClass_Retired("1.2.840.10008.3.1.2.3.1");
+std::string const StudyComponentManagementSOPClass_Retired("1.2.840.10008.3.1.2.3.2");
+std::string const ModalityPerformedProcedureStepSOPClass("1.2.840.10008.3.1.2.3.3");
+std::string const ModalityPerformedProcedureStepRetrieveSOPClass("1.2.840.10008.3.1.2.3.4");
+std::string const ModalityPerformedProcedureStepNotificationSOPClass("1.2.840.10008.3.1.2.3.5");
+std::string const DetachedResultsManagementSOPClass_Retired("1.2.840.10008.3.1.2.5.1");
+std::string const DetachedResultsManagementMetaSOPClass_Retired("1.2.840.10008.3.1.2.5.4");
+std::string const DetachedStudyManagementMetaSOPClass_Retired("1.2.840.10008.3.1.2.5.5");
+std::string const DetachedInterpretationManagementSOPClass_Retired("1.2.840.10008.3.1.2.6.1");
+std::string const StorageServiceClass("1.2.840.10008.4.2");
+std::string const BasicFilmSessionSOPClass("1.2.840.10008.5.1.1.1");
+std::string const BasicFilmBoxSOPClass("1.2.840.10008.5.1.1.2");
+std::string const BasicGrayscaleImageBoxSOPClass("1.2.840.10008.5.1.1.4");
+std::string const BasicColorImageBoxSOPClass("1.2.840.10008.5.1.1.4.1");
+std::string const ReferencedImageBoxSOPClass_Retired("1.2.840.10008.5.1.1.4.2");
+std::string const BasicGrayscalePrintManagementMetaSOPClass("1.2.840.10008.5.1.1.9");
+std::string const ReferencedGrayscalePrintManagementMetaSOPClass_Retired("1.2.840.10008.5.1.1.9.1");
+std::string const PrintJobSOPClass("1.2.840.10008.5.1.1.14");
+std::string const BasicAnnotationBoxSOPClass("1.2.840.10008.5.1.1.15");
+std::string const PrinterSOPClass("1.2.840.10008.5.1.1.16");
+std::string const PrinterConfigurationRetrievalSOPClass("1.2.840.10008.5.1.1.16.376");
+std::string const PrinterSOPInstance("1.2.840.10008.5.1.1.17");
+std::string const PrinterConfigurationRetrievalSOPInstance("1.2.840.10008.5.1.1.17.376");
+std::string const BasicColorPrintManagementMetaSOPClass("1.2.840.10008.5.1.1.18");
+std::string const ReferencedColorPrintManagementMetaSOPClass_Retired("1.2.840.10008.5.1.1.18.1");
+std::string const VOILUTBoxSOPClass("1.2.840.10008.5.1.1.22");
+std::string const PresentationLUTSOPClass("1.2.840.10008.5.1.1.23");
+std::string const ImageOverlayBoxSOPClass_Retired("1.2.840.10008.5.1.1.24");
+std::string const BasicPrintImageOverlayBoxSOPClass_Retired("1.2.840.10008.5.1.1.24.1");
+std::string const PrintQueueSOPInstance_Retired("1.2.840.10008.5.1.1.25");
+std::string const PrintQueueManagementSOPClass_Retired("1.2.840.10008.5.1.1.26");
+std::string const StoredPrintStorageSOPClass_Retired("1.2.840.10008.5.1.1.27");
+std::string const HardcopyGrayscaleImageStorageSOPClass_Retired("1.2.840.10008.5.1.1.29");
+std::string const HardcopyColorImageStorageSOPClass_Retired("1.2.840.10008.5.1.1.30");
+std::string const PullPrintRequestSOPClass_Retired("1.2.840.10008.5.1.1.31");
+std::string const PullStoredPrintManagementMetaSOPClass_Retired("1.2.840.10008.5.1.1.32");
+std::string const MediaCreationManagementSOPClassUID("1.2.840.10008.5.1.1.33");
+std::string const DisplaySystemSOPClass("1.2.840.10008.5.1.1.40");
+std::string const DisplaySystemSOPInstance("1.2.840.10008.5.1.1.40.1");
+std::string const ComputedRadiographyImageStorage("1.2.840.10008.5.1.4.1.1.1");
+std::string const DigitalXRayImageStorageForPresentation("1.2.840.10008.5.1.4.1.1.1.1");
+std::string const DigitalXRayImageStorageForProcessing("1.2.840.10008.5.1.4.1.1.1.1.1");
+std::string const DigitalMammographyXRayImageStorageForPresentation("1.2.840.10008.5.1.4.1.1.1.2");
+std::string const DigitalMammographyXRayImageStorageForProcessing("1.2.840.10008.5.1.4.1.1.1.2.1");
+std::string const DigitalIntraOralXRayImageStorageForPresentation("1.2.840.10008.5.1.4.1.1.1.3");
+std::string const DigitalIntraOralXRayImageStorageForProcessing("1.2.840.10008.5.1.4.1.1.1.3.1");
+std::string const CTImageStorage("1.2.840.10008.5.1.4.1.1.2");
+std::string const EnhancedCTImageStorage("1.2.840.10008.5.1.4.1.1.2.1");
+std::string const LegacyConvertedEnhancedCTImageStorage("1.2.840.10008.5.1.4.1.1.2.2");
+std::string const UltrasoundMultiframeImageStorage_Retired("1.2.840.10008.5.1.4.1.1.3");
+std::string const UltrasoundMultiframeImageStorage("1.2.840.10008.5.1.4.1.1.3.1");
+std::string const MRImageStorage("1.2.840.10008.5.1.4.1.1.4");
+std::string const EnhancedMRImageStorage("1.2.840.10008.5.1.4.1.1.4.1");
+std::string const MRSpectroscopyStorage("1.2.840.10008.5.1.4.1.1.4.2");
+std::string const EnhancedMRColorImageStorage("1.2.840.10008.5.1.4.1.1.4.3");
+std::string const LegacyConvertedEnhancedMRImageStorage("1.2.840.10008.5.1.4.1.1.4.4");
+std::string const NuclearMedicineImageStorage_Retired("1.2.840.10008.5.1.4.1.1.5");
+std::string const UltrasoundImageStorage_Retired("1.2.840.10008.5.1.4.1.1.6");
+std::string const UltrasoundImageStorage("1.2.840.10008.5.1.4.1.1.6.1");
+std::string const EnhancedUSVolumeStorage("1.2.840.10008.5.1.4.1.1.6.2");
+std::string const SecondaryCaptureImageStorage("1.2.840.10008.5.1.4.1.1.7");
+std::string const MultiframeSingleBitSecondaryCaptureImageStorage("1.2.840.10008.5.1.4.1.1.7.1");
+std::string const MultiframeGrayscaleByteSecondaryCaptureImageStorage("1.2.840.10008.5.1.4.1.1.7.2");
+std::string const MultiframeGrayscaleWordSecondaryCaptureImageStorage("1.2.840.10008.5.1.4.1.1.7.3");
+std::string const MultiframeTrueColorSecondaryCaptureImageStorage("1.2.840.10008.5.1.4.1.1.7.4");
+std::string const StandaloneOverlayStorage_Retired("1.2.840.10008.5.1.4.1.1.8");
+std::string const StandaloneCurveStorage_Retired("1.2.840.10008.5.1.4.1.1.9");
+std::string const WaveformStorageTrial_Retired("1.2.840.10008.5.1.4.1.1.9.1");
+std::string const TwelveleadECGWaveformStorage("1.2.840.10008.5.1.4.1.1.9.1.1");
+std::string const GeneralECGWaveformStorage("1.2.840.10008.5.1.4.1.1.9.1.2");
+std::string const AmbulatoryECGWaveformStorage("1.2.840.10008.5.1.4.1.1.9.1.3");
+std::string const HemodynamicWaveformStorage("1.2.840.10008.5.1.4.1.1.9.2.1");
+std::string const CardiacElectrophysiologyWaveformStorage("1.2.840.10008.5.1.4.1.1.9.3.1");
+std::string const BasicVoiceAudioWaveformStorage("1.2.840.10008.5.1.4.1.1.9.4.1");
+std::string const GeneralAudioWaveformStorage("1.2.840.10008.5.1.4.1.1.9.4.2");
+std::string const ArterialPulseWaveformStorage("1.2.840.10008.5.1.4.1.1.9.5.1");
+std::string const RespiratoryWaveformStorage("1.2.840.10008.5.1.4.1.1.9.6.1");
+std::string const StandaloneModalityLUTStorage_Retired("1.2.840.10008.5.1.4.1.1.10");
+std::string const StandaloneVOILUTStorage_Retired("1.2.840.10008.5.1.4.1.1.11");
+std::string const GrayscaleSoftcopyPresentationStateStorageSOPClass("1.2.840.10008.5.1.4.1.1.11.1");
+std::string const ColorSoftcopyPresentationStateStorageSOPClass("1.2.840.10008.5.1.4.1.1.11.2");
+std::string const PseudoColorSoftcopyPresentationStateStorageSOPClass("1.2.840.10008.5.1.4.1.1.11.3");
+std::string const BlendingSoftcopyPresentationStateStorageSOPClass("1.2.840.10008.5.1.4.1.1.11.4");
+std::string const XAXRFGrayscaleSoftcopyPresentationStateStorage("1.2.840.10008.5.1.4.1.1.11.5");
+std::string const XRayAngiographicImageStorage("1.2.840.10008.5.1.4.1.1.12.1");
+std::string const EnhancedXAImageStorage("1.2.840.10008.5.1.4.1.1.12.1.1");
+std::string const XRayRadiofluoroscopicImageStorage("1.2.840.10008.5.1.4.1.1.12.2");
+std::string const EnhancedXRFImageStorage("1.2.840.10008.5.1.4.1.1.12.2.1");
+std::string const XRayAngiographicBiPlaneImageStorage_Retired("1.2.840.10008.5.1.4.1.1.12.3");
+std::string const XRay3DAngiographicImageStorage("1.2.840.10008.5.1.4.1.1.13.1.1");
+std::string const XRay3DCraniofacialImageStorage("1.2.840.10008.5.1.4.1.1.13.1.2");
+std::string const BreastTomosynthesisImageStorage("1.2.840.10008.5.1.4.1.1.13.1.3");
+std::string const BreastProjectionXRayImageStorageForPresentation("1.2.840.10008.5.1.4.1.1.13.1.4");
+std::string const BreastProjectionXRayImageStorageForProcessing("1.2.840.10008.5.1.4.1.1.13.1.5");
+std::string const IntravascularOpticalCoherenceTomographyImageStorageForPresentation("1.2.840.10008.5.1.4.1.1.14.1");
+std::string const IntravascularOpticalCoherenceTomographyImageStorageForProcessing("1.2.840.10008.5.1.4.1.1.14.2");
+std::string const NuclearMedicineImageStorage("1.2.840.10008.5.1.4.1.1.20");
+std::string const ParametricMapStorage("1.2.840.10008.5.1.4.1.1.30");
+std::string const RawDataStorage("1.2.840.10008.5.1.4.1.1.66");
+std::string const SpatialRegistrationStorage("1.2.840.10008.5.1.4.1.1.66.1");
+std::string const SpatialFiducialsStorage("1.2.840.10008.5.1.4.1.1.66.2");
+std::string const DeformableSpatialRegistrationStorage("1.2.840.10008.5.1.4.1.1.66.3");
+std::string const SegmentationStorage("1.2.840.10008.5.1.4.1.1.66.4");
+std::string const SurfaceSegmentationStorage("1.2.840.10008.5.1.4.1.1.66.5");
+std::string const RealWorldValueMappingStorage("1.2.840.10008.5.1.4.1.1.67");
+std::string const SurfaceScanMeshStorage("1.2.840.10008.5.1.4.1.1.68.1");
+std::string const SurfaceScanPointCloudStorage("1.2.840.10008.5.1.4.1.1.68.2");
+std::string const VLImageStorageTrial_Retired("1.2.840.10008.5.1.4.1.1.77.1");
+std::string const VLMultiframeImageStorageTrial_Retired("1.2.840.10008.5.1.4.1.1.77.2");
+std::string const VLEndoscopicImageStorage("1.2.840.10008.5.1.4.1.1.77.1.1");
+std::string const VideoEndoscopicImageStorage("1.2.840.10008.5.1.4.1.1.77.1.1.1");
+std::string const VLMicroscopicImageStorage("1.2.840.10008.5.1.4.1.1.77.1.2");
+std::string const VideoMicroscopicImageStorage("1.2.840.10008.5.1.4.1.1.77.1.2.1");
+std::string const VLSlideCoordinatesMicroscopicImageStorage("1.2.840.10008.5.1.4.1.1.77.1.3");
+std::string const VLPhotographicImageStorage("1.2.840.10008.5.1.4.1.1.77.1.4");
+std::string const VideoPhotographicImageStorage("1.2.840.10008.5.1.4.1.1.77.1.4.1");
+std::string const OphthalmicPhotography8BitImageStorage("1.2.840.10008.5.1.4.1.1.77.1.5.1");
+std::string const OphthalmicPhotography16BitImageStorage("1.2.840.10008.5.1.4.1.1.77.1.5.2");
+std::string const StereometricRelationshipStorage("1.2.840.10008.5.1.4.1.1.77.1.5.3");
+std::string const OphthalmicTomographyImageStorage("1.2.840.10008.5.1.4.1.1.77.1.5.4");
+std::string const WideFieldOphthalmicPhotographyStereographicProjectionImageStorage("1.2.840.10008.5.1.4.1.1.77.1.5.5");
+std::string const WideFieldOphthalmicPhotography3DCoordinatesImageStorage("1.2.840.10008.5.1.4.1.1.77.1.5.6");
+std::string const VLWholeSlideMicroscopyImageStorage("1.2.840.10008.5.1.4.1.1.77.1.6");
+std::string const LensometryMeasurementsStorage("1.2.840.10008.5.1.4.1.1.78.1");
+std::string const AutorefractionMeasurementsStorage("1.2.840.10008.5.1.4.1.1.78.2");
+std::string const KeratometryMeasurementsStorage("1.2.840.10008.5.1.4.1.1.78.3");
+std::string const SubjectiveRefractionMeasurementsStorage("1.2.840.10008.5.1.4.1.1.78.4");
+std::string const VisualAcuityMeasurementsStorage("1.2.840.10008.5.1.4.1.1.78.5");
+std::string const SpectaclePrescriptionReportStorage("1.2.840.10008.5.1.4.1.1.78.6");
+std::string const OphthalmicAxialMeasurementsStorage("1.2.840.10008.5.1.4.1.1.78.7");
+std::string const IntraocularLensCalculationsStorage("1.2.840.10008.5.1.4.1.1.78.8");
+std::string const MacularGridThicknessandVolumeReportStorage("1.2.840.10008.5.1.4.1.1.79.1");
+std::string const OphthalmicVisualFieldStaticPerimetryMeasurementsStorage("1.2.840.10008.5.1.4.1.1.80.1");
+std::string const OphthalmicThicknessMapStorage("1.2.840.10008.5.1.4.1.1.81.1");
+std::string const CornealTopographyMapStorage("1.2.840.10008.5.1.4.1.1.82.1");
+std::string const TextSRStorageTrial_Retired("1.2.840.10008.5.1.4.1.1.88.1");
+std::string const AudioSRStorageTrial_Retired("1.2.840.10008.5.1.4.1.1.88.2");
+std::string const DetailSRStorageTrial_Retired("1.2.840.10008.5.1.4.1.1.88.3");
+std::string const ComprehensiveSRStorageTrial_Retired("1.2.840.10008.5.1.4.1.1.88.4");
+std::string const BasicTextSRStorage("1.2.840.10008.5.1.4.1.1.88.11");
+std::string const EnhancedSRStorage("1.2.840.10008.5.1.4.1.1.88.22");
+std::string const ComprehensiveSRStorage("1.2.840.10008.5.1.4.1.1.88.33");
+std::string const Comprehensive3DSRStorage("1.2.840.10008.5.1.4.1.1.88.34");
+std::string const ExtensibleSRStorage("1.2.840.10008.5.1.4.1.1.88.35");
+std::string const ProcedureLogStorage("1.2.840.10008.5.1.4.1.1.88.40");
+std::string const MammographyCADSRStorage("1.2.840.10008.5.1.4.1.1.88.50");
+std::string const KeyObjectSelectionDocumentStorage("1.2.840.10008.5.1.4.1.1.88.59");
+std::string const ChestCADSRStorage("1.2.840.10008.5.1.4.1.1.88.65");
+std::string const XRayRadiationDoseSRStorage("1.2.840.10008.5.1.4.1.1.88.67");
+std::string const RadiopharmaceuticalRadiationDoseSRStorage("1.2.840.10008.5.1.4.1.1.88.68");
+std::string const ColonCADSRStorage("1.2.840.10008.5.1.4.1.1.88.69");
+std::string const ImplantationPlanSRStorage("1.2.840.10008.5.1.4.1.1.88.70");
+std::string const EncapsulatedPDFStorage("1.2.840.10008.5.1.4.1.1.104.1");
+std::string const EncapsulatedCDAStorage("1.2.840.10008.5.1.4.1.1.104.2");
+std::string const PositronEmissionTomographyImageStorage("1.2.840.10008.5.1.4.1.1.128");
+std::string const LegacyConvertedEnhancedPETImageStorage("1.2.840.10008.5.1.4.1.1.128.1");
+std::string const StandalonePETCurveStorage_Retired("1.2.840.10008.5.1.4.1.1.129");
+std::string const EnhancedPETImageStorage("1.2.840.10008.5.1.4.1.1.130");
+std::string const BasicStructuredDisplayStorage("1.2.840.10008.5.1.4.1.1.131");
+std::string const RTImageStorage("1.2.840.10008.5.1.4.1.1.481.1");
+std::string const RTDoseStorage("1.2.840.10008.5.1.4.1.1.481.2");
+std::string const RTStructureSetStorage("1.2.840.10008.5.1.4.1.1.481.3");
+std::string const RTBeamsTreatmentRecordStorage("1.2.840.10008.5.1.4.1.1.481.4");
+std::string const RTPlanStorage("1.2.840.10008.5.1.4.1.1.481.5");
+std::string const RTBrachyTreatmentRecordStorage("1.2.840.10008.5.1.4.1.1.481.6");
+std::string const RTTreatmentSummaryRecordStorage("1.2.840.10008.5.1.4.1.1.481.7");
+std::string const RTIonPlanStorage("1.2.840.10008.5.1.4.1.1.481.8");
+std::string const RTIonBeamsTreatmentRecordStorage("1.2.840.10008.5.1.4.1.1.481.9");
+std::string const DICOSCTImageStorage("1.2.840.10008.5.1.4.1.1.501.1");
+std::string const DICOSDigitalXRayImageStorageForPresentation("1.2.840.10008.5.1.4.1.1.501.2.1");
+std::string const DICOSDigitalXRayImageStorageForProcessing("1.2.840.10008.5.1.4.1.1.501.2.2");
+std::string const DICOSThreatDetectionReportStorage("1.2.840.10008.5.1.4.1.1.501.3");
+std::string const DICOS2DAITStorage("1.2.840.10008.5.1.4.1.1.501.4");
+std::string const DICOS3DAITStorage("1.2.840.10008.5.1.4.1.1.501.5");
+std::string const DICOSQuadrupoleResonanceQRStorage("1.2.840.10008.5.1.4.1.1.501.6");
+std::string const EddyCurrentImageStorage("1.2.840.10008.5.1.4.1.1.601.1");
+std::string const EddyCurrentMultiframeImageStorage("1.2.840.10008.5.1.4.1.1.601.2");
+std::string const PatientRootQueryRetrieveInformationModelFIND("1.2.840.10008.5.1.4.1.2.1.1");
+std::string const PatientRootQueryRetrieveInformationModelMOVE("1.2.840.10008.5.1.4.1.2.1.2");
+std::string const PatientRootQueryRetrieveInformationModelGET("1.2.840.10008.5.1.4.1.2.1.3");
+std::string const StudyRootQueryRetrieveInformationModelFIND("1.2.840.10008.5.1.4.1.2.2.1");
+std::string const StudyRootQueryRetrieveInformationModelMOVE("1.2.840.10008.5.1.4.1.2.2.2");
+std::string const StudyRootQueryRetrieveInformationModelGET("1.2.840.10008.5.1.4.1.2.2.3");
+std::string const PatientStudyOnlyQueryRetrieveInformationModelFIND_Retired("1.2.840.10008.5.1.4.1.2.3.1");
+std::string const PatientStudyOnlyQueryRetrieveInformationModelMOVE_Retired("1.2.840.10008.5.1.4.1.2.3.2");
+std::string const PatientStudyOnlyQueryRetrieveInformationModelGET_Retired("1.2.840.10008.5.1.4.1.2.3.3");
+std::string const CompositeInstanceRootRetrieveMOVE("1.2.840.10008.5.1.4.1.2.4.2");
+std::string const CompositeInstanceRootRetrieveGET("1.2.840.10008.5.1.4.1.2.4.3");
+std::string const CompositeInstanceRetrieveWithoutBulkDataGET("1.2.840.10008.5.1.4.1.2.5.3");
+std::string const ModalityWorklistInformationModelFIND("1.2.840.10008.5.1.4.31");
+std::string const GeneralPurposeWorklistManagementMetaSOPClass_Retired("1.2.840.10008.5.1.4.32");
+std::string const GeneralPurposeWorklistInformationModelFIND_Retired("1.2.840.10008.5.1.4.32.1");
+std::string const GeneralPurposeScheduledProcedureStepSOPClass_Retired("1.2.840.10008.5.1.4.32.2");
+std::string const GeneralPurposePerformedProcedureStepSOPClass_Retired("1.2.840.10008.5.1.4.32.3");
+std::string const InstanceAvailabilityNotificationSOPClass("1.2.840.10008.5.1.4.33");
+std::string const RTBeamsDeliveryInstructionStorageTrial_Retired("1.2.840.10008.5.1.4.34.1");
+std::string const RTConventionalMachineVerificationTrial_Retired("1.2.840.10008.5.1.4.34.2");
+std::string const RTIonMachineVerificationTrial_Retired("1.2.840.10008.5.1.4.34.3");
+std::string const UnifiedWorklistandProcedureStepServiceClassTrial_Retired("1.2.840.10008.5.1.4.34.4");
+std::string const UnifiedProcedureStepPushSOPClassTrial_Retired("1.2.840.10008.5.1.4.34.4.1");
+std::string const UnifiedProcedureStepWatchSOPClassTrial_Retired("1.2.840.10008.5.1.4.34.4.2");
+std::string const UnifiedProcedureStepPullSOPClassTrial_Retired("1.2.840.10008.5.1.4.34.4.3");
+std::string const UnifiedProcedureStepEventSOPClassTrial_Retired("1.2.840.10008.5.1.4.34.4.4");
+std::string const UPSGlobalSubscriptionSOPInstance("1.2.840.10008.5.1.4.34.5");
+std::string const UPSFilteredGlobalSubscriptionSOPInstance("1.2.840.10008.5.1.4.34.5.1");
+std::string const UnifiedWorklistandProcedureStepServiceClass("1.2.840.10008.5.1.4.34.6");
+std::string const UnifiedProcedureStepPushSOPClass("1.2.840.10008.5.1.4.34.6.1");
+std::string const UnifiedProcedureStepWatchSOPClass("1.2.840.10008.5.1.4.34.6.2");
+std::string const UnifiedProcedureStepPullSOPClass("1.2.840.10008.5.1.4.34.6.3");
+std::string const UnifiedProcedureStepEventSOPClass("1.2.840.10008.5.1.4.34.6.4");
+std::string const RTBeamsDeliveryInstructionStorage("1.2.840.10008.5.1.4.34.7");
+std::string const RTConventionalMachineVerification("1.2.840.10008.5.1.4.34.8");
+std::string const RTIonMachineVerification("1.2.840.10008.5.1.4.34.9");
+std::string const GeneralRelevantPatientInformationQuery("1.2.840.10008.5.1.4.37.1");
+std::string const BreastImagingRelevantPatientInformationQuery("1.2.840.10008.5.1.4.37.2");
+std::string const CardiacRelevantPatientInformationQuery("1.2.840.10008.5.1.4.37.3");
+std::string const HangingProtocolStorage("1.2.840.10008.5.1.4.38.1");
+std::string const HangingProtocolInformationModelFIND("1.2.840.10008.5.1.4.38.2");
+std::string const HangingProtocolInformationModelMOVE("1.2.840.10008.5.1.4.38.3");
+std::string const HangingProtocolInformationModelGET("1.2.840.10008.5.1.4.38.4");
+std::string const ColorPaletteStorage("1.2.840.10008.5.1.4.39.1");
+std::string const ColorPaletteInformationModelFIND("1.2.840.10008.5.1.4.39.2");
+std::string const ColorPaletteInformationModelMOVE("1.2.840.10008.5.1.4.39.3");
+std::string const ColorPaletteInformationModelGET("1.2.840.10008.5.1.4.39.4");
+std::string const ProductCharacteristicsQuerySOPClass("1.2.840.10008.5.1.4.41");
+std::string const SubstanceApprovalQuerySOPClass("1.2.840.10008.5.1.4.42");
+std::string const GenericImplantTemplateStorage("1.2.840.10008.5.1.4.43.1");
+std::string const GenericImplantTemplateInformationModelFIND("1.2.840.10008.5.1.4.43.2");
+std::string const GenericImplantTemplateInformationModelMOVE("1.2.840.10008.5.1.4.43.3");
+std::string const GenericImplantTemplateInformationModelGET("1.2.840.10008.5.1.4.43.4");
+std::string const ImplantAssemblyTemplateStorage("1.2.840.10008.5.1.4.44.1");
+std::string const ImplantAssemblyTemplateInformationModelFIND("1.2.840.10008.5.1.4.44.2");
+std::string const ImplantAssemblyTemplateInformationModelMOVE("1.2.840.10008.5.1.4.44.3");
+std::string const ImplantAssemblyTemplateInformationModelGET("1.2.840.10008.5.1.4.44.4");
+std::string const ImplantTemplateGroupStorage("1.2.840.10008.5.1.4.45.1");
+std::string const ImplantTemplateGroupInformationModelFIND("1.2.840.10008.5.1.4.45.2");
+std::string const ImplantTemplateGroupInformationModelMOVE("1.2.840.10008.5.1.4.45.3");
+std::string const ImplantTemplateGroupInformationModelGET("1.2.840.10008.5.1.4.45.4");
+std::string const NativeDICOMModel("1.2.840.10008.7.1.1");
+std::string const AbstractMultiDimensionalImageModel("1.2.840.10008.7.1.2");
+std::string const DICOMContentMappingResource("1.2.840.10008.8.1.1");
+std::string const dicomDeviceName("1.2.840.10008.15.0.3.1");
+std::string const dicomDescription("1.2.840.10008.15.0.3.2");
+std::string const dicomManufacturer("1.2.840.10008.15.0.3.3");
+std::string const dicomManufacturerModelName("1.2.840.10008.15.0.3.4");
+std::string const dicomSoftwareVersion("1.2.840.10008.15.0.3.5");
+std::string const dicomVendorData("1.2.840.10008.15.0.3.6");
+std::string const dicomAETitle("1.2.840.10008.15.0.3.7");
+std::string const dicomNetworkConnectionReference("1.2.840.10008.15.0.3.8");
+std::string const dicomApplicationCluster("1.2.840.10008.15.0.3.9");
+std::string const dicomAssociationInitiator("1.2.840.10008.15.0.3.10");
+std::string const dicomAssociationAcceptor("1.2.840.10008.15.0.3.11");
+std::string const dicomHostname("1.2.840.10008.15.0.3.12");
+std::string const dicomPort("1.2.840.10008.15.0.3.13");
+std::string const dicomSOPClass("1.2.840.10008.15.0.3.14");
+std::string const dicomTransferRole("1.2.840.10008.15.0.3.15");
+std::string const dicomTransferSyntax("1.2.840.10008.15.0.3.16");
+std::string const dicomPrimaryDeviceType("1.2.840.10008.15.0.3.17");
+std::string const dicomRelatedDeviceReference("1.2.840.10008.15.0.3.18");
+std::string const dicomPreferredCalledAETitle("1.2.840.10008.15.0.3.19");
+std::string const dicomTLSCyphersuite("1.2.840.10008.15.0.3.20");
+std::string const dicomAuthorizedNodeCertificateReference("1.2.840.10008.15.0.3.21");
+std::string const dicomThisNodeCertificateReference("1.2.840.10008.15.0.3.22");
+std::string const dicomInstalled("1.2.840.10008.15.0.3.23");
+std::string const dicomStationName("1.2.840.10008.15.0.3.24");
+std::string const dicomDeviceSerialNumber("1.2.840.10008.15.0.3.25");
+std::string const dicomInstitutionName("1.2.840.10008.15.0.3.26");
+std::string const dicomInstitutionAddress("1.2.840.10008.15.0.3.27");
+std::string const dicomInstitutionDepartmentName("1.2.840.10008.15.0.3.28");
+std::string const dicomIssuerOfPatientID("1.2.840.10008.15.0.3.29");
+std::string const dicomPreferredCallingAETitle("1.2.840.10008.15.0.3.30");
+std::string const dicomSupportedCharacterSet("1.2.840.10008.15.0.3.31");
+std::string const dicomConfigurationRoot("1.2.840.10008.15.0.4.1");
+std::string const dicomDevicesRoot("1.2.840.10008.15.0.4.2");
+std::string const dicomUniqueAETitlesRegistryRoot("1.2.840.10008.15.0.4.3");
+std::string const dicomDevice("1.2.840.10008.15.0.4.4");
+std::string const dicomNetworkAE("1.2.840.10008.15.0.4.5");
+std::string const dicomNetworkConnection("1.2.840.10008.15.0.4.6");
+std::string const dicomUniqueAETitle("1.2.840.10008.15.0.4.7");
+std::string const dicomTransferCapability("1.2.840.10008.15.0.4.8");
+std::string const UniversalCoordinatedTime("1.2.840.10008.15.1.1");
+
+extern ElementsDictionary public_dictionary;
+extern UIDsDictionary uids_dictionary;
 }
 
 }
diff --git a/src/dcmtkpp/uid.cpp b/src/dcmtkpp/uid.cpp
new file mode 100644
index 0000000..e9013e5
--- /dev/null
+++ b/src/dcmtkpp/uid.cpp
@@ -0,0 +1,88 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include "dcmtkpp/uid.h"
+
+#include <string>
+
+#include <uuid/uuid.h>
+
+#include "dcmtkpp/Exception.h"
+
+namespace dcmtkpp
+{
+
+std::string generate_uid()
+{
+    if(uid_prefix.size() > 26)
+    {
+        throw Exception("UID prefix is too long");
+    }
+
+    // Our prefix is 26 characters long. With the "." for separation, 37
+    // characters remain. Since a random UUID has 122 random bits and since
+    // 2^122-1 is 37 decimal digits long, the UID can be generated from a UUID.
+    uuid_t uuid;
+    uuid_generate(uuid);
+
+    // Convert the UUID to two 61 bits integers
+    uint64_t first=0;
+    // time-high-and-version: 12 bits random, 4 bits version (2 bytes)
+    first = (first + (uuid[7]>>4)) << 8;
+    first = (first + ((uuid[7]&0xf)<<4)+(uuid[6]&0xf)) << 8;
+    // time-mid: random (2 bytes)
+    first = (first + uuid[5]) << 8;
+    first = (first + uuid[4]) << 8;
+    // time-low: random (4 bytes)
+    first = (first + uuid[3]) << 8;
+    first = (first + uuid[2]) << 8;
+    first = (first + uuid[1]) << 8;
+    first = (first + uuid[0]);
+
+    uint64_t second=0;
+    // node: 48 bits random (6 bytes)
+    second = (second + uuid[15]) << 8;
+    second = (second + uuid[14]) << 8;
+    second = (second + uuid[13]) << 8;
+    second = (second + uuid[12]) << 8;
+    second = (second + uuid[11]) << 8;
+    second = (second + uuid[10]) << 8;
+    // clock_seq_low: 8 bits random (1 byte)
+    second = (second + uuid[9]) << 8;
+    // clock_seq_hi_and_reserved: 4 bits random, 4 bits variant (1 byte)
+    second = (second + ((uuid[8]&0xf) << 4)) >> 4;
+
+    std::string suffix;
+    int remainder = 0;
+    while(first != 0)
+    {
+        int digit = first%10;
+        first = (first-digit)/10;
+        if(first != 0)
+        {
+            suffix = std::to_string(digit)+suffix;
+        }
+        else
+        {
+            remainder = digit;
+        }
+    }
+
+    second += remainder;
+    while(second != 0)
+    {
+        int digit = second%10;
+        second = (second-digit)/10;
+
+        suffix = std::to_string(digit)+suffix;
+    }
+
+    return uid_prefix+"."+suffix;
+}
+
+}
diff --git a/src/dcmtkpp/uid.h b/src/dcmtkpp/uid.h
new file mode 100644
index 0000000..5248483
--- /dev/null
+++ b/src/dcmtkpp/uid.h
@@ -0,0 +1,34 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#ifndef _d8ae0008_075b_4a28_a241_1c6fb1a6c79b
+#define _d8ae0008_075b_4a28_a241_1c6fb1a6c79b
+
+#include <string>
+
+namespace dcmtkpp
+{
+
+/// @brief UID prefix of DCMTK++.
+std::string const uid_prefix="1.2.826.0.1.3680043.9.5560";
+
+#ifdef DCMTKPP_MAJOR_VERSION
+#define DCMTKPP_STRINGIFY_HELPER(s) #s
+#define DCMTKPP_STRINGIFY(s) DCMTKPP_STRINGIFY_HELPER(s)
+/// @brief Implementation class UID of DCMTK++.
+std::string const implementation_class_uid=uid_prefix+"0." DCMTKPP_STRINGIFY(DCMTKPP_MAJOR_VERSION);
+#else
+#error DCMTKPP_MAJOR_VERSION must be defined
+#endif
+
+/// @brief Generate a UID under the UID prefix.
+std::string generate_uid();
+
+}
+
+#endif // _d8ae0008_075b_4a28_a241_1c6fb1a6c79b
diff --git a/src/dcmtkpp/xml_converter.cpp b/src/dcmtkpp/xml_converter.cpp
new file mode 100644
index 0000000..7a80781
--- /dev/null
+++ b/src/dcmtkpp/xml_converter.cpp
@@ -0,0 +1,597 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#include <map>
+#include <vector>
+
+#include <dcmtk/config/osconfig.h>
+#include <dcmtk/ofstd/ofstd.h>
+#include <dcmtk/ofstd/ofstream.h>
+
+#include "dcmtkpp/registry.h"
+#include "dcmtkpp/xml_converter.h"
+
+namespace dcmtkpp
+{
+
+struct ToXMLVisitor
+{
+    typedef boost::property_tree::ptree result_type;
+
+    result_type operator()(VR const vr) const
+    {
+        result_type result;
+
+        result.put("<xmlattr>.vr", as_string(vr)); // Mandatory
+
+        return result;
+    }
+
+    template<typename T>
+    result_type operator()(VR const vr, T const & value) const
+    {
+        result_type result;
+
+        result.put("<xmlattr>.vr", as_string(vr)); // Mandatory
+
+        unsigned int count = 0;
+        for(auto const & item: value)
+        {
+            ++count;
+            boost::property_tree::ptree tag_value;
+            tag_value.put("<xmlattr>.number", count); // Mandatory
+            tag_value.put_value(item);
+
+            result.add_child("Value", tag_value);
+        }
+
+        return result;
+    }
+
+    result_type operator()(VR const vr, Value::Integers const & value) const
+    {
+        result_type result;
+
+        result.put("<xmlattr>.vr", as_string(vr)); // Mandatory
+
+        unsigned int count = 0;
+        for(auto const & item: value)
+        {
+            ++count;
+            boost::property_tree::ptree tag_value;
+            tag_value.put("<xmlattr>.number", count); // Mandatory
+            tag_value.put_value(item);
+
+            result.add_child("Value", tag_value);
+        }
+
+        return result;
+    }
+
+    result_type operator()(VR const vr, Value::Strings const & value) const
+    {
+        result_type result;
+
+        result.put("<xmlattr>.vr", as_string(vr)); // Mandatory
+
+        if(vr == VR::PN)
+        {
+            auto const fields = { "Alphabetic", "Ideographic", "Phonetic" };
+
+            unsigned int count = 0;
+            for(auto const & item: value)
+            {
+                ++count;
+                boost::property_tree::ptree tag_value;
+                tag_value.put("<xmlattr>.number", count); // Mandatory
+
+                auto fields_it = fields.begin();
+                std::string::size_type begin=0;
+                while(begin != std::string::npos)
+                {
+                    std::string::size_type const end = item.find("=", begin);
+
+                    std::string::size_type size = 0;
+                    if(end != std::string::npos)
+                    {
+                        size = end-begin;
+                    }
+                    else
+                    {
+                        size = std::string::npos;
+                    }
+
+                    boost::property_tree::ptree tag_field;
+                    std::string value_name = item.substr(begin, size);
+
+                    auto const fields_name = { "FamilyName", "GivenName",
+                                               "MiddleName", "NamePrefix",
+                                               "NameSuffix" };
+                    auto fields_name_it = fields_name.begin();
+                    std::string::size_type begin_name=0;
+                    while(begin_name != std::string::npos)
+                    {
+                        std::string::size_type const end_name =
+                                value_name.find("^", begin_name);
+
+                        std::string::size_type size_name = 0;
+                        if(end_name != std::string::npos)
+                        {
+                            size_name = end_name-begin_name;
+                        }
+                        else
+                        {
+                            size_name = std::string::npos;
+                        }
+
+                        boost::property_tree::ptree tag_name;
+
+                        tag_name.put_value(value_name.substr(begin_name,
+                                                             size_name));
+
+                        tag_field.add_child(*fields_name_it, tag_name);
+
+                        if(end_name != std::string::npos)
+                        {
+                            begin_name = end_name+1;
+                            ++fields_name_it;
+                            if(fields_name_it == fields_name.end())
+                            {
+                                throw Exception("Invalid Person Name");
+                            }
+                        }
+                        else
+                        {
+                            begin_name = end_name;
+                        }
+                    }
+
+                    tag_value.add_child(*fields_it, tag_field);
+
+                    if(end != std::string::npos)
+                    {
+                        begin = end+1;
+                        ++fields_it;
+                        if(fields_it == fields.end())
+                        {
+                            throw Exception("Invalid Person Name");
+                        }
+                    }
+                    else
+                    {
+                        begin = end;
+                    }
+                }
+                result.add_child("PersonName", tag_value);
+            }
+        }
+        else
+        {
+            unsigned int count = 0;
+            for(auto const & item: value)
+            {
+                ++count;
+                boost::property_tree::ptree tag_value;
+                tag_value.put("<xmlattr>.number", count); // Mandatory
+                tag_value.put_value(item);
+
+                result.add_child("Value", tag_value);
+            }
+        }
+
+        return result;
+    }
+
+    result_type operator()(VR const vr, Value::DataSets const & value) const
+    {
+        result_type result;
+
+        result.put("<xmlattr>.vr", as_string(vr)); // Mandatory
+
+        unsigned int count = 0;
+        for(auto const & item: value)
+        {
+            ++count;
+            boost::property_tree::ptree tag_value;
+            tag_value.put("<xmlattr>.number", count); // Mandatory
+            boost::property_tree::ptree tag_result = as_xml(item);
+            tag_value.insert(tag_value.end(), tag_result.front().second.begin(),
+                                              tag_result.front().second.end());
+            result.add_child("Item", tag_value);
+        }
+
+        return result;
+    }
+
+    result_type operator()(VR const vr, Value::Binary const & value) const
+    {
+        result_type result;
+
+        result.put("<xmlattr>.vr", as_string(vr)); // Mandatory
+
+        boost::property_tree::ptree tag_value;
+
+        unsigned char const * data =
+            reinterpret_cast<unsigned char const *>(&value[0]);
+        OFStringStream stream;
+        OFStandard::encodeBase64(stream, data, value.size());
+        tag_value.put_value(stream.str().c_str());
+
+        result.add_child("InlineBinary", tag_value);
+
+        return result;
+    }
+
+};
+
+std::string get_person_name(boost::property_tree::ptree const & xml)
+{
+    std::vector<std::string> const fields_name = { "NameSuffix", "NamePrefix",
+                                                   "MiddleName", "GivenName",
+                                                   "FamilyName" };
+
+    std::map<std::string, std::string> values;
+    for(auto it = xml.begin(); it != xml.end(); ++it)
+    {
+        if (std::find(fields_name.begin(),
+                      fields_name.end(), it->first) != fields_name.end())
+        {
+            auto const value = it->second.get_value<std::string>();
+
+            values.insert(std::pair<std::string, std::string>(it->first, value));
+        }
+        else
+        {
+            std::stringstream error;
+            error << "Bad sub-Tag '" << it->first
+                  << "' for PersonName Tag";
+            throw Exception(error.str());
+        }
+    }
+
+    std::string return_value;
+    auto itfield = fields_name.begin();
+    do
+    {
+        std::stringstream current_value;
+
+        std::string value;
+        if (values.find(*itfield) != values.end())
+        {
+            value = values[*itfield];
+        }
+
+        ++itfield;
+
+        if (itfield != fields_name.end() && (value != "" || return_value != ""))
+        {
+            current_value << "^";
+        }
+        if (value != "")
+        {
+            current_value << value;
+        }
+        if (return_value != "")
+        {
+            current_value << return_value;
+        }
+
+        return_value = current_value.str();
+    }
+    while (itfield != fields_name.end());
+
+    return return_value;
+}
+
+template<typename TValueType>
+std::map<int, TValueType>
+parse_value(boost::property_tree::ptree const & xml, VR const & vr)
+{
+    std::map<int, TValueType> values;
+    for(auto it_value = xml.begin(); it_value != xml.end(); ++it_value)
+    {
+        if (it_value->first == "<xmlattr>")
+        {
+            continue;
+        }
+        else if (it_value->first != "Value")
+        {
+            std::stringstream error;
+            error << "Bad sub-Tag '" << it_value->first
+                  << "' for DicomAttribute Tag with VR = "
+                  << as_string(vr);
+            throw Exception(error.str());
+        }
+
+        int const position =
+                it_value->second.get<int>("<xmlattr>.number");
+
+        values.insert(std::pair<int, TValueType>(
+            position,
+            it_value->second.get_value<TValueType>()));
+    }
+
+    return values;
+}
+
+boost::property_tree::ptree as_xml(DataSet const & data_set)
+{
+    // XML dataset element
+    boost::property_tree::ptree nativedicommodel;
+    for(auto const & it: data_set)
+    {
+        auto const & tag = it.first;
+        auto const & element = it.second;
+
+        boost::property_tree::ptree dicomattribute =
+                apply_visitor(ToXMLVisitor(), element);
+
+        auto const dictionary_it = registry::public_dictionary.find(tag);
+        if(dictionary_it == registry::public_dictionary.end())
+        {
+            throw Exception("No such element: " + std::string(tag));
+        }
+
+        // Add Mandatory attribute Tag
+        dicomattribute.put("<xmlattr>.tag",  std::string(tag));
+        // Add Optional attribute Keyword
+        dicomattribute.put("<xmlattr>.keyword", dictionary_it->second.keyword);
+        // Add Optional attribute PrivateCreator
+        //dicomattribute.put("<xmlattr>.privateCreator", todo);
+
+        nativedicommodel.add_child("DicomAttribute", dicomattribute);
+    }
+
+    // root element
+    boost::property_tree::ptree dataset_xml;
+
+    // Add XML dataset into root element
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    return dataset_xml;
+}
+
+DataSet as_dataset(boost::property_tree::ptree const & xml)
+{
+    // XML contains only one NativeDicomModel
+    // <NativeDicomModel>
+    //     ...
+    // </NativeDicomModel>
+    if (xml.size() < 1 || xml.front().first != "NativeDicomModel")
+    {
+        throw Exception("Missing root node NativeDicomModel");
+    }
+
+    DataSet data_set;
+
+    for(auto it = xml.front().second.begin();
+        it != xml.front().second.end(); ++it)
+    {
+        // NativeDicomModel tag should only contains DicomAttribute tag
+        if (it->first != "DicomAttribute")
+        {
+            throw Exception("Bad DICOM tag: " + it->first);
+        }
+
+        // Get VR and tag
+        Tag const tag(it->second.get<std::string>("<xmlattr>.tag"));
+        VR const vr = as_vr(it->second.get<std::string>("<xmlattr>.vr"));
+
+        Element element;
+
+        if(vr == VR::AE || vr == VR::AS || vr == VR::AT || vr == VR::CS ||
+           vr == VR::DA || vr == VR::DT || vr == VR::LO || vr == VR::LT ||
+           vr == VR::SH || vr == VR::ST || vr == VR::TM || vr == VR::UI ||
+           vr == VR::UT)
+        {
+            element = Element(Value::Strings(), vr);
+
+            auto values = parse_value<Value::Strings::value_type>(it->second,
+                                                                  vr);
+
+            for (auto it = values.begin(); it != values.end(); ++it)
+            {
+                element.as_string().push_back(it->second);
+            }
+        }
+        else if(vr == VR::PN)
+        {
+            element = Element(Value::Strings(), vr);
+
+            std::map<int, Value::Strings::value_type> values;
+            for(auto it_value = it->second.begin();
+                it_value != it->second.end(); ++it_value)
+            {
+                if (it_value->first == "<xmlattr>")
+                {
+                    continue;
+                }
+                else if (it_value->first != "PersonName")
+                {
+                    std::stringstream error;
+                    error << "Bad sub-Tag '" << it_value->first
+                          << "' for DicomAttribute Tag with VR = "
+                          << as_string(vr);
+                    throw Exception(error.str());
+                }
+
+                int const position =
+                        it_value->second.get<int>("<xmlattr>.number");
+
+                std::map<std::string, std::string> names;
+                auto const fields = { "Alphabetic", "Ideographic", "Phonetic" };
+                for(auto it_person = it_value->second.begin();
+                    it_person != it_value->second.end(); ++it_person)
+                {
+                    if (it_person->first == "<xmlattr>")
+                    {
+                        continue;
+                    }
+                    else if (std::find(fields.begin(),
+                                       fields.end(),
+                                       it_person->first) != fields.end())
+                    {
+                        names.insert(std::pair<std::string, std::string>(
+                                         it_person->first,
+                                         get_person_name(it_person->second)));
+                    }
+                    else
+                    {
+                        std::stringstream error;
+                        error << "Bad sub-Tag '" << it_person->first
+                              << "' for PersonName Tag";
+                        throw Exception(error.str());
+                    }
+                }
+
+                Value::Strings::value_type dicom_item;
+                for(auto const & field: fields)
+                {
+                    if (names.find(field) != names.end())
+                    {
+                        dicom_item += names[field];
+                    }
+                    dicom_item += "=";
+                }
+
+                while(*dicom_item.rbegin() == '=')
+                {
+                    dicom_item = dicom_item.substr(0, dicom_item.size()-1);
+                }
+
+                values.insert(std::pair<int, Value::Strings::value_type>(
+                                  position, dicom_item));
+            }
+
+            for (auto it = values.begin(); it != values.end(); ++it)
+            {
+                element.as_string().push_back(it->second);
+            }
+        }
+        else if(vr == VR::DS || vr == VR::FD || vr == VR::FL)
+        {
+            element = Element(Value::Reals(), vr);
+
+            auto values = parse_value<Value::Reals::value_type>(it->second, vr);
+
+            for (auto it = values.begin(); it != values.end(); ++it)
+            {
+                element.as_real().push_back(it->second);
+            }
+        }
+        else if(vr == VR::IS || vr == VR::SL || vr == VR::SS ||
+                vr == VR::UL || vr == VR::US)
+        {
+            element = Element(Value::Integers(), vr);
+
+            auto values = parse_value<Value::Integers::value_type>(it->second,
+                                                                   vr);
+
+            for (auto it = values.begin(); it != values.end(); ++it)
+            {
+                element.as_int().push_back(it->second);
+            }
+        }
+        else if(vr == VR::SQ)
+        {
+            element = Element(Value::DataSets(), vr);
+
+            std::map<int, Value::DataSets::value_type> values;
+            for(auto it_value = it->second.begin();
+                it_value != it->second.end(); ++it_value)
+            {
+                if (it_value->first == "<xmlattr>")
+                {
+                    continue;
+                }
+                else if (it_value->first != "Item")
+                {
+                    std::stringstream error;
+                    error << "Bad sub-Tag '" << it_value->first
+                          << "' for DicomAttribute Tag with VR = "
+                          << as_string(vr);
+                    throw Exception(error.str());
+                }
+
+                boost::property_tree::ptree nativedicommodel;
+                nativedicommodel.insert(nativedicommodel.end(),
+                                        it_value->second.begin(),
+                                        it_value->second.end());
+                nativedicommodel.erase("<xmlattr>");
+
+                boost::property_tree::ptree dataset_xml;
+                dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+                int const position =
+                        it_value->second.get<int>("<xmlattr>.number");
+
+                values.insert(std::pair<int, Value::DataSets::value_type>(
+                    position, as_dataset(dataset_xml)));
+            }
+
+            for (auto it = values.begin(); it != values.end(); ++it)
+            {
+                element.as_data_set().push_back(it->second);
+            }
+        }
+        else if(vr == VR::OB || vr == VR::OF || vr == VR::OW || vr == VR::UN)
+        {
+            element = Element(Value::Binary(), vr);
+
+            bool find_inline_binary = false; // only one Tag InlineBinary
+            for(auto it_value = it->second.begin();
+                it_value != it->second.end(); ++it_value)
+            {
+                if (it_value->first == "<xmlattr>")
+                {
+                    continue;
+                }
+                else if (it_value->first != "InlineBinary")
+                {
+                    std::stringstream error;
+                    error << "Bad sub-Tag '" << it_value->first
+                          << "' for DicomAttribute Tag with VR = "
+                          << as_string(vr);
+                    throw Exception(error.str());
+                }
+                else if (find_inline_binary)
+                {
+                    std::stringstream error;
+                    error << "Too many sub-Tag '" << it_value->first
+                          << "' for DicomAttribute Tag with VR = "
+                          << as_string(vr);
+                    throw Exception(error.str());
+                }
+
+                auto const & encoded = it_value->second.get_value<std::string>();
+                OFString const encoded_dcmtk(encoded.c_str());
+                unsigned char * decoded;
+                size_t const decoded_size =
+                    OFStandard::decodeBase64(encoded_dcmtk, decoded);
+
+                element.as_binary().resize(decoded_size);
+                std::copy(decoded, decoded+decoded_size,
+                          element.as_binary().begin());
+
+                delete[] decoded;
+
+                find_inline_binary = true;
+            }
+        }
+        else
+        {
+            throw Exception("Unknown VR: "+as_string(vr));
+        }
+
+        data_set.add(tag, element);
+    }
+
+    return data_set;
+}
+
+} // namespace dcmtkpp
diff --git a/src/dcmtkpp/xml_converter.h b/src/dcmtkpp/xml_converter.h
new file mode 100644
index 0000000..fa990af
--- /dev/null
+++ b/src/dcmtkpp/xml_converter.h
@@ -0,0 +1,27 @@
+/*************************************************************************
+ * dcmtkpp - Copyright (C) Universite de Strasbourg
+ * Distributed under the terms of the CeCILL-B license, as published by
+ * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * for details.
+ ************************************************************************/
+
+#ifndef _61eb6ed2_447a_43b5_a6ba_ca7c2a5fb492
+#define _61eb6ed2_447a_43b5_a6ba_ca7c2a5fb492
+
+#include <boost/property_tree/ptree.hpp>
+
+#include "dcmtkpp/DataSet.h"
+
+namespace dcmtkpp
+{
+
+/// @brief Convert a data set to its XML representation.
+boost::property_tree::ptree as_xml(DataSet const & data_set);
+
+/// @brief Create a data set from its XML representation.
+DataSet as_dataset(boost::property_tree::ptree const & xml);
+
+} // namespace dcmtkpp
+
+#endif // _61eb6ed2_447a_43b5_a6ba_ca7c2a5fb492
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index a8fe9a3..80b3ced 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -5,6 +5,7 @@ add_definitions(-DBOOST_TEST_DYN_LINK)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../src)
 
 add_definitions("-D HAVE_CONFIG_H")
+add_definitions("-D DCMTKPP_MAJOR_VERSION=${dcmtkpp_MAJOR_VERSION}")
 
 file(GLOB_RECURSE tests *.cpp)
 foreach(test_file ${tests})
diff --git a/tests/code/Association.cpp b/tests/code/Association.cpp
index a300c2f..b80f222 100644
--- a/tests/code/Association.cpp
+++ b/tests/code/Association.cpp
@@ -5,6 +5,7 @@
 
 #include "dcmtkpp/Association.h"
 #include "dcmtkpp/Exception.h"
+#include "dcmtkpp/registry.h"
 
 #include "../PeerFixtureBase.h"
 
@@ -210,8 +211,8 @@ BOOST_AUTO_TEST_CASE(Associate)
 {
     PeerFixtureBase fixture(NET_REQUESTOR, 0, 10, 
         {
-            { UID_VerificationSOPClass,
-                {UID_LittleEndianImplicitTransferSyntax}
+            { dcmtkpp::registry::VerificationSOPClass,
+                {dcmtkpp::registry::ImplicitVRLittleEndian}
             }
         });
     BOOST_CHECK_THROW(
@@ -224,8 +225,8 @@ BOOST_AUTO_TEST_CASE(Associate)
         fixture.association.set_peer_ae_title("foo"), dcmtkpp::Exception);
     BOOST_CHECK_THROW(
         fixture.association.add_presentation_context(
-                UID_GETPatientRootQueryRetrieveInformationModel,
-                { UID_LittleEndianImplicitTransferSyntax }),
+                dcmtkpp::registry::PatientRootQueryRetrieveInformationModelGET,
+                { dcmtkpp::registry::ImplicitVRLittleEndian }),
         dcmtkpp::Exception);
     BOOST_CHECK_THROW(
         fixture.association.set_user_identity_type(dcmtkpp::UserIdentityType::SAML), 
diff --git a/tests/code/CEchoRequest.cpp b/tests/code/CEchoRequest.cpp
index 934a900..8b2b7ba 100644
--- a/tests/code/CEchoRequest.cpp
+++ b/tests/code/CEchoRequest.cpp
@@ -2,12 +2,12 @@
 #include <boost/test/unit_test.hpp>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
 #include <dcmtk/dcmnet/dimse.h>
 
 #include "dcmtkpp/CEchoRequest.h"
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/Message.h"
+#include "dcmtkpp/registry.h"
 
 #include "../MessageFixtureBase.h"
 
@@ -19,7 +19,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CEchoRequest>
     {
         this->command_set.add("CommandField", {dcmtkpp::Message::Command::C_ECHO_RQ});
         this->command_set.add("MessageID", {1234});
-        this->command_set.add("AffectedSOPClassUID", {UID_VerificationSOPClass});
+        this->command_set.add("AffectedSOPClassUID", {dcmtkpp::registry::VerificationSOPClass});
     }
 
     void check(dcmtkpp::CEchoRequest const & message)
@@ -27,14 +27,14 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CEchoRequest>
         BOOST_CHECK_EQUAL(message.get_command_field(), dcmtkpp::Message::Command::C_ECHO_RQ);
         BOOST_CHECK_EQUAL(message.get_message_id(), 1234);
         BOOST_CHECK_EQUAL(
-            message.get_affected_sop_class_uid(), UID_VerificationSOPClass);
+            message.get_affected_sop_class_uid(), dcmtkpp::registry::VerificationSOPClass);
         BOOST_CHECK(!message.has_data_set());
     }
 };
 
 BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
 {
-    dcmtkpp::CEchoRequest const message(1234, UID_VerificationSOPClass);
+    dcmtkpp::CEchoRequest const message(1234, dcmtkpp::registry::VerificationSOPClass);
     this->check(message);
 }
 
diff --git a/tests/code/CEchoResponse.cpp b/tests/code/CEchoResponse.cpp
index 01195c4..3dc26bd 100644
--- a/tests/code/CEchoResponse.cpp
+++ b/tests/code/CEchoResponse.cpp
@@ -2,12 +2,12 @@
 #include <boost/test/unit_test.hpp>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
 #include <dcmtk/dcmnet/dimse.h>
 
 #include "dcmtkpp/CEchoResponse.h"
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/Message.h"
+#include "dcmtkpp/registry.h"
 
 #include "../MessageFixtureBase.h"
 
@@ -20,7 +20,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CEchoResponse>
         this->command_set.add("CommandField", {dcmtkpp::Message::Command::C_ECHO_RSP});
         this->command_set.add("MessageIDBeingRespondedTo", {1234});
         this->command_set.add("Status", {STATUS_Success});
-        this->command_set.add("AffectedSOPClassUID", {UID_VerificationSOPClass});
+        this->command_set.add("AffectedSOPClassUID", {dcmtkpp::registry::VerificationSOPClass});
     }
 
     void check(dcmtkpp::CEchoResponse const & message)
@@ -28,7 +28,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CEchoResponse>
         BOOST_CHECK_EQUAL(message.get_command_field(), dcmtkpp::Message::Command::C_ECHO_RSP);
         BOOST_CHECK_EQUAL(message.get_message_id_being_responded_to(), 1234);
         BOOST_CHECK_EQUAL(message.get_status(), STATUS_Success);
-        BOOST_CHECK_EQUAL(message.get_affected_sop_class_uid(), UID_VerificationSOPClass);
+        BOOST_CHECK_EQUAL(message.get_affected_sop_class_uid(), dcmtkpp::registry::VerificationSOPClass);
         BOOST_CHECK(!message.has_data_set());
     }
 };
@@ -36,7 +36,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CEchoResponse>
 BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
 {
     dcmtkpp::CEchoResponse const message(
-        1234, STATUS_Success, UID_VerificationSOPClass);
+        1234, STATUS_Success, dcmtkpp::registry::VerificationSOPClass);
     this->check(message);
 }
 
diff --git a/tests/code/CFindRequest.cpp b/tests/code/CFindRequest.cpp
index f06ad39..32f7fac 100644
--- a/tests/code/CFindRequest.cpp
+++ b/tests/code/CFindRequest.cpp
@@ -2,12 +2,12 @@
 #include <boost/test/unit_test.hpp>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
 #include <dcmtk/dcmnet/dimse.h>
 
 #include "dcmtkpp/CFindRequest.h"
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/Message.h"
+#include "dcmtkpp/registry.h"
 
 #include "../MessageFixtureBase.h"
 
@@ -21,7 +21,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CFindRequest>
         this->command_set.add("CommandField", {dcmtkpp::Message::Command::C_FIND_RQ});
         this->command_set.add("MessageID", {1234});
         this->command_set.add("AffectedSOPClassUID",
-            {UID_FINDPatientRootQueryRetrieveInformationModel});
+            {dcmtkpp::registry::PatientRootQueryRetrieveInformationModelFIND});
         this->command_set.add("Priority", {DIMSE_PRIORITY_MEDIUM});
 
         this->query.add("PatientName", {"Doe^John"});
@@ -35,7 +35,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CFindRequest>
         BOOST_CHECK_EQUAL(message.get_message_id(), 1234);
         BOOST_CHECK_EQUAL(
             message.get_affected_sop_class_uid(),
-            UID_FINDPatientRootQueryRetrieveInformationModel);
+            dcmtkpp::registry::PatientRootQueryRetrieveInformationModelFIND);
         BOOST_CHECK(message.get_data_set() == this->query);
     }
 };
@@ -43,7 +43,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CFindRequest>
 BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
 {
     dcmtkpp::CFindRequest const message(
-        1234, UID_FINDPatientRootQueryRetrieveInformationModel,
+        1234, dcmtkpp::registry::PatientRootQueryRetrieveInformationModelFIND,
         DIMSE_PRIORITY_MEDIUM, this->query);
     this->check(message);
 }
diff --git a/tests/code/CFindResponse.cpp b/tests/code/CFindResponse.cpp
index 55a17e9..49bd561 100644
--- a/tests/code/CFindResponse.cpp
+++ b/tests/code/CFindResponse.cpp
@@ -2,12 +2,12 @@
 #include <boost/test/unit_test.hpp>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
 #include <dcmtk/dcmnet/dimse.h>
 
 #include "dcmtkpp/CFindResponse.h"
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/Message.h"
+#include "dcmtkpp/registry.h"
 
 #include "../MessageFixtureBase.h"
 
@@ -24,7 +24,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CFindResponse>
 
         command_set.add("MessageID", {5678});
         command_set.add("AffectedSOPClassUID",
-            {UID_FINDStudyRootQueryRetrieveInformationModel});
+            {dcmtkpp::registry::StudyRootQueryRetrieveInformationModelFIND});
 
         data_set.add("PatientName", {"Doe^John"});
         data_set.add("PatientID", {"DJ123"});
@@ -44,7 +44,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CFindResponse>
         BOOST_CHECK(message.has_affected_sop_class_uid());
         BOOST_CHECK_EQUAL(
             message.get_affected_sop_class_uid(),
-            UID_FINDStudyRootQueryRetrieveInformationModel);
+            dcmtkpp::registry::StudyRootQueryRetrieveInformationModelFIND);
 
         BOOST_CHECK(message.has_data_set());
         BOOST_CHECK(message.get_data_set() == this->data_set);
@@ -56,7 +56,7 @@ BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
     dcmtkpp::CFindResponse message(1234, STATUS_Success, this->data_set);
     message.set_message_id(5678);
     message.set_affected_sop_class_uid(
-        UID_FINDStudyRootQueryRetrieveInformationModel);
+        dcmtkpp::registry::StudyRootQueryRetrieveInformationModelFIND);
     this->check(message);
 }
 
diff --git a/tests/code/CGetRequest.cpp b/tests/code/CGetRequest.cpp
index 7a83ace..5e63da4 100644
--- a/tests/code/CGetRequest.cpp
+++ b/tests/code/CGetRequest.cpp
@@ -22,7 +22,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CGetRequest>
         this->command_set.add("CommandField", {dcmtkpp::Message::Command::C_GET_RQ});
         this->command_set.add("MessageID", {1234});
         this->command_set.add("AffectedSOPClassUID",
-            {UID_GETPatientRootQueryRetrieveInformationModel});
+            {dcmtkpp::registry::PatientRootQueryRetrieveInformationModelGET});
         this->command_set.add("Priority", {DIMSE_PRIORITY_MEDIUM});
 
         this->query.add("PatientName", {"Doe^John"});
@@ -36,7 +36,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CGetRequest>
         BOOST_CHECK_EQUAL(message.get_message_id(), 1234);
         BOOST_CHECK_EQUAL(
             message.get_affected_sop_class_uid(),
-            UID_GETPatientRootQueryRetrieveInformationModel);
+            dcmtkpp::registry::PatientRootQueryRetrieveInformationModelGET);
         BOOST_CHECK(message.has_data_set());
         BOOST_CHECK(message.get_data_set() == this->query);
     }
@@ -45,7 +45,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CGetRequest>
 BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
 {
     dcmtkpp::CGetRequest const message(
-        1234, UID_GETPatientRootQueryRetrieveInformationModel,
+        1234, dcmtkpp::registry::PatientRootQueryRetrieveInformationModelGET,
         DIMSE_PRIORITY_MEDIUM, this->query);
     this->check(message);
 }
diff --git a/tests/code/CGetResponse.cpp b/tests/code/CGetResponse.cpp
index c207421..0f035e0 100644
--- a/tests/code/CGetResponse.cpp
+++ b/tests/code/CGetResponse.cpp
@@ -2,7 +2,6 @@
 #include <boost/test/unit_test.hpp>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
 #include <dcmtk/dcmnet/dimse.h>
 
 #include "dcmtkpp/CGetResponse.h"
@@ -25,7 +24,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CGetResponse>
 
         this->command_set.add("MessageID", {5678});
         this->command_set.add("AffectedSOPClassUID",
-            {UID_GETStudyRootQueryRetrieveInformationModel});
+            {dcmtkpp::registry::StudyRootQueryRetrieveInformationModelGET});
         this->command_set.add(dcmtkpp::registry::NumberOfRemainingSuboperations, {1});
         this->command_set.add(dcmtkpp::registry::NumberOfCompletedSuboperations, {2});
         this->command_set.add(dcmtkpp::registry::NumberOfFailedSuboperations, {3});
@@ -49,7 +48,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CGetResponse>
         BOOST_CHECK(message.has_affected_sop_class_uid());
         BOOST_CHECK_EQUAL(
             message.get_affected_sop_class_uid(),
-            UID_GETStudyRootQueryRetrieveInformationModel);
+            dcmtkpp::registry::StudyRootQueryRetrieveInformationModelGET);
 
         BOOST_CHECK(message.has_number_of_remaining_sub_operations());
         BOOST_CHECK_EQUAL(message.get_number_of_remaining_sub_operations(), 1);
@@ -73,7 +72,7 @@ BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
     dcmtkpp::CGetResponse message(1234, STATUS_Success, this->data_set);
     message.set_message_id(5678);
     message.set_affected_sop_class_uid(
-        UID_GETStudyRootQueryRetrieveInformationModel);
+        dcmtkpp::registry::StudyRootQueryRetrieveInformationModelGET);
     message.set_number_of_remaining_sub_operations(1);
     message.set_number_of_completed_sub_operations(2);
     message.set_number_of_failed_sub_operations(3);
diff --git a/tests/code/CMoveRequest.cpp b/tests/code/CMoveRequest.cpp
index 41a490a..5d9d10f 100644
--- a/tests/code/CMoveRequest.cpp
+++ b/tests/code/CMoveRequest.cpp
@@ -2,12 +2,12 @@
 #include <boost/test/unit_test.hpp>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
 #include <dcmtk/dcmnet/dimse.h>
 
 #include "dcmtkpp/CMoveRequest.h"
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/Message.h"
+#include "dcmtkpp/registry.h"
 
 #include "../MessageFixtureBase.h"
 
@@ -21,7 +21,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CMoveRequest>
         this->command_set.add("CommandField", {dcmtkpp::Message::Command::C_MOVE_RQ});
         this->command_set.add("MessageID", {1234});
         this->command_set.add("AffectedSOPClassUID",
-            {UID_MOVEPatientRootQueryRetrieveInformationModel});
+            {dcmtkpp::registry::PatientRootQueryRetrieveInformationModelMOVE});
         this->command_set.add("Priority", {DIMSE_PRIORITY_MEDIUM});
         this->command_set.add("MoveDestination", {"destination"});
 
@@ -36,7 +36,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CMoveRequest>
         BOOST_CHECK_EQUAL(message.get_message_id(), 1234);
         BOOST_CHECK_EQUAL(
             message.get_affected_sop_class_uid(),
-            UID_MOVEPatientRootQueryRetrieveInformationModel);
+            dcmtkpp::registry::PatientRootQueryRetrieveInformationModelMOVE);
         BOOST_CHECK_EQUAL(message.get_move_destination(), "destination");
         BOOST_CHECK(message.has_data_set());
         BOOST_CHECK(message.get_data_set() == this->query);
@@ -46,7 +46,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CMoveRequest>
 BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
 {
     dcmtkpp::CMoveRequest const message(
-        1234, UID_MOVEPatientRootQueryRetrieveInformationModel,
+        1234, dcmtkpp::registry::PatientRootQueryRetrieveInformationModelMOVE,
         DIMSE_PRIORITY_MEDIUM, "destination", this->query);
     this->check(message);
 }
diff --git a/tests/code/CMoveResponse.cpp b/tests/code/CMoveResponse.cpp
index ceb7b5b..28677e9 100644
--- a/tests/code/CMoveResponse.cpp
+++ b/tests/code/CMoveResponse.cpp
@@ -2,12 +2,12 @@
 #include <boost/test/unit_test.hpp>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
 #include <dcmtk/dcmnet/dimse.h>
 
 #include "dcmtkpp/CMoveResponse.h"
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/Message.h"
+#include "dcmtkpp/registry.h"
 
 #include "../MessageFixtureBase.h"
 
@@ -24,7 +24,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CMoveResponse>
 
         this->command_set.add("MessageID", {5678});
         this->command_set.add("AffectedSOPClassUID",
-            {UID_MOVEStudyRootQueryRetrieveInformationModel});
+            {dcmtkpp::registry::StudyRootQueryRetrieveInformationModelMOVE});
         this->command_set.add(dcmtkpp::registry::NumberOfRemainingSuboperations, {1});
         this->command_set.add(dcmtkpp::registry::NumberOfCompletedSuboperations, {2});
         this->command_set.add(dcmtkpp::registry::NumberOfFailedSuboperations, {3});
@@ -48,7 +48,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CMoveResponse>
         BOOST_CHECK(message.has_affected_sop_class_uid());
         BOOST_CHECK_EQUAL(
             message.get_affected_sop_class_uid(),
-            UID_MOVEStudyRootQueryRetrieveInformationModel);
+            dcmtkpp::registry::StudyRootQueryRetrieveInformationModelMOVE);
 
         BOOST_CHECK(message.has_number_of_remaining_sub_operations());
         BOOST_CHECK_EQUAL(message.get_number_of_remaining_sub_operations(), 1);
@@ -72,7 +72,7 @@ BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
     dcmtkpp::CMoveResponse message(1234, STATUS_Success, this->data_set);
     message.set_message_id(5678);
     message.set_affected_sop_class_uid(
-        UID_MOVEStudyRootQueryRetrieveInformationModel);
+        dcmtkpp::registry::StudyRootQueryRetrieveInformationModelMOVE);
     message.set_number_of_remaining_sub_operations(1);
     message.set_number_of_completed_sub_operations(2);
     message.set_number_of_failed_sub_operations(3);
diff --git a/tests/code/CStoreRequest.cpp b/tests/code/CStoreRequest.cpp
index 9c9f625..fd926db 100644
--- a/tests/code/CStoreRequest.cpp
+++ b/tests/code/CStoreRequest.cpp
@@ -2,12 +2,12 @@
 #include <boost/test/unit_test.hpp>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
 #include <dcmtk/dcmnet/dimse.h>
 
 #include "dcmtkpp/CStoreRequest.h"
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/Message.h"
+#include "dcmtkpp/registry.h"
 
 #include "../MessageFixtureBase.h"
 
@@ -20,7 +20,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CStoreRequest>
     {
         this->command_set.add("CommandField", {dcmtkpp::Message::Command::C_STORE_RQ});
         this->command_set.add("MessageID", {1234});
-        this->command_set.add("AffectedSOPClassUID", {UID_MRImageStorage});
+        this->command_set.add("AffectedSOPClassUID", {dcmtkpp::registry::MRImageStorage});
         this->command_set.add("AffectedSOPInstanceUID", {"1.2.3.4"});
         this->command_set.add("Priority", {DIMSE_PRIORITY_MEDIUM});
 
@@ -38,7 +38,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CStoreRequest>
         BOOST_CHECK_EQUAL(message.get_command_field(), dcmtkpp::Message::Command::C_STORE_RQ);
         BOOST_CHECK_EQUAL(message.get_message_id(), 1234);
         BOOST_CHECK_EQUAL(
-            message.get_affected_sop_class_uid(), UID_MRImageStorage);
+            message.get_affected_sop_class_uid(), dcmtkpp::registry::MRImageStorage);
         BOOST_CHECK_EQUAL(
             message.get_affected_sop_instance_uid(), "1.2.3.4");
 
@@ -56,7 +56,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CStoreRequest>
 BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
 {
     dcmtkpp::CStoreRequest message(
-        1234, UID_MRImageStorage, "1.2.3.4", DIMSE_PRIORITY_MEDIUM,
+        1234, dcmtkpp::registry::MRImageStorage, "1.2.3.4", DIMSE_PRIORITY_MEDIUM,
         this->data_set);
     message.set_move_originator_ae_title("origin");
     message.set_move_originator_message_id(5678);
diff --git a/tests/code/CStoreResponse.cpp b/tests/code/CStoreResponse.cpp
index 77ca267..b22c920 100644
--- a/tests/code/CStoreResponse.cpp
+++ b/tests/code/CStoreResponse.cpp
@@ -2,12 +2,12 @@
 #include <boost/test/unit_test.hpp>
 
 #include <dcmtk/config/osconfig.h>
-#include <dcmtk/dcmdata/dcuid.h>
 #include <dcmtk/dcmnet/dimse.h>
 
 #include "dcmtkpp/CStoreResponse.h"
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/Message.h"
+#include "dcmtkpp/registry.h"
 
 #include "../MessageFixtureBase.h"
 
@@ -22,7 +22,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CStoreResponse>
         this->command_set.add("Status", {STATUS_Success});
 
         this->command_set.add("MessageID", {5678});
-        this->command_set.add("AffectedSOPClassUID", {UID_MRImageStorage});
+        this->command_set.add("AffectedSOPClassUID", {dcmtkpp::registry::MRImageStorage});
         this->command_set.add("AffectedSOPInstanceUID", {"1.2.3.4"});
     }
 
@@ -38,7 +38,7 @@ struct Fixture: public MessageFixtureBase<dcmtkpp::CStoreResponse>
 
         BOOST_CHECK(message.has_affected_sop_class_uid());
         BOOST_CHECK_EQUAL(
-            message.get_affected_sop_class_uid(), UID_MRImageStorage);
+            message.get_affected_sop_class_uid(), dcmtkpp::registry::MRImageStorage);
 
         BOOST_CHECK(message.has_affected_sop_instance_uid());
         BOOST_CHECK_EQUAL(message.get_affected_sop_instance_uid(), "1.2.3.4");
@@ -49,7 +49,7 @@ BOOST_FIXTURE_TEST_CASE(Constructor, Fixture)
 {
     dcmtkpp::CStoreResponse message(1234, STATUS_Success);
     message.set_message_id(5678);
-    message.set_affected_sop_class_uid(UID_MRImageStorage);
+    message.set_affected_sop_class_uid(dcmtkpp::registry::MRImageStorage);
     message.set_affected_sop_instance_uid("1.2.3.4");
 
     this->check(message);
diff --git a/tests/code/DataSet.cpp b/tests/code/DataSet.cpp
index f28aa3c..e6c516f 100644
--- a/tests/code/DataSet.cpp
+++ b/tests/code/DataSet.cpp
@@ -6,6 +6,8 @@
 #include "dcmtkpp/Tag.h"
 #include "dcmtkpp/VR.h"
 
+#include "dcmtkpp/registry.h"
+
 BOOST_AUTO_TEST_CASE(Empty)
 {
     dcmtkpp::DataSet dataset;
diff --git a/tests/code/FindSCU.cpp b/tests/code/FindSCU.cpp
index a7758df..2328c8b 100644
--- a/tests/code/FindSCU.cpp
+++ b/tests/code/FindSCU.cpp
@@ -3,6 +3,7 @@
 
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/FindSCU.h"
+#include "dcmtkpp/registry.h"
 
 #include "../PeerFixtureBase.h"
 
@@ -16,8 +17,8 @@ struct Fixture: public PeerFixtureBase
     : PeerFixtureBase(NET_REQUESTOR, 104, 10,
         {
             {
-                UID_FINDPatientRootQueryRetrieveInformationModel,
-                { UID_LittleEndianImplicitTransferSyntax }
+                dcmtkpp::registry::PatientRootQueryRetrieveInformationModelFIND,
+                { dcmtkpp::registry::ImplicitVRLittleEndian }
             }
         })
     {
@@ -43,7 +44,7 @@ BOOST_FIXTURE_TEST_CASE(Find, Fixture)
     scu.set_network(&this->network);
     scu.set_association(&this->association);
 
-    scu.set_affected_sop_class(UID_FINDPatientRootQueryRetrieveInformationModel);
+    scu.set_affected_sop_class(dcmtkpp::registry::PatientRootQueryRetrieveInformationModelFIND);
     auto const results = scu.find(this->query);
 
     BOOST_REQUIRE_EQUAL(results.size(), 1);
@@ -58,7 +59,7 @@ BOOST_FIXTURE_TEST_CASE(FindCallback, Fixture)
     scu.set_network(&this->network);
     scu.set_association(&this->association);
 
-    scu.set_affected_sop_class(UID_FINDPatientRootQueryRetrieveInformationModel);
+    scu.set_affected_sop_class(dcmtkpp::registry::PatientRootQueryRetrieveInformationModelFIND);
     scu.find(this->query, Fixture::callback);
 
     BOOST_CHECK(Fixture::called);
diff --git a/tests/code/GetSCU.cpp b/tests/code/GetSCU.cpp
index d588760..7f3f979 100644
--- a/tests/code/GetSCU.cpp
+++ b/tests/code/GetSCU.cpp
@@ -3,6 +3,7 @@
 
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/GetSCU.h"
+#include "dcmtkpp/registry.h"
 
 #include "../PeerFixtureBase.h"
 
@@ -16,11 +17,11 @@ struct Fixture: public PeerFixtureBase
     : PeerFixtureBase(NET_REQUESTOR, 104, 10,
         {
             {
-                UID_GETPatientRootQueryRetrieveInformationModel,
-                { UID_LittleEndianImplicitTransferSyntax }
+                dcmtkpp::registry::PatientRootQueryRetrieveInformationModelGET,
+                { dcmtkpp::registry::ImplicitVRLittleEndian }
             },
             {
-                UID_RawDataStorage, { UID_LittleEndianImplicitTransferSyntax },
+                dcmtkpp::registry::RawDataStorage, { dcmtkpp::registry::ImplicitVRLittleEndian },
                 ASC_SC_ROLE_SCP
             }
         })
@@ -46,7 +47,7 @@ BOOST_FIXTURE_TEST_CASE(Get, Fixture)
     scu.set_network(&this->network);
     scu.set_association(&this->association);
 
-    scu.set_affected_sop_class(UID_GETPatientRootQueryRetrieveInformationModel);
+    scu.set_affected_sop_class(dcmtkpp::registry::PatientRootQueryRetrieveInformationModelGET);
     auto const results = scu.get(this->query);
 
     BOOST_REQUIRE_EQUAL(results.size(), 1);
@@ -61,7 +62,7 @@ BOOST_FIXTURE_TEST_CASE(GetCallback, Fixture)
     scu.set_network(&this->network);
     scu.set_association(&this->association);
 
-    scu.set_affected_sop_class(UID_GETPatientRootQueryRetrieveInformationModel);
+    scu.set_affected_sop_class(dcmtkpp::registry::PatientRootQueryRetrieveInformationModelGET);
     scu.get(this->query, Fixture::callback);
 
     BOOST_CHECK(Fixture::called);
diff --git a/tests/code/MoveSCU.cpp b/tests/code/MoveSCU.cpp
index 11bf2c9..5a131e7 100644
--- a/tests/code/MoveSCU.cpp
+++ b/tests/code/MoveSCU.cpp
@@ -3,6 +3,7 @@
 
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/MoveSCU.h"
+#include "dcmtkpp/registry.h"
 
 #include "../PeerFixtureBase.h"
 
@@ -16,11 +17,11 @@ struct Fixture: public PeerFixtureBase
     : PeerFixtureBase(NET_ACCEPTORREQUESTOR, 11113, 10,
         {
             {
-                UID_MOVEPatientRootQueryRetrieveInformationModel,
-                { UID_LittleEndianImplicitTransferSyntax }
+                dcmtkpp::registry::PatientRootQueryRetrieveInformationModelMOVE,
+                { dcmtkpp::registry::ImplicitVRLittleEndian }
             },
             {
-                UID_RawDataStorage, { UID_LittleEndianImplicitTransferSyntax },
+                dcmtkpp::registry::RawDataStorage, { dcmtkpp::registry::ImplicitVRLittleEndian },
                 ASC_SC_ROLE_SCP
             }
         })
@@ -59,7 +60,7 @@ BOOST_FIXTURE_TEST_CASE(Move, Fixture)
     scu.set_association(&this->association);
     scu.set_move_destination("LOCAL");
 
-    scu.set_affected_sop_class(UID_MOVEPatientRootQueryRetrieveInformationModel);
+    scu.set_affected_sop_class(dcmtkpp::registry::PatientRootQueryRetrieveInformationModelMOVE);
     auto const results = scu.move(this->query);
 
     BOOST_REQUIRE_EQUAL(results.size(), 1);
@@ -75,7 +76,7 @@ BOOST_FIXTURE_TEST_CASE(MoveCallback, Fixture)
     scu.set_association(&this->association);
     scu.set_move_destination("LOCAL");
 
-    scu.set_affected_sop_class(UID_MOVEPatientRootQueryRetrieveInformationModel);
+    scu.set_affected_sop_class(dcmtkpp::registry::PatientRootQueryRetrieveInformationModelMOVE);
     scu.move(this->query, Fixture::callback);
 
     BOOST_CHECK(Fixture::called);
diff --git a/tests/code/Reader.cpp b/tests/code/Reader.cpp
new file mode 100644
index 0000000..ebc71e6
--- /dev/null
+++ b/tests/code/Reader.cpp
@@ -0,0 +1,328 @@
+#define BOOST_TEST_MODULE Reader
+#include <boost/test/unit_test.hpp>
+
+#include <endian.h>
+#include <sstream>
+#include <tuple>
+
+#include <dcmtk/config/osconfig.h>
+#include <dcmtk/dcmdata/dctk.h>
+#include <dcmtk/dcmdata/dcostrmb.h>
+
+#include "dcmtkpp/conversion.h"
+#include "dcmtkpp/Element.h"
+#include "dcmtkpp/registry.h"
+#include "dcmtkpp/Reader.h"
+#include "dcmtkpp/VR.h"
+
+BOOST_AUTO_TEST_CASE(Constructor)
+{
+    std::istringstream stream;
+    dcmtkpp::Reader const reader(stream, dcmtkpp::registry::ExplicitVRBigEndian_Retired);
+    BOOST_REQUIRE(reader.byte_ordering == BIG_ENDIAN);
+    BOOST_REQUIRE(reader.explicit_vr == true);
+}
+
+void do_test(
+    dcmtkpp::DataSet const & dcmtkpp_data_set, std::string transfer_syntax,
+    E_EncodingType item_encoding, E_GrpLenEncoding group_length_encoding)
+{
+    // Write input data set
+    auto const dcmtk_data_set = dynamic_cast<DcmDataset*>(dcmtkpp::convert(dcmtkpp_data_set));
+    std::string data(1000000, '\0');
+    DcmOutputBufferStream dcmtk_stream(&data[0], data.size());
+    dcmtk_data_set->transferInit();
+    OFCondition const condition = dcmtk_data_set->write(
+        dcmtk_stream, DcmXfer(transfer_syntax.c_str()).getXfer(),
+        item_encoding, NULL, group_length_encoding);
+    BOOST_REQUIRE(condition == EC_Normal);
+    dcmtk_data_set->transferEnd();
+
+    // Store data in a stream
+    data = data.substr(0, dcmtk_stream.tell());
+    std::istringstream stream(data);
+
+    // Read output data set
+    dcmtkpp::Reader reader(stream, transfer_syntax);
+    auto const other_dcmtkpp_data_set = reader.read_data_set();
+
+    BOOST_REQUIRE(other_dcmtkpp_data_set == dcmtkpp_data_set);
+}
+
+void do_test(dcmtkpp::DataSet const & dcmtkpp_data_set)
+{
+    std::vector<std::string> const transfer_syntaxes =
+        {
+            dcmtkpp::registry::ImplicitVRLittleEndian,
+            dcmtkpp::registry::ExplicitVRLittleEndian,
+            dcmtkpp::registry::ExplicitVRBigEndian_Retired
+        };
+    std::vector<E_EncodingType> item_encodings =
+        { EET_ExplicitLength, EET_UndefinedLength };
+    std::vector<E_GrpLenEncoding> use_group_length_values =
+        { EGL_withoutGL, EGL_withGL };
+
+    for(auto const & transfer_syntax: transfer_syntaxes)
+    {
+        for(auto const & item_encoding: item_encodings)
+        {
+            for(auto const & use_group_length: use_group_length_values)
+            {
+                do_test(
+                    dcmtkpp_data_set, transfer_syntax,
+                    item_encoding, use_group_length);
+            }
+        }
+    }
+}
+
+BOOST_AUTO_TEST_CASE(AT)
+{
+    dcmtkpp::Element dcmtkpp_element({"12345678", "9abcdef0"}, dcmtkpp::VR::AT);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorATValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(CS)
+{
+    dcmtkpp::Element dcmtkpp_element({"ABC", "DEF"}, dcmtkpp::VR::CS);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorCSValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(DS)
+{
+    dcmtkpp::Element dcmtkpp_element({1.23, -4.56}, dcmtkpp::VR::DS);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorDSValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(FD)
+{
+    dcmtkpp::Element dcmtkpp_element({1.23, -4.56}, dcmtkpp::VR::FD);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorFDValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(FL)
+{
+    dcmtkpp::Element dcmtkpp_element({0.5, -0.125}, dcmtkpp::VR::FL);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorFLValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(IS)
+{
+    dcmtkpp::Element dcmtkpp_element({123, -456}, dcmtkpp::VR::IS);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorISValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(OB)
+{
+    dcmtkpp::Element dcmtkpp_element(
+        std::vector<uint8_t>({0x01, 0x02, 0x03, 0x04}),
+        dcmtkpp::VR::OB);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::EncapsulatedDocument, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(OF)
+{
+    dcmtkpp::Element dcmtkpp_element(
+        std::vector<uint8_t>({0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}),
+        dcmtkpp::VR::OF);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::VectorGridData, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(OW)
+{
+    dcmtkpp::Element dcmtkpp_element(
+        std::vector<uint8_t>({0x01, 0x02, 0x03, 0x04}),
+        dcmtkpp::VR::OW);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::RedPaletteColorLookupTableData, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(SL)
+{
+    dcmtkpp::Element dcmtkpp_element({12345678, -8765432}, dcmtkpp::VR::SL);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorSLValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(SQ)
+{
+    dcmtkpp::DataSet item1;
+    item1.add(
+        dcmtkpp::registry::SelectorSLValue,
+        dcmtkpp::Element({12345678, -8765432}, dcmtkpp::VR::SL));
+    dcmtkpp::DataSet item2;
+    item2.add(
+        dcmtkpp::registry::SelectorFDValue,
+        dcmtkpp::Element({1.23, -4.56}, dcmtkpp::VR::FD));
+
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::FrameExtractionSequence,
+        dcmtkpp::Element({item1, item2}, dcmtkpp::VR::SQ));
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(SS)
+{
+    dcmtkpp::Element dcmtkpp_element({1234, -5678}, dcmtkpp::VR::SS);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorSSValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(UI)
+{
+    dcmtkpp::Element dcmtkpp_element({"1.2", "3.4"}, dcmtkpp::VR::UI);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    // SelectorUIValue is not in current DCMTK
+    dcmtkpp_data_set.add(dcmtkpp::registry::SOPInstanceUID, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(UL)
+{
+    dcmtkpp::Element dcmtkpp_element({12345678, 8765432}, dcmtkpp::VR::UL);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorULValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(US)
+{
+    dcmtkpp::Element dcmtkpp_element({1234, 5678}, dcmtkpp::VR::US);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorUSValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+void do_file_test(
+    dcmtkpp::DataSet const & dcmtkpp_data_set, std::string transfer_syntax,
+    E_EncodingType item_encoding, E_GrpLenEncoding group_length_encoding)
+{
+    // Write input data set
+    auto const dcmtk_data_set = dynamic_cast<DcmDataset*>(dcmtkpp::convert(dcmtkpp_data_set));
+
+    DcmFileFormat file_format(dcmtk_data_set);
+    file_format.getMetaInfo()->putAndInsertString(
+        DCM_TransferSyntaxUID, transfer_syntax.c_str());
+    file_format.getMetaInfo()->putAndInsertString(
+        DCM_MediaStorageSOPClassUID,
+        dcmtkpp_data_set.as_string(dcmtkpp::registry::SOPClassUID)[0].c_str());
+    file_format.getMetaInfo()->putAndInsertString(
+        DCM_MediaStorageSOPInstanceUID,
+        dcmtkpp_data_set.as_string(dcmtkpp::registry::SOPInstanceUID)[0].c_str());
+
+    std::string data(1000000, '\0');
+    DcmOutputBufferStream dcmtk_stream(&data[0], data.size());
+
+    file_format.transferInit();
+    OFCondition const condition = file_format.write(
+        dcmtk_stream, DcmXfer(transfer_syntax.c_str()).getXfer(),
+        item_encoding, NULL, group_length_encoding);
+    BOOST_REQUIRE(condition == EC_Normal);
+    file_format.transferEnd();
+
+    // Store data in a stream
+    data = data.substr(0, dcmtk_stream.tell());
+    std::istringstream stream(data);
+
+    // Read output data set
+    dcmtkpp::DataSet meta_information, other_dcmtkpp_data_set;
+    std::tie(meta_information, other_dcmtkpp_data_set) = dcmtkpp::Reader::read_file(stream);
+
+    BOOST_REQUIRE(other_dcmtkpp_data_set == dcmtkpp_data_set);
+
+    BOOST_REQUIRE(
+        meta_information.as_string(dcmtkpp::registry::TransferSyntaxUID) ==
+        dcmtkpp::Value::Strings({transfer_syntax}));
+    BOOST_REQUIRE(
+        meta_information.as_string(dcmtkpp::registry::MediaStorageSOPClassUID) ==
+        other_dcmtkpp_data_set.as_string(dcmtkpp::registry::SOPClassUID));
+    BOOST_REQUIRE(
+        meta_information.as_string(dcmtkpp::registry::MediaStorageSOPInstanceUID) ==
+        other_dcmtkpp_data_set.as_string(dcmtkpp::registry::SOPInstanceUID));
+}
+
+void do_file_test(dcmtkpp::DataSet const & dcmtkpp_data_set)
+{
+    std::vector<std::string> const transfer_syntaxes =
+        {
+            dcmtkpp::registry::ImplicitVRLittleEndian,
+            dcmtkpp::registry::ExplicitVRLittleEndian,
+            dcmtkpp::registry::ExplicitVRBigEndian_Retired
+        };
+    std::vector<E_EncodingType> item_encodings =
+        { EET_ExplicitLength, EET_UndefinedLength };
+    std::vector<E_GrpLenEncoding> use_group_length_values =
+        { EGL_withoutGL, EGL_withGL };
+
+    for(auto const & transfer_syntax: transfer_syntaxes)
+    {
+        for(auto const & item_encoding: item_encodings)
+        {
+            for(auto const & use_group_length: use_group_length_values)
+            {
+                do_file_test(
+                    dcmtkpp_data_set, transfer_syntax,
+                    item_encoding, use_group_length);
+            }
+        }
+    }
+}
+
+BOOST_AUTO_TEST_CASE(File)
+{
+    dcmtkpp::DataSet item1;
+    item1.add(
+        dcmtkpp::registry::SelectorSLValue,
+        dcmtkpp::Element({12345678, -8765432}, dcmtkpp::VR::SL));
+    dcmtkpp::DataSet item2;
+    item2.add(
+        dcmtkpp::registry::SelectorFDValue,
+        dcmtkpp::Element({1.23, -4.56}, dcmtkpp::VR::FD));
+
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(
+        dcmtkpp::registry::SOPClassUID,
+        {dcmtkpp::registry::RawDataStorage}, dcmtkpp::VR::UI);
+    dcmtkpp_data_set.add(
+        dcmtkpp::registry::SOPInstanceUID,
+        {"1.2.3.4"}, dcmtkpp::VR::UI);
+    dcmtkpp_data_set.add(
+        dcmtkpp::registry::FrameExtractionSequence,
+        dcmtkpp::Element({item1, item2}, dcmtkpp::VR::SQ));
+
+    do_file_test(dcmtkpp_data_set);
+}
diff --git a/tests/code/SCU.cpp b/tests/code/SCU.cpp
index 58a1951..d21df99 100644
--- a/tests/code/SCU.cpp
+++ b/tests/code/SCU.cpp
@@ -2,6 +2,7 @@
 #include <boost/test/unit_test.hpp>
 
 #include "dcmtkpp/SCU.h"
+#include "dcmtkpp/registry.h"
 
 #include "../PeerFixtureBase.h"
 
@@ -10,8 +11,8 @@ struct Fixture: public PeerFixtureBase
     Fixture()
     : PeerFixtureBase(NET_REQUESTOR, 104, 10,
         {
-            { UID_VerificationSOPClass,
-                {UID_LittleEndianImplicitTransferSyntax}
+            { dcmtkpp::registry::VerificationSOPClass,
+                {dcmtkpp::registry::ImplicitVRLittleEndian}
             }
         })
     {
diff --git a/tests/code/StoreSCU.cpp b/tests/code/StoreSCU.cpp
index d1de26a..d1465ee 100644
--- a/tests/code/StoreSCU.cpp
+++ b/tests/code/StoreSCU.cpp
@@ -3,6 +3,7 @@
 
 #include "dcmtkpp/DataSet.h"
 #include "dcmtkpp/Exception.h"
+#include "dcmtkpp/registry.h"
 #include "dcmtkpp/StoreSCU.h"
 
 #include "../PeerFixtureBase.h"
@@ -16,8 +17,8 @@ struct Fixture: public PeerFixtureBase
     Fixture()
     : PeerFixtureBase(NET_REQUESTOR, 104, 10,
         {
-            { UID_RawDataStorage,
-                {UID_LittleEndianImplicitTransferSyntax}
+            { dcmtkpp::registry::RawDataStorage,
+                {dcmtkpp::registry::ImplicitVRLittleEndian}
             }
         })
     {
@@ -27,7 +28,7 @@ struct Fixture: public PeerFixtureBase
         this->dataset.add("PatientID", {"1234"});
         this->dataset.add("StudyInstanceUID", {"2.25.386726390606491051215227596277040710"});
         this->dataset.add("SeriesInstanceUID", {"2.25.235367796740370588607388995952651763168"});
-        this->dataset.add("SOPClassUID", {UID_RawDataStorage});
+        this->dataset.add("SOPClassUID", {dcmtkpp::registry::RawDataStorage});
         this->dataset.add("SOPInstanceUID", {"2.25.294312554735929033890522327215919068328"});
     }
 
@@ -43,11 +44,11 @@ bool Fixture::called = false;
 BOOST_AUTO_TEST_CASE(AffectedSOPClassUID)
 {
     dcmtkpp::DataSet dataset;
-    dataset.add("SOPClassUID", {UID_RawDataStorage});
+    dataset.add("SOPClassUID", {dcmtkpp::registry::RawDataStorage});
 
     dcmtkpp::StoreSCU scu;
     scu.set_affected_sop_class(dataset);
-    BOOST_CHECK_EQUAL(scu.get_affected_sop_class(), UID_RawDataStorage);
+    BOOST_CHECK_EQUAL(scu.get_affected_sop_class(), dcmtkpp::registry::RawDataStorage);
 }
 
 BOOST_AUTO_TEST_CASE(AffectedSOPClassUIDNoSOPClassUID)
diff --git a/tests/code/Writer.cpp b/tests/code/Writer.cpp
new file mode 100644
index 0000000..0c86f75
--- /dev/null
+++ b/tests/code/Writer.cpp
@@ -0,0 +1,327 @@
+#define BOOST_TEST_MODULE Writer
+#include <boost/test/unit_test.hpp>
+
+#include <endian.h>
+#include <sstream>
+
+#include <dcmtk/config/osconfig.h>
+#include <dcmtk/dcmdata/dctk.h>
+#include <dcmtk/dcmdata/dcistrmb.h>
+
+#include "dcmtkpp/conversion.h"
+#include "dcmtkpp/Element.h"
+#include "dcmtkpp/registry.h"
+#include "dcmtkpp/Writer.h"
+#include "dcmtkpp/VR.h"
+
+BOOST_AUTO_TEST_CASE(Constructor)
+{
+    std::ostringstream stream;
+    dcmtkpp::Writer const writer(stream, BIG_ENDIAN, true);
+    BOOST_REQUIRE(writer.byte_ordering == BIG_ENDIAN);
+    BOOST_REQUIRE(writer.explicit_vr == true);
+}
+
+BOOST_AUTO_TEST_CASE(ConstructorTransferSyntax)
+{
+    std::ostringstream stream;
+    dcmtkpp::Writer const writer(stream, dcmtkpp::registry::ExplicitVRBigEndian_Retired);
+    BOOST_REQUIRE(writer.byte_ordering == BIG_ENDIAN);
+    BOOST_REQUIRE(writer.explicit_vr == true);
+}
+
+void do_test(
+    dcmtkpp::DataSet const & dcmtkpp_data_set, std::string transfer_syntax,
+    dcmtkpp::Writer::ItemEncoding item_encoding, bool use_group_length)
+{
+    // Write input data set
+    std::stringstream stream;
+    dcmtkpp::Writer const writer(
+        stream, transfer_syntax, item_encoding, use_group_length);
+    writer.write_data_set(dcmtkpp_data_set);
+
+    // Store data in a DCMTK stream
+    std::string const data = stream.str();
+    DcmInputBufferStream dcmtk_stream;
+    dcmtk_stream.setBuffer(&data[0], data.size());
+
+    // Read output data set
+    DcmDataset dcmtk_data_set;
+    dcmtk_data_set.transferInit();
+    OFCondition const condition = dcmtk_data_set.read(
+        dcmtk_stream, DcmXfer(transfer_syntax.c_str()).getXfer());
+    BOOST_REQUIRE(condition == EC_Normal || condition == EC_StreamNotifyClient);
+    BOOST_REQUIRE_EQUAL(dcmtk_stream.avail(), 0);
+    dcmtk_data_set.transferEnd();
+
+    auto const other_dcmtkpp_dataset = dcmtkpp::convert(&dcmtk_data_set);
+    BOOST_REQUIRE(dcmtkpp_data_set == other_dcmtkpp_dataset);
+}
+
+void do_test(dcmtkpp::DataSet const & dcmtkpp_data_set)
+{
+    std::vector<std::string> const transfer_syntaxes =
+        {
+            dcmtkpp::registry::ImplicitVRLittleEndian,
+            dcmtkpp::registry::ExplicitVRLittleEndian,
+            dcmtkpp::registry::ExplicitVRBigEndian_Retired
+        };
+    std::vector<dcmtkpp::Writer::ItemEncoding> item_encodings =
+        {
+            dcmtkpp::Writer::ItemEncoding::ExplicitLength,
+            dcmtkpp::Writer::ItemEncoding::UndefinedLength
+        };
+    std::vector<bool> use_group_length_values = {/*true, */false};
+
+    for(auto const & transfer_syntax: transfer_syntaxes)
+    {
+        for(auto const & item_encoding: item_encodings)
+        {
+            for(auto const & use_group_length: use_group_length_values)
+            {
+                do_test(
+                    dcmtkpp_data_set, transfer_syntax,
+                    item_encoding, use_group_length);
+            }
+        }
+    }
+}
+
+BOOST_AUTO_TEST_CASE(CS)
+{
+    dcmtkpp::Element dcmtkpp_element({"ABC", "DEF"}, dcmtkpp::VR::CS);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorCSValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(DS)
+{
+    dcmtkpp::Element dcmtkpp_element({1.23, -4.56}, dcmtkpp::VR::DS);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorDSValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(FD)
+{
+    dcmtkpp::Element dcmtkpp_element({1.23, -4.56}, dcmtkpp::VR::FD);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorFDValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(FL)
+{
+    dcmtkpp::Element dcmtkpp_element({0.5, -0.125}, dcmtkpp::VR::FL);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorFLValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(IS)
+{
+    dcmtkpp::Element dcmtkpp_element({123, -456}, dcmtkpp::VR::IS);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorISValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(OB)
+{
+    dcmtkpp::Element dcmtkpp_element(
+        std::vector<uint8_t>({0x01, 0x02, 0x03, 0x04}),
+        dcmtkpp::VR::OB);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::EncapsulatedDocument, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(OF)
+{
+    dcmtkpp::Element dcmtkpp_element(
+        std::vector<uint8_t>({0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}),
+        dcmtkpp::VR::OF);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::VectorGridData, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(OW)
+{
+    dcmtkpp::Element dcmtkpp_element(
+        std::vector<uint8_t>({0x01, 0x02, 0x03, 0x04}),
+        dcmtkpp::VR::OW);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::RedPaletteColorLookupTableData, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(SL)
+{
+    dcmtkpp::Element dcmtkpp_element({12345678, -8765432}, dcmtkpp::VR::SL);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorSLValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(SQ)
+{
+    dcmtkpp::DataSet item1;
+    item1.add(
+        dcmtkpp::registry::SelectorSLValue,
+        dcmtkpp::Element({12345678, -8765432}, dcmtkpp::VR::SL));
+    dcmtkpp::DataSet item2;
+    item2.add(
+        dcmtkpp::registry::SelectorFDValue,
+        dcmtkpp::Element({1.23, -4.56}, dcmtkpp::VR::FD));
+
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::FrameExtractionSequence,
+        dcmtkpp::Element({item1, item2}, dcmtkpp::VR::SQ));
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(SS)
+{
+    dcmtkpp::Element dcmtkpp_element({1234, -5678}, dcmtkpp::VR::SS);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorSSValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(UI)
+{
+    dcmtkpp::Element dcmtkpp_element({"1.2", "3.4"}, dcmtkpp::VR::UI);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    // SelectorUIValue is not in current DCMTK
+    dcmtkpp_data_set.add(dcmtkpp::registry::SOPInstanceUID, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(UL)
+{
+    dcmtkpp::Element dcmtkpp_element({12345678, 8765432}, dcmtkpp::VR::UL);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorULValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+BOOST_AUTO_TEST_CASE(US)
+{
+    dcmtkpp::Element dcmtkpp_element({1234, 5678}, dcmtkpp::VR::US);
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(dcmtkpp::registry::SelectorUSValue, dcmtkpp_element);
+
+    do_test(dcmtkpp_data_set);
+}
+
+void do_file_test(
+    dcmtkpp::DataSet const & dcmtkpp_data_set, std::string transfer_syntax,
+    dcmtkpp::Writer::ItemEncoding item_encoding, bool use_group_length)
+{
+    // Write input data set
+    std::stringstream stream;
+
+    dcmtkpp::Writer::write_file(
+        dcmtkpp_data_set, stream, transfer_syntax,
+        item_encoding, use_group_length);
+
+    // Store data in a DCMTK stream
+    std::string const data = stream.str();
+    DcmInputBufferStream dcmtk_stream;
+    dcmtk_stream.setBuffer(&data[0], data.size());
+
+    // Read output data set
+    DcmFileFormat format;
+
+    format.transferInit();
+    OFCondition const condition = format.read(dcmtk_stream);
+    BOOST_REQUIRE(condition == EC_Normal || condition == EC_StreamNotifyClient);
+    BOOST_REQUIRE_EQUAL(dcmtk_stream.avail(), 0);
+    format.transferEnd();
+
+    DcmMetaInfo * dcmtk_meta_information = format.getMetaInfo();
+    auto const dcmtkpp_meta_information = dcmtkpp::convert(dcmtk_meta_information);
+    BOOST_REQUIRE(
+        dcmtkpp_meta_information.as_string(dcmtkpp::registry::TransferSyntaxUID) ==
+            dcmtkpp::Value::Strings({ transfer_syntax }));
+
+    DcmDataset * dcmtk_data_set = format.getDataset();
+    auto const other_dcmtkpp_dataset = dcmtkpp::convert(dcmtk_data_set);
+    BOOST_REQUIRE(dcmtkpp_data_set == other_dcmtkpp_dataset);
+
+    BOOST_REQUIRE(
+        dcmtkpp_meta_information.as_string(dcmtkpp::registry::MediaStorageSOPClassUID) ==
+            other_dcmtkpp_dataset.as_string(dcmtkpp::registry::SOPClassUID));
+    BOOST_REQUIRE(
+        dcmtkpp_meta_information.as_string(dcmtkpp::registry::MediaStorageSOPInstanceUID) ==
+            other_dcmtkpp_dataset.as_string(dcmtkpp::registry::SOPInstanceUID));
+}
+
+void do_file_test(dcmtkpp::DataSet const & dcmtkpp_data_set)
+{
+    std::vector<std::string> const transfer_syntaxes =
+        {
+            dcmtkpp::registry::ImplicitVRLittleEndian,
+            dcmtkpp::registry::ExplicitVRLittleEndian,
+            dcmtkpp::registry::ExplicitVRBigEndian_Retired
+        };
+    std::vector<dcmtkpp::Writer::ItemEncoding> item_encodings =
+        {
+            dcmtkpp::Writer::ItemEncoding::ExplicitLength,
+            dcmtkpp::Writer::ItemEncoding::UndefinedLength
+        };
+    std::vector<bool> use_group_length_values = {/*true, */false};
+
+    for(auto const & transfer_syntax: transfer_syntaxes)
+    {
+        for(auto const & item_encoding: item_encodings)
+        {
+            for(auto const & use_group_length: use_group_length_values)
+            {
+                do_file_test(
+                    dcmtkpp_data_set, transfer_syntax,
+                    item_encoding, use_group_length);
+            }
+        }
+    }
+}
+
+BOOST_AUTO_TEST_CASE(File)
+{
+    dcmtkpp::DataSet item1;
+    item1.add(
+        dcmtkpp::registry::SelectorSLValue,
+        dcmtkpp::Element({12345678, -8765432}, dcmtkpp::VR::SL));
+    dcmtkpp::DataSet item2;
+    item2.add(
+        dcmtkpp::registry::SelectorFDValue,
+        dcmtkpp::Element({1.23, -4.56}, dcmtkpp::VR::FD));
+
+    dcmtkpp::DataSet dcmtkpp_data_set;
+    dcmtkpp_data_set.add(
+        dcmtkpp::registry::SOPClassUID,
+        {dcmtkpp::registry::RawDataStorage}, dcmtkpp::VR::UI);
+    dcmtkpp_data_set.add(
+        dcmtkpp::registry::SOPInstanceUID,
+        {"1.2.3.4"}, dcmtkpp::VR::UI);
+    dcmtkpp_data_set.add(
+        dcmtkpp::registry::FrameExtractionSequence,
+        dcmtkpp::Element({item1, item2}, dcmtkpp::VR::SQ));
+
+    do_file_test(dcmtkpp_data_set);
+}
diff --git a/tests/code/conversion.cpp b/tests/code/conversion.cpp
index ce4c671..109c2cb 100644
--- a/tests/code/conversion.cpp
+++ b/tests/code/conversion.cpp
@@ -328,8 +328,7 @@ BOOST_AUTO_TEST_CASE(SQFromDcmtkpp)
     for(std::size_t i=0; i<source.size(); ++i)
     {
         dcmtkpp::DataSet const & source_item = source.as_data_set()[i];
-        DcmItem * item = dynamic_cast<DcmSequenceOfItems *>(destination)->getItem(i);
-        DcmDataset * destination_item = dynamic_cast<DcmDataset *>(item);
+        DcmItem * destination_item = dynamic_cast<DcmSequenceOfItems *>(destination)->getItem(i);
         BOOST_CHECK(source_item == dcmtkpp::convert(destination_item));
     }
 }
diff --git a/tests/code/registry.cpp b/tests/code/registry.cpp
new file mode 100644
index 0000000..12e7b25
--- /dev/null
+++ b/tests/code/registry.cpp
@@ -0,0 +1,28 @@
+#define BOOST_TEST_MODULE registry
+#include <boost/test/unit_test.hpp>
+
+#include "dcmtkpp/registry.h"
+#include "dcmtkpp/Tag.h"
+
+BOOST_AUTO_TEST_CASE(PublicDictionary)
+{
+    auto const iterator = dcmtkpp::registry::public_dictionary.find(
+        dcmtkpp::registry::PatientName);
+    BOOST_REQUIRE(iterator != dcmtkpp::registry::public_dictionary.end());
+    auto const & entry = iterator->second;
+    BOOST_REQUIRE_EQUAL(entry.name, "Patient's Name");
+    BOOST_REQUIRE_EQUAL(entry.keyword, "PatientName");
+    BOOST_REQUIRE_EQUAL(entry.vr, "PN");
+    BOOST_REQUIRE_EQUAL(entry.vm, "1");
+}
+
+BOOST_AUTO_TEST_CASE(UIDsDictionary)
+{
+    auto const iterator = dcmtkpp::registry::uids_dictionary.find(
+        dcmtkpp::registry::MRImageStorage);
+    BOOST_REQUIRE(iterator != dcmtkpp::registry::uids_dictionary.end());
+    auto const & entry = iterator->second;
+    BOOST_REQUIRE_EQUAL(entry.name, "MR Image Storage");
+    BOOST_REQUIRE_EQUAL(entry.keyword, "MRImageStorage");
+    BOOST_REQUIRE_EQUAL(entry.type, "SOP Class");
+}
diff --git a/tests/code/uid.cpp b/tests/code/uid.cpp
new file mode 100644
index 0000000..517b76d
--- /dev/null
+++ b/tests/code/uid.cpp
@@ -0,0 +1,14 @@
+#define BOOST_TEST_MODULE UID
+#include <boost/test/unit_test.hpp>
+
+#include "dcmtkpp/uid.h"
+
+BOOST_AUTO_TEST_CASE(generate)
+{
+    std::string const uid = dcmtkpp::generate_uid();
+    BOOST_REQUIRE_LE(uid.size(), 64);
+    for(auto const & c: uid)
+    {
+        BOOST_REQUIRE((c>='0' && c<='9') || c == '.');
+    }
+}
diff --git a/tests/code/xml_converter.cpp b/tests/code/xml_converter.cpp
new file mode 100644
index 0000000..259837a
--- /dev/null
+++ b/tests/code/xml_converter.cpp
@@ -0,0 +1,1114 @@
+#define BOOST_TEST_MODULE xml_converter
+#include <boost/test/unit_test.hpp>
+
+#include "dcmtkpp/xml_converter.h"
+
+#include <boost/property_tree/xml_parser.hpp>
+
+void check_attributes(boost::property_tree::ptree const & xml,
+                      std::string const & tag,
+                      std::string const & vr,
+                      std::string const & keyword)
+{
+    BOOST_REQUIRE_EQUAL(xml.size(), 3);
+
+    auto it_attr = xml.begin();
+
+    BOOST_CHECK_EQUAL((*it_attr).first, "vr");
+    BOOST_CHECK_EQUAL((*it_attr).second.get_value<std::string>(), vr);
+    BOOST_REQUIRE((*it_attr).second.empty());
+
+    ++it_attr;
+
+    BOOST_CHECK_EQUAL((*it_attr).first, "tag");
+    BOOST_CHECK_EQUAL((*it_attr).second.get_value<std::string>(), tag);
+    BOOST_REQUIRE((*it_attr).second.empty());
+
+    ++it_attr;
+
+    BOOST_CHECK_EQUAL((*it_attr).first, "keyword");
+    BOOST_REQUIRE((*it_attr).second.empty());
+    BOOST_CHECK_EQUAL((*it_attr).second.get_value<std::string>(), keyword);
+}
+
+template<typename TValueType>
+void check_value(boost::property_tree::ptree const & xml,
+                 TValueType const & values, int count)
+{
+    BOOST_REQUIRE_EQUAL(xml.size(), 1);
+    BOOST_CHECK_EQUAL(
+            xml.get_value<typename TValueType::value_type>(),
+            values[count]);
+
+    // Look for Attribut of Value XML tag
+    BOOST_CHECK_EQUAL(xml.front().first, "<xmlattr>");
+    BOOST_REQUIRE_EQUAL(xml.front().second.size(), 1);
+
+    auto it_attr = xml.front().second.begin();
+
+    BOOST_CHECK_EQUAL((*it_attr).first, "number");
+    BOOST_REQUIRE((*it_attr).second.empty());
+    BOOST_CHECK_EQUAL((*it_attr).second.get_value<int>(), count + 1);
+}
+
+template<typename TValueType>
+void check_response(boost::property_tree::ptree const & xml,
+                    std::string const & tag,
+                    std::string const & vr,
+                    std::string const & keyword,
+                    TValueType const & values)
+{
+    BOOST_REQUIRE_EQUAL(xml.size(), 1);
+    BOOST_CHECK_EQUAL(xml.front().first, "NativeDicomModel");
+
+    auto const native_dicom_model = xml.front().second;
+
+    BOOST_REQUIRE_EQUAL(native_dicom_model.size(), 1);
+    BOOST_CHECK_EQUAL(native_dicom_model.front().first, "DicomAttribute");
+    BOOST_REQUIRE_EQUAL(native_dicom_model.front().second.size(),
+                        values.size() + 1);
+
+    // Should contains <xmlattr>
+    BOOST_REQUIRE_EQUAL(
+                native_dicom_model.front().second.find("<xmlattr>")->first,
+                "<xmlattr>");
+
+    int count = 0;
+    for (auto it = native_dicom_model.front().second.begin();
+         it != native_dicom_model.front().second.end(); ++it)
+    {
+        if ((*it).first == "<xmlattr>")
+        {
+            check_attributes((*it).second, tag, vr, keyword);
+        }
+        else if ((*it).first == "Value")
+        {
+            BOOST_CHECK_EQUAL((*it).first, "Value");
+            check_value(it->second, values, count);
+            ++count;
+        }
+        else
+        {
+            BOOST_FAIL("Unexpected tag");
+        }
+    }
+
+    BOOST_REQUIRE_EQUAL(count, values.size());
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsXMLEmpty)
+{
+    dcmtkpp::DataSet data_set;
+    auto const xml = dcmtkpp::as_xml(data_set);
+
+    // Expected result:
+    // <NativeDicomModel />
+
+    BOOST_REQUIRE_EQUAL(xml.size(), 1);
+    BOOST_CHECK_EQUAL(xml.front().first, "NativeDicomModel");
+    BOOST_REQUIRE(xml.front().second.empty());
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsXMLIntegers)
+{
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00280010,
+        dcmtkpp::Element(dcmtkpp::Value::Integers({1, 2}), dcmtkpp::VR::US));
+    auto const xml = dcmtkpp::as_xml(data_set);
+
+    // Expected result:
+    // <NativeDicomModel>
+    //     <DicomAttribute vr="US" tag="00280010" keyword="Rows">
+    //         <Value number="1">1</Value>
+    //         <Value number="2">2</Value>
+    //     </DicomAttribute>
+    // </NativeDicomModel>
+
+    check_response(xml, "00280010", "US", "Rows",
+                   dcmtkpp::Value::Integers({1, 2}));
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsXMLReals)
+{
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00089459,
+        dcmtkpp::Element(dcmtkpp::Value::Reals({1.2, 3.4}), dcmtkpp::VR::FL));
+    auto const xml = dcmtkpp::as_xml(data_set);
+
+    // Expected result:
+    // <NativeDicomModel>
+    //     <DicomAttribute vr="FL" tag="00089459"
+    //                     keyword="RecommendedDisplayFrameRateInFloat">
+    //         <Value number="1">1.2</Value>
+    //         <Value number="2">3.4</Value>
+    //     </DicomAttribute>
+    // </NativeDicomModel>
+
+    check_response(xml, "00089459", "FL", "RecommendedDisplayFrameRateInFloat",
+                   dcmtkpp::Value::Reals({1.2, 3.4}));
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsXMLStrings)
+{
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00080060,
+        dcmtkpp::Element(
+            dcmtkpp::Value::Strings({"FOO", "BAR"}),
+            dcmtkpp::VR::CS));
+    auto const xml = dcmtkpp::as_xml(data_set);
+
+    // Expected result:
+    // <NativeDicomModel>
+    //     <DicomAttribute vr="CS" tag="00080060" keyword="Modality">
+    //         <Value number="1">FOO</Value>
+    //         <Value number="2">BAR</Value>
+    //     </DicomAttribute>
+    // </NativeDicomModel>
+
+    check_response(xml, "00080060", "CS", "Modality",
+                   dcmtkpp::Value::Strings({"FOO", "BAR"}));
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsXMLPersonName)
+{
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00100010,
+        dcmtkpp::Element(
+            dcmtkpp::Value::Strings({"Alpha^Betic=Ideo^Graphic=Pho^Netic",
+                                     "family^given^middle^prefix^suffix"}),
+            dcmtkpp::VR::PN));
+    auto const xml = dcmtkpp::as_xml(data_set);
+
+    // Expected result:
+    // <NativeDicomModel>
+    //     <DicomAttribute vr="PN" tag="00100010" keyword="PatientName">
+    //         <PersonName number="1">
+    //             <Alphabetic>
+    //                 <FamilyName>Alpha</FamilyName>
+    //                 <GivenName>Betic</GivenName>
+    //             </Alphabetic>
+    //             <Ideographic>
+    //                 <FamilyName>Ideo</FamilyName>
+    //                 <GivenName>Graphic</GivenName>
+    //             </Ideographic>
+    //             <Phonetic>
+    //                 <FamilyName>Pho</FamilyName>
+    //                 <GivenName>Netic</GivenName>
+    //             </Phonetic>
+    //         </PersonName>
+    //         <PersonName number="2">
+    //             <Alphabetic>
+    //                 <FamilyName>family</FamilyName>
+    //                 <GivenName>given</GivenName>
+    //                 <MiddleName>middle</MiddleName>
+    //                 <NamePrefix>prefix</NamePrefix>
+    //                 <NameSuffix>suffix</NameSuffix>
+    //             </Alphabetic>
+    //         </PersonName>
+    //     </DicomAttribute>
+    // </NativeDicomModel>
+
+    BOOST_REQUIRE_EQUAL(xml.size(), 1);
+    BOOST_CHECK_EQUAL(xml.front().first, "NativeDicomModel");
+
+    auto const native_dicom_model = xml.front().second;
+
+    BOOST_REQUIRE_EQUAL(native_dicom_model.size(), 1);
+    BOOST_CHECK_EQUAL(native_dicom_model.front().first, "DicomAttribute");
+    BOOST_REQUIRE_EQUAL(native_dicom_model.front().second.size(), 3);
+
+    // Should contains <xmlattr>
+    BOOST_REQUIRE_EQUAL(
+                native_dicom_model.front().second.find("<xmlattr>")->first,
+                "<xmlattr>");
+
+    std::vector<std::map<std::string,
+                         std::map<std::string, std::string> > > values;
+    std::map<std::string, std::map<std::string, std::string> > person_name1;
+    {
+    std::map<std::string, std::string> person_name_sub;
+    person_name_sub.insert(std::pair<std::string, std::string>("FamilyName",
+                                                               "Alpha"));
+    person_name_sub.insert(std::pair<std::string, std::string>("GivenName",
+                                                               "Betic"));
+    person_name1.insert(std::pair<std::string,
+                        std::map<std::string, std::string> >("Alphabetic",
+                                                             person_name_sub));
+    }
+    {
+    std::map<std::string, std::string> person_name_sub;
+    person_name_sub.insert(std::pair<std::string, std::string>("FamilyName",
+                                                               "Ideo"));
+    person_name_sub.insert(std::pair<std::string, std::string>("GivenName",
+                                                               "Graphic"));
+    person_name1.insert(std::pair<std::string,
+                        std::map<std::string, std::string> >("Ideographic",
+                                                             person_name_sub));
+    }
+    {
+    std::map<std::string, std::string> person_name_sub;
+    person_name_sub.insert(std::pair<std::string, std::string>("FamilyName",
+                                                               "Pho"));
+    person_name_sub.insert(std::pair<std::string, std::string>("GivenName",
+                                                               "Netic"));
+    person_name1.insert(std::pair<std::string,
+                        std::map<std::string, std::string> >("Phonetic",
+                                                             person_name_sub));
+    }
+    values.push_back(person_name1);
+    std::map<std::string, std::map<std::string, std::string> > person_name2;
+    {
+    std::map<std::string, std::string> person_name_sub;
+    person_name_sub.insert(std::pair<std::string, std::string>("FamilyName",
+                                                               "family"));
+    person_name_sub.insert(std::pair<std::string, std::string>("GivenName",
+                                                               "given"));
+    person_name_sub.insert(std::pair<std::string, std::string>("MiddleName",
+                                                               "middle"));
+    person_name_sub.insert(std::pair<std::string, std::string>("NamePrefix",
+                                                               "prefix"));
+    person_name_sub.insert(std::pair<std::string, std::string>("NameSuffix",
+                                                               "suffix"));
+    person_name2.insert(std::pair<std::string,
+                        std::map<std::string, std::string> >("Alphabetic",
+                                                             person_name_sub));
+    }
+    values.push_back(person_name2);
+
+    int count = 0;
+    for (auto it = native_dicom_model.front().second.begin();
+         it != native_dicom_model.front().second.end(); ++it)
+    {
+        if ((*it).first == "<xmlattr>")
+        {
+            // Look for Attribut of DicomAttribute XML tag
+            BOOST_CHECK_EQUAL((*it).first, "<xmlattr>");
+            check_attributes((*it).second, "00100010", "PN", "PatientName");
+        }
+        else if ((*it).first == "PersonName")
+        {
+            BOOST_REQUIRE_EQUAL((*it).second.size(),
+                                values[count].size() + 1); // + 1 for <xmlattr>
+
+            // Should contains <xmlattr>
+            BOOST_REQUIRE_EQUAL(
+                        (*it).second.find("<xmlattr>")->first, "<xmlattr>");
+
+            auto const fields = { "Alphabetic", "Ideographic", "Phonetic" };
+            for (auto it_pname = (*it).second.begin();
+                 it_pname != (*it).second.end(); ++it_pname)
+            {
+                if ((*it_pname).first == "<xmlattr>")
+                {
+                    BOOST_CHECK_EQUAL((*it_pname).first, "<xmlattr>");
+                    BOOST_REQUIRE_EQUAL((*it_pname).second.size(), 1);
+
+                    auto it_attr = (*it_pname).second.begin();
+
+                    BOOST_CHECK_EQUAL((*it_attr).first, "number");
+                    BOOST_REQUIRE((*it_attr).second.empty());
+                    BOOST_CHECK_EQUAL((*it_attr).second.get_value<int>(),
+                                      count + 1);
+                }
+                else if (std::find(fields.begin(),
+                                   fields.end(),
+                                   (*it_pname).first) != fields.end())
+                {
+                    BOOST_REQUIRE_EQUAL((*it_pname).second.size(),
+                                        values[count][(*it_pname).first].size());
+
+                    auto const fields_name = { "NameSuffix", "NamePrefix",
+                                               "MiddleName", "GivenName",
+                                               "FamilyName" };
+                    for (auto it_subpname = (*it_pname).second.begin();
+                         it_subpname != (*it_pname).second.end(); ++it_subpname)
+                    {
+                        if (std::find(fields_name.begin(),  fields_name.end(),
+                                      (*it_subpname).first) != fields_name.end())
+                        {
+                            BOOST_REQUIRE((*it_subpname).second.empty());
+                            BOOST_CHECK_EQUAL((*it_subpname).second.
+                                get_value<std::string>(),
+                                values[count][(*it_pname).first]
+                                    [(*it_subpname).first]);
+                        }
+                        else
+                        {
+                            std::stringstream error;
+                            error << "Unexpected tag: " << (*it_subpname).first;
+                            BOOST_FAIL(error.str());
+                        }
+                    }
+                }
+                else
+                {
+                    std::stringstream error;
+                    error << "Unexpected tag: " << (*it_pname).first;
+                    BOOST_FAIL(error.str());
+                }
+            }
+
+            ++count;
+        }
+        else
+        {
+            BOOST_FAIL("Unexpected tag");
+        }
+    }
+
+    BOOST_REQUIRE_EQUAL(count, values.size());
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsXMLDataSets)
+{
+    dcmtkpp::DataSet item1;
+    item1.add(0x00100020,
+        dcmtkpp::Element(dcmtkpp::Value::Strings({"valueLO1"}),
+                         dcmtkpp::VR::LO));
+    item1.add(0x00100022,
+        dcmtkpp::Element(dcmtkpp::Value::Strings({"valueCS1"}),
+                         dcmtkpp::VR::CS));
+    dcmtkpp::DataSet item2;
+    item2.add(0x00100022,
+        dcmtkpp::Element(dcmtkpp::Value::Strings({"valueCS2"}),
+                         dcmtkpp::VR::CS));
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00101002,
+        dcmtkpp::Element(
+            dcmtkpp::Value::DataSets({item1, item2}),
+            dcmtkpp::VR::SQ));
+
+    auto const xml = dcmtkpp::as_xml(data_set);
+
+    // Expected result:
+    // <NativeDicomModel>
+    //     <DicomAttribute vr="SQ" tag="00101002"
+    //                     keyword="OtherPatientIDsSequence">
+    //         <Item number="1">
+    //             <DicomAttribute vr="LO" tag="00100020" keyword="PatientID">
+    //                 <Value number="1">valueLO1</Value>
+    //             </DicomAttribute>
+    //             <DicomAttribute vr="CS" tag="00100022"
+    //                             keyword="TypeOfPatientID">
+    //                 <Value number="1">valueCS1</Value>
+    //             </DicomAttribute>
+    //         </Item>
+    //         <Item number="2">
+    //             <DicomAttribute vr="CS" tag="00100022"
+    //                             keyword="TypeOfPatientID">
+    //                 <Value number="1">valueCS2</Value>
+    //             </DicomAttribute>
+    //         </Item>
+    //     </DicomAttribute>
+    // </NativeDicomModel>
+
+    BOOST_REQUIRE_EQUAL(xml.size(), 1);
+    BOOST_CHECK_EQUAL(xml.front().first, "NativeDicomModel");
+
+    auto const native_dicom_model = xml.front().second;
+
+    BOOST_REQUIRE_EQUAL(native_dicom_model.size(), 1);
+    BOOST_CHECK_EQUAL(native_dicom_model.front().first, "DicomAttribute");
+    BOOST_REQUIRE_EQUAL(native_dicom_model.front().second.size(), 3);
+
+    dcmtkpp::Value::DataSets expected_values({item1, item2});
+
+    int count = 0;
+    for (auto it = native_dicom_model.front().second.begin();
+         it != native_dicom_model.front().second.end(); ++it)
+    {
+        if ((*it).first == "<xmlattr>")
+        {
+            // Look for Attribut of DicomAttribute XML tag
+            BOOST_CHECK_EQUAL((*it).first, "<xmlattr>");
+            check_attributes((*it).second, "00101002", "SQ",
+                             "OtherPatientIDsSequence");
+        }
+        else if ((*it).first == "Item")
+        {
+            auto current_value = expected_values[count].begin();
+
+            BOOST_REQUIRE_EQUAL((*it).second.size(),
+                                expected_values[count].size() + 1);
+
+            // Should contains <xmlattr>
+            BOOST_REQUIRE_EQUAL(
+                        (*it).second.find("<xmlattr>")->first, "<xmlattr>");
+
+            for (auto it_item = (*it).second.begin();
+                 it_item != (*it).second.end(); ++it_item)
+            {
+                if ((*it_item).first == "<xmlattr>")
+                {
+                    BOOST_REQUIRE_EQUAL((*it_item).second.size(), 1);
+
+                    auto it_attr = (*it_item).second.begin();
+
+                    BOOST_CHECK_EQUAL((*it_attr).first, "number");
+                    BOOST_REQUIRE((*it_attr).second.empty());
+                    BOOST_CHECK_EQUAL((*it_attr).second.get_value<int>(),
+                                      count + 1);
+                }
+                else if ((*it_item).first == "DicomAttribute")
+                {
+                    BOOST_REQUIRE_EQUAL((*it_item).second.size(), 2);
+
+                    // Should contains <xmlattr>
+                    BOOST_REQUIRE_EQUAL(
+                                (*it_item).second.find("<xmlattr>")->first,
+                                "<xmlattr>");
+
+                    for (auto it_dicomattr = (*it_item).second.begin();
+                         it_dicomattr != (*it_item).second.end(); ++it_dicomattr)
+                    {
+                        if ((*it_dicomattr).first == "<xmlattr>")
+                        {
+                            check_attributes((*it_dicomattr).second,
+                                             std::string(current_value->first),
+                                             dcmtkpp::as_string(
+                                                 current_value->second.vr),
+                                             current_value->first.get_name());
+                        }
+                        else if ((*it_dicomattr).first == "Value")
+                        {
+                            check_value((*it_dicomattr).second,
+                                        current_value->second.as_string(), 0);
+                        }
+                        else
+                        {
+                            std::stringstream error;
+                            error << "Unexpected tag: " << (*it_dicomattr).first;
+                            BOOST_FAIL(error.str());
+                        }
+                    }
+
+                    ++current_value;
+                }
+                else
+                {
+                    std::stringstream error;
+                    error << "Unexpected tag: " << (*it_item).first;
+                    BOOST_FAIL(error.str());
+                }
+            }
+
+            ++count;
+        }
+        else
+        {
+            std::stringstream error;
+            error << "Unexpected tag: " << (*it).first;
+            BOOST_FAIL(error.str());
+        }
+    }
+
+    BOOST_REQUIRE_EQUAL(count, expected_values.size());
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsXMLBinary)
+{
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00660023,
+        dcmtkpp::Element(
+            dcmtkpp::Value::Binary({0x1, 0x2, 0x3, 0x4, 0x5}),
+            dcmtkpp::VR::OW));
+
+    auto const xml = dcmtkpp::as_xml(data_set);
+
+    // Expected result:
+    // <NativeDicomModel>
+    //     <DicomAttribute vr="OW" tag="00660023"
+    //                     keyword="TrianglePointIndexList">
+    //         <InlineBinary>AQIDBAU=</InlineBinary>
+    //     </DicomAttribute>
+    // </NativeDicomModel>
+
+    BOOST_REQUIRE_EQUAL(xml.size(), 1);
+    BOOST_CHECK_EQUAL(xml.front().first, "NativeDicomModel");
+
+    auto const native_dicom_model = xml.front().second;
+
+    BOOST_REQUIRE_EQUAL(native_dicom_model.size(), 1);
+    BOOST_CHECK_EQUAL(native_dicom_model.front().first, "DicomAttribute");
+    BOOST_REQUIRE_EQUAL(native_dicom_model.front().second.size(), 2);
+
+    // Should contains <xmlattr>
+    BOOST_REQUIRE_EQUAL(
+                native_dicom_model.front().second.find("<xmlattr>")->first,
+                "<xmlattr>");
+
+    int count = 0;
+    for (auto it = native_dicom_model.front().second.begin();
+         it != native_dicom_model.front().second.end(); ++it)
+    {
+        if ((*it).first == "<xmlattr>")
+        {
+            check_attributes((*it).second, "00660023", "OW",
+                             "TrianglePointIndexList");
+        }
+        else if ((*it).first == "InlineBinary")
+        {
+            BOOST_REQUIRE((*it).second.empty());
+            BOOST_CHECK_EQUAL((*it).second.get_value<std::string>(), "AQIDBAU=");
+            ++count;
+        }
+        else
+        {
+            std::stringstream error;
+            error << "Unexpected tag: " << (*it).first;
+            BOOST_FAIL(error.str());
+        }
+    }
+
+    BOOST_REQUIRE_EQUAL(count, 1);
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsXMLEmptyElement)
+{
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00080060,
+        dcmtkpp::Element(
+            dcmtkpp::Value::Strings({}),
+            dcmtkpp::VR::CS));
+    auto const xml = dcmtkpp::as_xml(data_set);
+
+    // Expected result:
+    // <NativeDicomModel>
+    //     <DicomAttribute vr="CS" tag="00080060" keyword="Modality" />
+    // </NativeDicomModel>
+
+    check_response(xml, "00080060", "CS", "Modality",
+                   dcmtkpp::Value::Strings({}));
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsXMLInvalidPersonName)
+{
+    // Too many values separate by '^'
+    {
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00100010,
+        dcmtkpp::Element(
+            dcmtkpp::Value::Strings({"Alpha^Betic^Ideo^Graphic^Pho^Netic"}),
+            dcmtkpp::VR::PN));
+    BOOST_REQUIRE_THROW(dcmtkpp::as_xml(data_set), dcmtkpp::Exception);
+    }
+
+    // Too many values separate by '='
+    {
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00100010,
+        dcmtkpp::Element(
+            dcmtkpp::Value::Strings(
+                {"Alpha^Betic=Ideo^Graphic=Pho^Netic=Bad^Value"}),
+            dcmtkpp::VR::PN));
+    BOOST_REQUIRE_THROW(dcmtkpp::as_xml(data_set), dcmtkpp::Exception);
+    }
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsXMLInvalidDICOMTag)
+{
+    dcmtkpp::DataSet data_set;
+    data_set.add(0xbad00bad,
+        dcmtkpp::Element(
+            dcmtkpp::Value::Strings({"value"}),
+            dcmtkpp::VR::CS));
+    BOOST_REQUIRE_THROW(dcmtkpp::as_xml(data_set), dcmtkpp::Exception);
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsXMLBadVR)
+{
+    dcmtkpp::DataSet data_set;
+    data_set.add(0x00080060,
+        dcmtkpp::Element(
+            dcmtkpp::Value::Strings({"value"}),
+            dcmtkpp::VR::UNKNOWN));
+    BOOST_REQUIRE_THROW(dcmtkpp::as_xml(data_set), dcmtkpp::Exception);
+}
+
+template<typename TValueType>
+dcmtkpp::DataSet create_dataset(std::string const & tag, std::string const & vr,
+                                std::string const & keyword,
+                                TValueType const & values,
+                                std::vector<int> const & order)
+{
+    boost::property_tree::ptree dicomattribute;
+    dicomattribute.put("<xmlattr>.vr", vr);
+    dicomattribute.put("<xmlattr>.tag", tag);
+    dicomattribute.put("<xmlattr>.keyword", keyword);
+
+    for (unsigned int i = 0; i < values.size(); ++i)
+    {
+        boost::property_tree::ptree tag_value;
+        tag_value.put("<xmlattr>.number", order[i] + 1);
+        tag_value.put_value(values[order[i]]);
+        dicomattribute.add_child("Value", tag_value);
+    }
+
+    boost::property_tree::ptree nativedicommodel;
+    nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    return dcmtkpp::as_dataset(dataset_xml);
+}
+
+template<typename T>
+void create_dataset_error(std::string const & tag, std::string const & vr,
+                          std::string const & keyword,
+                          T const & value)
+{
+    boost::property_tree::ptree dicomattribute;
+    dicomattribute.put("<xmlattr>.vr", vr);
+    dicomattribute.put("<xmlattr>.tag", tag);
+    dicomattribute.put("<xmlattr>.keyword", keyword);
+
+    boost::property_tree::ptree tag_value;
+    tag_value.put("<xmlattr>.number", 1);
+    tag_value.put_value(value);
+    dicomattribute.add_child("BadNode", tag_value);
+
+    boost::property_tree::ptree nativedicommodel;
+    nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    // throw Exception
+    dcmtkpp::as_dataset(dataset_xml);
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsDataSetEmpty)
+{
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", boost::property_tree::ptree());
+
+    dcmtkpp::DataSet const data_set = dcmtkpp::as_dataset(dataset_xml);
+    BOOST_REQUIRE(data_set.empty());
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsDataSetIntegers)
+{
+    dcmtkpp::Value::Integers values({128, 256});
+
+    // Tag Value sorted by number and not sorted
+    std::vector<std::vector<int> > orders = {{0, 1}, {1, 0}};
+    for (auto order : orders)
+    {
+        auto const data_set = create_dataset("00280010", "US", "Rows",
+                                             values, order);
+        BOOST_REQUIRE_EQUAL(data_set.size(), 1);
+        BOOST_REQUIRE(data_set.has("00280010"));
+        BOOST_REQUIRE(data_set.get_vr("00280010") == dcmtkpp::VR::US);
+        BOOST_REQUIRE(data_set.is_int("00280010"));
+        BOOST_REQUIRE(data_set.as_int("00280010") == values);
+    }
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsDataSetReals)
+{
+    dcmtkpp::Value::Reals values({1.2, 3.4});
+
+    // Tag Value sorted by number and not sorted
+    std::vector<std::vector<int> > orders = {{0, 1}, {1, 0}};
+    for (auto order : orders)
+    {
+        auto const data_set = create_dataset(
+                    "00089459", "FL", "RecommendedDisplayFrameRateInFloat",
+                    values, order);
+        BOOST_REQUIRE_EQUAL(data_set.size(), 1);
+        BOOST_REQUIRE(data_set.has("00089459"));
+        BOOST_REQUIRE(data_set.get_vr("00089459") == dcmtkpp::VR::FL);
+        BOOST_REQUIRE(data_set.is_real("00089459"));
+        BOOST_REQUIRE(data_set.as_real("00089459") == values);
+    }
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsDataSetStrings)
+{
+    dcmtkpp::Value::Strings values({"FOO", "BAR"});
+
+    // Tag Value sorted by number and not sorted
+    std::vector<std::vector<int> > orders = {{0, 1}, {1, 0}};
+    for (auto order : orders)
+    {
+        auto const data_set = create_dataset("00080060", "CS", "Modality",
+                                             values, order);
+        BOOST_REQUIRE_EQUAL(data_set.size(), 1);
+        BOOST_REQUIRE(data_set.has("00080060"));
+        BOOST_REQUIRE(data_set.get_vr("00080060") == dcmtkpp::VR::CS);
+        BOOST_REQUIRE(data_set.is_string("00080060"));
+        BOOST_REQUIRE(data_set.as_string("00080060") == values);
+    }
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsDataSetPersonName)
+{
+    std::vector<std::map<std::string,
+            std::map<std::string, std::string> > > values;
+
+    std::map<std::string, std::string> name;
+    name.insert(std::pair<std::string, std::string>("FamilyName", "family"));
+    name.insert(std::pair<std::string, std::string>("GivenName", "given"));
+    name.insert(std::pair<std::string, std::string>("MiddleName", "middle"));
+    name.insert(std::pair<std::string, std::string>("NamePrefix", "prefix"));
+    name.insert(std::pair<std::string, std::string>("NameSuffix", "suffix"));
+
+    std::map<std::string, std::map<std::string, std::string> > person_name1;
+    person_name1.insert(std::pair<std::string,
+                        std::map<std::string, std::string> >("Alphabetic",
+                                                             name));
+
+    values.push_back(person_name1);
+
+    std::map<std::string, std::string> name2;
+    name2.insert(std::pair<std::string, std::string>("FamilyName", "family"));
+
+    std::map<std::string, std::map<std::string, std::string> > person_name2;
+    person_name2.insert(std::pair<std::string,
+                        std::map<std::string, std::string> >("Alphabetic",
+                                                             name2));
+    person_name2.insert(std::pair<std::string,
+                        std::map<std::string, std::string> >("Ideographic",
+                                                             name2));
+    person_name2.insert(std::pair<std::string,
+                        std::map<std::string, std::string> >("Phonetic", name2));
+
+    values.push_back(person_name2);
+
+    std::vector<std::vector<int> > orders = {{0, 1}, {1, 0}};
+    for (auto order : orders)
+    {
+        boost::property_tree::ptree dicomattribute;
+        dicomattribute.put("<xmlattr>.vr", "PN");
+        dicomattribute.put("<xmlattr>.tag", "00100010");
+        dicomattribute.put("<xmlattr>.keyword", "PatientName");
+
+        for (int number : order)
+        {
+            boost::property_tree::ptree tag_value;
+            tag_value.put("<xmlattr>.number", number + 1);
+
+            for (auto it = values[number].begin();
+                 it != values[number].end(); ++it)
+            {
+                boost::property_tree::ptree tag_pname;
+                for (auto it_name = it->second.begin();
+                     it_name != it->second.end(); ++it_name)
+                {
+                    boost::property_tree::ptree tag_name;
+                    tag_name.put_value(it_name->second);
+                    tag_pname.add_child(it_name->first, tag_name);
+                }
+
+                tag_value.add_child(it->first, tag_pname);
+            }
+
+            dicomattribute.add_child("PersonName", tag_value);
+        }
+
+        boost::property_tree::ptree nativedicommodel;
+        nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+        boost::property_tree::ptree dataset_xml;
+        dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+        dcmtkpp::DataSet const data_set = dcmtkpp::as_dataset(dataset_xml);
+        BOOST_REQUIRE_EQUAL(data_set.size(), 1);
+        BOOST_REQUIRE(data_set.has("00100010"));
+        BOOST_REQUIRE(data_set.get_vr("00100010") == dcmtkpp::VR::PN);
+        BOOST_REQUIRE(data_set.is_string("00100010"));
+        BOOST_REQUIRE(data_set.as_string("00100010") == dcmtkpp::Value::Strings(
+            {"family^given^middle^prefix^suffix", "family=family=family"}));
+    }
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsDataSetDataSets)
+{
+    dcmtkpp::DataSet item1;
+    item1.add(0x00100020,
+        dcmtkpp::Element(dcmtkpp::Value::Strings({"FOO"}), dcmtkpp::VR::LO));
+    item1.add(0x00100022,
+        dcmtkpp::Element(dcmtkpp::Value::Strings({"BAR"}), dcmtkpp::VR::CS));
+    dcmtkpp::DataSet item2;
+    item2.add(0x00100020,
+        dcmtkpp::Element(dcmtkpp::Value::Strings({"OTHER"}), dcmtkpp::VR::LO));
+
+    dcmtkpp::Value::DataSets expected_result({item1, item2});
+
+    std::vector<std::vector<int> > orders = {{0, 1}, {1, 0}};
+    for (auto order : orders)
+    {
+        boost::property_tree::ptree dicomattribute;
+        dicomattribute.put("<xmlattr>.vr", "SQ");
+        dicomattribute.put("<xmlattr>.tag", "00101002");
+        dicomattribute.put("<xmlattr>.keyword", "OtherPatientIDsSequence");
+
+        for (int number : order)
+        {
+            boost::property_tree::ptree tag_value;
+            tag_value.put("<xmlattr>.number", number + 1);
+
+            for (auto it = expected_result[number].begin();
+                 it != expected_result[number].end(); ++it)
+            {
+                boost::property_tree::ptree subdicomattribute;
+                subdicomattribute.put("<xmlattr>.vr",
+                                      dcmtkpp::as_string(it->second.vr));
+                subdicomattribute.put("<xmlattr>.tag", std::string(it->first));
+                subdicomattribute.put("<xmlattr>.keyword", it->first.get_name());
+
+                for (auto value : it->second.as_string())
+                {
+                    boost::property_tree::ptree subtag_value;
+                    subtag_value.put("<xmlattr>.number", 1);
+                    subtag_value.put_value(value);
+                    subdicomattribute.add_child("Value", subtag_value);
+                }
+
+                boost::property_tree::ptree nativedicommodel;
+                tag_value.add_child("DicomAttribute", subdicomattribute);
+            }
+
+            dicomattribute.add_child("Item", tag_value);
+        }
+
+        boost::property_tree::ptree nativedicommodel;
+        nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+        boost::property_tree::ptree dataset_xml;
+        dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+        std::stringstream xmldataset;
+        boost::property_tree::xml_writer_settings<char> settings(' ', 4);
+        boost::property_tree::write_xml(xmldataset, dataset_xml, settings);
+
+        std::cout << xmldataset.str() << std::endl;
+        dcmtkpp::DataSet const data_set = dcmtkpp::as_dataset(dataset_xml);
+        BOOST_REQUIRE_EQUAL(data_set.size(), 1);
+        BOOST_REQUIRE(data_set.has("00101002"));
+        BOOST_REQUIRE(data_set.get_vr("00101002") == dcmtkpp::VR::SQ);
+        BOOST_REQUIRE(data_set.is_data_set("00101002"));
+
+        BOOST_REQUIRE(data_set.as_data_set("00101002") == expected_result);
+    }
+}
+
+/******************************* TEST Nominal **********************************/
+BOOST_AUTO_TEST_CASE(AsDataSetBinary)
+{
+    boost::property_tree::ptree dicomattribute;
+    dicomattribute.put("<xmlattr>.vr", "OW");
+    dicomattribute.put("<xmlattr>.tag", "00660023");
+    dicomattribute.put("<xmlattr>.keyword", "TrianglePointIndexList");
+    {
+    boost::property_tree::ptree tag_value;
+    tag_value.put_value("AQIDBAU=");
+    dicomattribute.add_child("InlineBinary", tag_value);
+    }
+
+    boost::property_tree::ptree nativedicommodel;
+    nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    dcmtkpp::DataSet const data_set = dcmtkpp::as_dataset(dataset_xml);
+    BOOST_REQUIRE_EQUAL(data_set.size(), 1);
+    BOOST_REQUIRE(data_set.has("00660023"));
+    BOOST_REQUIRE(data_set.get_vr("00660023") == dcmtkpp::VR::OW);
+    BOOST_REQUIRE(data_set.is_binary("00660023"));
+    BOOST_REQUIRE(data_set.as_binary("00660023") == dcmtkpp::Value::Binary(
+        {0x1, 0x2, 0x3, 0x4, 0x5}));
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsDataSetMissingRootNode)
+{
+    BOOST_REQUIRE_THROW(dcmtkpp::as_dataset(boost::property_tree::ptree()),
+                        dcmtkpp::Exception);
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsDataSetBadDICOMNode)
+{
+    boost::property_tree::ptree nativedicommodel;
+    nativedicommodel.add_child("BadValue", boost::property_tree::ptree());
+
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    BOOST_REQUIRE_THROW(dcmtkpp::as_dataset(dataset_xml), dcmtkpp::Exception);
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsDataSetBadDicomAttributeSubNode)
+{
+    // String value
+    BOOST_REQUIRE_THROW(create_dataset_error("00080060", "CS",
+                                             "Modality", "FOO"),
+                        dcmtkpp::Exception);
+
+    { // Person Name
+    boost::property_tree::ptree dicomattribute;
+    dicomattribute.put("<xmlattr>.vr", "PN");
+    dicomattribute.put("<xmlattr>.tag", "00100010");
+    dicomattribute.put("<xmlattr>.keyword", "PatientName");
+
+    boost::property_tree::ptree tag_value;
+    tag_value.put("<xmlattr>.number", 1);
+    boost::property_tree::ptree tag_pname;
+    boost::property_tree::ptree tag_family;
+    tag_family.put_value("family");
+    tag_pname.add_child("FamilyName", tag_family);
+    tag_value.add_child("Alphabetic", tag_pname);
+    dicomattribute.add_child("BadNode", tag_value);
+
+    boost::property_tree::ptree nativedicommodel;
+    nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    BOOST_REQUIRE_THROW(dcmtkpp::as_dataset(dataset_xml), dcmtkpp::Exception);
+    }
+
+    // Real value
+    BOOST_REQUIRE_THROW(create_dataset_error(
+                            "00089459", "FL",
+                            "RecommendedDisplayFrameRateInFloat", 1.2),
+                        dcmtkpp::Exception);
+
+    // Integer value
+    BOOST_REQUIRE_THROW(create_dataset_error("00280010", "US", "Rows", 1),
+                        dcmtkpp::Exception);
+
+    { // Sequence
+    boost::property_tree::ptree dicomattribute;
+    dicomattribute.put("<xmlattr>.vr", "SQ");
+    dicomattribute.put("<xmlattr>.tag", "00101002");
+    dicomattribute.put("<xmlattr>.keyword", "OtherPatientIDsSequence");
+
+    boost::property_tree::ptree tag_value;
+    tag_value.put("<xmlattr>.number", 1);
+    dicomattribute.add_child("BadNode", tag_value);
+
+    boost::property_tree::ptree nativedicommodel;
+    nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    BOOST_REQUIRE_THROW(dcmtkpp::as_dataset(dataset_xml), dcmtkpp::Exception);
+    }
+
+    // Binary
+    BOOST_REQUIRE_THROW(create_dataset_error(
+                            "00660023", "OW",
+                            "TrianglePointIndexList", "AQIDBAU="),
+                        dcmtkpp::Exception);
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsDataSetUnknownVR)
+{
+    BOOST_REQUIRE_THROW(create_dataset_error("00080060", "UR",
+                                             "Modality", "FOO"),
+                        dcmtkpp::Exception);
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsDataSetBadPersonNameSubNode)
+{
+    boost::property_tree::ptree dicomattribute;
+    dicomattribute.put("<xmlattr>.vr", "PN");
+    dicomattribute.put("<xmlattr>.tag", "00100010");
+    dicomattribute.put("<xmlattr>.keyword", "PatientName");
+
+    boost::property_tree::ptree tag_value;
+    tag_value.put("<xmlattr>.number", 1);
+    boost::property_tree::ptree tag_pname;
+    boost::property_tree::ptree tag_family;
+    tag_family.put_value("family");
+    tag_pname.add_child("FamilyName", tag_family);
+    tag_value.add_child("BadNode", tag_pname);
+    dicomattribute.add_child("PersonName", tag_value);
+
+    boost::property_tree::ptree nativedicommodel;
+    nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    BOOST_REQUIRE_THROW(dcmtkpp::as_dataset(dataset_xml), dcmtkpp::Exception);
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsDataSetBadAlphabeticSubNode)
+{
+    boost::property_tree::ptree dicomattribute;
+    dicomattribute.put("<xmlattr>.vr", "PN");
+    dicomattribute.put("<xmlattr>.tag", "00100010");
+    dicomattribute.put("<xmlattr>.keyword", "PatientName");
+
+    boost::property_tree::ptree tag_value;
+    tag_value.put("<xmlattr>.number", 1);
+    boost::property_tree::ptree tag_pname;
+    boost::property_tree::ptree tag_family;
+    tag_family.put_value("family");
+    tag_pname.add_child("BadNode", tag_family);
+    tag_value.add_child("Alphabetic", tag_pname);
+    dicomattribute.add_child("PersonName", tag_value);
+
+    boost::property_tree::ptree nativedicommodel;
+    nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    BOOST_REQUIRE_THROW(dcmtkpp::as_dataset(dataset_xml), dcmtkpp::Exception);
+}
+
+/******************************* TEST Error ************************************/
+BOOST_AUTO_TEST_CASE(AsDataSetTooManyInlineBinaryNode)
+{
+    boost::property_tree::ptree dicomattribute;
+    dicomattribute.put("<xmlattr>.vr", "OW");
+    dicomattribute.put("<xmlattr>.tag", "00660023");
+    dicomattribute.put("<xmlattr>.keyword", "TrianglePointIndexList");
+    {
+    boost::property_tree::ptree tag_value;
+    tag_value.put_value("AQIDBAU=");
+    dicomattribute.add_child("InlineBinary", tag_value);
+    }
+    {
+    boost::property_tree::ptree tag_value;
+    tag_value.put_value("AQIDBAU=");
+    dicomattribute.add_child("InlineBinary", tag_value);
+    }
+
+    boost::property_tree::ptree nativedicommodel;
+    nativedicommodel.add_child("DicomAttribute", dicomattribute);
+
+    boost::property_tree::ptree dataset_xml;
+    dataset_xml.add_child("NativeDicomModel", nativedicommodel);
+
+    BOOST_REQUIRE_THROW(dcmtkpp::as_dataset(dataset_xml), dcmtkpp::Exception);
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/dcmtkpp.git



More information about the debian-med-commit mailing list