DHISReporting module automates the process of running sql queries against an OpenMRS instance and posting the results to a DHIS2 instance. It even exposes a set of web services that can be consumed through your applications or by using cURL. The module works with OpenMRS 1.9.x and higher.


  • Implement report mapping function

Report mapping function is about mapping DHISReports with Reporting module reports. With this functionality DHIS Data elements will be mapped with the Reporting Indicators of the reporting module. More


I was able to complete the development phase and the documentation. Updated documentation can be found here.

In addition to that, when I was testing the module, I was able to find two bugs and resolved those two bugs as well.

That’s all for this week. ☺

After the weekly meeting with my mentor, we decided to add prioritizing functionality to the mapping section. Users can prioritize the report rendering method. When an element mapped with a SQLCohort, the edit report section allows to edit the query as well. In this case, even if the element is mapped, user can get report from either SQL query or reporting module indicator. If user select SQL option, the report execution will give the priority to SQL query.

Last week was the second evaluation period of Google Summer of Code. I completed and passed the second evaluation successfully.

Last week I was working on some extensions of my project. I added un-mapped report handling to the mapping section. This functionality may help to fix some JIRA tickets in the future. With this feature, now user cannot execute un-mapped reports and it will give an error message and will not show the post button as well. In addition to that, it will indicate the relevant report in the mapping section as well. Please refer the screenshots.

Un-mapped report definitions indicated in red

This week was the most successful week. I was able to complete all the core functionalities of my project. Now the DHISReporting module has the capability to map the exported reports with the report module reports. Not only for sql query based report, but also for other Cohort reports.

Now any data element can be mapped with any existing indicator.


Currently the elements mapped with other reporting indicators are displayed as an empty section. Now working on adding mapped report label to that section.

This week I did some changes to the code I committed regarding DRM-09 and DRM-28 tickets as Daniel suggested to do. After having a discussion with my mentor, I started to work on second phase of the project which is to map other report types other than SQLCohortDefinitions.

Currently I have implemented a method to execute and display the report results. Next thing I am going to work on is to display the executed report results in DHISReportingModule report.

I have to work on writing test cases for the previous tickets as well. That’s all for this week… :)

Last week I was struggling with the database issue I mentioned in last update. I was able to regain access to the database after resetting the database. After fixing the database, I started working on saving mapped report details to the database.

In this week, I was able to complete he main functionalities of my project and created a pull request for that. With the changes I did to the module, now it is possible to map any indicator of a particular Reporting module report with DHIS report data element. Mapped reports are displayed in the combo box. Currently I…

Last week I was able to add report definitions to the combo box and developed a triggering function for mapping buttons. In this week, I worked on connecting mapping results to the controller and modifying the dhisreport_datavalue_template table.

Instead of using the button for mapping, I added an anchor tag and connected the results to the MapReportsController. After successfully mapping the jsp with the controller, I defined two alternative columns to the dhisreport_datavalue_template table. Adding those columns was successful.

After modifying the database, I tried to modify the DataValueTemplate model class as the next step. But, still I couldn’t edit…

As I was planned to do in this week, I was able to add report definitions to the combo box this week. I made changes in mapReport.jsp file and listed report definitions as the combo box options. Now the DHIS2 Report Data Element section contains Reporting report indicators which can be mapped with the element.

Modified mapping form

I decided to add separate buttons for each row because it will be easier than using one button to map all the reports. …

Lots of things were changed within this week. Last week I committed code, but after a meeting with my mentor, we finalized the approach to achive the objective. Because of that I had to roll back all of the code I committed. The finalized approach is an extension of the current module.

According to the finalized approach, I have to re-design page for map report definitions. Currently I’m planing to map the definitions using simple combo boxes. But as a future extension I’m planing to use a drag and drop technique.

In this week, I created sample report definitions (around 20). Added combo boxes to the page.

Next week I am planning to add report definitions to the combo box.

As the next step, after discussing with mentor I will work on saving the selected definitions to the database.

That’s all for this week. 😀

Choxmi Sathsara

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store