• Primary mentor : Sam Mbuga
  • Backup mentor : Martin Were
  • Student : Dileka Madushan
  • Project Wiki: Link



  • Generating Patient clinical summaries using SQL data set definitions.
  • Creating scheduled tasks to generate patient clinical reports.
  • Creating user interface to create report configurations.
  • Creating back-end infrastructure to implement functionality.
  • Creating endpoints to consume…

12th week of Coding

In this week I developed muzima Android app to display patient reports. I had to try out different methods this week. here is a brief description of how I approached my task.

I used the functions of muzima api to call the server. Those middle-ware was developed by muzima developers, so my work was easier 😆! The muzima api calls the server asynchronously, so I had to wait until the report is fetched to muzima app. So I created a background process which listens for the message

When the download is complete I receive the message and then displays the report to the user.

11th week of Coding

The GSoC 2018 was reaching its end, so I had to steam in to finish on time 😅. In this week I engaged in displaying the data(MuzimaGeneratedReport) that is fetched from the server.

I first tried to create a view containing a list of the reports of a particular patient. I followed the procedure to create a list as you normally follow in Android.

I created a layout file named report_list_view and created a list as follows.

Then I created an Android Activity named PatientReportListViewActivity and used the following code 😆

10th week of Coding

This week was also a successful week as I completed the job of finalizing the end points in muzimacore module. This endpoint would be used by the muzima android app to download patient reports.

First I had to add a change to the existing database because the design team had requested to add a new field priority to muzima_generated_report. This attribute was set as a tiny_int and the default value was set to 0. …

9th week of Coding

The 9th week of the program was really important as the 2nd evaluation was scheduled. I engaged in improving the scheduled task in muzimacore module which creates summary reports for each patient in a cohort.

I installed reporting compatibility module so that cohorts could be built. Next I had to add a concept dictionary so that I could add Obs for a patient.

Once a report configuration is created by the user(i.e-mapping a cohort with report definition) the scheduled task of creating patient reports take over.

Introduction to the Report Generation Task

  1. The process is started everyday at 00:00 hrs…

8th week of Coding

The start of this week was a landmark of my project, because I had to complete development in the muzima core module and then move to the development in muzima android app.

I tried to complete the scheduled task to generate reports for patients with in this week. But I ran into a dead end when rendering the output for each report request. The report generation is implemented as an asynchronous task in the reporting module. So waiting until the task report is generated was a problem.

The generated patient reports by the muzima core module should then be displayed…

7th week of Coding

This week was one of the busiest week as I was required to complete generation of summary reports in openMRS webapp.

First I created controllers which are capable of mapping a cohort with report designs and display them in interfaces that I created last week. I achieved this task with the help of controllers created previously by early programmers. Skills in AngularJs made this work easier 😆.

Then I had the task of creating back-end functionality to add scheduled task to generate summary reports according to each report configuration added by the user in the following interface.

For this task…

6th week of Coding

In the last week I had finalized all the designs with my mentor so that implementation could begin soon 😅. As we planned, the coding started this week! I started with changes in the openMRS webapp first before muzima mobile application is modified.

My first task was to produce the user interfaces with in the muzima-core module. Skills of HTML and AngularJS 1 helped me to achive this task after few days of work 😆.

Then I started to add required back-end functionality for each user interface. First I needed to come up with a database change which was implemented under the guidance of my mentor Samuel Mbuga 😃.

5th week of Coding

It’s now been a while since GSoC program has started. The past week has been the 5th week of the program. It’s been so exciting with GSoC 2018 so far 😃.

As I described you in the last weekly blog me and my mentor had been working on coming up with mock-ups before implementing generation of patient clinical reports and integrating the reports in mUzima Android App.

Throughout this week also I engaged in designing the mock-ups under the guidance of my mentor Samuel Mbunga. There were several modifications suggested and I could come up with most of them 😛.

4th week of Coding

At the end of the third week I had successfully created main components of the summary report.

Now it is time for configuring this report to be used by mUzima app which is used by the clinicians in remote areas.

I installed the mUzima Android app in my phone to get familiar with the workflows. The mUzima core module is used to connect the openMRS web app with mUzima app. I together with my mentors came at crucial design constraints before the coding really begins 😃.

  • Clinical summary generated through a scheduled task.
  • Summaries are generated for a patient whose…

Dileka Madushan

I am an undergraduate from University of Moratuwa who is interested in Distributed Computing, micro-services, block-chain and Data Science.

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