00001 /*========================================================================= 00002 00003 Program: gdcm 00004 Module: $RCSfile: gdcmDicomDirSerie.h,v $ 00005 Language: C++ 00006 Date: $Date: 2005/11/29 12:48:46 $ 00007 Version: $Revision: 1.32 $ 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 GDCMDICOMDIRSERIE_H 00020 #define GDCMDICOMDIRSERIE_H 00021 00022 #include "gdcmDicomDirObject.h" 00023 00024 namespace gdcm 00025 { 00026 class DicomDirImage; 00027 //----------------------------------------------------------------------------- 00028 typedef std::list<DicomDirImage *> ListDicomDirImage; 00029 00030 //----------------------------------------------------------------------------- 00035 class GDCM_EXPORT DicomDirSerie : public DicomDirObject 00036 { 00037 gdcmTypeMacro(DicomDirSerie); 00038 00039 public: 00041 static DicomDirSerie *New(bool empty=false) {return new DicomDirSerie(empty);} 00042 00043 void Print( std::ostream &os = std::cout, std::string const &indent = "" ); 00044 void WriteContent( std::ofstream *fp, FileType t ); 00045 00046 // Image methods 00047 DicomDirImage *NewImage(); 00049 void AddImage(DicomDirImage *obj) { Images.push_back(obj); } 00050 void ClearImage(); 00051 00052 DicomDirImage *GetFirstImage(); 00053 DicomDirImage *GetNextImage(); 00054 00055 virtual void Copy(DocEntrySet *set); 00056 00057 protected: 00058 DicomDirSerie(bool empty=false); 00059 ~DicomDirSerie(); 00060 00061 private: 00063 ListDicomDirImage Images; 00065 ListDicomDirImage::iterator ItImage; 00066 00067 /* 00068 // for future use : 00069 00071 ListDicomDirOverlay Overlays; 00073 ListDicomDirOverlay::iterator ItOverlay; 00074 00076 ListDicomDirModalityLut ModalityLuts; 00078 ListDicomDirModalityLut::iterator ItModalityLut; 00079 00081 ListDicomDirModalityLut ModalityLuts; 00083 ListDicomDirModalityLut::iterator ItModalityLuts; 00084 00086 ListDicomDirCurve Curves; 00088 ListDicomDirCurve::iterator ItCurves; 00089 00091 ListDicomDirStoredPrint StoredPrints; 00093 ListDicomDirStoredPrint::iterator ItStoredPrints; 00094 00096 ListDicomDirRtDose RtDoses; 00098 ListDicomDirRtDose::iterator ItRtDoses; 00099 00101 ListDicomDirRtStructureSet RtStructureSets; 00103 ListDicomDirRtStructureSet::iterator ItRtStructureSets; 00104 00106 ListDicomDirRtPlan RtPlans; 00108 ListDicomDirPlan::iterator ItRtPlans; 00109 00111 ListDicomDirRtTreatRecord RtTreatRecords; 00113 ListDicomDirRtTreatRecord::iterator ItRtTreatRecords; 00114 00116 ListDicomDirPresentation Presentations; 00118 ListDicomDirPresentation::iterator ItPresentations; 00119 00121 ListDicomDirWaveForm WaveForms; 00123 ListDicomDirWaveForm::iterator ItWaveForms; 00124 00126 ListDicomDirSrDocument SrDocuments; 00128 ListDicomDirSrDocument::iterator ItSrDocuments; 00129 00131 ListDicomDirKeyObjectDoc KeyObjectDocs; 00133 ListDicomDirKeyObjectDoc::iterator ItKeyObjectDocs; 00134 00136 ListDicomDirSpectroscopy Spectroscopys; 00138 ListDicomDirSpectroscopy::iterator ItSpectroscopys; 00139 00141 ListDicomDirRawData RawDatas; 00143 ListDicomDirRawData::iterator ItRawDatas; 00144 00146 ListDicomDirRegistration Registrations; 00148 ListDicomDirRegistration::iterator ItRegistrations; 00149 00151 ListDicomDirFiducial Fiducials; 00153 ListDicomDirFiducial::iterator ItFiducials; 00154 */ 00155 00156 }; 00157 } // end namespace gdcm 00158 //----------------------------------------------------------------------------- 00159 #endif