X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FgdcmDicomDirPatient.cxx;h=ceeea5b4fe4179e6a699b5712105b98d5c8c3f73;hb=0ad9dae4659b21bfd5c834c1af724eab4dcdf4f6;hp=81ba43275d4d6a13081d70e7e410944ad8a0e3ff;hpb=963480c814326423065a4a02fa1bf8bc1243ae4f;p=gdcm.git diff --git a/src/gdcmDicomDirPatient.cxx b/src/gdcmDicomDirPatient.cxx index 81ba4327..ceeea5b4 100644 --- a/src/gdcmDicomDirPatient.cxx +++ b/src/gdcmDicomDirPatient.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDicomDirPatient.cxx,v $ Language: C++ - Date: $Date: 2005/01/18 11:39:59 $ - Version: $Revision: 1.27 $ + Date: $Date: 2005/01/23 10:12:33 $ + Version: $Revision: 1.31 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -31,10 +31,17 @@ namespace gdcm /** * \brief Constructor */ -DicomDirPatient::DicomDirPatient(): +DicomDirPatient::DicomDirPatient(bool empty): DicomDirObject() { + if( !empty ) + { + ListDicomDirStudyElem const &elemList = + Global::GetDicomDirElements()->GetDicomDirPatientElements(); + FillObject(elemList); + } } + /** * \brief Canonical destructor. */ @@ -53,6 +60,7 @@ DicomDirPatient::~DicomDirPatient() /** * \brief Prints the Object * @param os ostream to write to + * @param indent Indentation string to be prepended during printing */ void DicomDirPatient::Print(std::ostream &os, std::string const & ) { @@ -68,6 +76,8 @@ void DicomDirPatient::Print(std::ostream &os, std::string const & ) } } +//----------------------------------------------------------------------------- +// Public /** * \brief Writes the Object * @param fp ofstream to write to @@ -84,8 +94,6 @@ void DicomDirPatient::WriteContent(std::ofstream *fp, FileType t) (*cc)->WriteContent( fp, t ); } } -//----------------------------------------------------------------------------- -// Public /** * \brief adds a new Patient at the begining of the PatientList @@ -93,13 +101,8 @@ void DicomDirPatient::WriteContent(std::ofstream *fp, FileType t) */ DicomDirStudy* DicomDirPatient::NewStudy() { - ListDicomDirStudyElem const &elemList = - Global::GetDicomDirElements()->GetDicomDirStudyElements(); - DicomDirStudy *st = new DicomDirStudy(); - st->FillObject(elemList); - - Studies.push_front(st); + Studies.push_back(st); return st; } @@ -107,11 +110,11 @@ DicomDirStudy* DicomDirPatient::NewStudy() * \brief Get the first entry while visiting the DicomDirStudy * \return The first DicomDirStudy if found, otherwhise NULL */ -DicomDirStudy *DicomDirPatient::GetFirstEntry() +DicomDirStudy *DicomDirPatient::GetFirstStudy() { - ItDicomDirStudy = Studies.begin(); - if (ItDicomDirStudy != Studies.end()) - return *ItDicomDirStudy; + ItStudy = Studies.begin(); + if (ItStudy != Studies.end()) + return *ItStudy; return NULL; } @@ -120,16 +123,32 @@ DicomDirStudy *DicomDirPatient::GetFirstEntry() * \note : meaningfull only if GetFirstEntry already called * \return The next DicomDirStudies if found, otherwhise NULL */ -DicomDirStudy *DicomDirPatient::GetNextEntry() +DicomDirStudy *DicomDirPatient::GetNextStudy() +{ + gdcmAssertMacro (ItStudy != Studies.end()) + { + ++ItStudy; + if (ItStudy != Studies.end()) + return *ItStudy; + } + return NULL; +} + +/** + * \brief Get the first entry while visiting the DicomDirStudy + * \return The first DicomDirStudy if found, otherwhise NULL + */ +DicomDirStudy *DicomDirPatient::GetLastStudy() { - gdcmAssertMacro (ItDicomDirStudy != Studies.end()) + ItStudy = Studies.end(); + if (ItStudy != Studies.begin()) { - ++ItDicomDirStudy; - if (ItDicomDirStudy != Studies.end()) - return *ItDicomDirStudy; + --ItStudy; + return *ItStudy; } return NULL; } + //----------------------------------------------------------------------------- // Protected @@ -137,5 +156,4 @@ DicomDirStudy *DicomDirPatient::GetNextEntry() // Private //----------------------------------------------------------------------------- - } // end namespace gdcm