X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDictEntry.h;h=24720c9369e9151fe7a1334cd27c837bd2f51c3e;hb=c1a305b54c1a9dd1bfe2173940ba84ccd1b4bb27;hp=d6766fb971112a0f364afb71dbebb7d164c05eff;hpb=12a274bc7f2ed75439e0451bb5e9ff2b612e8aa2;p=gdcm.git diff --git a/src/gdcmDictEntry.h b/src/gdcmDictEntry.h index d6766fb9..24720c93 100644 --- a/src/gdcmDictEntry.h +++ b/src/gdcmDictEntry.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDictEntry.h,v $ Language: C++ - Date: $Date: 2005/10/21 07:38:00 $ - Version: $Revision: 1.40 $ + Date: $Date: 2007/09/17 12:16:02 $ + Version: $Revision: 1.47 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -16,14 +16,18 @@ =========================================================================*/ -#ifndef GDCMDICTENTRY_H -#define GDCMDICTENTRY_H +#ifndef _GDCMDICTENTRY_H_ +#define _GDCMDICTENTRY_H_ -#include "gdcmDicomEntry.h" +#include "gdcmRefCounter.h" +#include "gdcmTagKey.h" +#include "gdcmVRKey.h" -namespace gdcm +namespace GDCM_NAME_SPACE { //----------------------------------------------------------------------------- +class VRKey; +class TagKey; /** * \brief * the DictEntry in an element contained by the Dict. @@ -32,13 +36,12 @@ namespace gdcm * i.e. the Group number * the Element number * - the VR (Value Representation) - * - the VM (Value Multplicity) + * - the VM (Value Multiplicity) * - the corresponding name in english */ -class GDCM_EXPORT DictEntry : public DicomEntry +class GDCM_EXPORT DictEntry : public RefCounter { -public: - gdcmTypeMacro(DictEntry) + gdcmTypeMacro(DictEntry); public: static DictEntry *New(uint16_t group, uint16_t elem, @@ -49,13 +52,35 @@ public: // Print void Print(std::ostream &os = std::cout, std::string const &indent = ""); -// Content of DictEntry - virtual void SetVR(VRKey const &vr); - virtual void SetVM(TagName const &vm); + /// \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); + /// \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; } @@ -71,11 +96,22 @@ protected: TagName const &vm = GDCM_UNKNOWN, TagName const &name = GDCM_UNKNOWN); + ~DictEntry(); + private: - /// \brief Value Multiplicity (e.g. "1", "1-n", "6") + /// 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; - /// e.g. "Patient's Name" + /// \brief English name of the entry (e.g. "Patient's Name") TagName Name; }; } // end namespace gdcm