]> Creatis software - gdcm.git/blobdiff - src/gdcmDicomDirSerie.h
Fix mistypings
[gdcm.git] / src / gdcmDicomDirSerie.h
index 4449d20d0008d84de66b3476fa72611eeb5d0ae3..13065eb476200cff5cf9102d692955ce62ef94e2 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDicomDirSerie.h,v $
   Language:  C++
-  Date:      $Date: 2005/01/18 07:53:42 $
-  Version:   $Revision: 1.21 $
+  Date:      $Date: 2007/08/29 15:30:49 $
+  Version:   $Revision: 1.38 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
                                                                                 
 =========================================================================*/
 
-#ifndef GDCMDICOMDIRSERIE_H
-#define GDCMDICOMDIRSERIE_H
+#ifndef _GDCMDICOMDIRSERIE_H_
+#define _GDCMDICOMDIRSERIE_H_
 
 #include "gdcmDicomDirObject.h"
 
-namespace gdcm 
+namespace GDCM_NAME_SPACE 
 {
 class DicomDirImage;
+class DicomDirPrivate;
+
 //-----------------------------------------------------------------------------
 typedef std::list<DicomDirImage *> ListDicomDirImage;
-
+typedef std::list<DicomDirPrivate *> ListDicomDirPrivate;
 //-----------------------------------------------------------------------------
 /**
  * \brief   describes a SERIE  within a within a STUDY
@@ -34,31 +36,138 @@ typedef std::list<DicomDirImage *> ListDicomDirImage;
  */
 class GDCM_EXPORT DicomDirSerie : public DicomDirObject 
 {
-public:
-   DicomDirSerie(); 
-   ~DicomDirSerie();
+   gdcmTypeMacro(DicomDirSerie);
 
-   void Print( std::ostream &os = std::cout, std::string const & indent = "" );
-   void WriteContent( std::ofstream *fp, FileType t );
-   /// Returns the IMAGE chained List for this SERIE.
-   ListDicomDirImage const &GetDicomDirImages() const { return Images; };
+public:
+/// \brief Constructs a DicomDirSerie with a RefCounter
+   static DicomDirSerie *New(bool empty=false) {return new DicomDirSerie(empty);}
 
-   // should avoid exposing internal mechanism
-   DicomDirImage *GetFirstEntry();
-   DicomDirImage *GetNextEntry();
-        
-   /// adds the passed IMAGE to the IMAGE chained List for this SERIE.    
-   void AddDicomDirImage(DicomDirImage *obj) { Images.push_back(obj); };
+   void Print( std::ostream &os = std::cout, std::string const &indent = "" );
+   void WriteContent( std::ofstream *fp, FileType t, bool insideMetaElements,
+                                                     bool insideSequence );
 
+   // 'Image' methods
    DicomDirImage *NewImage();
+   /// Add a new gdcm::DicomDirImage to the Serie
+   void AddImage(DicomDirImage *obj) { Images.push_back(obj); }
+   void ClearImage();
 
-private:
+   DicomDirImage *GetFirstImage();
+   DicomDirImage *GetNextImage();
+   /// returns the number of Images currently held in the gdcm::DicomDirSerie
+   int            GetNumberOfImages() { return Images.size();}
+   
+   // 'Private' methods (For SIEMENS 'CSA non image')
+   DicomDirPrivate *NewPrivate();
+   /// Add a new gdcm::DicomDirPrivate to the Serie
+   void AddPrivate(DicomDirPrivate *obj) { Privates.push_back(obj); }
+   void ClearPrivate();
+
+   DicomDirPrivate *GetFirstPrivate();
+   DicomDirPrivate *GetNextPrivate();   
+   /// returns the number of 'Privates' currently held in the gdcm::DicomDirSerie
+   int             GetNumberOfPrivates() { return Privates.size();}   
+   
+   virtual void Copy(DocEntrySet *set);
 
+protected:
+   DicomDirSerie(bool empty=false); 
+   ~DicomDirSerie();
+
+private:
    ///chained list of DicomDirImages (to be exploited recursively)
    ListDicomDirImage Images;
    /// iterator on the DicomDirImages of the current DicomDirSerie
-   ListDicomDirImage::iterator ItDicomDirImage;
+   ListDicomDirImage::iterator ItImage;
+
+   ///chained list of DicomDirPrivates (to be exploited recursively)
+   ListDicomDirPrivate Privates;
+   /// iterator on the DicomDirPrivates of the current DicomDirSerie
+   ListDicomDirPrivate::iterator ItPrivate;
+/*
+// for future use  (Full DICOMDIR):
+
+   /// chained list of DicomDirOverlays(single level)
+   ListDicomDirOverlay Overlays;
+   /// iterator on the DicomDirOverlays of the current DicomDirSerie
+   ListDicomDirOverlay::iterator ItOverlay;
+
+   /// chained list of DicomDirModalityLuts(single level)
+   ListDicomDirModalityLut ModalityLuts;
+   /// iterator on the DicomDirModalityLuts of the current DicomDirSerie
+   ListDicomDirModalityLut::iterator ItModalityLuts;
+
+   /// chained list of DicomDirCurves(single level)
+   ListDicomDirCurve Curves;
+   /// iterator on the DicomDirCurves of the current DicomDirSerie
+   ListDicomDirCurve::iterator ItCurves;
+
+   /// chained list of DicomDirStoredPrints(single level)
+   ListDicomDirStoredPrint StoredPrints;
+   /// iterator on the DicomDirStoredPrints of the current DicomDirSerie
+   ListDicomDirStoredPrint::iterator ItStoredPrints;
+
+   /// chained list of DicomDirRtDoses(single level)
+   ListDicomDirRtDose RtDoses;
+   /// iterator on the DicomDirRtDoses of the current DicomDirSerie
+   ListDicomDirRtDose::iterator ItRtDoses;
+
+   /// chained list of DicomDirRtStructureSets(single level)
+   ListDicomDirRtStructureSet RtStructureSets;
+   /// iterator on the DicomDirRtStructureSets of the current DicomDirSerie
+   ListDicomDirRtStructureSet::iterator ItRtStructureSets;
+
+   /// chained list of DicomDirRtPlans(single level)
+   ListDicomDirRtPlan RtPlans;
+   /// iterator on the DicomDirRtPlans of the current DicomDirSerie
+   ListDicomDirPlan::iterator ItRtPlans;
+
+   /// chained list of DicomDirRtTreatRecords(single level)
+   ListDicomDirRtTreatRecord RtTreatRecords;
+   /// iterator on the DicomDirRtTreatRecords of the current DicomDirSerie
+   ListDicomDirRtTreatRecord::iterator ItRtTreatRecords;
+
+   /// chained list of DicomDirPresentations(single level)
+   ListDicomDirPresentation Presentations;
+   /// iterator on the DicomDirPresentations of the current DicomDirSerie
+   ListDicomDirPresentation::iterator ItPresentations;
+
+   /// chained list of DicomDirWaveForms(single level)
+   ListDicomDirWaveForm WaveForms;
+   /// iterator on the DicomDirWaveForms of the current DicomDirSerie
+   ListDicomDirWaveForm::iterator ItWaveForms;
+
+   /// chained list of DicomDirSrDocuments(single level)
+   ListDicomDirSrDocument SrDocuments;
+   /// iterator on the DicomDirSrDocuments of the current DicomDirSerie
+   ListDicomDirSrDocument::iterator ItSrDocuments;
+
+   /// chained list of DicomDirKeyObjectDocs(single level)
+   ListDicomDirKeyObjectDoc KeyObjectDocs;
+   /// iterator on the DicomDirKeyObjectDocs of the current DicomDirSerie
+   ListDicomDirKeyObjectDoc::iterator ItKeyObjectDocs;
+
+   /// chained list of DicomDirSpectroscopys(single level)
+   ListDicomDirSpectroscopy Spectroscopys;
+   /// iterator on the DicomDirSpectroscopys of the current DicomDirSerie
+   ListDicomDirSpectroscopy::iterator ItSpectroscopys;
+
+   /// chained list of DicomDirRawDatas(single level)
+   ListDicomDirRawData RawDatas;
+   /// iterator on the DicomDirRawDatas of the current DicomDirSerie
+   ListDicomDirRawData::iterator ItRawDatas;
+
+   /// chained list of DicomDirRegistrations(single level)
+   ListDicomDirRegistration Registrations;
+   /// iterator on the DicomDirRegistrations of the current DicomDirSerie
+   ListDicomDirRegistration::iterator ItRegistrations;
+
+   /// chained list of DicomDirFiducials(single level)
+   ListDicomDirFiducial Fiducials;
+   /// iterator on the DicomDirFiducials of the current DicomDirSerie
+   ListDicomDirFiducial::iterator ItFiducials;
+*/
+
 };
 } // end namespace gdcm
 //-----------------------------------------------------------------------------