00001 /*========================================================================= 00002 00003 Program: gdcm 00004 Module: $RCSfile: gdcmDicomDirElement.h,v $ 00005 Language: C++ 00006 Date: $Date: 2005/11/28 16:31:23 $ 00007 Version: $Revision: 1.37 $ 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 GDCMDICOMDIRELEMENT_H 00020 #define GDCMDICOMDIRELEMENT_H 00021 00022 #include "gdcmRefCounter.h" 00023 00024 #include <list> 00025 00026 namespace gdcm 00027 { 00028 00029 //----------------------------------------------------------------------------- 00030 00031 typedef std::list<DicomElement> ListDicomDirElem; 00032 typedef std::list<DicomElement> ListDicomDirMetaElem; 00033 typedef std::list<DicomElement> ListDicomDirPatientElem; 00034 typedef std::list<DicomElement> ListDicomDirStudyElem; 00035 typedef std::list<DicomElement> ListDicomDirVisitElem; 00036 typedef std::list<DicomElement> ListDicomDirSerieElem; 00037 typedef std::list<DicomElement> ListDicomDirImageElem; 00038 00039 // For future use (Full DICOMDIR) 00040 00041 /* 00042 typedef std::list<DicomElement> ListDicomDirResultElem; 00043 typedef std::list<DicomElement> ListDicomDirStudyComponentElem; 00044 00045 typedef std::list<DicomElement> ListDicomDirOverlayElem; 00046 typedef std::list<DicomElement> ListDicomDirModalityLutElem; 00047 typedef std::list<DicomElement> ListDicomDirModalityLutElem; 00048 typedef std::list<DicomElement> ListDicomDirCurveElem; 00049 typedef std::list<DicomElement> ListDicomDirStoredPrintElem; 00050 typedef std::list<DicomElement> ListDicomDirRtDoseElem; 00051 typedef std::list<DicomElement> ListDicomDirRtStructureSetElem; 00052 typedef std::list<DicomElement> ListDicomDirRtPlanElem; 00053 typedef std::list<DicomElement> ListDicomDirRtTreatRecordElem; 00054 typedef std::list<DicomElement> ListDicomDirPresentationElem; 00055 typedef std::list<DicomElement> ListDicomDirSrDocumentElem; 00056 typedef std::list<DicomElement> ListDicomDirKeyObjectDocElem; 00057 typedef std::list<DicomElement> ListDicomDirSpectroscopyElem; 00058 typedef std::list<DicomElement> ListDicomDirRawDataElem; 00059 typedef std::list<DicomElement> ListDicomDirRegistrationElem; 00060 typedef std::list<DicomElement> ListDicomDirFiducialElem; 00061 */ 00062 00063 //----------------------------------------------------------------------------- 00068 class GDCM_EXPORT DicomDirElement : public RefCounter 00069 { 00070 gdcmTypeMacro(DicomDirElement); 00071 00072 public: 00074 static DicomDirElement *New() {return new DicomDirElement();} 00075 00079 virtual void Print(std::ostream &os = std::cout, 00080 std::string const &indent = "" ); 00081 00086 ListDicomDirMetaElem const &GetDicomDirMetaElements() const 00087 { return DicomDirMetaList; } 00088 00093 ListDicomDirPatientElem const &GetDicomDirPatientElements() const 00094 { return DicomDirPatientList; } 00095 00100 ListDicomDirStudyElem const &GetDicomDirStudyElements() const 00101 { return DicomDirStudyList; } 00102 00107 ListDicomDirVisitElem const &GetDicomDirVisitElements() const 00108 { return DicomDirVisitList; } 00113 ListDicomDirSerieElem const &GetDicomDirSerieElements() const 00114 { return DicomDirSerieList; } 00115 00120 ListDicomDirImageElem const &GetDicomDirImageElements() const 00121 { return DicomDirImageList; } 00122 00123 // Public method to add an element 00124 bool AddEntry(DicomDirType type, DicomElement const &elem); 00125 00126 // Only one instance of ddElem 00127 void AddDicomDirElement(DicomDirType type, 00128 uint16_t group, uint16_t elem); 00129 00130 protected: 00131 DicomDirElement(); 00132 ~DicomDirElement(); 00133 00134 private: 00136 ListDicomDirMetaElem DicomDirMetaList; 00138 ListDicomDirPatientElem DicomDirPatientList; 00140 ListDicomDirStudyElem DicomDirStudyList; 00142 ListDicomDirVisitElem DicomDirVisitList; 00144 ListDicomDirSerieElem DicomDirSerieList; 00146 ListDicomDirImageElem DicomDirImageList; 00147 }; 00148 } // end namespace gdcm 00149 //----------------------------------------------------------------------------- 00150 #endif