]> Creatis software - gdcm.git/blobdiff - src/gdcmDictEntry.h
EMH: *Add PrintAllDocument, dog slow right now
[gdcm.git] / src / gdcmDictEntry.h
index f729d9b7c7888d659721082ce706b0e0a4f56aea..fda8b998202a0acba57912461d2ff866362022ba 100644 (file)
@@ -1,5 +1,21 @@
-// gdcmDictEntry.h
-//-----------------------------------------------------------------------------
+/*=========================================================================
+                                                                                
+  Program:   gdcm
+  Module:    $RCSfile: gdcmDictEntry.h,v $
+  Language:  C++
+  Date:      $Date: 2004/06/20 18:08:47 $
+  Version:   $Revision: 1.14 $
+                                                                                
+  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.htm 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 GDCMDICTENTRY_H
 #define GDCMDICTENTRY_H
 
@@ -35,7 +51,7 @@ public:
     *              
     * @return 
     */
-   inline bool IsVRUnknown() {return vr == "Unknown"; }
+   inline bool IsVRUnknown() {return vr == "??"; }
 
    /**
     * \ingroup gdcmDictEntry
@@ -91,21 +107,90 @@ public:
    inline std::string GetKey(void) { return key; }
 
 private:
-   // FIXME : were are the group and element used except from building up
+   // FIXME : where are the group and element used except from building up
    //         a TagKey. If the answer is nowhere then there is no need
    //         to store the group and element independently.
+   //
+   //         --> EVERYWHERE ! The alternate question would be :
+   //                          What's TagKey used for ?
+   
+   /// DicomGroup number
    guint16 group;   // e.g. 0x0010
+   /// DicomElement number
    guint16 element; // e.g. 0x0103
-   std::string vr; // Value Representation i.e. some clue about the nature
-                       // of the data represented e.g. "FD" short for
-                       // "Floating Point Double"
-       // CLEANME: find the official dicom name for this field !
-   std::string fourth; // Fourth field containing some semantics.
-                       //(Group Name abbr.)
-   std::string name; // e.g. "Patient_Name"
-   TagKey  key;      // Redundant with (group, element) but we add it
-                     // on efficiency purposes.
+   /**
+    * \ingroup gdcmDictEntry
+    * \brief   Value Representation i.e. some clue about the nature
+    *          of the data represented 
+    *          e.g. "FD" short for "Floating Point Double"
+    */ 
+   std::string vr;
+                                               
+   /**
+    * \brief AVOID using the following fourth field at all costs.
+    * 
+    *  They are at leat two good reasons for NOT using fourth:
+    *  - the main reason is that it is NOT part of the 'official'
+    *    Dicom Dictionnary.
+    *  - a second reason is that it is not defined for all the groups.
+    *  .
+    *  Still it provides some semantics as group name abbreviation that
+    *  can prove of some help when organizing things in an interface.
+    *  For the time being we keep it in gdcm but it migth be removed in
+    *  future releases it proves to be source of confusion.
+    *  Here is a small dictionary we encountered in "nature":
+    *  - CMD      Command        
+    *  - META     Meta Information 
+    *  - DIR      Directory
+    *  - ID       ???
+    *  - PAT      Patient
+    *  - ACQ      Acquisition
+    *  - REL      Related
+    *  - IMG      Image
+    *  - SDY      Study
+    *  - VIS      Visit 
+    *  - WAV      Waveform
+    *  - PRC      ???
+    *  - DEV      Device
+    *  - NMI      Nuclear Medicine
+    *  - MED      ???
+    *  - BFS      Basic Film Session
+    *  - BFB      Basic Film Box
+    *  - BIB      Basic Image Box
+    *  - BAB
+    *  - IOB
+    *  - PJ
+    *  - PRINTER
+    *  - RT       Radio Therapy
+    *  - DVH   
+    *  - SSET
+    *  - RES      Results
+    *  - CRV      Curve
+    *  - OLY      Overlays
+    *  - PXL      Pixels
+    *  - DL       Delimiters
+    *  .
+    *
+    *  Other usefull abreviations used for Radiographic view associated with
+    *  Patient Position (0018,5100):
+    *  -  AP = Anterior/Posterior 
+    *  -  PA = Posterior/Anterior 
+    *  -  LL = Left Lateral 
+    *  -  RL = Right Lateral 
+    *  - RLD = Right Lateral Decubitus 
+    *  - LLD = Left  Lateral Decubitus 
+    *  - RLO = Right Lateral Oblique 
+    *  - LLO = Left  Lateral Oblique  
+    *  .
+    */
+   std::string fourth; 
+
+   /// e.g. "Patient's Name"                    
+   std::string name;      
 
+   /// Redundant with (group, element) but we add it on efficiency purposes. 
+   TagKey  key;
+                     
        // DCMTK has many fields for handling a DictEntry (see below). What are the
        // relevant ones for gdcmlib ?
        //      struct DBI_SimpleEntry {