Chapter 10
Development of a Plug-in Framework for DHIS 2

In this chapter I am going to describe the second case study I did as part of my master thesis research. Compared to the case study I conducted in Ethiopia this is a smaller case study, but a relevant study non the less. This study is more technology focused as it is a practitioner study where I act as a FLOSS programmer. This case has longer time span compared to my work in Tigray, but my involvement in this case has only been part time. I conducted this case study in parallel with writing this thesis, and doing other tasks relevant to my studies. Through this case I hoped to learn about participating in a FLOSS project on a practical level, at the same time as I wanted a chance to do more programming.

In Ethiopia I worked with DHIS 1.3 and there was ongoing efforts to implement the next major release in the 1.x strain of DHIS, version 1.4, in South Africa. DHIS 1.4 is an architectural remake of the DHIS database, and to a lesser extent the user interface. DHIS has over the years been developed layer upon layer to incorporate changes demanded by users. The code increasingly came to resemble a spaghetti like mess, which was hard to maintain and few really understood. The pre-DHIS 1.4 architecture also had to be changed to enable important new features. Some of the assumptions implemented in the core in the previous releases was specific to South Africa at the time of implementation, this had to be delegated to the flexible exterior of the application. Some of the limitations in DHIS 1.3 was:

DHIS 1.4 is still implemented in MS Access, but the architectural remake removes the previously mentioned limitations. DHIS 1.4 introduces many larger and smaller improvements, in addition to removing this limitations. One of the improvements is that DHIS 1.4 makes it possible to use a different Database Management System (DBMS) than the one MS Access uses. At the time of writing it is possible to transfer structures and data to a MS SQL Server, and there are plans to make transfer tools to MySQL and Oracle too. The user interface is run in MS Access, but it uses another DBMS in the back end. DHIS 1.4 also introduces the concept of data sets. Data sets groups together a number of data elements which is given a reporting interval. A data set can for instance be data related to malaria reported on a weekly basis, or finances reported on a monthly basis.

Development of DHIS 1.4 has been going on for some time. At the time of writing DHIS 1.4 is released, but some features are still not implemented. DHIS 1.4 should be regarded as a “bridging” version to DHIS 2. DHIS 2 is the version I have concerned me with, and is the topic of this case study. DHIS 2 is a total reimplementation of DHIS 1.4 using only FLOSS components, releasing DHIS from a dependency on specific versions of MS Office.

 10.1 Why the need for a reimplementation?
 10.2 The community model in DHIS 2
 10.3 My role in the project
 10.4 What motivated me to participate
 10.5 Making the application extensible
 10.6 Interaction with other DHIS 2 developers
 10.7 Interaction with projects we depended on