Bahmni - Notification on Patient Events
Primary mentor | @Daniel Futerman |
Backup mentor | @Darius Jazayeri |
Assigned to | @Isuranga Perera |
Abstract
The aim of this project is to provide a way for healthcare providers to subscribe/unsubscribe to notifications of specific events for 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 create new notification subscriptions , covering the following workflow:
I create a new notification rule -> I choose a patient -> I select one or more predefined events -> I choose a notification type -> I start getting notification whenever the event happens.
Term | Definition |
Event | An event is something that happens in relation to patient which triggers a notification. E.g. visit opened for the patient. |
Notification | A notification is a way to alert to a user |
Provider | Person who consults the patients. E.g Doctor, Nurse etc |
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. To start we would want you to implement one or two simple events ("patient is having a return visit", "lab results ready"), but with a clear mechanism to allow for more kinds of notification to be added in 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.
Project Champions
@Arjun Khandelwal
@Vinay Venu
@Daniel Futerman
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:
To be able to subscribe to in-app notifications on one or more predefined events for a patient (one patient at a time).
To be able to receive in-app notifications.
To be able to mark notifications as read.
To be able to unsubscribe to a particular subscribed notification.
Extra Credit
Consider visit types for the visit opened event
Consider normal / abnormal lab result for the lab result event
Add notification Types: Email, sms.
Achievements
Subscriptions management module to create/modify subscriptions
Microservice to read new events, filter events and dispatch notifications
Resources
Trello Ticket: https://trello.com/c/SC1AONae/62-allow-for-providers-to-subscribe-for-sms-notifications-in-bahmni
Project Overview: https://docs.google.com/document/d/1C0wPeSm3gnnYNXkW9unO7yiN86PqdiLmkLp4YuBQlCY/
Subscriptions Management Project Repository: https://github.com/IsurangaPerera/openmrs-module-notification
Microservice Project Repository: https://github.com/IsurangaPerera/Bahmni-Notifications-Microservice