+/// Value Representation Hash Table
+typedef std::map<VRKey, VRAtr> VRHT;
+
+//-----------------------------------------------------------------------------
+/**
+ * \brief Container for dicom Value Representation Hash Table
+ * \note This is a singleton
+ */
+class GDCM_EXPORT VR
+{
+public:
+ VR(void);
+ ~VR();
+
+ void Print(std::ostream &os = std::cout);
+
+ /// \brief Get the count for an element
+ int Count(VRKey const &key) { return vr.count(key); };
+
+ bool IsVROfBinaryRepresentable(VRKey const &tested);
+ bool IsVROfStringRepresentable(VRKey const &tested);
+
+ /// \brief Simple predicate that checks whether the given argument
+ /// corresponds to the Value Representation of a \ref SeqEntry
+ bool IsVROfSequence(VRKey const &tested) { return tested == "SQ"; }
+
+ bool IsValidVR(VRKey const &key) { return vr.find(key) != vr.end(); }
+
+ unsigned short GetAtomicElementLength(VRKey const &vr);