X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirStudy.h;h=bdcdf624232b40e686fd8292f29da23ebe15586f;hb=948a61ee55f77597a187134c7699e3f2021226ba;hp=1a33f86f0b9737091d52f99fb54b6fe1f7841b82;hpb=ef0c45b292557174c768c2cc7fc11fea4d57e218;p=gdcm.git diff --git a/src/gdcmDicomDirStudy.h b/src/gdcmDicomDirStudy.h index 1a33f86f..bdcdf624 100644 --- a/src/gdcmDicomDirStudy.h +++ b/src/gdcmDicomDirStudy.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDicomDirStudy.h,v $ Language: C++ - Date: $Date: 2005/01/18 07:53:42 $ - Version: $Revision: 1.19 $ + Date: $Date: 2007/08/22 16:14:03 $ + 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 @@ -16,17 +16,25 @@ =========================================================================*/ -#ifndef GDCMDICOMDIRSTUDY_H -#define GDCMDICOMDIRSTUDY_H +#ifndef _GDCMDICOMDIRSTUDY_H_ +#define _GDCMDICOMDIRSTUDY_H_ #include "gdcmDicomDirObject.h" -namespace gdcm +namespace GDCM_NAME_SPACE { class DicomDirSerie; +class DicomDirVisit; //----------------------------------------------------------------------------- typedef std::list ListDicomDirSerie; + +// For future use (Full DICOMDIR) +typedef std::list ListDicomDirVisit; +/* +typedef std::list ListDicomDirResult; +typedef std::list ListDicomDirStudyComponent; +*/ //----------------------------------------------------------------------------- /** * \brief describes a STUDY within a within a PATIENT @@ -34,32 +42,78 @@ typedef std::list ListDicomDirSerie; */ class GDCM_EXPORT DicomDirStudy : public DicomDirObject { + gdcmTypeMacro(DicomDirStudy); + public: - DicomDirStudy(); - ~DicomDirStudy(); +/// \brief Constructs a DicomDirStudy with a RefCounter + static DicomDirStudy *New(bool empty=false) {return new DicomDirStudy(empty);} - void Print(std::ostream &os = std::cout, std::string const & indent = "" ); - void WriteContent(std::ofstream *fp, FileType t); + void Print(std::ostream &os = std::cout, std::string const &indent = "" ); + void WriteContent(std::ofstream *fp, FileType t, bool insideMetaElements); - /// Returns the SERIE chained List for this STUDY. - ListDicomDirSerie const &GetDicomDirSeries() const { return Series; }; + // 'Serie' methods + DicomDirSerie *NewSerie(); + /// Adds a gdcm::DicomDirSerie to a gdcm::DicomDirStudy + void AddSerie(DicomDirSerie *obj) { Series.push_back(obj); } + void ClearSerie(); + DicomDirSerie *GetFirstSerie(); + DicomDirSerie *GetNextSerie(); + DicomDirSerie *GetLastSerie(); + /// returns the number of Series currently held in the gdcm::DicomDirStudy + int GetNumberOfSeries() { return Series.size();} + + // 'Visit' methods + DicomDirVisit *NewVisit(); + /// Adds a gdcm::DicomDirVisit to a gdcm::DicomDirStudy + void AddVisit(DicomDirVisit *obj) { Visits.push_back(obj); } + void ClearVisit(); + DicomDirVisit *GetFirstVisit(); + DicomDirVisit *GetNextVisit(); + DicomDirVisit *GetLastVisit(); + /// returns the number of Visit currently held in the gdcm::DicomDirStudy + int GetNumberOfVisits() { return Visits.size();} + + // for future use (Full DICOMDIR) +/* + DicomDirResult *GetFirstResult(); + DicomDirResult *GetNextResult(); + DicomDirResult *GetLastResult(); - // should avoid exposing internal mechanism - DicomDirSerie *GetFirstEntry(); - DicomDirSerie *GetNextEntry(); + DicomDirStudyComponent *GetFirstStudyComponent(); + DicomDirStudyComponent *GetNextStudyComponent(); + DicomDirStudyComponent *GetLastStudyComponent(); +*/ - /// adds the passed SERIE to the SERIE chained List for this STUDY. - void AddDicomDirSerie(DicomDirSerie *obj) { Series.push_back(obj); }; + virtual void Copy(DocEntrySet *set); - DicomDirSerie* NewSerie(); - -private: +protected: + DicomDirStudy(bool empty=false); + ~DicomDirStudy(); - /// chained list of DicomDirSeries (to be exploited recursively) +private: + /// chained list of DicomDirSeries (to be exploited hierarchicaly) ListDicomDirSerie Series; /// iterator on the DicomDirSeries of the current DicomDirStudy - ListDicomDirSerie::iterator ItDicomDirSerie; + ListDicomDirSerie::iterator ItSerie; + + /// chained list of DicomDirVisits(single level) + ListDicomDirVisit Visits; + /// iterator on the DicomDirVisits of the current DicomDirStudy + ListDicomDirVisit::iterator ItVisit; + + + // for future use (Full DICOMDIR) +/* + /// 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