From: regrain Date: Thu, 5 Feb 2004 14:43:00 +0000 (+0000) Subject: * FIX : wrapping python for TagHeaderEntryHT X-Git-Tag: Version0.4~13 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;ds=sidebyside;h=eaa1ab7591f8fd46c2efdfb823c15ae01a1472fc;p=gdcm.git * FIX : wrapping python for TagHeaderEntryHT -- BeNours --- diff --git a/ChangeLog b/ChangeLog index a72d3a28..f642fb49 100644 --- 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 diff --git a/gdcmPython/gdcm.i b/gdcmPython/gdcm.i index 82436e9e..36f117ab 100644 --- a/gdcmPython/gdcm.i +++ b/gdcmPython/gdcm.i @@ -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;