BIRT 2.0

Primary mentor

Mike Seaton

Backup mentor

Justin Miranda

Assigned to


The OpenMRS BIRT module has been a very successful and popular module within the OpenMRS community. It is actively in use in several implementations, providing reports ranging from clinical patient summaries, indicator reports, and facility reports in multiple formats. In recent years, this module has become more and more difficult to maintain, due to a complicated matrix of module versions that support a limited set of BIRT runtime versions, and complexity of installation and support. Due to this, it does not yet support the more recent BIRT runtime releases, and has also lagged behind recent advancements in the OpenMRS reporting ecosystem, including support for data produced by the core reporting module and utilization of RESTful web services.

The goal of this project is to evolve the existing BIRT module into a 2.0 version that can be more easily maintained moving forwards, eliminating the complex matrix of dependencies, and to integrate it tightly into the OpenMRS core reporting framework. As a second phase, time permitting, we hope to also update the Eclipse BIRT ODA Plug-in which would allows for direct integration into the BIRT Report Designer and running Reports via BIRT tools directly.

This project will provide a great opportunity for someone to learn how to use and extend the core OpenMRS reporting framework, to work with RESTful web services, and to provide tools which are in demand at several established OpenMRS implementations around the world.

Project Champions

Mike Seaton, Justin Miranda


The primary objective of this project is to evolve the BIRT Module into a 2.0 version. Time permitting, a secondary objective is to modify the existing BIRT ODA Plugin as well.

BIRT Module 2.0

  • Re-design the BIRT module to integrate tightly with the reporting module. This will involve eliminating redundant services, tables, UI components, etc. and re-architecting all appropriate objects as extensions to the reporting module.
  • Integrate the latest BIRT runtime into the BIRT module directly with a goal of eliminating the implementation step of finding and installing a compatible BIRT Runtime Engine, and in order to provide a more controlled and supported module going forwards.
  • Implement BIRT renderering via a custom "ReportRenderer" implementation in the reporting module

BIRT ODA Plug-in

  • Modify the existing BIRT ODA Plug-in based on the revised BIRT Module design, and to take advantages of the RESTful Web Services provided by the reportingrest module.
  • Implement / modify any additional REST web services that are needed in the reportingrest module