gdcmDicomDirStudy.h

Go to the documentation of this file.
00001 /*=========================================================================
00002                                                                                 
00003   Program:   gdcm
00004   Module:    $RCSfile: gdcmDicomDirStudy.h,v $
00005   Language:  C++
00006   Date:      $Date: 2007/08/22 16:14:03 $
00007   Version:   $Revision: 1.36 $
00008                                                                                 
00009   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
00010   l'Image). All rights reserved. See Doc/License.txt or
00011   http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
00012                                                                                 
00013      This software is distributed WITHOUT ANY WARRANTY; without even
00014      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00015      PURPOSE.  See the above copyright notices for more information.
00016                                                                                 
00017 =========================================================================*/
00018 
00019 #ifndef _GDCMDICOMDIRSTUDY_H_
00020 #define _GDCMDICOMDIRSTUDY_H_
00021 
00022 #include "gdcmDicomDirObject.h"
00023 
00024 namespace GDCM_NAME_SPACE 
00025 {
00026 class DicomDirSerie;
00027 class DicomDirVisit;
00028 //-----------------------------------------------------------------------------
00029 typedef std::list<DicomDirSerie *> ListDicomDirSerie;
00030 
00031 
00032 // For future use (Full DICOMDIR)
00033 typedef std::list<DicomDirVisit *> ListDicomDirVisit;
00034 /*
00035 typedef std::list<DicomDirResult *> ListDicomDirResult;
00036 typedef std::list<DicomDirStudyComponent *> ListDicomDirStudyComponent;
00037 */
00038 //-----------------------------------------------------------------------------
00043 class GDCM_EXPORT DicomDirStudy : public DicomDirObject
00044 {
00045    gdcmTypeMacro(DicomDirStudy);
00046 
00047 public:
00049    static DicomDirStudy *New(bool empty=false) {return new DicomDirStudy(empty);}
00050 
00051    void Print(std::ostream &os = std::cout, std::string const &indent = "" );
00052    void WriteContent(std::ofstream *fp, FileType t, bool insideMetaElements);
00053 
00054    // 'Serie' methods
00055    DicomDirSerie *NewSerie();
00057    void AddSerie(DicomDirSerie *obj) { Series.push_back(obj); }
00058    void ClearSerie();
00059    DicomDirSerie *GetFirstSerie();
00060    DicomDirSerie *GetNextSerie();
00061    DicomDirSerie *GetLastSerie();
00063    int            GetNumberOfSeries() { return Series.size();}
00064    
00065    // 'Visit' methods
00066    DicomDirVisit *NewVisit();
00068    void AddVisit(DicomDirVisit *obj) { Visits.push_back(obj); }
00069    void ClearVisit();
00070    DicomDirVisit *GetFirstVisit();
00071    DicomDirVisit *GetNextVisit();
00072    DicomDirVisit *GetLastVisit();
00074    int            GetNumberOfVisits() { return Visits.size();}
00075       
00076    // for future use (Full DICOMDIR)
00077 /*
00078    DicomDirResult *GetFirstResult();
00079    DicomDirResult *GetNextResult();
00080    DicomDirResult *GetLastResult();
00081 
00082    DicomDirStudyComponent *GetFirstStudyComponent();
00083    DicomDirStudyComponent *GetNextStudyComponent();
00084    DicomDirStudyComponent *GetLastStudyComponent();
00085 */    
00086 
00087    virtual void Copy(DocEntrySet *set);
00088 
00089 protected:
00090    DicomDirStudy(bool empty=false); 
00091    ~DicomDirStudy();
00092 
00093 private:
00095    ListDicomDirSerie Series;
00097    ListDicomDirSerie::iterator ItSerie;
00098 
00100    ListDicomDirVisit Visits;
00102    ListDicomDirVisit::iterator ItVisit;
00103    
00104 
00105    // for future use (Full DICOMDIR)
00106 /*
00108    ListDicomDirResult Results;
00110    ListDicomDirResult::iterator ItResult;
00111 
00113    ListDicomDirStudyComponent StudyComponents;
00115    ListDicomDirStudyComponent::iterator ItStudyComponents;
00116 */
00117 };
00118 } // end namespace gdcm
00119 
00120 //-----------------------------------------------------------------------------
00121 #endif

Generated on Fri Aug 24 12:59:30 2007 for gdcm by  doxygen 1.4.6