-////////////////////////////////////////////////
-// Convert an STL list<> to a python native list
-%typemap(out) std::list<std::string> *
-{
- PyObject *newItem = (PyObject *)0;
- PyObject *newList = PyList_New(0); // The result of this typemap
-
- for (std::list<std::string>::iterator strIt = ($1)->begin();
- strIt != ($1)->end();
- ++strIt)
- {
- newItem = PyString_FromString(strIt->c_str());
- PyList_Append( newList, newItem);
- }
- $result = newList;
-}
-
-//////////////////////////////////////////////////////////////////
-// Convert an STL map<> (hash table) to a python native dictionary
-%typemap(out) std::map<std::string, std::list<std::string> > *
-{
- PyObject *newDict = PyDict_New(); // The result of this typemap
- PyObject *newKey = (PyObject *)0;
- PyObject *newVal = (PyObject *)0;
-
- for (std::map<std::string,
- std::list<std::string> >::iterator tag = ($1)->begin();
- tag != ($1)->end(); ++tag)
- {
- std::string first = tag->first;
- // Do not publish entries whose keys is made of spaces
- if (first.length() == 0)
- continue;
- newKey = PyString_FromString(first.c_str());
-
- PyObject *newList = PyList_New(0);
- for (std::list<std::string>::iterator itemIt = tag->second.begin();
- itemIt != tag->second.end();
- ++itemIt)
- {
- newVal = PyString_FromString(itemIt->c_str());
- PyList_Append( newList, newVal);
- }
- PyDict_SetItem( newDict, newKey, newList);
- }
- $result = newDict;
-}
-
-/////////////////////////////////////////////////////////
-// Convert a c++ hash table in a python native dictionary
-%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
- gdcm::ValEntry *valEntryPtr = dynamic_cast< gdcm::ValEntry* >(tag->second);
- if ( valEntryPtr )
- {
- rawValue = valEntryPtr->GetValue();
- }
- else
- continue;
- newVal = PyString_FromString(rawValue.c_str());
- PyDict_SetItem( newDict, newKey, newVal);
- }
- $result = newDict;
-}
-
-/////////////////////////////////////
-%typemap(out) ListDicomDirPatient &