Google Summer of Code 2021 — Final Report

Overview

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. …


Just letting users upload and download mappings bundles with period indicator reports is sufficient to call this project completed. That’s what was in the proposal, but since I had that implemented, reviewed and merged as a fully functioning feature by the 9th week I had some time to think and see how I can improve the functionality. One thing that has been in the back of my mind from the start was to find a way to let users decide if they wanna just deal with mappings or they just want the entire bundle with everything underneath. And when you…


Tickets I’ve been working on this week,

To start off the week I had everything end to end implemented properly in my local machine. Even though this is not how I normally work, because I had to do a bit of a learning curve and I didn’t know which way would be the best, I had to try all the possible ways of implementing this feature out from end to end before sending a pull request. Just to make sure the path I chose to complete the feature is compatible. After developing like this for weeks I had a quite…


The feature that I implemented for the DHIS connector module, which is to export and import DHIS mapping files with the underlying metadata is completed and under review. But still the job is not over, currently in the openmrs DHIS connector module we have separate tabs to manage mappings, create mappings, upload mappings and another one to export mappings. So the functionalities that is done on the same type of metadata is scattered making high levels of user experiences a tad bit difficult to achieve. …


Since I had finished the entire backend part of the feature in this week my plan was to test out the functions and write unit tests, include them in the pull request and then get on to design the UI with a wireframe, so that I can get some feedback before moving into development blindly.

For the first task I had to manually test out the function first, and then mimic the usage inside a unit test. So first I had to make a DHIS mapping file and period indicator report. Then map them with one another. Afterwards export it…


Pleased to say that my proposal on improving export import feature for openMRS reporting module has been accept as one of the 11 gsoc projects this year at openmrs.

The community bonding period was supposed to be a time period where we introduced ourselves to the community and get to know our mentors among other developers and maintainers in the organisation.

From December last year onwards I’ve been in touch with openmrs, joining weekly squad meetings, doing issues in DHIS connector module. So it wasn’t that much of an effort for me to get into the community. …


I started this week with a working import and export feature with me. But the persisted objects just didn’t work because I was trying to convert them back into original java objects and then use metadata sharing module to save them in the database. This method wasn’t working because when we take a serialized object get the serialized data and convert them back into their original type it doesn’t covert the custom object attributes but just keep them as transient objects. So when these objects are persisted in openMRS they are again converted back into serialized objects. I realized I’m…


June 26, 2021 Update

Still getting the transient object 500 error even after wrapping the code in a try-catch block and persisting the object inside the catch. Tomorrow I will be looking into the error and will try to find a solution for it.

June 28, 2021 Update

I tried to use try-catch blocks and somehow persist the metadata objects, now it works but only when imported into a new instance. If I import it into the same instance I get this error because it’s trying to persist an object that is already existing (conflicting UUIDs). I think it solvable…


Hey!

I started this week on my gsoc side of things with two pesudo functions at my disposal to get into actually coding. So as was planned I went into implementing the functions.

At first there were some issues that I had to face because I kept getting an error after error. But somehow with the help of my mentor, Kaweesi Jospeh, and hours of debugging I finally got it to export a DHIS mapping with the corresponding Period Indicator Report and import them back to a different instance.

Now the next step is to add all the underlaying metadata…


My project is simple, basically make a feature for the DHIS connector module to export period indicator reports and underlying metadata alongside the DHIS connector mapping files and then to import them back again.

I wrote two pseudo functions first before going into coding with no plan.

Heshan Andrews

Computer Science Freshman at University of Colombo, School of Computing

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