From 130558c1fc10cbc2d5d58484b310fa86bd20d81b Mon Sep 17 00:00:00 2001 From: jpr Date: Tue, 18 Jan 2005 18:03:16 +0000 Subject: [PATCH] Add missing Document::GetSeqEntry() method --- src/gdcmDocument.cxx | 41 +++++++++++++++++++++++++++++++---------- src/gdcmDocument.h | 5 +++-- src/gdcmElementSet.h | 8 ++++---- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/src/gdcmDocument.cxx b/src/gdcmDocument.cxx index 12a0a05f..4adb7d94 100644 --- a/src/gdcmDocument.cxx +++ b/src/gdcmDocument.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDocument.cxx,v $ Language: C++ - Date: $Date: 2005/01/18 16:23:52 $ - Version: $Revision: 1.197 $ + Date: $Date: 2005/01/18 18:03:16 $ + Version: $Revision: 1.198 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -923,11 +923,7 @@ void Document::LoadEntryBinArea(BinEntry *elem) }*/ /** - * \brief retrieves a Dicom Element (the first one) using (group, element) - * \warning (group, element) IS NOT an identifier inside the Dicom Header - * if you think it's NOT UNIQUE, check the count number - * and use iterators to retrieve ALL the Dicoms Elements within - * a given couple (group, element) + * \brief retrieves a Dicom Element using (group, element) * @param group Group number of the searched Dicom Element * @param elem Element number of the searched Dicom Element * @return @@ -991,9 +987,34 @@ BinEntry *Document::GetBinEntry(uint16_t group, uint16_t elem) } /** - * \brief Loads the element while preserving the current - * underlying file position indicator as opposed to - * to LoadDocEntry that modifies it. + * \brief Same as \ref Document::GetDocEntry except it only + * returns a result when the corresponding entry is of type + * SeqEntry. + * @param group Group number of the searched Dicom Element + * @param elem Element number of the searched Dicom Element + * @return When present, the corresponding SeqEntry. + */ +SeqEntry *Document::GetSeqEntry(uint16_t group, uint16_t elem) +{ + DocEntry *currentEntry = GetDocEntry(group, elem); + if ( !currentEntry ) + { + return 0; + } + if ( SeqEntry *entry = dynamic_cast(currentEntry) ) + { + return entry; + } + gdcmVerboseMacro( "Unfound SeqEntry."); + + return 0; +} + + +/** + * \brief Loads the element while preserving the current + * underlying file position indicator as opposed to + * LoadDocEntry that modifies it. * @param entry Header Entry whose value will be loaded. * @return */ diff --git a/src/gdcmDocument.h b/src/gdcmDocument.h index 6b6376b0..37d2f83e 100644 --- a/src/gdcmDocument.h +++ b/src/gdcmDocument.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDocument.h,v $ Language: C++ - Date: $Date: 2005/01/18 16:23:52 $ - Version: $Revision: 1.90 $ + Date: $Date: 2005/01/18 18:03:17 $ + Version: $Revision: 1.91 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -102,6 +102,7 @@ public: DocEntry *GetDocEntry(uint16_t group, uint16_t element); ValEntry *GetValEntry(uint16_t group, uint16_t element); BinEntry *GetBinEntry(uint16_t group, uint16_t element); + SeqEntry *GetSeqEntry(uint16_t group, uint16_t element); ValEntry *ReplaceOrCreate(std::string const &value, uint16_t group, uint16_t elem, diff --git a/src/gdcmElementSet.h b/src/gdcmElementSet.h index 3bd508c7..2b7cc0c9 100644 --- a/src/gdcmElementSet.h +++ b/src/gdcmElementSet.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmElementSet.h,v $ Language: C++ - Date: $Date: 2005/01/18 08:01:41 $ - Version: $Revision: 1.32 $ + Date: $Date: 2005/01/18 18:03:17 $ + Version: $Revision: 1.33 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -47,7 +47,7 @@ public: ElementSet(int); ~ElementSet(); - virtual void Print(std::ostream &os = std::cout, std::string const & indent = "" ); + virtual void Print(std::ostream &os = std::cout, std::string const &indent = "" ); bool AddEntry(DocEntry *Entry); bool RemoveEntry(DocEntry *EntryToRemove); @@ -68,7 +68,7 @@ private: TagDocEntryHT::iterator ItTagHT; friend class Document; - friend class DicomDir; //For accessing private TagHT + friend class DicomDir; //For accessing private TagHT friend class DocEntryArchive; //For accessing private TagHT }; } // end namespace gdcm -- 2.45.1