00001 /*========================================================================= 00002 00003 Program: gdcm 00004 Module: $RCSfile: gdcmDicomDirStudy.h,v $ 00005 Language: C++ 00006 Date: $Date: 2005/02/07 14:48:34 $ 00007 Version: $Revision: 1.26 $ 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 00025 { 00026 class DicomDirSerie; 00027 //----------------------------------------------------------------------------- 00028 typedef std::list<DicomDirSerie *> ListDicomDirSerie; 00029 00030 /* 00031 // For future use (Full DICOMDIR) 00032 typedef std::list<DicomDirVisit *> ListDicomDirVisit; 00033 typedef std::list<DicomDirResult *> ListDicomDirResult; 00034 typedef std::list<DicomDirStudyComponent *> ListDicomDirStudyComponent; 00035 00036 */ 00037 //----------------------------------------------------------------------------- 00042 class GDCM_EXPORT DicomDirStudy : public DicomDirObject 00043 { 00044 public: 00045 DicomDirStudy(bool empty=false); 00046 ~DicomDirStudy(); 00047 00048 void Print(std::ostream &os = std::cout, std::string const &indent = "" ); 00049 void WriteContent(std::ofstream *fp, FileType t); 00050 00051 // Serie methods 00052 DicomDirSerie *NewSerie(); 00054 void AddSerie(DicomDirSerie *obj) { Series.push_back(obj); }; 00055 void ClearSerie(); 00056 00057 DicomDirSerie *GetFirstSerie(); 00058 DicomDirSerie *GetNextSerie(); 00059 DicomDirSerie *GetLastSerie(); 00060 00061 /* 00062 // for future use (Full DICOMDIR) 00063 00064 DicomDirVisit *GetFirstVisit(); 00065 DicomDirVisit *GetNextVisit(); 00066 00067 DicomDirResult *GetFirstResult(); 00068 DicomDirResult *GetNextResult(); 00069 00070 DicomDirStudyComponent *GetFirstStudyComponent(); 00071 DicomDirStudyComponent *GetNextStudyComponent(); 00072 00073 */ 00074 00075 private: 00076 00078 ListDicomDirSerie Series; 00080 ListDicomDirSerie::iterator ItSerie; 00081 00082 /* 00083 // for future use (Full DICOMDIR) 00084 00086 ListDicomDirVisit Visits; 00088 ListDicomDirVisit::iterator ItVisit; 00089 00091 ListDicomDirResult Results; 00093 ListDicomDirResult::iterator ItResult; 00094 00096 ListDicomDirStudyComponent StudyComponents; 00098 ListDicomDirStudyComponent::iterator ItStudyComponents; 00099 */ 00100 }; 00101 } // end namespace gdcm 00102 00103 //----------------------------------------------------------------------------- 00104 #endif