]> Creatis software - gdcm.git/blobdiff - src/gdcmDictEntry.h
* Amelioration of error messages
[gdcm.git] / src / gdcmDictEntry.h
index 89a85c0c704cff8a5490dc9b5d85eb1e90f833cf..2b651f2b6dfc41a781c9caaa97e16e8f2777b56c 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDictEntry.h,v $
   Language:  C++
-  Date:      $Date: 2005/01/13 16:35:37 $
-  Version:   $Revision: 1.29 $
+  Date:      $Date: 2005/10/18 12:58:27 $
+  Version:   $Revision: 1.37 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 #define GDCMDICTENTRY_H
 
 #include "gdcmBase.h"
+#include "gdcmVRKey.h"
 
 namespace gdcm 
 {
-
 //-----------------------------------------------------------------------------
 /**
- * \ingroup DictEntry
  * \brief
  * the DictEntry in an element contained by the Dict.
  * It contains :
@@ -41,45 +40,42 @@ class GDCM_EXPORT DictEntry : public Base
 {
 public:
    DictEntry(uint16_t group, 
-             uint16_t element,
-             TagName const &vr     = GDCM_UNKNOWN,
+             uint16_t elem,
+             VRKey const &vr       = GDCM_VRUNKNOWN,
              TagName const &vm     = GDCM_UNKNOWN,
              TagName const &name   = GDCM_UNKNOWN);
 
 // Print
-   void Print(std::ostream &os = std::cout);
-
-// Key creation
-   static TagKey TranslateToKey(uint16_t group, uint16_t element);
+   void Print(std::ostream &os = std::cout, std::string const &indent = "");
 
 // Content of DictEntry
-   void SetVR(TagName const &vr);
+   void SetVR(VRKey const &vr);
    void SetVM(TagName const &vm);
 
    /// \brief tells if the V(alue) R(epresentation) is known (?!)
    /// @return 
-   bool IsVRUnknown() { return VR == GDCM_UNKNOWN; }
+   bool IsVRUnknown() const { return VR == GDCM_VRUNKNOWN; }
 
    /// \brief tells if the V(alue) M(ultiplicity) is known (?!)
    /// @return 
-   bool IsVMUnknown() { return VM == GDCM_UNKNOWN; }
+   bool IsVMUnknown() const { return VM == GDCM_UNKNOWN; }
 
    /// \brief  Returns the Dicom Group Number of the current DictEntry
    /// @return the Dicom Group Number
-   uint16_t GetGroup() { return Group; }
+   const uint16_t &GetGroup() const { return Group; }
   
    /// \brief  Returns the Dicom Element Number of the current DictEntry
    /// @return the Dicom Element Number
-   uint16_t GetElement() { return Element; }
+   const uint16_t &GetElement() const { return Element; }
  
    /// \brief  Returns the Dicom Value Representation of the current
    ///         DictEntry
    /// @return the Dicom Value Representation
-   const TagName &GetVR() const { return VR; }
+   const VRKey &GetVR() const { return VR; }
  
    /// \brief   sets the key of the current DictEntry
    /// @param k New key to be set.
-   void SetKey(TagName const &k)  { Key = k; }
+   void SetKey(TagKey const &k)  { Key = k; }
  
    /// \brief   returns the VM field of the current DictEntry
    /// @return  The 'Value Multiplicity' field
@@ -92,13 +88,16 @@ public:
  
    /// \brief  Gets the key of the current DictEntry
    /// @return the key.
-   const TagName &GetKey() const { return Key; }
+   const TagKey &GetKey() const { return Key; }
+
+// Key creation
+   static TagKey TranslateToKey(uint16_t group, uint16_t elem);
 
 private:
    /// \todo FIXME 
-   ///        where are the group and element used except from building up
+   ///        where are the group and elem used except from building up
    ///        a TagKey. If the answer is nowhere then there is no need
-   ///        to store the group and element independently.
+   ///        to store the group and elem independently.
    ///
    ///        --> EVERYWHERE ! The alternate question would be :
    ///                         What's TagKey used for ?
@@ -110,9 +109,10 @@ private:
    uint16_t Element; // e.g. 0x0103
 
    /// \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)
-   TagName VR;
+   ///        of the data represented e.g. 
+   ///        "FD" short for "Floating Point Double"(see \ref VR)
+   ///        "PN" short for "Person Name"       
+   VRKey VR;
 
    /*
     *  .
@@ -162,13 +162,13 @@ private:
     *  - LLO = Left  Lateral Oblique  
     *  .
     */
-  /// \brief Value Multiplicity (e.g. "1", "1-n", "6")
+   /// \brief Value Multiplicity (e.g. "1", "1-n", "6")
    TagName VM; 
 
    /// e.g. "Patient's Name"                    
    TagName Name;      
 
-   /// Redundant with (group, element) but we add it for efficiency purpose.
+   /// Redundant with (group, elem) but we add it for efficiency purpose.
    TagKey  Key;
 };
 } // end namespace gdcm