X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirElement.h;h=dc93c043f8507fef20b8ea85b8dbfd2a3de2bcd9;hb=6278320cc85da00d2d56ffbf07806e84966892c3;hp=578dfa77783cc89864dd6680d7a24347d275123e;hpb=2012716d624d631dcdb825fdd4470908e115a717;p=gdcm.git diff --git a/src/gdcmDicomDirElement.h b/src/gdcmDicomDirElement.h index 578dfa77..dc93c043 100644 --- a/src/gdcmDicomDirElement.h +++ b/src/gdcmDicomDirElement.h @@ -3,12 +3,12 @@ Program: gdcm Module: $RCSfile: gdcmDicomDirElement.h,v $ Language: C++ - Date: $Date: 2004/06/20 18:08:47 $ - Version: $Revision: 1.8 $ + 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.htm for details. + 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 @@ -16,96 +16,147 @@ =========================================================================*/ -#ifndef GDCMDICOMDIRELEMENT_H -#define GDCMDICOMDIRELEMENT_H +#ifndef _GDCMDICOMDIRELEMENT_H_ +#define _GDCMDICOMDIRELEMENT_H_ -#include "gdcmCommon.h" +#include "gdcmRefCounter.h" +#include "gdcmVRKey.h" #include -//----------------------------------------------------------------------------- -typedef struct +namespace GDCM_NAME_SPACE { - /// DicomGroup number - unsigned short int group; - /// DicomElement number - unsigned short int elem; - /// value (coded as a std::string) of the Element - std::string value; -} gdcmElement; - -typedef std::list ListDicomDirMetaElem; -typedef std::list ListDicomDirPatientElem; -typedef std::list ListDicomDirStudyElem; -typedef std::list ListDicomDirSerieElem; -typedef std::list ListDicomDirImageElem; + +//----------------------------------------------------------------------------- + +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; +*/ //----------------------------------------------------------------------------- /** - * \ingroup gdcmDicomDirElement - * \brief gdcmDicomDirElement represents elements contained in a dicom dir - * Class for the chained lists from the file 'Dicts/DicomDir.dic' + * \brief Represents elements contained in a DicomDir class + * for the chained lists from the file 'Dicts/DicomDir.dic' */ -class GDCM_EXPORT gdcmDicomDirElement +class GDCM_EXPORT DicomDirElement : public RefCounter { + gdcmTypeMacro(DicomDirElement); + public: - gdcmDicomDirElement(void); - ~gdcmDicomDirElement(void); +/// \brief Contructs a DicomDirElement with a RefCounter + static DicomDirElement *New() {return new DicomDirElement();} - /** + /** * \brief canonical Printer - * \sa SetPrintLevel - */ - void Print(std::ostream &os); -/** - * \ingroup gdcmDicomDirElement - * \brief returns a reference to the chained List - * related to the META Elements of a DICOMDIR. - */ - ListDicomDirMetaElem &GetDicomDirMetaElements(void) - {return(DicomDirMetaList);}; -/** - * \ingroup gdcmDicomDirElement - * \brief returns a reference to the chained List - * related to the PATIENT Elements of a DICOMDIR. - */ - ListDicomDirPatientElem &GetDicomDirPatientElements(void) - {return(DicomDirPatientList);}; -/** - * \ingroup gdcmDicomDirElement - * \brief returns a reference to the chained List - * related to the STUDY Elements of a DICOMDIR. - */ - ListDicomDirStudyElem &GetDicomDirStudyElements(void) - {return(DicomDirStudyList);}; -/** - * \ingroup gdcmDicomDirElement - * \brief returns a reference to the chained List - * related to the SERIE Elements of a DICOMDIR. - */ - ListDicomDirSerieElem &GetDicomDirSerieElements(void) - {return(DicomDirSerieList);}; -/** - * \ingroup gdcmDicomDirElement - * \brief returns a reference to the chained List - * related to the IMAGE Elements of a DICOMDIR. - */ - ListDicomDirImageElem &GetDicomDirImageElements(void) - {return(DicomDirImageList);}; + */ + 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: - /// gdcmElements chained list, related to the MetaElements of DICOMDIR + /// Elements chained list, related to the MetaElements of DICOMDIR ListDicomDirMetaElem DicomDirMetaList; - /// gdcmElements chained list, related to the PatientElements of DICOMDIR + /// Elements chained list, related to the PatientElements of DICOMDIR ListDicomDirPatientElem DicomDirPatientList; - /// gdcmElements chained list, related to the StudyElements of DICOMDIR + /// Elements chained list, related to the StudyElements of DICOMDIR ListDicomDirStudyElem DicomDirStudyList; - /// gdcmElements chained list, related to the SerieElements of DICOMDIR + /// Elements chained list, related to the VisitElements of DICOMDIR + ListDicomDirVisitElem DicomDirVisitList; + /// Elements chained list, related to the SerieElements of DICOMDIR ListDicomDirSerieElem DicomDirSerieList; - /// gdcmElements chained list, related to the ImageElements of DICOMDIR - + /// 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