/*========================================================================= Program: gdcm Module: $RCSfile: gdcmDicomDirElement.h,v $ Language: C++ Date: $Date: 2007/08/22 16:14:03 $ Version: $Revision: 1.41 $ 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 "gdcmRefCounter.h" #include "gdcmVRKey.h" #include namespace GDCM_NAME_SPACE { //----------------------------------------------------------------------------- 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; typedef std::list ListDicomDirPrivateElem; // For "CSA Non Image" // 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 RefCounter { 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; } /** * \brief returns a reference to the chained List * related to the PRIVATE Elements of a DICOMDIR. */ ListDicomDirPrivateElem const &GetDicomDirPrivateElements() const { return DicomDirPrivateList; } // 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, VRKey vr); 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; /// Elements chained list, related to the PrivateElements of DICOMDIR ListDicomDirPrivateElem DicomDirPrivateList; }; } // end namespace gdcm //----------------------------------------------------------------------------- #endif