]> Creatis software - gdcm.git/blobdiff - src/gdcmHeader.cxx
Correction of previous commit. Sorry. --- Frog.
[gdcm.git] / src / gdcmHeader.cxx
index 10404615a6d4098fb49f11ad4ef68abc9488656d..4ec3a7906e1babeef1838436334fcb4138ed4269 100644 (file)
@@ -1,4 +1,4 @@
-// gdcmHeader.cxx
+// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.cxx,v 1.64 2003/05/07 12:49:10 frog Exp $
 
 #include <stdio.h>
 #include <cerrno>
@@ -29,7 +29,8 @@ gdcmHeader::gdcmHeader(const char *InFilename, bool exception_on_error) {
   SetMaxSizeLoadElementValue(_MaxSizeLoadElementValue_);
   filename = InFilename;
   Initialise();
-  OpenFile(exception_on_error);
+  if ( !OpenFile(exception_on_error))
+     return;
   ParseHeader();
   LoadElements();
   CloseFile();
@@ -42,10 +43,9 @@ bool gdcmHeader::OpenFile(bool exception_on_error)
     if(!fp)
       throw gdcmFileError("gdcmHeader::gdcmHeader(const char *, bool)");
   }
-  else
-    dbg.Error(!fp, "gdcmHeader::gdcmHeader cannot open file", filename.c_str());
   if ( fp )
      return true;
+  dbg.Verbose(0, "gdcmHeader::gdcmHeader cannot open file", filename.c_str());
   return false;
 }
 
@@ -428,6 +428,7 @@ bool gdcmHeader::IsJPEGLossless(void) {
       return false;
    LoadElementValueSafe(Element);
    const char * Transfert = Element->GetValue().c_str();
+   printf("TransfertSyntx %s\n",Transfert);
    if ( memcmp(Transfert+strlen(Transfert)-2 ,"70",2)==0) return true;
    if ( memcmp(Transfert+strlen(Transfert)-2 ,"55",2)==0) return true;
    return false;
@@ -862,6 +863,18 @@ guint32 gdcmHeader::ReadInt32(void) {
    return g;
 }
 
+
+gdcmElValue* gdcmHeader::GetElValueByNumber(guint16 Group, guint16 Elem) {
+
+   gdcmElValue* elValue = PubElValSet.GetElementByNumber(Group, Elem);  
+   if (!elValue) {
+      dbg.Verbose(1, "gdcmHeader::GetElValueByNumber",
+                  "failed to Locate gdcmElValue");
+      return (gdcmElValue*)0;
+   }
+   return elValue;
+}
+
 /**
  * \ingroup gdcmHeader
  * \brief   Build a new Element Value from all the low level arguments. 
@@ -968,10 +981,11 @@ bool gdcmHeader::IsAnInteger(gdcmElValue * ElVal) {
       if (length == 4)
          return true;
       else {
-         printf("Erroneous Group Length element length %d\n",length);
+         printf("Erroneous Group Length element length (%04x , %04x) : %d\n",
+            group, element,length);
                     
          dbg.Error("gdcmHeader::IsAnInteger",
-                   "Erroneous Group Length element length.");     
+            "Erroneous Group Length element length.");     
       }
    }
  
@@ -1290,7 +1304,11 @@ string gdcmHeader::GetElValRepByName(string TagName) {
  */
 int gdcmHeader::SetPubElValByNumber(string content, guint16 group,
                                     guint16 element)
+                                    
+//TODO  : homogeneiser les noms : SetPubElValByNumber   qui appelle PubElValSet.SetElValueByNumber 
+//        pourquoi pas            SetPubElValueByNumber ??
 {
+
    return (  PubElValSet.SetElValueByNumber (content, group, element) );
 }