]> Creatis software - gdcm.git/blobdiff - src/gdcmFile.cxx
* Error message amelioration
[gdcm.git] / src / gdcmFile.cxx
index fe54402e1fddbfd7358d8603e2c873d0032decce..1eeac151d2be4778668a926446689f0b50040bbc 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmFile.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/10/18 12:58:28 $
-  Version:   $Revision: 1.277 $
+  Date:      $Date: 2005/10/19 09:27:24 $
+  Version:   $Revision: 1.280 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -581,7 +581,7 @@ float File::GetYSpacing()
    }
    else
    {
-      gdcmWarningMacro( "Unfound Pixel Spacing (0018,1164)" );
+      gdcmWarningMacro( "Unfound Imager Pixel Spacing (0018,1164)" );
    }
 /*   const std::string &strImagerPixelSpacing = GetEntryString(0x0018,0x1164);
    if ( strImagerPixelSpacing != GDCM_UNFOUND )
@@ -1761,14 +1761,18 @@ bool File::Write(std::string fileName, FileType writetype)
       e0000->SetString(sLen.str());
    }
 
-   int i_lgPix = GetEntryLength(GrPixel, NumPixel);
-   if (i_lgPix != -2)
-   {
-      // no (GrPixel, NumPixel) element
-      std::string s_lgPix = Util::Format("%d", i_lgPix+12);
-      s_lgPix = Util::DicomString( s_lgPix.c_str() );
-      InsertEntryString(s_lgPix,GrPixel, 0x0000);
-   }
+   // Derma?.dcm does not have it...let's remove it  FIXME FIXME
+   if( writetype != JPEG )
+     {
+     int i_lgPix = GetEntryLength(GrPixel, NumPixel);
+     if (i_lgPix != -2)
+       {
+       // no (GrPixel, NumPixel) element
+       std::string s_lgPix = Util::Format("%d", i_lgPix+12);
+       s_lgPix = Util::DicomString( s_lgPix.c_str() );
+       InsertEntryString(s_lgPix,GrPixel, 0x0000);
+       }
+     }
 
    Document::WriteContent(fp, writetype);
 
@@ -1996,9 +2000,9 @@ bool File::ReadTag(uint16_t testGroup, uint16_t testElem)
    {
       gdcmWarningMacro( "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 << ")"
+       << DictEntry::TranslateToKey(itemTagGroup,itemTagElem) << ")"
        << "  at address: " << "  0x(" << (unsigned int)currentPosition  << ")" 
        ) ;
       Fp->seekg(positionOnEntry, std::ios::beg);
@@ -2027,17 +2031,16 @@ uint32_t File::ReadTagLength(uint16_t testGroup, uint16_t testElem)
 
    if ( !ReadTag(testGroup, testElem) )
    {
+      gdcmErrorMacro( "ReadTag did not succeed... for "
+                    << DictEntry::TranslateToKey(testGroup,testElem) );
       return 0;
    }
                                                                                 
    //// Then read the associated Item Length
    long currentPosition = Fp->tellg();
    uint32_t itemLength  = ReadInt32();
-   {
-      gdcmWarningMacro( "Basic Item Length is: "
-        << itemLength << std::endl
+   gdcmDebugMacro( "Basic Item Length is: " << itemLength 
         << "  at address: " << std::hex << (unsigned int)currentPosition);
-   }
    return itemLength;
 }