]> Creatis software - gdcm.git/blobdiff - src/gdcmDictEntry.h
Fix mistypings
[gdcm.git] / src / gdcmDictEntry.h
index e2cecb8fc17098b7ee3bd3348a1f768fea65d21e..24720c9369e9151fe7a1334cd27c837bd2f51c3e 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDictEntry.h,v $
   Language:  C++
-  Date:      $Date: 2005/11/05 13:24:39 $
-  Version:   $Revision: 1.43 $
+  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
                                                                                 
 =========================================================================*/
 
-#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.
@@ -35,7 +39,7 @@ namespace gdcm
  *  - the VM (Value Multiplicity)
  *  - the corresponding name in english
  */
-class GDCM_EXPORT DictEntry : public DicomEntry
+class GDCM_EXPORT DictEntry : public RefCounter
 {
    gdcmTypeMacro(DictEntry);
 
@@ -48,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; }
@@ -70,7 +96,18 @@ protected:
              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;