by Henrik, Kristian and Lungo Developing an Open Source GIS Desktop Application for District Health Information System (DHIS) by Henrik, Kristian and Lungo
Introduction HISP Programme Multinational project running in many countries (India, South Africa, Tanzania, etc.) Strengthening health information system in general with a focus of District Health Information System Implements District Health Information Software (DHIS) at district medical offices The DHIS is developed exclusively on MS Access
Motivations Currently there is an on going development of DHIS v.2, a to be Java based DHIS Software (preferred with OSS based database) What are the challenges for migrating the whole MS Access DHIS database to MySQL? Can we build a Java based GIS solution to be integrated in the DHIS v.2?
Project Objectives DHIS database (MS Access) and digitized maps showing locations of the hospitals from Nalgonda district was made available Objectives To migrate the MS Access database to an open source database system (MySQL for this project) To create a desktop application based on open source software that make use of the DHIS database (in this project MySQL)
GIS features Integrated in the Java Based DHIS version Project Approaches DB DB Connectors DHIS GIS DHIS v.2 + GIS DB Connector DB One Database, Two Applications (DHIS and GIS) We customized an existing GIS Framework, called JUMP GIS features Integrated in the Java Based DHIS version We developed a GIS Solution from Scratch based on GeoTools
Migrating Access Database to MySQL Tools Used MyODBC: an ODBC driver for MySQL database Navicat: a GUI for MySQL database Process Connect MySQL database to MS Access database using MyODBC Export MS Access tables with data to MySQL
Linking GIS Features to the Database Problem: No common fields for the feature information and database records. Even the hospital names are not the same! Solution Create additional table that maps hospital Feature IDs to the Database OrgUnit RowIDs
Querying the Database Output Two querying approaches Health indicators Region Query Select a region on the map, query hospital feature information, save hospital id in a variable, connect to the database, execute SQL-99 query, filter the result with hospital id, print the result on a Table Text Query Connect to the database, select OrgUnit and Period, display result, highlight corresponding OrgUnit on the Map
A very short introduction Jump A very short introduction
Jump overview Jump is a GIS application Written entirely in Java Read and writes GML, SHP, WKT Can easily be extended in many ways without recompiling
Jump extensions A Jump extension is implemented as a collection of classes packaged as a jar file. Jump looks for these jar files in a specific directory. Classes named *Extension are special and registers the other classes when the extension is loaded.
Extension types Plugins – Menu items Cursor tools – Toolbar buttons Tool boxes – Modeless dialogs Renderers – Control drawing Data sources – Read/write other formats
Our use of Jump Show a map of the Nalgonda district. Show all hospitals in Nalgonda Display health indicator values for mandals and hospitals
Limitations Limited control over presentation Sparse documentation Map view is developed more for input than output Sparse documentation Do I do X the right way? Is Y not supported or have I just not found a way to do it?
Open source Java GIS toolkit http://geotools.codehaus.org Implementation of OpenGIS Consortium specifications http://www.opengis.org Why use GeoTools?
Implementation Problems GeoTools JTS JGoodies JPanel Coordinates Documentation Dependencies
Conclusion Questions?