Patient Flags Module Enhancements

All discussion about this should happen on this Talk thread for now

Primary MentorPascal Brandt
Backup MentorJan Flowers
GSoC StudentTBD
Interested PeopleSuranga Kasthurirathne Jonathan Teich Mark Goodrich Valerio Joao


The goal of this project is to build on the Patient Flags Module [1] to add more clinical decision support features.


There are many possible features we could add, but since this is GSoC, the scope needs to be limited. Here are a few initial ideas:

  • Ensure module is compatible with recent versions of OpenMRS
  • Ensure all Patient Flags functionality is available via REST (there was a brief discussion about it here between Pascal BrandtDarius Jazayeri & Valerio Joao)
  • Generate some meaningful custom flag examples
  • Add more default display points
  • Add more trigger points (e.g. on New Visit or Scheduled Task)
  • Add different alert styles (e.g. add recommendations/action button to the alert)
  • Add async alerts (e.g. email or Global OpenMRS Message emitted by scheduled task that evaluates flag logic)

Specific Examples

  1. Immunization check: if patient is >2 years old and has not had hepatitis vaccination, then show suggestion to order that vaccination, possibly show the immunization table, possibly be able to actually process that new order.  Triggered on patient signs into new visit / or on any chart pull (opening the dashboard)

    1. Build mock standard trigger method

    2. What is the value set for a hepatitis vaccination occurrence?  OBS for that vaccination having been given; presence on existing immunization record

  2. Immediate drug alert: triggered on order for a particular drug.  Logic is: if ordering and drug A and [patient is also on drug B; patient is not on drug C; patient has problem list D] then present: suggest you add an order or delete an order.

    1. Problem list may or may not be available (or may need to be simulated)

    2. Access to medications -- does OpenMRS have a consistent representation of “patient is on medication A”?  [Ref app would help to enforce this consistency!]

Suggest timeline

May 23 – June 08( ~ 3 weeks)

Participated in the O'Reilly Open Source Convention, gave an Ignite talk on GSoC in Cameroon

Planned with Jan and Pascal on Implementing REST API

Looked at eSaude REST repo

June 09 – June 22( 2 weeks)

Ported eSaude REST repo to Patient Flags module

Made Preliminary fixes to Pull Request

Refactored repo files to suit Patient Flags module.

Addied dependencies to relevant pom.xml files

June 20 – July 27( 1 week)

DockerCon travel and met Jan in Seattle.

Testing of REST API

Mid-term evaluation

June 28 – July 18 ( 3 weeks)

Get feedback from OpenMRS community on proposed Patient Flags enhancements.

Debug issue reported by Edwin on OpenMRS 1.9.7

Add display points and custom flags

Add async alerts and alert styles

Add new web services URLs, location resource object for Patient Flags module

Add LocationController to support REST URLs,  Manage Tags, Manage Priorities

Testing and debugging

July 19 – August 01 ( 2 weeks)

Documentation and testing


  1. Patient Flags Module
  2. Adding a Web Service Step by Step Guide for Module Developers
  3. Patient Flags REST Module (to be incorporated)