X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDocument.cxx;h=3dc2920c89d7b885cef9f363e393b0d64210fd76;hb=e24cb386c7f7f528be31335de6942dfbbf21334a;hp=6de517611e6ae675c4ae9f2712b9e7bee9ed69ba;hpb=8b7ccc5d0086fd3df994c18e2883bc0e3f7d1984;p=gdcm.git diff --git a/src/gdcmDocument.cxx b/src/gdcmDocument.cxx index 6de51761..3dc2920c 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/10/18 19:54:26 $ - Version: $Revision: 1.296 $ + Date: $Date: 2005/10/21 07:38:58 $ + Version: $Revision: 1.302 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -127,7 +127,7 @@ bool Document::DoTheLoadingDocumentJob( ) Group0002Parsed = false; - gdcmWarningMacro( "Starting parsing of file: " << Filename.c_str()); + gdcmDebugMacro( "Starting parsing of file: " << Filename.c_str()); Fp->seekg(0, std::ios::end); long lgt = Fp->tellg(); // total length of the file @@ -277,7 +277,7 @@ bool Document::DoTheLoadingDocumentJob( ) */ void Document::AddForceLoadElement (uint16_t group, uint16_t elem) { - Element el; + DicomElement el; el.Group = group; el.Elem = elem; UserForceLoadList.push_back(el); @@ -660,7 +660,7 @@ void Document::LoadEntryBinArea(uint16_t group, uint16_t elem) /** * \brief Loads (from disk) the element content * when a string is not suitable - * @param elem Entry whose binArea is going to be loaded + * @param entry Entry whose binArea is going to be loaded */ void Document::LoadEntryBinArea(DataEntry *entry) { @@ -1081,8 +1081,7 @@ void Document::ParseDES(DocEntrySet *set, long offset, if ( newDocEntry->GetGroup()%2 != 0 ) { Fp->seekg( l, std::ios::cur); - RemoveEntry( newDocEntry ); // Remove and delete - //used = false; // never used + delete newDocEntry; // Delete, not in the set continue; } } @@ -1090,8 +1089,7 @@ void Document::ParseDES(DocEntrySet *set, long offset, { // User asked to skip *any* SeQuence Fp->seekg( l, std::ios::cur); - //used = false; // never used - RemoveEntry( newDocEntry ); // Remove and delete + delete newDocEntry; // Delete, not in the set continue; } // delay the dynamic cast as late as possible @@ -1104,11 +1102,9 @@ void Document::ParseDES(DocEntrySet *set, long offset, // is a Document, then we are building the first depth level. // Hence the SeqEntry we are building simply has a depth // level of one: -// SQItem *parentSQItem = dynamic_cast< SQItem* > ( set ); if ( set == this ) // ( dynamic_cast< Document* > ( set ) ) { newSeqEntry->SetDepthLevel( 1 ); - // newSeqEntry->SetKey( newSeqEntry->GetKey() ); } // But when "set" is already a SQItem, we are building a nested // sequence, and hence the depth level of the new SeqEntry @@ -1118,9 +1114,6 @@ void Document::ParseDES(DocEntrySet *set, long offset, else if (SQItem *parentSQItem = dynamic_cast< SQItem* > ( set ) ) { newSeqEntry->SetDepthLevel( parentSQItem->GetDepthLevel() + 1 ); - - // newSeqEntry->SetKey( parentSQItem->GetBaseTagKey() - // + newSeqEntry->GetKey() ); } if ( l != 0 ) @@ -1160,7 +1153,7 @@ void Document::ParseDES(DocEntrySet *set, long offset, } first = false; } // end While - gdcmWarningMacro( "Exit from ParseDES, delim-mode " << delim_mode ); + gdcmDebugMacro( "Exit from ParseDES, delim-mode " << delim_mode ); } /** @@ -1496,7 +1489,7 @@ VRKey Document::FindDocEntryVR() VRKey vr; Fp->read(&(vr[0]),(size_t)2); - gdcmWarningMacro( "--> VR: " << vr ) + gdcmDebugMacro( "--> VR: " << vr ) if ( !CheckDocEntryVR(vr) ) { gdcmWarningMacro( "Unknown VR '" << vr << "'" ) @@ -1647,9 +1640,9 @@ bool Document::IsDocEntryAnInteger(DocEntry *entry) } else { - // Allthough this should never happen, still some images have a + // Although this should never happen, still some images have a // corrupted group length [e.g. have a glance at offset x(8336) of - // gdcmData/gdcm-MR-PHILIPS-16-Multi-Seq.dcm]. + // gdcmData/gdcm-MR-PHILIPS-16-Multi-Seq.dcm. // Since for dicom compliant and well behaved headers, the present // test is useless (and might even look a bit paranoid), when we // encounter such an ill-formed image, we simply display a warning @@ -1695,7 +1688,7 @@ bool Document::CheckSwap() char *entCur = deb + 128; if ( memcmp(entCur, "DICM", (size_t)4) == 0 ) { - gdcmWarningMacro( "Looks like DICOM Version3 (preamble + DCM)" ); + gdcmDebugMacro( "Looks like DICOM Version3 (preamble + DCM)" ); // Group 0002 should always be VR, and the first element 0000 // Let's be carefull (so many wrong headers ...) @@ -1727,24 +1720,24 @@ bool Document::CheckSwap() // instead of just checking for UL, OB and UI !? group 0000 { Filetype = ExplicitVR; - gdcmWarningMacro( "Group 0002 : Explicit Value Representation"); + gdcmDebugMacro( "Group 0002 : Explicit Value Representation"); } else { Filetype = ImplicitVR; - gdcmWarningMacro( "Group 0002 :Not an explicit Value Representation;" + gdcmErrorMacro( "Group 0002 :Not an explicit Value Representation;" << "Looks like a bugged Header!"); } if ( net2host ) { SwapCode = 4321; - gdcmWarningMacro( "HostByteOrder != NetworkByteOrder"); + gdcmDebugMacro( "HostByteOrder != NetworkByteOrder"); } else { SwapCode = 1234; - gdcmWarningMacro( "HostByteOrder = NetworkByteOrder"); + gdcmDebugMacro( "HostByteOrder = NetworkByteOrder"); } // Position the file position indicator at first tag @@ -1791,7 +1784,7 @@ bool Document::CheckSwap() memcmp(entCur, "OB", (size_t)2) == 0 ) { Filetype = ExplicitVR; - gdcmWarningMacro( "Group 0002 : Explicit Value Representation"); + gdcmDebugMacro( "Group 0002 : Explicit Value Representation"); return true; } } @@ -1880,8 +1873,8 @@ bool Document::CheckSwap() */ void Document::SwitchByteSwapCode() { - gdcmWarningMacro( "Switching Byte Swap code from "<< SwapCode - << " at :" <tellg() ); + gdcmDebugMacro( "Switching Byte Swap code from "<< SwapCode + << " at: 0x" << std::hex << Fp->tellg() ); if ( SwapCode == 1234 ) { SwapCode = 4321; @@ -1898,6 +1891,7 @@ void Document::SwitchByteSwapCode() { SwapCode = 3412; } + gdcmDebugMacro( " Into: "<< SwapCode ); } /** @@ -1971,10 +1965,11 @@ DocEntry *Document::ReadNextDocEntry() if ( dictEntry ) { realVR = dictEntry->GetVR(); + dictEntry->Unregister(); } } } - gdcmWarningMacro( "Found VR: " << vr << " / Real VR: " << realVR ); + gdcmDebugMacro( "Found VR: " << vr << " / Real VR: " << realVR ); DocEntry *newEntry; if ( Global::GetVR()->IsVROfSequence(realVR) )