X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirSerie.h;h=13065eb476200cff5cf9102d692955ce62ef94e2;hb=80075429b6ab9db9e885b9bb9ae1427530c7bef8;hp=4449d20d0008d84de66b3476fa72611eeb5d0ae3;hpb=ef0c45b292557174c768c2cc7fc11fea4d57e218;p=gdcm.git diff --git a/src/gdcmDicomDirSerie.h b/src/gdcmDicomDirSerie.h index 4449d20d..13065eb4 100644 --- a/src/gdcmDicomDirSerie.h +++ b/src/gdcmDicomDirSerie.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDicomDirSerie.h,v $ Language: C++ - Date: $Date: 2005/01/18 07:53:42 $ - Version: $Revision: 1.21 $ + Date: $Date: 2007/08/29 15:30:49 $ + Version: $Revision: 1.38 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -16,17 +16,19 @@ =========================================================================*/ -#ifndef GDCMDICOMDIRSERIE_H -#define GDCMDICOMDIRSERIE_H +#ifndef _GDCMDICOMDIRSERIE_H_ +#define _GDCMDICOMDIRSERIE_H_ #include "gdcmDicomDirObject.h" -namespace gdcm +namespace GDCM_NAME_SPACE { class DicomDirImage; +class DicomDirPrivate; + //----------------------------------------------------------------------------- typedef std::list ListDicomDirImage; - +typedef std::list ListDicomDirPrivate; //----------------------------------------------------------------------------- /** * \brief describes a SERIE within a within a STUDY @@ -34,31 +36,138 @@ typedef std::list ListDicomDirImage; */ class GDCM_EXPORT DicomDirSerie : public DicomDirObject { -public: - DicomDirSerie(); - ~DicomDirSerie(); + gdcmTypeMacro(DicomDirSerie); - void Print( std::ostream &os = std::cout, std::string const & indent = "" ); - void WriteContent( std::ofstream *fp, FileType t ); - - /// Returns the IMAGE chained List for this SERIE. - ListDicomDirImage const &GetDicomDirImages() const { return Images; }; +public: +/// \brief Constructs a DicomDirSerie with a RefCounter + static DicomDirSerie *New(bool empty=false) {return new DicomDirSerie(empty);} - // should avoid exposing internal mechanism - DicomDirImage *GetFirstEntry(); - DicomDirImage *GetNextEntry(); - - /// adds the passed IMAGE to the IMAGE chained List for this SERIE. - void AddDicomDirImage(DicomDirImage *obj) { Images.push_back(obj); }; + void Print( std::ostream &os = std::cout, std::string const &indent = "" ); + void WriteContent( std::ofstream *fp, FileType t, bool insideMetaElements, + bool insideSequence ); + // 'Image' methods DicomDirImage *NewImage(); + /// Add a new gdcm::DicomDirImage to the Serie + void AddImage(DicomDirImage *obj) { Images.push_back(obj); } + void ClearImage(); -private: + DicomDirImage *GetFirstImage(); + DicomDirImage *GetNextImage(); + /// returns the number of Images currently held in the gdcm::DicomDirSerie + int GetNumberOfImages() { return Images.size();} + + // 'Private' methods (For SIEMENS 'CSA non image') + DicomDirPrivate *NewPrivate(); + /// Add a new gdcm::DicomDirPrivate to the Serie + void AddPrivate(DicomDirPrivate *obj) { Privates.push_back(obj); } + void ClearPrivate(); + + DicomDirPrivate *GetFirstPrivate(); + DicomDirPrivate *GetNextPrivate(); + /// returns the number of 'Privates' currently held in the gdcm::DicomDirSerie + int GetNumberOfPrivates() { return Privates.size();} + + virtual void Copy(DocEntrySet *set); +protected: + DicomDirSerie(bool empty=false); + ~DicomDirSerie(); + +private: ///chained list of DicomDirImages (to be exploited recursively) ListDicomDirImage Images; /// iterator on the DicomDirImages of the current DicomDirSerie - ListDicomDirImage::iterator ItDicomDirImage; + ListDicomDirImage::iterator ItImage; + + ///chained list of DicomDirPrivates (to be exploited recursively) + ListDicomDirPrivate Privates; + /// iterator on the DicomDirPrivates of the current DicomDirSerie + ListDicomDirPrivate::iterator ItPrivate; +/* +// for future use (Full DICOMDIR): + + /// chained list of DicomDirOverlays(single level) + ListDicomDirOverlay Overlays; + /// iterator on the DicomDirOverlays of the current DicomDirSerie + ListDicomDirOverlay::iterator ItOverlay; + + /// chained list of DicomDirModalityLuts(single level) + ListDicomDirModalityLut ModalityLuts; + /// iterator on the DicomDirModalityLuts of the current DicomDirSerie + ListDicomDirModalityLut::iterator ItModalityLuts; + + /// chained list of DicomDirCurves(single level) + ListDicomDirCurve Curves; + /// iterator on the DicomDirCurves of the current DicomDirSerie + ListDicomDirCurve::iterator ItCurves; + + /// chained list of DicomDirStoredPrints(single level) + ListDicomDirStoredPrint StoredPrints; + /// iterator on the DicomDirStoredPrints of the current DicomDirSerie + ListDicomDirStoredPrint::iterator ItStoredPrints; + + /// chained list of DicomDirRtDoses(single level) + ListDicomDirRtDose RtDoses; + /// iterator on the DicomDirRtDoses of the current DicomDirSerie + ListDicomDirRtDose::iterator ItRtDoses; + + /// chained list of DicomDirRtStructureSets(single level) + ListDicomDirRtStructureSet RtStructureSets; + /// iterator on the DicomDirRtStructureSets of the current DicomDirSerie + ListDicomDirRtStructureSet::iterator ItRtStructureSets; + + /// chained list of DicomDirRtPlans(single level) + ListDicomDirRtPlan RtPlans; + /// iterator on the DicomDirRtPlans of the current DicomDirSerie + ListDicomDirPlan::iterator ItRtPlans; + + /// chained list of DicomDirRtTreatRecords(single level) + ListDicomDirRtTreatRecord RtTreatRecords; + /// iterator on the DicomDirRtTreatRecords of the current DicomDirSerie + ListDicomDirRtTreatRecord::iterator ItRtTreatRecords; + + /// chained list of DicomDirPresentations(single level) + ListDicomDirPresentation Presentations; + /// iterator on the DicomDirPresentations of the current DicomDirSerie + ListDicomDirPresentation::iterator ItPresentations; + + /// chained list of DicomDirWaveForms(single level) + ListDicomDirWaveForm WaveForms; + /// iterator on the DicomDirWaveForms of the current DicomDirSerie + ListDicomDirWaveForm::iterator ItWaveForms; + + /// chained list of DicomDirSrDocuments(single level) + ListDicomDirSrDocument SrDocuments; + /// iterator on the DicomDirSrDocuments of the current DicomDirSerie + ListDicomDirSrDocument::iterator ItSrDocuments; + + /// chained list of DicomDirKeyObjectDocs(single level) + ListDicomDirKeyObjectDoc KeyObjectDocs; + /// iterator on the DicomDirKeyObjectDocs of the current DicomDirSerie + ListDicomDirKeyObjectDoc::iterator ItKeyObjectDocs; + + /// chained list of DicomDirSpectroscopys(single level) + ListDicomDirSpectroscopy Spectroscopys; + /// iterator on the DicomDirSpectroscopys of the current DicomDirSerie + ListDicomDirSpectroscopy::iterator ItSpectroscopys; + + /// chained list of DicomDirRawDatas(single level) + ListDicomDirRawData RawDatas; + /// iterator on the DicomDirRawDatas of the current DicomDirSerie + ListDicomDirRawData::iterator ItRawDatas; + + /// chained list of DicomDirRegistrations(single level) + ListDicomDirRegistration Registrations; + /// iterator on the DicomDirRegistrations of the current DicomDirSerie + ListDicomDirRegistration::iterator ItRegistrations; + + /// chained list of DicomDirFiducials(single level) + ListDicomDirFiducial Fiducials; + /// iterator on the DicomDirFiducials of the current DicomDirSerie + ListDicomDirFiducial::iterator ItFiducials; +*/ + }; } // end namespace gdcm //-----------------------------------------------------------------------------