GSOC 2021 - Export and import feature for the OMRS reporting module: Requirement gathering

Hola people,

This thread is regarding the “Export and import feature for the OMRS reporting module” project listed under available development projects in OpenMRS wiki (wiki project page). I’ve taken a great interest in the above-mentioned project which led me to do some background research on the subject. Since then I’ve been trying to get a good solid grasp on properly identifying and specifying the problem, in the process, I continued to read documentations and even contacted and had a discussion with @jayasanka, took part in a discussion we had on the same project in the last (2021-02-02T18:30:00Z) COVID Squad call (meeting notes). Within this thread, I will try to do a requirement gathering, starting by giving an overview of the project and will keep the thread updated as I move forward. Quick disclaimer, everything I state here is within the confines of my current understanding, so any correction or advice is greatly appreciated.

Overview and Problem Specification

Sharing metadata among different OpenMRS installations is a must-have feature. Currently, we have two modules which have the ability to export/import different types of metadata with regards to each module. They are,

  • OpenMRS metadata sharing module (Module that is designed to export/import metadata)

    • Metadata types: Concepts, Htmlforms, Locations, Roles, Programs
  • DHIS connector module (Module that connects OpenMRS and dhis instances)

    • Metadata types: report definition-dhis data element mapping

Whilst the absence of the report definition sharing feature doesn’t affect the metadata sharing module directly it is in fact the case in DHIS connector module’s export mapping workflow. Currently, if a user was to create a mapping between a report definition and dhis data element and export it out to be used in another OpenMRS installation we would have to manually create the report definitions in the exact same way on the second system as this module exports only the mapping which in user’s perspective is a huge inconvenience.


  • Is there any connection between concepts and report definitions?

  • Is there any other module other than the above-mentioned ones, that has the functionality to share metadata?

  • Is there any other module other than dhis connector that is directly affected by the absence of report definition sharing feature?

  • In addressing the problem which approach would be the most pragmatic?

    • Under metadata sharing module as it is the module which is designed for sharing metadata
    • Under dhis connector module as it is the most apparent module which is directly affected
    • Under reporting module as it is the module which deals with report definitions


In my opinion, I think the most pragmatic way would be to design a solution to add the feature to dhis connector module to give it the ability to export/import report definitions alongside mappings. But at the same time, it does make sense to add the feature to the reporting module itself.

Next steps

I will try to find more information on the matter while clearing the foggy areas I have with the intention to come up with the best possible solution.


cc @mozzy @burke @grace @suthagar23

1 Like

The report definitions consist of some other core metadata elements such as,

  • Data Set Definitions: All reports contain a Report Definition that is linked to one or more Data Set Definition.
  • Cohorts Queries: Cohorts are the building blocks of indicator reports. A Cohort is a group of people who meet a certain condition or conditions.
  • Indicators: Indicators aggregate cohort data members and provide important data such as count, mean, median, fractions and logic expressions.
  • Dimensions: Dimension functions as a filter that can be put to an indicator to only aggregate certain kind of data from the cohort.
  • Filter: Filters are, as the name suggests, filters that can wrap the whole report and output filtered data.

Diagrammatic representation:

So for an exported report definition to function properly when imported the imported system should contain all the underlying metadata described above. How should we go about it? Do we need to export data set definitions, cohort queries, dimensions, indicators and filters along side report definitions? @k.joseph @mseaton Any thoughts?

@heshan did you take a look at how the metadata sharing module exports a ReportDefinition?

@dkayiwa I was going through the metadata sharing module documentation but i thought it only outputs concepts, locations and stuff like that, didn’t know it has a function to export report definitions. I’ll have a look, thank you.

Go to any demo server and try to export metadata to see all the available options.

1 Like

After reading the initial description of the project page in the OpenMRS wiki before updating the wiki page I think it’s better if we could change the name of the group into something relevant like Export and import feature of report definitions for OMRS dhis connector module. Since we already have a module to export report related metadata types I think this title would describe the project better. What do you think @jayasanka?

Hello everyone,

I shared a draft proposal for this project using the GSoC Dashboard. So, it’ll be very helpful if you could just take a look. Feel free to leave comments on the document itself. Any comment or suggestion is highly appreciated.

Here’s the link to the document

Thank you.

cc: @grace @k.joseph @dkayiwa @jayasanka


Well noted

1 Like