]> Creatis software - gdcm.git/blobdiff - src/gdcmFile.cxx
ENH: Adding IsValueCountValid. Should save a lot of time for dev, since we you really...
[gdcm.git] / src / gdcmFile.cxx
index 8820c7cf440201b4920f252b13c49a882dbe02e2..def9a2ba8bd8d53bbc5f7e4c4f92232d073eea79 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmFile.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/10/18 21:19:57 $
-  Version:   $Revision: 1.279 $
+  Date:      $Date: 2005/10/21 14:09:41 $
+  Version:   $Revision: 1.286 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -230,10 +230,11 @@ bool File::DoTheLoadingJob( )
          // Change only made if usefull
          if ( PixelVR != oldEntry->GetVR() )
          {
-            DictEntry* newDict = NewVirtualDictEntry(GrPixel,NumPixel,
-                                                     PixelVR,"1","Pixel Data");
+            DictEntry* newDict = DictEntry::New(GrPixel,NumPixel,
+                                                PixelVR,"1","Pixel Data");
 
             DataEntry *newEntry = new DataEntry(newDict);
+            newDict->Delete();
             newEntry->Copy(entry);
             newEntry->SetBinArea(oldEntry->GetBinArea(),oldEntry->IsSelfArea());
             oldEntry->SetSelfArea(false);
@@ -479,7 +480,7 @@ float File::GetXSpacing()
    }
    else
    {
-      gdcmWarningMacro( "Unfound Pixel Spacing (0018,1164)" );
+      gdcmWarningMacro( "Unfound Imager Pixel Spacing (0018,1164)" );
    }
 
 /*   const std::string &strImagerPixelSpacing = GetEntryString(0x0018,0x1164);
@@ -888,7 +889,6 @@ float File::GetZOrigin()
    entry = GetDataEntry(0x0020,0x0050);
    if( entry )
    {
-      gdcmWarningMacro( "Unfound Location (0020,0050)");
       if( entry->GetValueCount() == 1 )
          return (float)entry->GetValue(0);
       gdcmWarningMacro( "Wrong Location (0020,0050)");
@@ -1570,7 +1570,7 @@ size_t File::GetPixelAreaLength()
 void File::AddAnonymizeElement (uint16_t group, uint16_t elem, 
                                 std::string const &value) 
 { 
-   Element el;
+   DicomElement el;
    el.Group = group;
    el.Elem  = elem;
    el.Value = value;
@@ -1991,19 +1991,24 @@ bool File::ReadTag(uint16_t testGroup, uint16_t testElem)
       itemTagGroup = ReadInt16();
       itemTagElem  = ReadInt16();
    }
-   catch ( FormatError /*e*/ )
+   catch ( FormatError )
    {
-      //std::cerr << e << std::endl;
+      gdcmErrorMacro( "Can not read tag for "
+       << "   We should have found tag ("
+       << DictEntry::TranslateToKey(testGroup,testElem) << ")"
+       ) ;
+
       return false;
    }
    if ( itemTagGroup != testGroup || itemTagElem != testElem )
    {
-      gdcmWarningMacro( "Wrong Item Tag found:"
+      gdcmErrorMacro( "Wrong Item Tag found:"
        << "   We should have found tag ("
-       << std::hex << testGroup << "," << testElem << ")" << std::endl
+       << DictEntry::TranslateToKey(testGroup,testElem) << ")" << std::endl
        << "   but instead we encountered tag ("
-       << std::hex << itemTagGroup << "," << itemTagElem << ")"
-       << "  at address: " << "  0x(" << (unsigned int)currentPosition  << ")" 
+       << DictEntry::TranslateToKey(itemTagGroup,itemTagElem) << ")"
+       << "  at address: " << "  0x(" << std::hex 
+       << (unsigned int)currentPosition  << std::dec << ")" 
        ) ;
       Fp->seekg(positionOnEntry, std::ios::beg);
 
@@ -2031,7 +2036,9 @@ uint32_t File::ReadTagLength(uint16_t testGroup, uint16_t testElem)
 
    if ( !ReadTag(testGroup, testElem) )
    {
-      gdcmErrorMacro( "ReadTag did not succeed..." );
+      gdcmErrorMacro( "ReadTag did not succeed for ("
+                    << DictEntry::TranslateToKey(testGroup,testElem) 
+                    << ")..." );
       return 0;
    }
                                                                                 
@@ -2086,7 +2093,7 @@ void File::ReadEncapsulatedBasicOffsetTable()
 // These are the deprecated method that one day should be removed (after the next release)
 
 #ifndef GDCM_LEGACY_REMOVE
-/**
+/* *
  * \brief  Constructor (DEPRECATED : temporaryly kept not to break the API)
  * @param  filename name of the file whose header we want to analyze
  * @deprecated do not use any longer
@@ -2101,7 +2108,7 @@ File::File( std::string const &filename )
    Load( ); // gdcm::Document is first Loaded, then the 'File part'
 }
 
-/**
+/* *
  * \brief   Loader. (DEPRECATED :  temporaryly kept not to break the API)
  * @param   fileName file to be open for parsing
  * @return false if file cannot be open or no swap info was found,