Wiki Spaces


Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack


Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

This is a brief guide for developers who wish to develop reports for KenyaEMR. KenyaEMR relies on the Reporting Module to provide cohort and indicator reports. All reports are implemented in code and it is not expected that implementers will create their own reports through the web interface. In many cases, the Kenya Core module provides "wrappers" abstractions for much of the necessary functionality from the reporting module. As such, KenyaEMR report developers need to be aware of these "wrappers" abstractions in addition to familiarity with the underlying reporting framework. Reports may either be provided through the KenyaEMR module itself or through add-on modules. 


Cohort reports are typically patient listings containing patients with similar characteristics, for example, the list of all patients who missed their last appointment. Cohort reports in KenyaEMR are implemented through Calculations. They are much simpler to implement than indicator reports since they are generally built using the same, generic report builder. 


  1. Create a patient calculation for your cohort. A patient calculation is any implementation of the PatientCalculation class. You might find it useful to extend BaseCalculation or AbstractPatientCalculation. See example.
  2. Define your report in the application context by defining a ReportDescriptor object. Make sure to configure the calculation member variable to point to the calculation defined above. See example.
  3. Configure your report in the application context by defining a ReportConfiguration object. See example.
  4. Include your report in the UI adding it to the page model through a controller. See example.

Step-by-step guide (Indicator Reports)