The aim of this project is to provide the ability for users healthcare providers to mark commonly-used data entry forms as favoritestag/mark patients of special interest, and provide views of tagged patients for quick access.
Most hospitals and clinics that use Bahmni see a very wide range of patients, and thus they have many different data collection forms specific to different medical problems (ranging from HIV to Diabetes to Prenatal Care, and more). As this list of available forms grows, picking them in the user interface gets cumbersome.
Most individual doctors use a smaller set of forms most of the time. If we allow each user to mark some forms as favorite, and show these first, we will save time. Even ten seconds that the doctor doesn't have to spend searching a list in the UI when they're seeing a patient is very valuable.
You access the Form Entry screen in Bahmni by going to the Clinical EMR application and then going to Clinical => (Select patient) => Consultation => Add New Obs Form.
In this project you would make the following changes to that screen:
1. The button for each form should have a star icon; clicking on this toggles whether the form is a favorite for this user
See this doc for sample mockups of what this would look like in the app.
On the back end we should add a REST web service to make it easy for the AngularJS application to set/unset and list favorite forms.
Under the hood we might be able to store these using OpenMRS's User.userProperties field, however those are limited in value to only 255 characters, so we will either need to modify OpenMRS to make that field longer, or introduce a new Java domain object that lets us store these.
and healthcare providers often want to view or analyse certain cohorts/groups of patients based on various conditions (e.g. patients receiving similar kinds of treatment, patients with outstanding lab results). Adding functionality for users to tag patients using custom user-defined tags would allow for quick lookup of these patient groups, and provide a starting point for further development on patient analysis and notifications.
Patient tagging is not meant as a replacement for functionality like care-plans, programs, order sets, etc. which have much richer needs/scenarios e.g. patient state, visit schedule.
This project involves development in the existing Bahmni EMR to let users manage custom tags, and associate patients with these tags.
This would cover the following workflows:
I create a new tag(s) → I choose a patient → I mark the patient with one or more tags
I select an existing tag → I view a list of patients that have been marked with that tag → I select a patient from the list to view their patient record
This project would require data modelling work to extend the existing data model to support tags, as well as implementing functionality to manage tags, mark patients and view lists of tagged patients.
This would include work across the technology stack - adding back-end functionality, a REST web service, and user interfaces in the front-end AngularJS application.
- Experience working with RESTful Web Services
Adding front-end functionality to a large mature AngularJS application.
Adding a back-end REST web service to an OpenMRS module that exposes an existing Java API in a more convenient way.
- Documentation of this new feature in our wiki pages
- Extend the 'favorite' functionality to apply it to Medications.
To be able to manage (add/edit/remove) custom tags (local scope)
To be able to mark patients using one of the tags available to the healthcare provider
To be able to see a list of patients by tag - e.g. clinical, in-patient
To be able to create Global scoped tags based on privileges
To be able to mark patients with Global scoped tags
To be able to associate an indicator colour (and icon) and see the indicator on patient queues.