Wiki Spaces

Documentation
Projects
Resources

Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack

Projects

Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Primary mentor

N/A

Backup mentor

N/A

Assigned to

N/A

Abstract

The aim of this project is to provide a way for healthcare providers to subscribe to notifications about patients in Bahmni.

Context:

Bahmni is built for point-of-care use, and healthcare workers use it directly as they are seeing patients in resource-limited settings). This works for many workflows (e.g. seeing patients in the order they are queued), but adding a notification would allow for some improved workflows, by not requiring the doctor to actively remember to check on things.

For example:

1. A doctor requests lab tests for a patients, and wants to be notified as soon as the results are ready (or perhaps only if there are abnormal results)
2. A doctor wants to know if one of their patients is revisiting the facility (to provide followup care, because the patient is participating in a research study, etc)

Details:

One piece of this project involves developing user screens in the existing Bahmni EMR UI to let users mark their "favorite" patients, and then to indicate what kind of notifications they want to get about these patients.

The simple approach would be to add a star icon in the patient header so a user can favorite/unfavorite that patient, and to have an independent "manage notifications" screen that lets the user choose what kinds of notifications they want to receive, and via what communication channels (applying this to all their favorite patients). A more complex approach would let users subscribe to specific notifications on a per-patient level. A first step in the project would be to post in the discussion forums to get feedback about which approach makes more sense.

A second piece of the project involves creating a new microservice that reads the (existing) atom feed of patient events, and determines whether anything notifiable has happened. The default approach would be to build a Java application for this and use the atom feed reader library we have already built for use in Bahmni. But other tech approaches are possible. (Whether the application is Java or not, it might be better to write the specific rules in JavaScript or Groovy). To start we would want you to implement one or two simple rules ("patient is having a return visit", "lab results ready"), but with a clear mechanism to let allow for more kinds of notification to be added in the future.

The third piece of the project involves actually delivering notifications to users. In an ideal world we would let them choose from multiple notification options (SMS, email, telegram, browser push, in-app notification, etc), but for the scope of this project we would support just a single notification mechanism that does not have any per-message cost to the hospital. An early step in the project would involve getting feedback on our discussion forums about which mechanism is good enough to start with.



Providers would likely want to be notified of certain events in the system for SMS-based notification (or email/in-system notification, etc).

For instance:

  1. A patient is re-visiting the facility. This might be of interest to a doctor doing a PhD research, and would like to know when a particular patient returns to the hospital.

  2. A patient xRAY or Lab Test result is submitted to the system --- for high risk patients a provider might be interested in being notified. Or being notified only if a Lab Result is ABNORMAL. (Although definition of ABNORMAL isn't really always the same for all patients/ages/genders/conditions).

From an implementation perspective, the idea could be that Bahmni logs "events" as they occur in the system, and a notification sub-system allows you to subscribe to some "patients" or "patient events", and emit these notifications. The Audit Log feature could also use a similar logging subsystem.

Project Champions

Skills Needed

  • Java & Javascript (especially AngularJS)
  • Experience working with RESTful Web Services
  • Nice-to-have : Experience with microservices architectures

Objectives

This project consists of two pieces of software development:

  1. Enhancing our existing web UI with the ability to mark patients as "favorites", and to set their desired level of notifications. This would entail contributing to a mature, sophisticated Angular 1.x application.
  2. Building a new microservice from the ground up that reads event feeds, determines relevant events, and delivers notifications. (You would have flexibility to choose the tech stack for this.)
  3. In addition the project would require communicating with interested users to refine the exact feature behavior, and to document it on the project's wiki.

Extra Credit

Resources

  • No labels