]> Creatis software - gdcm.git/blobdiff - src/gdcmDicomDirElement.h
None of the ACR-NEMA file has a Transfer Syntax field.
[gdcm.git] / src / gdcmDicomDirElement.h
index 0da4be80e82338db6ea80cde28f190f89731a4eb..37c605ec09ddf71e7b8277734254b12a18351d0c 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDicomDirElement.h,v $
   Language:  C++
-  Date:      $Date: 2005/07/08 19:07:12 $
-  Version:   $Revision: 1.29 $
+  Date:      $Date: 2005/10/25 14:52:33 $
+  Version:   $Revision: 1.33 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -19,7 +19,7 @@
 #ifndef GDCMDICOMDIRELEMENT_H
 #define GDCMDICOMDIRELEMENT_H
 
-#include "gdcmCommon.h"
+#include "gdcmRefCounter.h"
 
 #include <list>
 
@@ -28,36 +28,36 @@ namespace gdcm
 
 //-----------------------------------------------------------------------------
 
-typedef std::list<Element> ListDicomDirElem;
-typedef std::list<Element> ListDicomDirMetaElem;
-typedef std::list<Element> ListDicomDirPatientElem;
-typedef std::list<Element> ListDicomDirStudyElem;
-typedef std::list<Element> ListDicomDirSerieElem;
-typedef std::list<Element> ListDicomDirImageElem;
+typedef std::list<DicomElement> ListDicomDirElem;
+typedef std::list<DicomElement> ListDicomDirMetaElem;
+typedef std::list<DicomElement> ListDicomDirPatientElem;
+typedef std::list<DicomElement> ListDicomDirStudyElem;
+typedef std::list<DicomElement> ListDicomDirVisitElem;
+typedef std::list<DicomElement> ListDicomDirSerieElem;
+typedef std::list<DicomElement> ListDicomDirImageElem;
 
 // For future use (Full DICOMDIR)
 
-typedef std::list<Element> ListDicomDirVisitElem;
 /*
-typedef std::list<Element> ListDicomDirResult;
-typedef std::list<Element> ListDicomDirStudyComponent;
-
-typedef std::list<Element> ListDicomDirOverlay;
-typedef std::list<Element> ListDicomDirModalityLut;
-typedef std::list<Element> ListDicomDirModalityLut;
-typedef std::list<Element> ListDicomDirCurve;
-typedef std::list<Element> ListDicomDirStoredPrint;
-typedef std::list<Element> ListDicomDirRtDose;
-typedef std::list<Element> ListDicomDirRtStructureSet;
-typedef std::list<Element> ListDicomDirRtPlan;
-typedef std::list<Element> ListDicomDirRtTreatRecord;
-typedef std::list<Element> ListDicomDirPresentation;
-typedef std::list<Element> ListDicomDirSrDocument;
-typedef std::list<Element> ListDicomDirKeyObjectDoc;
-typedef std::list<Element> ListDicomDirSpectroscopy;
-typedef std::list<Element> ListDicomDirRawData;
-typedef std::list<Element> ListDicomDirRegistration;
-typedef std::list<Element> ListDicomDirFiducial;
+typedef std::list<DicomElement> ListDicomDirResultElem;
+typedef std::list<DicomElement> ListDicomDirStudyComponentElem;
+
+typedef std::list<DicomElement> ListDicomDirOverlayElem;
+typedef std::list<DicomElement> ListDicomDirModalityLutElem;
+typedef std::list<DicomElement> ListDicomDirModalityLutElem;
+typedef std::list<DicomElement> ListDicomDirCurveElem;
+typedef std::list<DicomElement> ListDicomDirStoredPrintElem;
+typedef std::list<DicomElement> ListDicomDirRtDoseElem;
+typedef std::list<DicomElement> ListDicomDirRtStructureSetElem;
+typedef std::list<DicomElement> ListDicomDirRtPlanElem;
+typedef std::list<DicomElement> ListDicomDirRtTreatRecordElem;
+typedef std::list<DicomElement> ListDicomDirPresentationElem;
+typedef std::list<DicomElement> ListDicomDirSrDocumentElem;
+typedef std::list<DicomElement> ListDicomDirKeyObjectDocElem;
+typedef std::list<DicomElement> ListDicomDirSpectroscopyElem;
+typedef std::list<DicomElement> ListDicomDirRawDataElem;
+typedef std::list<DicomElement> ListDicomDirRegistrationElem;
+typedef std::list<DicomElement> ListDicomDirFiducialElem;
 */
 
 //-----------------------------------------------------------------------------
@@ -65,13 +65,14 @@ typedef std::list<Element> ListDicomDirFiducial;
  * \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();
+   static DicomDirElement *New() {return new DicomDirElement();}
 
-  /**
+   /**
     * \brief   canonical Printer 
     */ 
    void Print(std::ostream &os);
@@ -81,49 +82,53 @@ public:
     *          related to the META Elements of a DICOMDIR.
     */
    ListDicomDirMetaElem const &GetDicomDirMetaElements() const
-      { return DicomDirMetaList; };
+      { return DicomDirMetaList; }
 
    /**
     * \brief   returns a reference to the chained List 
     *          related to the PATIENT Elements of a DICOMDIR.
     */      
    ListDicomDirPatientElem const &GetDicomDirPatientElements() const
-      { return DicomDirPatientList; };
+      { return DicomDirPatientList; }
 
    /**
     * \brief   returns a reference to the chained List 
     *          related to the STUDY Elements of a DICOMDIR.
     */      
    ListDicomDirStudyElem const &GetDicomDirStudyElements() const
-      { return DicomDirStudyList; };
+      { return DicomDirStudyList; }
 
    /**
     * \brief   returns a reference to the chained List 
     *          related to the VISIT Elements of a DICOMDIR.
     */      
    ListDicomDirVisitElem const &GetDicomDirVisitElements() const
-      { return DicomDirVisitList; };
+      { return DicomDirVisitList; }
    /**
     * \brief   returns a reference to the chained List 
     *          related to the SERIE Elements of a DICOMDIR.
     */
    ListDicomDirSerieElem const &GetDicomDirSerieElements() const
-      { return DicomDirSerieList; };
+      { return DicomDirSerieList; }
 
    /**
     * \brief   returns a reference to the chained List 
     *          related to the IMAGE Elements of a DICOMDIR.
     */
    ListDicomDirImageElem const &GetDicomDirImageElements() const
-      { return DicomDirImageList; };
+      { return DicomDirImageList; }
 
    // Public method to add an element
-   bool AddEntry(DicomDirType type, Element const &elem);
+   bool AddEntry(DicomDirType type, DicomElement const &elem);
 
    // Only one instance of ddElem 
    void AddDicomDirElement(DicomDirType type,
                            uint16_t group, uint16_t elem);
 
+protected:
+   DicomDirElement();
+   ~DicomDirElement();
+
 private:
    /// Elements chained list, related to the MetaElements of DICOMDIR
    ListDicomDirMetaElem    DicomDirMetaList;