GSoC 2021: Improving functionalities of DHIS Connector module

Tags: #<Tag:0x00007f23d14c66d8> #<Tag:0x00007f23d14c65e8> #<Tag:0x00007f23d14c64d0>

Hi, I’m interested in the “Improving functionalities of DHIS Connector module” project listed under GSOC 2021 project ideas.

The objectives and goals of the project were not mentioned on the wiki page. Some objectives were discussed in the previous covid squad meetings and separate threads. So this thread will be used to gather information and also for further discussions on the project.

First of all, it’s better if we can find out how many users we have for this module currently. I checked the module details in the openmrs add-ons page 2021-02-04T18:30:00Z and it showed that there are 11 downloads in past 30 days. Maybe all those are just our developers.

If we have any users, we can use a questionnaire to gather the new objective. So please let me know if there’s a way to find how many users that use the DHIS connector module.


As I found from the previous discussions, most required functionalities are as follows:

  1. Location mapping feature
    I found a very detailed description for this done by @jayasanka here: Implementing functionality to map Org Units in DHIS Connector module. Basically, we need a way to map the openmrs org units with the DHIS 2 org units. In the current version, we have to map it manually every time.

  2. Controlling User Access
    We need to add role-based permissions for the module. (Ex: allowing only data manager/data assistant roles to push data). In the current version, any user with any role can push data to the dhis2 instance.

  3. Extending period support
    We need to support all the period types available in DHIS2

  4. Fixing UX issues
    In the dhis connector module pages, there are some buttons and checkboxes that users may not understand properly. (Ex: Automation view). Those issues needed to be fixed.


The following requirements were also discussed in the previous covid squad meeting.

  1. Optimizing the Module
    Need to increase the performance of the module by optimizing the processes.
    Todo: do further research on this

We can optimize the process if we can use the relative period types in DHIS2. But have to find a way to use the API with relative datatypes. In the documention, it says that relative datatypes can be used with analysis modules. I couldn’t find enough details on that. So i posted in the the dhis2 community telling my issue.

I hope someone will respond soon and I’ll put the updates on that here.

Still have no update on relative period types.

Here are some UX issues i found in the dhisconnector module. Some are minor issues. I have added the solutions i thought, along with the descriptions.

Automation UI

  1. In the Automation UI, a tick box is used to enable/disable Automation option. But after changing that, the user always have to click the submit button with the data table to save it. Users may confuse with this. (If someone has accidentally changed something in the data table, the submit button will save those also.)
    Solution: adding a separate button for the toggle automation option with a label to show the status

  2. The mapping table in automation UI has 2 run options. One for the first run and the another one for the “Re-run” option. The “Run” option only works in the first time.
    Todo: Find if there’s a specific reason for use 2 options to run and re-run

  3. Delete mapping option is also given as a tickbox. So the user has to click it and click the submit button again to delete successfully.

    Solution: add a feature to remove mapping one by one

  4. Users have to select org units every time
    Solution: Integrate with the location mapping feature

Configure DHIS server UI:

  1. In Configure DHIS server interface, there is no way to find out whether the server is configured(and connected) correctly. It automatically saves the configuration in the first time. But if the DHIS2 instance is not accessible afterwards, the module will throw errors.
    Solution: adding a label to display the status of server

Hello @akshika47 , Would you like to mentor this project?

1 Like

@piumal1999 yes, I would like to. Thank you for the tag.

1 Like