X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDocEntrySet.cxx;h=9be0a71f6f9d575921ae1781ebfa6d172e90d62e;hb=ab3dc69a71af640fa49cbd917272d9ff7d1651b6;hp=3ff3e607828479f313df832dad81e3381f1cbb8a;hpb=ce8913daafe02955368fd2f07e777e86824467cc;p=gdcm.git diff --git a/src/gdcmDocEntrySet.cxx b/src/gdcmDocEntrySet.cxx index 3ff3e607..9be0a71f 100644 --- a/src/gdcmDocEntrySet.cxx +++ b/src/gdcmDocEntrySet.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDocEntrySet.cxx,v $ Language: C++ - Date: $Date: 2005/01/25 15:44:23 $ - Version: $Revision: 1.45 $ + Date: $Date: 2005/01/26 11:42:02 $ + Version: $Revision: 1.49 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -32,7 +32,7 @@ namespace gdcm //----------------------------------------------------------------------------- // Public /** - * \brief Get the (std::string representable) value of the Dicom entry + * \brief Get the "std::string representable" value of the Dicom entry * @param group Group number of the searched tag. * @param elem Element number of the searched tag. * @return Corresponding element value when it exists, @@ -40,7 +40,7 @@ namespace gdcm */ std::string DocEntrySet::GetEntryValue(uint16_t group, uint16_t elem) { - ValEntry *entry = GetValEntry(group,elem); + ContentEntry *entry = dynamic_cast(GetDocEntry(group,elem)); if( entry ) return entry->GetValue(); return GDCM_UNFOUND; @@ -48,7 +48,6 @@ std::string DocEntrySet::GetEntryValue(uint16_t group, uint16_t elem) /** * \brief Gets (from Header) a 'non string' element value - * (LoadElementValues has already be executed) * @param group group number of the Entry * @param elem element number of the Entry * @return Pointer to the 'non string' area @@ -79,7 +78,7 @@ int DocEntrySet::GetEntryLength(uint16_t group, uint16_t elem) /** * \brief Searches within Header Entries (Dicom Elements) parsed with - * the public and private dictionaries + * the public [and private dictionaries] * for the element value representation of a given tag.. * Obtaining the VR (Value Representation) might be needed by caller * to convert the string typed content to caller's native type @@ -119,15 +118,19 @@ ValEntry *DocEntrySet::GetValEntry(uint16_t group, uint16_t elem) * \brief Same as \ref Document::GetDocEntry except it only * returns a result when the corresponding entry is of type * BinEntry. - * @param group Group number of the searched Dicom Element - * @param elem Element number of the searched Dicom Element + * @param group Group number of the searched Dicom Element + * @param elem Element number of the searched Dicom Element * @return When present, the corresponding BinEntry. */ BinEntry *DocEntrySet::GetBinEntry(uint16_t group, uint16_t elem) { DocEntry *currentEntry = GetDocEntry(group, elem); if ( !currentEntry ) + { + gdcmVerboseMacro( "No corresponding BinEntry " << std::hex << group << + "," << elem); return NULL; + } return dynamic_cast(currentEntry); } @@ -144,7 +147,11 @@ SeqEntry *DocEntrySet::GetSeqEntry(uint16_t group, uint16_t elem) { DocEntry *currentEntry = GetDocEntry(group, elem); if ( !currentEntry ) + { + gdcmVerboseMacro( "No corresponding SeqEntry " << std::hex << group << + "," << elem); return NULL; + } return dynamic_cast(currentEntry); } @@ -163,7 +170,8 @@ bool DocEntrySet::SetValEntry(std::string const& content, ValEntry *entry = GetValEntry(group, elem); if (!entry ) { - gdcmVerboseMacro( "No corresponding ValEntry (try promotion first)."); + gdcmVerboseMacro( "No corresponding ValEntry " << std::hex << group << + "," << elem << " element (try promotion first)."); return false; } return SetValEntry(content,entry); @@ -178,13 +186,14 @@ bool DocEntrySet::SetValEntry(std::string const& content, * @param group group number of the Dicom Element to modify * @param elem element number of the Dicom Element to modify */ -bool DocEntrySet::SetBinEntry(uint8_t*content, int lgth, +bool DocEntrySet::SetBinEntry(uint8_t *content, int lgth, uint16_t group, uint16_t elem) { BinEntry *entry = GetBinEntry(group, elem); if (!entry ) { - gdcmVerboseMacro( "No corresponding ValEntry (try promotion first)."); + gdcmVerboseMacro( "No corresponding ValEntry " << std::hex << group << + "," << elem << " element (try promotion first)."); return false; } @@ -436,8 +445,6 @@ DictEntry* DocEntrySet::NewVirtualDictEntry( uint16_t group,uint16_t elem, return Global::GetDicts()->NewVirtualDictEntry(group,elem,vr,vm,name); } -//----------------------------------------------------------------------------- -// Protected /** * \brief Build a new Val Entry from all the low level arguments. * Check for existence of dictionary entry, and build @@ -506,6 +513,8 @@ SeqEntry* DocEntrySet::NewSeqEntry(uint16_t group,uint16_t elem) return newEntry; } +//----------------------------------------------------------------------------- +// Protected /** * \brief Searches [both] the public [and the shadow dictionary (when they * exist)] for the presence of the DictEntry with given @@ -530,10 +539,9 @@ DictEntry *DocEntrySet::GetDictEntry(uint16_t group,uint16_t elem) return found; } - /** - * \brief Searches both the public and the shadow dictionary (when they - * exist) for the presence of the DictEntry with given + * \brief Searches [both] the public [and the shadow dictionary (when they + * exist)] for the presence of the DictEntry with given * group and element, and create a new virtual DictEntry if necessary * @param group group number of the searched DictEntry * @param elem element number of the searched DictEntry