+%typemap(out) TagHeaderEntryHT {
+ PyObject* NewDict = PyDict_New(); // The result of this typemap
+ std::string RawName; // Element name as gotten from gdcm
+ PyObject* NewKey = (PyObject*)0; // Associated name as python object
+ std::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) ListDicomDirPatient & {
+ PyObject* NewItem = (PyObject*)0;
+ $result = PyList_New(0); // The result of this typemap
+
+ for (std::list<gdcmDicomDirPatient *>::iterator New = ($1)->begin();
+ New != ($1)->end(); ++New) {
+ NewItem = SWIG_NewPointerObj(*New,SWIGTYPE_p_gdcmDicomDirPatient,1);
+ PyList_Append($result, NewItem);
+ }
+}
+
+%typemap(out) ListDicomDirStudy & {
+ PyObject* NewItem = (PyObject*)0;
+ $result = PyList_New(0); // The result of this typemap
+
+ for (std::list<gdcmDicomDirStudy *>::iterator New = ($1)->begin();
+ New != ($1)->end(); ++New) {
+ NewItem = SWIG_NewPointerObj(*New,SWIGTYPE_p_gdcmDicomDirStudy,1);
+ PyList_Append($result, NewItem);
+ }
+}
+
+%typemap(out) ListDicomDirSerie & {
+ PyObject* NewItem = (PyObject*)0;
+ $result = PyList_New(0); // The result of this typemap
+
+ for (std::list<gdcmDicomDirSerie *>::iterator New = ($1)->begin();
+ New != ($1)->end(); ++New) {
+ NewItem = SWIG_NewPointerObj(*New,SWIGTYPE_p_gdcmDicomDirSerie,1);
+ PyList_Append($result, NewItem);
+ }
+}
+
+%typemap(out) ListDicomDirImage & {
+ PyObject* NewItem = (PyObject*)0;
+ $result = PyList_New(0); // The result of this typemap
+
+ for (std::list<gdcmDicomDirImage *>::iterator New = ($1)->begin();
+ New != ($1)->end(); ++New) {
+ NewItem = SWIG_NewPointerObj(*New,SWIGTYPE_p_gdcmDicomDirImage,1);
+ PyList_Append($result, NewItem);
+ }
+}
+