+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: gdcmDicomEntry.h,v $
+ Language: C++
+ Date: $Date: 2005/10/19 13:17:05 $
+ Version: $Revision: 1.1 $
+
+ 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 GDCMDICOMENTRY_H
+#define GDCMDICOMENTRY_H
+
+#include "gdcmCommon.h"
+#include "gdcmBase.h"
+#include "gdcmVRKey.h"
+#include "gdcmTagKey.h"
+
+namespace gdcm
+{
+//-----------------------------------------------------------------------------
+/**
+ * \brief
+ * the DicomEntry in an element contained by the Dict.
+ * It contains :
+ * - the key referenced by the DICOM norm or the constructor (for private keys)
+ * i.e. the Group number
+ * the Element number
+ * - the VR (Value Representation)
+ * - the VM (Value Multplicity)
+ * - the corresponding name in english
+ */
+class GDCM_EXPORT DicomEntry : public Base
+{
+public:
+ DicomEntry(const uint16_t &group,const uint16_t &elt,
+ const VRKey &vr = GDCM_VRUNKNOWN);
+ ~DicomEntry();
+
+// Print
+ void Print(std::ostream &os = std::cout, std::string const &indent = "");
+
+ /// \brief Returns the Dicom Group Number
+ /// @return the Dicom Group Number
+ const uint16_t &GetGroup() const { return Tag[0]; }
+
+ /// \brief Returns the Dicom Element Number
+ /// @return the Dicom Element Number
+ const uint16_t &GetElement() const { return Tag[1]; }
+
+ /// \brief Set the Dicom Value Representation
+ /// \param vr the Dicom Value Representation
+ virtual void SetVR(VRKey const &vr) { VR = vr; }
+ /// \brief Returns the Dicom Value Representation
+ /// @return the Dicom Value Representation
+ const VRKey &GetVR() const { return VR; }
+ /// \brief tells if the V(alue) R(epresentation) is known (?!)
+ /// @return
+ bool IsVRUnknown() const { return VR == GDCM_VRUNKNOWN; }
+
+ const TagKey &GetKey() const { return Tag; }
+
+// Key creation
+ static TagKey TranslateToKey(uint16_t group, uint16_t elem);
+
+private:
+ /// Dicom \ref TagKey. Contains DicomGroup number and DicomElement number
+ TagKey Tag;
+
+ /// \brief Value Representation i.e. some clue about the nature
+ /// of the data represented e.g.
+ /// "FD" short for "Floating Point Double"(see \ref VR)
+ /// "PN" short for "Person Name"
+ VRKey VR;
+};
+} // end namespace gdcm
+//-----------------------------------------------------------------------------
+#endif