Reporting UI Module

What this module does

This module provides a user interface for the Reporting Module in the Reference Application 2.x user interface.

Documentation / How-To

You may write your own module code to use this module, or configure it with JSON in the Administrative UI.

Reports App

This module provides a Reports app on the home screen.

The app's top-level page allows you to include three types of reports, each by providing a link extension to its extension point:

  • Overview Reports  (extension point: org.openmrs.module.reportingui.reports.overview)
  • Data Quality Reports  (extension point: org.openmrs.module.reportingui.reports.dataquality)
  • Data Exports  (extension point: org.openmrs.module.reportingui.reports.dataexport)

You may choose to have a report link lead to a custom page of your own, or to the generic Run Report page (url .../reportingui/{uuid-of-report-definition}) to run an existing report from the database.

Report History

This module provides a Report History page which lists all reports that have been run, and lets you download those that are complete. It's url is .../reportingui/

Ad Hoc Analysis

The Reporting UI module also includes a (not-yet-complete) Ad Hoc Analysis tool (url: .../reportingui/ which lets you build data sets based on the Definition Libraries in the Reporting Module.



Once configured by your own implementation's modules, the Reports App homepage might look like this:


The generic Run Reports page looks like:

Run Reports page for a report definition in the database

Configure the Module

Without configuration, this module only shows an empty page. For it to be useful, we must define a list of reports to show under each section.  This can be done with a custom module or with JSON.  To configure it with JSON you can...

1.) Navigate to System Administration --> Manage Apps in the Administration UI.

2.) Disable the reportingui.reports, by clicking the "Stop" button next to the default Reporting App. If you don't stop the built-in app, you will see two Report icons after you create your custom one.

3.) Create your new Reporting App Definition.  Click Add App Definition.

4.) Give it a name like "my.reportingui.reports".

5.) Copy the contents from the Default JSON Config, and paste it into the Definition (required) field on the Add App Definition you created in step 3 above.

6.) Edit the code you copied in and add additional JSON objects under "extensions". Specifically, you'd copy the thing that's currently attached to dataExports (see the code here) and:

  • Set your own id
  • Set your own label
  • Set your own requiredPrivilege
  • Set your own URL (the URL should be "reportingui/{uuid}", but replace {uuid} with the actual uuid of the report that you want linked)
  • Remove the "featureToggle" property

Note: A fully configured JSON may look like this example.

7.) Save your App.

8.) Go to the Reference Application Home Page, and click on Reports.  You should see the report you configured, and clicking on it will allow you to specify the parameters to run it.


This module was originally developed by PIH as part of its Mirebalais implementation.