Case-based patient module for notifiable diseases and vital registration

Registered by Ola Hodne Titlestad on 2009-03-26

There is an increasing need to capture and integrate case-based patient data in the DHIS. The DHIS 1.4 patient module caters for this as well as the current line listing in the local Indian DHIS 2 module (a prototype). The Indian prototype is based on the current data model, more specifically it makes use of the multidimensional data elements and has clear limitations. A refactoring of that is needed and the 1.4 patient module is a great reference for functional requirements as well as data model (e.g. how it integrates with the routine data model).

The main idea is to capture (and then aggregate) patient-level data on case-by-case basis, meaning not a patient record system, but a tool to register disaggregated case information for notifiable diseases, births and maternal deaths. At least these are the most common use cases at the moment, but such a module could of course cater for other disaggregated patient-level data as well.

Examples of data could be in the case of a reported maternal death to register information about home village, ANC attendance, place of delivery (home or institutional), type of complications, action taken etc. These patient data values will be captured by an orgunit just as normal routine data and reuse the orgunit hierarchy of the rest of the system. The period for a patient data record will be a date.

Having such data available in the DHIS would make it very simple to generate detailed aggregated/routine (by facility, period, data elements) information about maternal deaths, such as "Maternal deaths from home delivery", "Maternal deaths from inst. delivery", "Maternal deaths with direct cause eclampsia", "Maternal deaths referred from other health facility". Such routine data elements can be defined by using expressions with criteria (queries) on top of the patient-level data and then be be generated on a routine basis (e.g. every month) and then be stored as normal data values completely integrated with the other routine data captured in DHIS.

An example of an expression for the routine data element "Maternal deaths with direct cause eclampsia" could be:
Patient data element "Direct cause of death" = "Eclampsia".
Eclampsia is one of many predefined values for the patient data element called "Direct cause of death".

Generation of routine data (from patient-data) would then group patient data by month (or other interval if desired) and orgunit and then on the defined routine data elements, e.g. count how many maternal deaths records where the "Direct cause of death" is "Eclampsia" for each orgunit and month.

New concepts in such a module that is not covered by the current system's model would be (but not limited to add more here)
1) to represent patient data elements and add/edit GUI
2) to represent patient data values,
3) to represent routine data expressions and add/edit GUI
4) to define datasets with pre-defined value sets for individual patient data elements (something we would need for e.g. survey data capture anyway). Value lists, custom value groups and orgunit hierarchies are possible value sets
5) aggregation mechanisms for patient to routine data transformation,
6) search functionality in patient data records
7) line listing or custom form data entry
8) reports on a line listing (column based) format with one case/patient record per row with export to csv and Excel
9) import/export of patient data elements, expressions, and values

I recommend taking a good look at the DHIS 1.4 patient module before starting on this task.

Blueprint information

Ola Hodne Titlestad
Needs approval
Abyot Asalefew Gizaw
Series goal:
Accepted for trunk
Milestone target:
milestone icon 2.0.3
Started by
Lars Helge Ă˜verland on 2009-09-21
Completed by
Lars Helge Ă˜verland on 2009-11-19

Related branches



Aggregation engine is not yet implemented and is defined in a separate blueprint scheduled for the 2.0.4 release.

Setting this to implemented for now. We can create new blueprints for additional functionality requests.


Work Items

This blueprint contains Public information 
Everyone can see this information.