Abstract
The Reporting Module provides to the OpenMRS user the ability to get data from the software in a readable and friendly way, such data can be presented in different formats. These types of Report Renderers share a generic user interface instead of having one per renderer that suits the characteristics and configuration options of each one. This project aims to solve this not only by creating a user interface for each renderer, but also by allowing extensibility.
Implementation Plan
This project will be carried out in two main stages, having the midterm evaluation as a reference point.
Phase 1 – June 17 to July 26
The main goals of this phase are as follows:
Modify the report definition editor and the report design editor so the user first configures the desired renderer. Starting with this will help us to easily test future changes made to the current available renderers and its custom UI.
Convert the abstract class DelimitedTextReportRenderer into a configurable bean and work on its custom UI.
Work on a migration script that allows to work properly any existing ReportDesigns that use CsvReportRenderers or TsvReportRenderers classes, instead of deprecating them.
Work on the generic UI for all non-configurable report renderers: IndicatorReportRederer, SimpleHtml ReporRenderer, XlsReportRenderer and XmlReportRenderer.
Timeline
June 17 – June 21
Goals for the week:
Design mockups for the report definition editor and report design editor UIs with the DelimitedTextReportRenderer custom UI plugged in. Ask for approval
Start to work on the new bean for the DelimitedTextReportRender
Blog post: http://wp.me/p3A6ke-h
June 24 – June 28
Goals for the week:
Continue to work on the modifications to the DelimitedTextReportRenderer
Start to work on JSP page and controller
Blog post: http://wp.me/p3A6ke-o
July 1 – July 5
Goals for the week:
Continue to work on the JSP page and controller.
Integrate the new custom UI with the report definition editor and report design editor UIs.
Test and document changes.
Blog post: http://wp.me/p3A6ke-z
July 8 – July 12
Goals for the week:
Start working on the migration script
Test and document changes.
Blog post:http://wp.me/p3A6ke-H
July 15 – July 19
Goals for the week:
Design mockups for the generic UI for all non-configurable report renderers. Ask for approval.
Work on the JSP and the controller for this type report renderer.
Blog post:http://wp.me/p3A6ke-M
July 22 – July 26
Goals for the week:
Integrate the new generic UI with the report definition editor and report design editor UIs.
Test and document changes.
Blog post:http://wp.me/p3A6ke-R
Phase 2 – July 29 to September 13
The main goals of this phase are as follows:
Merge the XlsReportRenderer and the ExcelTemplateRenderer into a single ExcelRenderer and work on its custom UI.
Work on the custom UIs for the CohortDetailReportRenderer.
Work on the custom UIs for the TextTemplateRederer.
Timeline
July 29 – August 2
Goals for the week:
Design mockups for the custom UI for ExcelRenderer. Ask for approval.
Merge the XlsReportRenderer and the ExcelTemplateRenderer into a single ExcelRenderer.
Blog post:
August 5 – August 9
Goals for the week:
Start to work on the JSP and the controller for this type report renderer
Start integrating the new custom UI with the report definition editor and report design editor UIs.
Blog post:
August 12 – August 16
Goals for the week:
Start to work on the JSP and the controller for this type report renderer
Start integrating the new custom UI with the report definition editor and report design editor UIs.
Test and document changes.
Blog post:
August 19 – August 23
Goals for the week:
Design mockups for the custom UI for CohortDetailReportRenderer. Ask for approval.
Start working on the JSP and controller for this type of renderer.
Work on integrating the new custom UI to the current UIs
Test and document changes.
Blog post:
August 26 – August 30
Goals for the week:
Design mockups for the custom UI for TextTemplateRederer.. Ask for approval.
Start working on the JSP and controller for this type of renderer.
Work on integrating the new custom UI to the current UIs
Test and document changes.
Blog post:
The next 2 weeks are being kept for any unpredictable delay. In case everything goes as expected these 2 weeks will be used to work on the extra credit section.
September 2 – September 6
September 9 – September 13
September 16 – September 20
Goals for the week:
Finish documentation and perform an overall testing. Work on the details exposed on the tickets listed in the project page.
Blog post:
Extra Credit
- Integrate the Birt report module as a renderer.
Deliverables Summary
- A new report design section for each report renderer.
- Integration of the Birt report module.
- Documentation about how to get the most of the designing report section.
Current Status of the Project
Currently the following changes were made:
- Custom user interface for all non-configurable renderers: SimpleHtmlReportRender and XmlReportRenderer.
- Custom user interface for the CsvReportRenderer and TsvReportRenderer.
- Solved a bug that didn’t allow to update the properties properly.
- Solved a bug with the after column delimiter.
- Custom user interface for the ExcelTemplateRenderer and the XlsTemplateRenderer.
- Merged the Excel and Xls renderers and deprecated the ExcelTemplateRenderer class.
- Custom user interface for the TextTemplateRenderer.
What’s next.
- Add a preview section to the UI of the TextTemplateRenderer
- Custom UI for the CohortDetailReportRenderer.
- The extra credit of adding a place to plug the Birt report module.
Only one part of the code has been merged to the main repository of the module, the other one is in the master branch of my fork of the module: https://github.com/davidpalacios/openmrs-module-reporting
Here is a demo: