Versions Compared

Key

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

Ideas and notes on real examples of reports built with the Reporting module.

Table of Contents

Examples

Program enrollment outcome (PIH Malawi)

...

Note: To simplify its setup, testing, and running, the creation of all report elements was done via a Java script (Source in SVN ).

Best practices

Scripting Setup of Reports

The Reporting module already provides a generic UI to define and view reports. Even though this is good for conducive to an adhoc approach, to get familiar with the Reporting module in general and specific requirements for reports, this it is also "click-intenseintensive". Besides this for now these These reports are also bound to a specific OpenMRS database installation (unless clever ways of myqldump and -load are used). If reports need to be

  • version controlled,
  • shared between different installation (like test and production env), or
  • adopted for slightly different usecases use cases while maintaining the general structure,

then it might make sense to externalize the creation of the various report elements. Besides the UI, everything is accessible through the Java-API. With some Java knowledge, the creation of Cohort queries, Indicators, and Report Definition Definitions can be scripted.

The running of reports can be done in two different ways:

  1. Through a module, which provides the Administration feature to set up (and remove) persisted report elements (good for production systems).
  2. Through a (misused) Junit testcase, which can easily be invoked from the local development environment (good for development and testing).

An example can be found in the PIH Malawi module ([Source in SVN|http://svn.openmrs.org/openmrs-modules/pihmalawi/]). Please note that this is tailored to the needs of PIH Malawi, but it can serve as a blueprint for other installations.