The OpenMRS Reporting Module provides a powerful and flexible reporting framework for OpenMRS. One element of this flexibility is that a single report may be output into a variety of different formats by configuring one or more Report Renderers. Each of these types of Report Renderers has particular ways in which it can be configured - a simple CSV renderer, for example, may be configured with information as to whether the elements should be quoted, or whether a delimiter other than a comma should be used. A renderer that delegates to a report engine like BIRT on the other hand, may require complex and detailed XML design files that control the exact layout and formatting of a report rendered to PDF. Despite these differences, currently there is a single, generic user interface presented to users for configuring any renderer, which directly mirrors the object and data model of the object that is being configured - a Report Design. The end user must either know how to configure a particular report renderer by looking at the code, or by looking at documentation on the wiki, which is frequently incomplete or outdated. The objective of this project is to improve this, but adding custom pages for creating or editing each currently support Report Renderer, and by doing this in such a way that it is easy to create and plug in custom pages for new report renderer implementation that are created, either directly in the reporting module, or in dependent modules.
As we build custom user interfaces for all of the existing report renderers, we are going to find that some of these renderers can be enhanced or merged together to provide more flexibility or usability. Examples of areas that would benefit from slight refactoring before or while we create custom user interfaces:
There are several outstanding tickets that will be addressed by this project, even if they do not explicitly ask for the above. The include: