200 likes | 393 Views
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.)
E N D
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)
DHIS GIS DB Connectors DB Project Approaches 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 • Health indicators • Two querying approaches • 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
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 • 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 • GeoTools • JTS • JGoodies • JPanel • Problems • Coordinates • Documentation • Dependencies
Conclusion • Questions?