]> Creatis software - gdcm.git/blobdiff - src/gdcmDicomDirElement.h
Fix mistypings
[gdcm.git] / src / gdcmDicomDirElement.h
index 74b18e0331128a7ea60cfab4388f97d0038b3bdb..dc93c043f8507fef20b8ea85b8dbfd2a3de2bcd9 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDicomDirElement.h,v $
   Language:  C++
-  Date:      $Date: 2005/10/19 12:01:50 $
-  Version:   $Revision: 1.32 $
+  Date:      $Date: 2007/08/22 16:14:03 $
+  Version:   $Revision: 1.41 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
                                                                                 
 =========================================================================*/
 
-#ifndef GDCMDICOMDIRELEMENT_H
-#define GDCMDICOMDIRELEMENT_H
+#ifndef _GDCMDICOMDIRELEMENT_H_
+#define _GDCMDICOMDIRELEMENT_H_
 
-#include "gdcmCommon.h"
+#include "gdcmRefCounter.h"
+#include "gdcmVRKey.h"
 
 #include <list>
 
-namespace gdcm 
+namespace GDCM_NAME_SPACE 
 {
 
 //-----------------------------------------------------------------------------
@@ -35,6 +36,7 @@ typedef std::list<DicomElement> ListDicomDirStudyElem;
 typedef std::list<DicomElement> ListDicomDirVisitElem;
 typedef std::list<DicomElement> ListDicomDirSerieElem;
 typedef std::list<DicomElement> ListDicomDirImageElem;
+typedef std::list<DicomElement> ListDicomDirPrivateElem; // For "CSA Non Image"
 
 // For future use (Full DICOMDIR)
 
@@ -65,16 +67,19 @@ typedef std::list<DicomElement> ListDicomDirFiducialElem;
  * \brief   Represents elements contained in a DicomDir class
  *          for the chained lists from the file 'Dicts/DicomDir.dic'
  */
-class GDCM_EXPORT DicomDirElement
+class GDCM_EXPORT DicomDirElement : public RefCounter
 {
+   gdcmTypeMacro(DicomDirElement);
+
 public:
-   DicomDirElement();
-   ~DicomDirElement();
+/// \brief Contructs a DicomDirElement with a RefCounter
+   static DicomDirElement *New() {return new DicomDirElement();}
 
-  /**
+   /**
     * \brief   canonical Printer 
     */ 
-   void Print(std::ostream &os);
+   virtual void Print(std::ostream &os = std::cout, 
+                      std::string const &indent = "" );
 
    /**
     * \brief   returns a reference to the chained List 
@@ -117,12 +122,24 @@ public:
    ListDicomDirImageElem const &GetDicomDirImageElements() const
       { return DicomDirImageList; }
 
+   /**
+    * \brief   returns a reference to the chained List 
+    *          related to the PRIVATE Elements of a DICOMDIR.
+    */      
+   ListDicomDirPrivateElem const &GetDicomDirPrivateElements() const
+      { return DicomDirPrivateList; }
+      
    // Public method to add an element
    bool AddEntry(DicomDirType type, DicomElement const &elem);
 
    // Only one instance of ddElem 
    void AddDicomDirElement(DicomDirType type,
-                           uint16_t group, uint16_t elem);
+                           uint16_t group, uint16_t elem, VRKey vr);
+
+protected:
+   DicomDirElement();
+   ~DicomDirElement();
 
 private:
    /// Elements chained list, related to the MetaElements of DICOMDIR
@@ -137,6 +154,8 @@ private:
    ListDicomDirSerieElem   DicomDirSerieList;
    /// Elements chained list, related to the ImageElements of DICOMDIR
    ListDicomDirImageElem   DicomDirImageList;
+   /// Elements chained list, related to the PrivateElements of DICOMDIR
+   ListDicomDirPrivateElem   DicomDirPrivateList;
 };
 } // end namespace gdcm
 //-----------------------------------------------------------------------------