]> Creatis software - gdcm.git/commitdiff
gdcmElValSet::SetElValueByNumber and gdcmElValSet::SetElValueByName
authorjpr <jpr>
Wed, 30 Apr 2003 15:52:09 +0000 (15:52 +0000)
committerjpr <jpr>
Wed, 30 Apr 2003 15:52:09 +0000 (15:52 +0000)
now write the accurate length when vr = {US, SS, UL, SL}

src/gdcmElValSet.cxx
src/gdcmHeader.cxx
src/stamp-h.in

index d0f02984265484567960526d6bae1f62c836031d..5d33ab6474792e64eee66ef5addd2f7f60a91097 100644 (file)
@@ -82,8 +82,18 @@ int gdcmElValSet::SetElValueByNumber(string content,
        TagKey key = gdcmDictEntry::TranslateToKey(group, element);
        if ( ! tagHt.count(key))
                return 0;
-       tagHt[key]->SetValue(content);
-       tagHt[key]->SetLength(content.length());         
+       tagHt[key]->SetValue(content);  
+       string vr = tagHt[key]->GetVR();
+       guint32 lgr;
+
+       if( (vr == "US") || (vr == "SS") ) 
+          lgr = 2;
+       else if( (vr == "UL") || (vr == "SL") )
+          lgr = 4;
+       else 
+          lgr = content.length();
+          
+       tagHt[key]->SetLength(lgr); 
        return 1;
 }
 
@@ -91,7 +101,17 @@ int gdcmElValSet::SetElValueByName(string content, string TagName) {
        if ( ! NameHt.count(TagName))
                return 0;
        NameHt[TagName]->SetValue(content);
-       NameHt[TagName]->SetLength(content.length());
+       string vr = NameHt[TagName]->GetVR();
+       guint32 lgr;
+
+       if( (vr == "US") || (vr == "SS") ) 
+          lgr = 2;
+       else if( (vr == "UL") || (vr == "SL") )
+          lgr = 4;
+       else 
+          lgr = content.length();
+          
+       NameHt[TagName]->SetLength(lgr);
        return 1;               
 }
 
index 10404615a6d4098fb49f11ad4ef68abc9488656d..52e340cb07c129f22a8ef132139279d3a564fbaa 100644 (file)
@@ -968,10 +968,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.");     
       }
    }
  
index 9788f70238c91894045d22366fa941580826c3c1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1 +0,0 @@
-timestamp