+// Key creation
+ static TagKey TranslateToKey(uint16_t group, uint16_t elem);
+
+ /// \brief returns the VM field of the current DictEntry
+ /// @return The 'Value Multiplicity' field
+ const TagName &GetVM() const { return VM; }
+ /// \brief Set the VM field of the current DictEntry
+ /// \param vm the'Value Multiplicity'
+ virtual void SetVM(TagName const &vm) { VM = vm; }
+ /// \brief tells if the V(alue) M(ultiplicity) is known (?!)
+ /// @return
+ bool IsVMUnknown() const { return VM == GDCM_UNKNOWN; }
+
+ /// \brief Returns the Dicom Name of the current DictEntry
+ /// e.g. "Patient Name" for Dicom Tag (0x0010, 0x0010)
+ /// @return the Dicom Name
+ const TagName &GetName() const { return Name; }
+
+protected:
+ DictEntry(uint16_t group, uint16_t elem,
+ VRKey const &vr = GDCM_VRUNKNOWN,
+ TagName const &vm = GDCM_UNKNOWN,
+ TagName const &name = GDCM_UNKNOWN);
+
+ ~DictEntry();
+
+private:
+ /// Dicom TagKey. Contains Dicom Group number and Dicom Element 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 VR)
+ /// - "PN" short for "Person Name"
+ VRKey VR;
+
+ /// \brief Value Multiplicity (e.g. "1", "1-n", "2-n", "6")
+ TagName VM;
+
+ /// \brief English name of the entry (e.g. "Patient's Name")
+ TagName Name;
+};
+} // end namespace gdcm
+//-----------------------------------------------------------------------------