Project: Patient Flags Module OWA


When diagnosing a patient, it is important to know about any current ailment or critical condition the patient might be facing — for example HIV positive, High BP, CD count > 200). The module Patient Flags Module provides a way to highlight or flag patients matching certain criteria (ex: High Risk, CD4 below 200, HIV Positive, Diabetic, etc).

The UI of this module was previously a standard JSP based one. …


In the first week of GSoC’19 I had written an epilogue sharing how excited I was to be finally accepted into GSoC. It was particularly exciting for me, as it was my final year in college — and I was finally getting to fulfill a long pending dream of mine!

In all, GSoC 2019 with OpenMRS has been a huge bag of emotions. Developing a web app from scratch is not easy. Moving from a boilerplate scaffolding generated by a now outdated (but highly useful) Yeoman generator, to a fully functioning app was a challenge. To add another layer of…

In the second last week of GSoC we begin to wrap up our work for the OWA! 😃

In this week, we completed working on the following tasks. This leaves us with 3 tasks which are left to be completed in Week 12 before GSoC draws to a close.

Tasks —

  1. Remove Hard-coded API urls
  2. Generate POM and Assembly Files to incorporate OWA in the build process.
  3. Build the Filter function

Previously, whenever we tried to make a REST API request, we would hard-code the target URL and make a request at that particular URL. …

This week I suddenly had a lot going in my life and suddenly became uber busy. Hence I couldn’t contribute much to GSoC. Unfortunately, this also meant that we overran the Sprint #5 deadline, thus extending the during of Sprint#5 by half a week.

However there has been some progress to report back on —

  1. Manage Global Flag Properties

This component has been removed from the OWA development. This is essentially a configuration and need not be present in the user app. There exists no REST endpoint in the OpenMRS Global Properties to tune to parameters required for Manage…

In week 9, we submit our GSoC midterm evaluations & feedback and look ahead to Sprint #5

In week 9, we submit our GSoC midterm evaluations & feedback and look ahead to Sprint #5.


Here is a 22 minute ( it’s look but interesting, I promise 😜) video explaining our work in GSoC till now.


The following is an overview of our project goals, what we’ve achieved till now, and upcoming challenges and tasks.

Task Management & Breakdown Structure

In Week 8 of GSoC we developed our MVP or Minimal Viable Product. We also take a look at our OWA as it stands today and it’s future scope in the upcoming month.

A MVP or Minimal Viable Product is test-ready application that contains a core set of requisite features. In week 7 we had introduced react-redux into the mix. Furthering our progress, in week 8 we undertook the following tasks:

  1. Refactoring our code to make the app more efficient in its API calls and state management.
  2. Building the Flags component.
  3. Performing UI Enhancements by including a version of the…

In this week of GSoC we take a look at building the Flags component and what it took to get there (Hint: it’s Redux)

Unlike other components like Tags or Priorities, Flag is a bit of tricky one. Flag loads both Tag and Priority data and asks the user which Tags or Priority he or she wants to be associated with a particular Flag.

Legacy UI for Patient Flags

This reuse of data poses some design & optimization challenges —

  • I want to reduce the number of API Calls as far as possible.
  • Every time I reload a tab, I don’t want there to be…

This blog post explains the happenings of GSoC Weeks 5 & 6. We look at the modifications made to our API code, our current PR and focus on Sprint #3

GSoC Week 5 called for the first set of evaluations. We expected something huge and daunting, but the first evaluation is kept fairly lightweight with a survey being conducted on your respective mentor, organization and GSoC in general.

While this happened, we shifted our focus to 2 main focus points.

  1. We had just completed coding the ‘Priorities’ component, however, the delete functionality for both ‘Tags’ and ‘Priorities’ components were not…

This week of GSoC has focused on the ‘Patient Flags Priority component’, building it’s modals, doing REST calls and running discussions on the peculiarities of Patient Flags Module API.

This week of GSoC has focused on the ‘Patient Flags Priority component’, building it’s modals, doing REST calls and running discussions on the peculiarities of Patient Flags Module API.

Manage Priorities

The Manage Priorities UI

Similar to the ‘Manage Tags’ component, the ‘Manage Priorities’ component fetches a list of priorities and their associated style and rank via REST [documentation].

In this week of GSoC, we take a look at some of the API modifications we make in order to support our App. We also see our app finally taking shape.

Finally, I can proudly say that we achieved a lot this week. We unraveled new facts and caveats about our existing API; built our service to perform the REST calls; mapped our fetched data; discovered a whole new endpoint (😎); modified our API to return slimmer JSONs and finally we have a tangible UI to boot. Phew! let’s get started!

Slowly, but steadily taking shape — The Patient Flags UI

Unraveling the Patient Flags Module API

Patient Flags Module primarily has 2 components — an…

Rishav Rakshit

GSoC 2019 @ OpenMRS | I’m a software developer with ❤ for NLP and UIs. You can see my ML & NLP blog here —

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