GSoC’17 — Final Blog Post

Hello Everyone,

This post is the summery of what I did during GSoC 2017 and how you can use it along with other useful resources.

Primary Mentor: Stephen S. Musoke (@ssmusoke)
Backup Mentor: Mayank Sharma (@maany)

OpenMRS receives data from various sources which have a different implementation. It is not always possible to check the validity of the data immediately, thus the Data Integrity Module is very helpful to check the validation of the data and alert the administration if something wrong. It helps to maintain data quality.


  • Improved filtering and display of results page.

Added multiple filters, upgraded the…

Hello Everyone!

Last week I continued working on DINT-82 which is going to complete soon, the complex stuff is done, just need to build on it.

This week is 12th week— i.e. last week of GSoC. I have learned lots of things during this period of 4 month (including 1 month of community bonding). I will include all the things I learned in my final post of GSoC’17 .

Coming back to DINT-82, I had real problem testing the REST APIs I was building. Basically, these APIs are written in Java and there isn’t any default hot-reload support for this…

Hello Everyone!

This week followed the work I have done last week. Last week I have designed the APIs and gathered feedback from community. I started with implementation of the REST APIs this week. Turns out OpenMRS developed a module for facilitate the development of REST APIs — it looks quite useful even I though I didn’t explore it much.

Major design issue of last week was tackle by @darius and he gave me but wonderful feedback. One of the major issue was should we host run_rules under /results or /rules . By the help of Darius, I was able…

This week I worked on DINT-82 — a task related to design and implementation of REST API. As of now, data integrity module don’t have any API support for showing rules and results or generating results by running rules.

This task is particularly challenging as well as important as by exposing data integrity module APIs, other services can easily use this module. OpenMRS Android Client or other such apps can use these APIs to check the validity of data received.

The design basically involved two resources in terms of REST API design conventions which are:

Data Integrity Rules

  • Hosted at /dataintgrityrules which supports…

Hello everyone!

This week I worked on DINT-74 in which I have worked on mockups and designs. As of now, the flow of not intuitive and kind of broken. It doesn’t actually represent the flow followed by the user.

DINT-74 points out to such broken flows. In this task I need to more the more intuitive and informative. I have worked on the mockups which are displayed below:

Landing Page (page 1)

Hi All,

This week I was quite busy with my college work so I couldn’t do much GSoC work. This week I just took very light tasks and discussed future tasks with mentor.

My this week tasks are:

  • DINT-74: Improve the workflow for running single rule
  • DINT-82: Create and expose API of data integrity module


Right now the flow of running single rule is not very intuitive and informative. In this task, I need to think of a way which is more engaged and intuitive.


This one is quite interesting and challenging task. Although I did have some background in API and relative stuff but I don’t have much experience with it in context of OpenMRS systems.

That’s all for this week.


Hello everyone!

This week I worked on DINT-80 which was relatively easy issue, I just needed to remove hardcoded strings and replace them with variable which fetches localised strings. Just after merging respective PR, my mentor released new version of Data Integrity Module . There are some major updated in Data Integrity Module — 4.4.1 which are:

  • Now users can filter the data integrity results by patient name, program name , by rule name and even by free text search.
  • Filtered/Unfiltered result can be exported to CSV, Excel and PDF for offline and other usage.
  • Some small fixes like improving…

GSoC’17@OpenMRS — Week Six

Hi everyone!

This week I worked on DINT-76 which again involves work related to datatables. More specifically, I need to add capability to export the filtered list in different formats such as CSV, Excel and PDF.

I started looking for different options then my mentor pointed me to the export feature provided by button library of datatables.

GSoC’17@OpenMRS — Week Five

Hello Everyone,

This week I worked on issue DINT-76 in which I have to add capability to export a particular list.

I guess you’ve remembered previous posts in which I mentioned a list which generated by running a particular set of rule which check for data violations. In DINT-73, I worked on improving filtering of the list. In that issue, I have used filters provided by datatables library.

DINT-76 was also related issue. I need to add feature which enables users to export the filtered list in different formats which includes Excel, PDF and CSV. …

GSoC’17@OpenMRS — Week Four


This week I continued working on DINT-77 which involves work regarding improvement of an widget provided by data integrity module. This widget name is Data Quality Widget which shows the list of rule violated by the patient data. For example lets say if patient’s death date mention is tomorrow — it is an invalid information. We need to flag it out.

It took me long to time to setup environment for this issue. Due to some recent development in related project, I wasn’t able to view the Data Quality Widget. Little background here — the widget definition was provided…

GSoC Student @OpenMRS, Crazy Developer, Budding Entrepreneur, Full Time Learner

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