Export and Import Feature for OpenMRS Reporting Module — Week 10

Google Summer of Code 2021 — Final Report

Heshan Andrews
4 min readAug 22, 2021


DHIS mappings are created in openMRS instances to keep information about how period indicator reports are mapped with DHIS data elements. Previously the DHIS connector module had the functionality to export these mapping files but they were not usable in different openMRS instances because the mapped period indicator reports are required to be present in the system. Thus this project was proposed to introduce a new feature to bundle up period indicator reports and other underlying reporting metadata with the DHIS mappings on the mapping export and import the same type of bundles back in.

Project Final Presentation and Demo


- Main objectives

  • Improve export DHIS mappings function to include period indicator reports with other related reporting metadata. ✅
  • Improve import DHIS mappings function to persist period indicator reports and other underlying reporting metadata. ✅

- Additional objectives

  • Simplify the user experience by improving manage mappings user interface to handle every DHIS mapping related function. ✅
  • Handle metadata UUID conflicts by letting the users pick the action for such cases. ✅
  • Improve the export function to have the option to export mappings without period indicator reports. ✅


- Repositories

- Fixed Issues

- Pull Requests

- Talk Threads

Weekly Blog Posts


- Weekly Progress Demo Videos

Progress Demo Youtube Playlist

- Project Proposal

Future Work

The core requirement of the project is completed. Apart from the core objective some additional improvements were also done (see additional objectives).

Some good practices such as using loggers instead of print commands and keeping util file to have all the utility functions in the repository, which are in the openMRS coding best practices but were not incorporated in the DHIS connector module, were too initiated with this project and I wish to do the refactoring of the current code to bring it up to the standard.

Further, I will be looking forward to joining other openMRS squads and helping out with the little knowledge I gained during the last three months.

Thoughts on GSoC

GSoC 2021, from May to August, was a 3 months of very profound learning experience for me. I’m really honoured that I had the chance be a part of an organization that really makes a positive impact in the world. I hope my effort to improve the product did help out this amazing organization to improve at least a wee bit.

GSoC, the program in itself is great and when you add up an organization that writes code to save lives on top of it, you get that sense of pride that you actually contributed to something far greater than you, with every single piece of code you write. I sincerely thank openMRS for accepting my proposal and giving me that opportunity.

I would like to remember my late mentor, Joseph Kaweesi, who was always there for me whenever I fell short in understanding the code base. And I would also like to thank Daniel Kayiwa, my backup mentor, who supported me a lot and pushed me to reach that extra level of quality in the code, and Jayasanka Weerasinghe who introduced me to openMRS and was supporting me all the way through.

GSoC 2021 and working with openMRS would go down as one of the best experiences I managed to grab ever.

Thank you OpenMRS.

Thank you Google.



Heshan Andrews

Your average software engineering dude from South Asia