Message Delivery Triggered by Conditions within OpenMRS

Primary mentor

Daniel Kayiwa

Backup mentor

Shaun Grannis

Assigned to

Sriskandarajah Suhothayan


With the increasing volumes of data being stored in medical record systems, it is imperative to develop intelligent ways to utilize this data without increasing the cognitive burden placed on end users of the application. One such example is the Notifiable Condition Detection (NCD) module, which constantly monitors data being entered into an OpenMRS installation. Incoming data is matched against a pattern or critic, and when data is entered that matches certain conditions it is deemed a notifiable condition and the NCD module takes a predefined action.

Within the literature, multiple studies have shown the utility of reminding patients of upcoming appointments in reducing absenteeism. There is also anecdotal evidence that advising patients of their test results helps inform the patient and ultimately improves patient interest in the provision of healthcare.

This project aims to lay the foundation necessary to support uses such as the ones outlined above. 


The ultimate purpose of this project is to leverage OpenMRS's new capabilities in message delivery (see the messaging module) and notifiable condition detection. The goal is to allow the NCD module to deliver a user specified message via the messaging module when an incoming datum matches a user defined pattern or critic. As an example, when a CD4 laboratory result is entered for a patient who suffers from HIV, is on anti-retroviral medicine, and has agreed to receive messages from OpenMRS, the system delivers a message informing the patient of the laboratory result and where they can get further information. 

Domain Expert(s) / User(s)

Former user (Deleted), Former user (Deleted), Dieterich Lawson, Isaac Holeman

Required / Preferred Skills

  • Java required
  • Java Servlet / JSP development experience required


The user interface exposed to the end user should allow the user to define a critic for the NCD module. The NCD module should take one when the critic is satisfied, of which one possibility is to deliver a pre-defined message to the patient linked to the observation. Another interface should allow end users to define the messages to be delivered. 



Extra Credit

  1. Allow the NCD module to take multiple actions and/or deliver multiple messages when a critic is satisfied. 
  2. Allow delivery to agents other than the involved patient (OpenMRS installation, physician linked to the observation or patient, etc.)
  3. Allow the use of variables in the messages to be delivered (such as the actual value from the observation that triggered the event).