GSoC 2021: Improving Functionalities of DHIS Connector Module - Project Updates

2021-06-22T18:30:00Z Update

The Pull Request for the database change was merged today by @jayasanka.

I sent the Pull request for initiating the location mapping UI.

Please review and merge.

Also, I tried adding ‘automated location mapping’ to the automation UI. And it was kind of successful. Maybe it’s not the optimum way. When an automated mapping is running, it fetches the available organisation unit of the mapped dataset and push data to those org Units from the respective locations taken from the database. Here’s a small preview.

1 Like

Weekly Meeting (Week 3) - 2021-06-25T18:30:00Z

Attendees: @piumal1999 @akshika47


  • @akshika47 got access to the DHIS Connector module Github repository
  • Created JIRA issues for adding support for 8 remaining period types in Automation
  • Created JIRA issue for initiating location mapping UI
  • Created JIRA issue for adding save/update functionality to location mapping UI
    • Almost completed the task.
    • Need to merge previous pull requests before creating the PR
  • @piumal1999 was able to optimize the location mapping saving functionality
    • Can add it from the next Pull request
  • @piumal1999 was able to test the automation with the Automatic location mapping feature locally.
    • Added a preview in a previous Talk comment
    • Need more testing
  • Found the reason for the 500 Internal server error of using APIs of Reporting Rest module.

Next Steps:

cc: @jayasanka @k.joseph

1 Like

2021-06-29T18:30:00Z Update

These Pull requests were merged by @jayasanka yesterday

I sent the pull request for save/update feature on location mappings today.

Also, I was able to fix the 500 Internal Server error caused in Reporting Rest Module! I’ll create an issue for that and send the pull request.

Now I can work on creating run reports UI with automated location mapping

cc: @akshika47 @k.joseph @jayasanka


2021-06-30T18:30:00Z Update

Weekly Update - Week 4

From 2021-06-26T18:30:00Z to 2021-07-02T18:30:00Z


  • Fixed the error occurred in reporting rest module
    • Sent the Pull Request and it was merged
  • Sent the Pull Request for save/update location mappings
  • Created issue for Updating run reports UI to work with location mappings
  • Tested Upgraded Run Reports UI locally
    • Send data function is completed
    • Download DXF json functionality is also completed
    • Download ADX functionality is not completed yet.
      • It throws a Class Cast Exception
        Request processing failed; nested exception is java.lang.ClassCastException: javax.xml.namespace.QName cannot be cast to javax.xml.namespace.QName
      • Need to find the reason for the error
  • Tested the Upgraded Automation UI with location mappings locally


Next steps:

  • Create issues for remaining location mapping tasks
  • Upgrade the Run Reports UI and Automation UI to work with the location mapping feature
  • Recheck the scheduling functionality
  • Start working on Role Based Access Control System

cc: @akshika47 @k.joseph @jayasanka

1 Like

Here’s a small preview of upgraded run reports UI. (6)

2021-07-03T18:30:00Z Update

The Pull request for location mapping UI was merged yesterday. Thank you @jayasanka and @akshika47 for reviewing and merging.

I found that the ADX download option (in Run Reports UI) is not working in the current version of the DHIS Connector Module. It throws a 500 Internal server error.

I created 2 new pull requests for Upgrading run reports functionality and automation functionality. Still, the Pull requests are in draft mode. I need to do recheck it before making it ready for review.

And the JIRA issues are still under review and need to be marked as ‘Ready for Work’.

@akshika47 @jayasanka Could you please check it and update the issue state.

1 Like

2021-07-04T18:30:00Z Update

Added unit tests to the previous Pull request. Now it is ready for review.

Also sent a Pull Request for Supporting Weekly Sunday Period Type

Please review and merge

Weekly Update - Week 4

From 2021-07-03T18:30:00Z to 2021-07-09T18:30:00Z


  • Upgraded the Run Reports UI and Sent the pull request. (A preview GSoC 2021: Improving Functionalities of DHIS Connector Module - Project Updates - #26 by piumal1999)
    • Added the unit tests and updated the pull request

  • Sent the draft pull request for Upgrading the Automation UI. But it can’t be merged due to the conflicts. Need to merge the previous pull request ( DCM-49: Add automated location mapping for Run Reports UI) before merging it.

  • The pull request for Supporting Weekly Sunday period type was merged
    • Also fixed a bug in Weekly period type with the same Pull request
    • So now the automation UI supports the Weekly Sunday period type
  • Also I sent 2 more Pull requests for more period types
    1. Weekly Wednesday DCM-44 - Merged
    2. Weekly Thursday DCM-45
    • I can send the pull request for Weekly Saturday period type as soon as the previous pull request is merged

  • Started working on the Role Based Access Control System
    • Found some resources for the task.
    • Tested the module pages by adding privileges
    • I’ll create another thread for the updates of this feature

Next week:

  • Finalizing the roles and privileges (A new thread will be used)
    • And Try to Send the pull request for creating privileges
  • Completing the Run Reports UI (Reviewing and merging)
  • Completing the Automation UI
  • Add the remaining period type supports for automation

cc: @akshika47 @k.joseph @jayasanka

2021-07-13T18:30:00Z Update

  • Sent a pull request for supporting Financial November period type in automation
  • Added the proposed module privileges to the thread

This is the automation UI that I have designed now. But I noticed that with this design, users can’t see which locations-orgunit mappings are available for the selected mapping. In the run reports UI, it automatically shows the available location-orgUnit sets but here it doesn’t.

So do we need to show the available location-orgUnit sets in here also? Or is that not needed

cc: @jayasanka

Weekly Meeting (Week 5) - 2021-07-16T18:30:00Z

Attendees: @akshika47 @piumal1999


Next week:

  • Create the privileges for module
  • Continue working on the Access control system
  • Completing the Run Reports UI (Merging the Pull request)
  • Completing the Automation UI
1 Like

Hi @jayasanka @akshika47, I was able to upgrade the Automation(Scheduling) functionality of DHIS Connector module integrating it with Automated Location Mapping, so the users don’t have to choose the locations and org. units manually. Here’s a small preview.

JIRA Link:

PR Link:

Please review and merge.

Unable to update data model using liquibase.xml - Module DHIS Connector

With the automated location mapping feature, the database of module will be changed a bit. Unwanted columns of both tables used in DHIS Connector Module will be removed.

This may cause an error saying Unable to update data model using liquibase.xml after updating the module. I found the solution for this issue from here

This sometimes happens with OpenMRS modules. Ideally liquibase existing changesets should never be modified and if there is a modification required, it should be added as a new and subsequent changeset.

Liquibase makes entries in table liquibasechangelog to keep track of executed changesets with a checksum/hash. When changeset is modified the checksum is found different and this error is encountered.

In above script we removed all tables created by previous version of team module, and also deleted all liquibase entries made by this module to allow module installation start from point zero. Offcourse, if it were production server, we never had deleted the tables. Also we never delete liquibase entries to avoid already executed changesets run again (this sometimes can also cause failed installations)

Deleting every row related to DHIS Connector module in the liquibasechangelog fixed the issue. Sometimes you may need to delete the report_to_dataset and location_to_orgunit table too

1 Like

Weekly Update - Week 7

From 2021-07-17T18:30:00Z to 2021-07-24T18:30:00Z


  • New run reports UI is completed (Merged)
  • Fixed the bugs in automation UI and updated the pull request
    • Ready to review now
  • Created JIRA epic and issue for user privileges
  • Sent the pull request for creating user privileges

cc: @akshika47 @jayasanka

1 Like

Weekly Meeting (Week 8) - 2021-07-30T18:30:00Z

Attendees: @akshika47 @piumal1999


Next week:

  • Completing the user access control system
    • need to merge the remaining Pull requests
    • need to finalize the draft Pull requests and make them ready for review.
  • Updating the documentation by adding the location mapping feature details
    • updating the github repo readme
    • updating the wiki page
  • Start working on UX issues
    • Create the JIRA issues

Hi. The user access control system is almost completed now. I sent pull requests for adding privileges to all the pages except the import/export pages. All the details and screenshots are posted in this thread: DHIS Connector Module - User Access Controlling

These are the Pull requests for adding privileges:

@jayasanka @akshika47 Could you please review and merge these. Thank you


Hi @dkayiwa, Could you also please review and merge these pull requests. I have added the pull request links to jira as well. Thanks in advance

@piumal1999 did your primary mentor take a look at them?

@piumal1999 @dkayiwa I will review these and merge them before the end of the day.

1 Like