Versions Compared


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

About the Feature

Bahmni provides two multiple options for creating EMR reports -

Configurable Canned Reports

Creating canned reports is a challenging task because the requirements vary widely by hospitals and also depend on how terminologies, forms, patient attributes etc., are setup for them. Bahmni offers a solution to this problem by providing easily 'configurable canned' reports. Bahmni provides a library of these reports using which each implementation can easily create their own reports without the need of understanding the underlying data model of OpenMRS. You can also combine multiple such reports as sub-reports to create your own reports. Reports/Analytics: From out-of-the-box reports for common requirements, to SQL reports, to a secondary analytics database that can pull data from Bahmni and structure it in a reporting amenable (flat) format, etc. Reports are available in PDF, CSV and HTML format.

Custom Jasper Reports

Bahmni comes packaged with JasperReports. It is a mature reporting platform, on which your Bahmni implementation team can create custom reports based on the OpenMRS (as well as on the Odoo, OpenElis, etc.) databaseSee all details on this in the Implementer Guide: Reporting Overview (Bahmni).

One can also define a Microsoft Excel file with formulas or macros which can be used to create visualizations using the capabilities of Excel.

titleRecommended Reading

(Blog) 6 EMR Reports that improve patient care at JSS

(Blog) Using Shiny Analytics for R Based reporting in Bahmni

Report Queue

This feature gives the ability to get results on large data sets. Let's say, to get list of observations recorded for all patients in the past year or six months. This is a huge data set and surely you can't run it using instant reports. Things that can go wrong are server will definitely timeout waiting for result or your web browser will crash trying to load hundreds of MegaBytes of data if you chose HTML / PDF format. So, the approach for report running has been changed. Any report request will be queued and the user can go to 'My Reports' tab to see the status of the request and can download once the processing is complete. The running of report requests are moved to background jobs.

titleReports save location (default)

By default if there is no configuration, the reports are saved at  /home/bahmni/reports

titleChanging the reports save location

In order to override the default behaviour, configure reports_save_dir with the required location. Refer List Of Configurable Installation Variables

titleReports SSL Certificate configutation

For configuration of ssl certification check this link Reports SSL certificate configuration

Downloading reports:

All the reports that are run can be seen in 'My Reports' page. The report can have one of the status. If the status is 'Queued' it means that the system accepted the report and will run it. If the status is 'Processing', it means that the system is currently running the report. If the status is 'Download', you can click on the status link and download the report. If it is 'Error', it means that the system encountered an error while trying to run the report and by clicking on the status link, you can see the error message.

Cleanup reports

Scheduled reports that are stored in the file system are automatically removed along with its database entry after configured number of days.  This is done as part of scheduler service from bahmni-reports service. At the time of removal (say 12 AM), if the system is powered off or bahmni-service is down, cleanup process will run automatically once the system is powered on or bahmni-service is resumed.

titleDefault Behaviour

By default, all the reports that are more than 60 days old will be removed every night at 12AM.

titleOverriding the default behaviour

Default behaviour of the cleanup report service can be overriden  by reconfiguring following property values from file found in /etc/bahmni-reports folder

Code Block
reports.cleanup.triggerTime = 0 45 10 * * ? 
reports.cleanup.keepItForNDays = 30

In the above configured entries, cleanup job will run every day at 10.45 AM and will remove the reports that are more than 30 days old.


If you are changing the above configuration, for the new values to be picked up please make sure to restart the bahmni-reports service after any configuration changes.

Code Block
titleCommand to restart the service
sudo service bahmni-reports restart


For cron trigger time scheduling (reports.cleanup.triggerTime key) check the url :

Where is it Used?

Reports are used by the hospital administrator for extracting data in predefined formats and are used for generating metrics and analysis.


Reporting has numerous advantages. Some of them include:

  • Preparing status reports to be submitted to the government, funding agencies, stakeholders, etc.

  • Using the valuable data analysis to bolster advocacy efforts.
  • To be able to optimally follow-up patients.


titleOn this Page

Table of Contents

titleUsage Details

Reporting - User Guide

titleImplementation Details

Reporting - Implementer's Guide