-%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) gdcm::TagDocEntryHT & {
+ 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 (gdcm::TagDocEntryHT::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
+ if (gdcm::ValEntry* ValEntryPtr =
+ dynamic_cast< gdcm::ValEntry* >(tag->second) )
+ {
+ RawValue = ValEntryPtr->GetValue();
+ }
+ else
+ continue;
+ 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<gdcm::DicomDirPatient *>::iterator New = ($1)->begin();
+ New != ($1)->end(); ++New) {
+ NewItem = SWIG_NewPointerObj(*New,SWIGTYPE_p_DicomDirPatient,1);
+ PyList_Append($result, NewItem);
+ }
+}
+
+%typemap(out) ListDicomDirStudy & {
+ PyObject* NewItem = (PyObject*)0;
+ $result = PyList_New(0); // The result of this typemap
+
+ for (std::list<gdcm::DicomDirStudy *>::iterator New = ($1)->begin();
+ New != ($1)->end(); ++New) {
+ NewItem = SWIG_NewPointerObj(*New,SWIGTYPE_p_DicomDirStudy,1);
+ PyList_Append($result, NewItem);
+ }
+}
+
+%typemap(out) ListDicomDirSerie & {
+ PyObject* NewItem = (PyObject*)0;
+ $result = PyList_New(0); // The result of this typemap
+
+ for (std::list<gdcm::DicomDirSerie *>::iterator New = ($1)->begin();
+ New != ($1)->end(); ++New) {
+ NewItem = SWIG_NewPointerObj(*New,SWIGTYPE_p_DicomDirSerie,1);
+ PyList_Append($result, NewItem);
+ }
+}
+
+%typemap(out) ListDicomDirImage & {
+ PyObject* NewItem = (PyObject*)0;
+ $result = PyList_New(0); // The result of this typemap
+
+ for (std::list<gdcm::DicomDirImage *>::iterator New = ($1)->begin();
+ New != ($1)->end(); ++New) {
+ NewItem = SWIG_NewPointerObj(*New,SWIGTYPE_p_DicomDirImage,1);
+ PyList_Append($result, NewItem);
+ }