00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
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 
00033 typedef std::list<DicomDirVisit *> ListDicomDirVisit;
00034 
00035 
00036 
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    
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    
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    
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
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    
00106 
00108 
00110 
00111 
00113 
00115 
00116 
00117 };
00118 } 
00119 
00120 
00121 #endif