/*========================================================================= Program: gdcm Module: $RCSfile: gdcmVR.h,v $ Language: C++ Date: $Date: 2005/10/18 08:35:51 $ Version: $Revision: 1.20 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef GDCMVR_H #define GDCMVR_H #include "gdcmCommon.h" #include #include #include namespace gdcm { //----------------------------------------------------------------------------- typedef std::string VRKey; typedef std::string VRAtr; /// Value Representation Hash Table typedef std::map 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); private: VRHT vr; }; } // end namespace gdcm //----------------------------------------------------------------------------- #endif