1 /*=========================================================================
4 Module: $RCSfile: gdcmDicomDirStudy.h,v $
6 Date: $Date: 2005/02/07 14:48:34 $
7 Version: $Revision: 1.26 $
9 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10 l'Image). All rights reserved. See Doc/License.txt or
11 http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notices for more information.
17 =========================================================================*/
19 #ifndef GDCMDICOMDIRSTUDY_H
20 #define GDCMDICOMDIRSTUDY_H
22 #include "gdcmDicomDirObject.h"
27 //-----------------------------------------------------------------------------
28 typedef std::list<DicomDirSerie *> ListDicomDirSerie;
31 // For future use (Full DICOMDIR)
32 typedef std::list<DicomDirVisit *> ListDicomDirVisit;
33 typedef std::list<DicomDirResult *> ListDicomDirResult;
34 typedef std::list<DicomDirStudyComponent *> ListDicomDirStudyComponent;
37 //-----------------------------------------------------------------------------
39 * \brief describes a STUDY within a within a PATIENT
40 * (DicomDirPatient) of a given DICOMDIR (DicomDir)
42 class GDCM_EXPORT DicomDirStudy : public DicomDirObject
45 DicomDirStudy(bool empty=false);
48 void Print(std::ostream &os = std::cout, std::string const &indent = "" );
49 void WriteContent(std::ofstream *fp, FileType t);
52 DicomDirSerie *NewSerie();
53 /// Adds a gdcm::DicomDirSerie to a Study
54 void AddSerie(DicomDirSerie *obj) { Series.push_back(obj); };
57 DicomDirSerie *GetFirstSerie();
58 DicomDirSerie *GetNextSerie();
59 DicomDirSerie *GetLastSerie();
62 // for future use (Full DICOMDIR)
64 DicomDirVisit *GetFirstVisit();
65 DicomDirVisit *GetNextVisit();
67 DicomDirResult *GetFirstResult();
68 DicomDirResult *GetNextResult();
70 DicomDirStudyComponent *GetFirstStudyComponent();
71 DicomDirStudyComponent *GetNextStudyComponent();
77 /// chained list of DicomDirSeries (to be exploited hierarchicaly)
78 ListDicomDirSerie Series;
79 /// iterator on the DicomDirSeries of the current DicomDirStudy
80 ListDicomDirSerie::iterator ItSerie;
83 // for future use (Full DICOMDIR)
85 /// chained list of DicomDirVisits(single level)
86 ListDicomDirVisit Visits;
87 /// iterator on the DicomDirVisits of the current DicomDirStudy
88 ListDicomDirVisit::iterator ItVisit;
90 /// chained list of DicomDirResults(single level)
91 ListDicomDirResult Results;
92 /// iterator on the DicomDirResults of the current DicomDirStudy
93 ListDicomDirResult::iterator ItResult;
95 /// chained list of DicomDirStudyComponents(single level)
96 ListDicomDirStudyComponent StudyComponents;
97 /// iterator on the DicomDirStudyComponents of the current DicomDirStudy
98 ListDicomDirStudyComponent::iterator ItStudyComponents;
101 } // end namespace gdcm
103 //-----------------------------------------------------------------------------