]> Creatis software - gdcm.git/commitdiff
* FIX : wrapping python for TagHeaderEntryHT
authorregrain <regrain>
Thu, 5 Feb 2004 14:43:00 +0000 (14:43 +0000)
committerregrain <regrain>
Thu, 5 Feb 2004 14:43:00 +0000 (14:43 +0000)
     -- BeNours

ChangeLog
gdcmPython/gdcm.i

index a72d3a2825067fb7b71882f1af2e1e7d30aaa965..f642fb4945dd224c44be7562a5c189a06a95187e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@
      * ENH : add methods in gdcmObject to get the hash table or the list of
        header entries
      * FIX : wrapping python for ListPatient, ListStudy, ListSerie, ListImage
+     * FIX : wrapping python for TagHeaderEntryHT
 
 2004-02-04 Benoit Regrain
      * FIX : even length for some strings when writting the dicom dir
index 82436e9ebe96e57f791b44e3094b75c23c0d24c1..36f117ab34abc4ccc2b6f2bf0d897af32ef10fdc 100644 (file)
@@ -104,6 +104,34 @@ extern gdcmGlobal gdcmGlob;
        $result = NewDict;
 }
 
+%typemap(out) TagHeaderEntryHT {
+       PyObject* NewDict = PyDict_New(); // The result of this typemap
+       string RawName;                   // Element name as gotten from gdcm
+       PyObject* NewKey = (PyObject*)0;  // Associated name as python object
+       string RawValue;                  // Element value as gotten from gdcm
+       PyObject* NewVal = (PyObject*)0;  // Associated value as python object
+
+       for (TagHeaderEntryHT::iterator tag = $1.begin(); tag != $1.end(); ++tag) {
+
+               // The element name shall be the key:
+               RawName = tag->second->GetName();
+               // gdcm unrecognized (including not loaded because their size exceeds
+               // the user specified treshold) elements are exported with their
+               // TagKey as key.
+               if (RawName == "Unknown")
+                       RawName = tag->second->GetKey();
+               NewKey = PyString_FromString(RawName.c_str());
+
+               // Element values are striped from leading/trailing spaces
+               RawValue = tag->second->GetValue();
+               EatLeadingAndTrailingSpaces(RawValue);
+               NewVal = PyString_FromString(RawValue.c_str());
+
+               PyDict_SetItem( NewDict, NewKey, NewVal);
+    }
+       $result = NewDict;
+}
+
 ////////////////////////////////////////////////////////////////////////////
 %typemap(out) ListPatient & {
        PyObject* NewItem = (PyObject*)0;