/*========================================================================= Program: gdcm Module: $RCSfile: gdcmDicomDirElement.h,v $ Language: C++ Date: $Date: 2005/11/28 15:20:32 $ Version: $Revision: 1.36 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef GDCMDICOMDIRELEMENT_H #define GDCMDICOMDIRELEMENT_H #include "gdcmCommandManager.h" #include namespace gdcm { //----------------------------------------------------------------------------- typedef std::list ListDicomDirElem; typedef std::list ListDicomDirMetaElem; typedef std::list ListDicomDirPatientElem; typedef std::list ListDicomDirStudyElem; typedef std::list ListDicomDirVisitElem; typedef std::list ListDicomDirSerieElem; typedef std::list ListDicomDirImageElem; // For future use (Full DICOMDIR) /* typedef std::list ListDicomDirResultElem; typedef std::list ListDicomDirStudyComponentElem; typedef std::list ListDicomDirOverlayElem; typedef std::list ListDicomDirModalityLutElem; typedef std::list ListDicomDirModalityLutElem; typedef std::list ListDicomDirCurveElem; typedef std::list ListDicomDirStoredPrintElem; typedef std::list ListDicomDirRtDoseElem; typedef std::list ListDicomDirRtStructureSetElem; typedef std::list ListDicomDirRtPlanElem; typedef std::list ListDicomDirRtTreatRecordElem; typedef std::list ListDicomDirPresentationElem; typedef std::list ListDicomDirSrDocumentElem; typedef std::list ListDicomDirKeyObjectDocElem; typedef std::list ListDicomDirSpectroscopyElem; typedef std::list ListDicomDirRawDataElem; typedef std::list ListDicomDirRegistrationElem; typedef std::list ListDicomDirFiducialElem; */ //----------------------------------------------------------------------------- /** * \brief Represents elements contained in a DicomDir class * for the chained lists from the file 'Dicts/DicomDir.dic' */ class GDCM_EXPORT DicomDirElement : public CommandManager { gdcmTypeMacro(DicomDirElement); public: /// \brief Contructs a DicomDirElement with a RefCounter static DicomDirElement *New() {return new DicomDirElement();} /** * \brief canonical Printer */ virtual void Print(std::ostream &os = std::cout, std::string const &indent = "" ); /** * \brief returns a reference to the chained List * related to the META Elements of a DICOMDIR. */ ListDicomDirMetaElem const &GetDicomDirMetaElements() const { return DicomDirMetaList; } /** * \brief returns a reference to the chained List * related to the PATIENT Elements of a DICOMDIR. */ ListDicomDirPatientElem const &GetDicomDirPatientElements() const { return DicomDirPatientList; } /** * \brief returns a reference to the chained List * related to the STUDY Elements of a DICOMDIR. */ ListDicomDirStudyElem const &GetDicomDirStudyElements() const { return DicomDirStudyList; } /** * \brief returns a reference to the chained List * related to the VISIT Elements of a DICOMDIR. */ ListDicomDirVisitElem const &GetDicomDirVisitElements() const { return DicomDirVisitList; } /** * \brief returns a reference to the chained List * related to the SERIE Elements of a DICOMDIR. */ ListDicomDirSerieElem const &GetDicomDirSerieElements() const { return DicomDirSerieList; } /** * \brief returns a reference to the chained List * related to the IMAGE Elements of a DICOMDIR. */ ListDicomDirImageElem const &GetDicomDirImageElements() const { return DicomDirImageList; } // Public method to add an element bool AddEntry(DicomDirType type, DicomElement const &elem); // Only one instance of ddElem void AddDicomDirElement(DicomDirType type, uint16_t group, uint16_t elem); protected: DicomDirElement(); ~DicomDirElement(); private: /// Elements chained list, related to the MetaElements of DICOMDIR ListDicomDirMetaElem DicomDirMetaList; /// Elements chained list, related to the PatientElements of DICOMDIR ListDicomDirPatientElem DicomDirPatientList; /// Elements chained list, related to the StudyElements of DICOMDIR ListDicomDirStudyElem DicomDirStudyList; /// Elements chained list, related to the VisitElements of DICOMDIR ListDicomDirVisitElem DicomDirVisitList; /// Elements chained list, related to the SerieElements of DICOMDIR ListDicomDirSerieElem DicomDirSerieList; /// Elements chained list, related to the ImageElements of DICOMDIR ListDicomDirImageElem DicomDirImageList; }; } // end namespace gdcm //----------------------------------------------------------------------------- #endif