X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirStudy.h;h=936a7f7cc8bdbdd034d1ebd14762134b79df94ea;hb=0fe2afcdd153ff2ee8f3ba2b4b02478e154a57df;hp=4c69b7b0a7670934fca90b526bb2bced3a0fe9c8;hpb=22f785a2627d1e7823701193bd7624739a3e033b;p=gdcm.git diff --git a/src/gdcmDicomDirStudy.h b/src/gdcmDicomDirStudy.h index 4c69b7b0..936a7f7c 100644 --- a/src/gdcmDicomDirStudy.h +++ b/src/gdcmDicomDirStudy.h @@ -1,28 +1,104 @@ -// gdcmDicomDirStudy.h -//----------------------------------------------------------------------------- +/*========================================================================= + + Program: gdcm + Module: $RCSfile: gdcmDicomDirStudy.h,v $ + Language: C++ + Date: $Date: 2005/02/07 14:48:34 $ + Version: $Revision: 1.26 $ + + 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 GDCMDICOMDIRSTUDY_H #define GDCMDICOMDIRSTUDY_H -#include "gdcmObject.h" -#include "gdcmDicomDirSerie.h" +#include "gdcmDicomDirObject.h" +namespace gdcm +{ +class DicomDirSerie; //----------------------------------------------------------------------------- -typedef std::list ListDicomDirSerie; +typedef std::list ListDicomDirSerie; +/* +// For future use (Full DICOMDIR) +typedef std::list ListDicomDirVisit; +typedef std::list ListDicomDirResult; +typedef std::list ListDicomDirStudyComponent; + +*/ //----------------------------------------------------------------------------- -class GDCM_EXPORT gdcmDicomDirStudy : public gdcmObject { +/** + * \brief describes a STUDY within a within a PATIENT + * (DicomDirPatient) of a given DICOMDIR (DicomDir) + */ +class GDCM_EXPORT DicomDirStudy : public DicomDirObject +{ public: - gdcmDicomDirStudy(ListTag::iterator begin,ListTag::iterator end); - ~gdcmDicomDirStudy(void); + DicomDirStudy(bool empty=false); + ~DicomDirStudy(); + + void Print(std::ostream &os = std::cout, std::string const &indent = "" ); + void WriteContent(std::ofstream *fp, FileType t); + + // Serie methods + DicomDirSerie *NewSerie(); + /// Adds a gdcm::DicomDirSerie to a Study + void AddSerie(DicomDirSerie *obj) { Series.push_back(obj); }; + void ClearSerie(); + + DicomDirSerie *GetFirstSerie(); + DicomDirSerie *GetNextSerie(); + DicomDirSerie *GetLastSerie(); + +/* + // for future use (Full DICOMDIR) - virtual void Print(std::ostream &os = std::cout); + DicomDirVisit *GetFirstVisit(); + DicomDirVisit *GetNextVisit(); - inline ListDicomDirSerie &GetDicomDirSeries() {return series;}; - inline void AddDicomDirSerie(gdcmDicomDirSerie *obj) {series.push_back(obj);}; + DicomDirResult *GetFirstResult(); + DicomDirResult *GetNextResult(); + DicomDirStudyComponent *GetFirstStudyComponent(); + DicomDirStudyComponent *GetNextStudyComponent(); + +*/ + private: - ListDicomDirSerie series; + + /// chained list of DicomDirSeries (to be exploited hierarchicaly) + ListDicomDirSerie Series; + /// iterator on the DicomDirSeries of the current DicomDirStudy + ListDicomDirSerie::iterator ItSerie; + +/* + // for future use (Full DICOMDIR) + + /// chained list of DicomDirVisits(single level) + ListDicomDirVisit Visits; + /// iterator on the DicomDirVisits of the current DicomDirStudy + ListDicomDirVisit::iterator ItVisit; + + /// chained list of DicomDirResults(single level) + ListDicomDirResult Results; + /// iterator on the DicomDirResults of the current DicomDirStudy + ListDicomDirResult::iterator ItResult; + + /// chained list of DicomDirStudyComponents(single level) + ListDicomDirStudyComponent StudyComponents; + /// iterator on the DicomDirStudyComponents of the current DicomDirStudy + ListDicomDirStudyComponent::iterator ItStudyComponents; +*/ }; +} // end namespace gdcm //----------------------------------------------------------------------------- #endif