suggesting prescriptions
So it has been a busy month in Malawi. Seriously busy. Lots of code written, lots of new features and in general cool cool things. While in Lilongwe this past month, Mwatha, Kondwani, Soyapi, Dave and Edmond helped me merge the Partners in Health and Baobab Health versions of our touchscreen electronic medical record systems. We had forked the project as Baobab started on the its off-the-grid Ministry of Health sites and as we in Neno started focusing on outpatient diagnosis and treatment. This is a long way of saying that Baobab had made some cool stuff and PIH had made some cool stuff and we put it together to make everyone a little more cool.
One of the features that has me most excited is patient prescription suggestion.
Treatment
The treatment workflow will generally be performed by clinicians after a diagnosis has been made. The user selects this workflow (or it is automatically selected) and they are first asked for which diagnosis the treatment is being made (no diagnosis is an allowable answer).

If a diagnosis is chosen then the system, then the system will suggest popular treatment protocols for that diagnosis based on historical information collected in the system. This is where the feature really comes alive. Basically, because every prescription is connected to a specific diagnosis we can look in the database and see what the most popular prescription for the patient's current diagnosis is. Now, this may not always be right (more on that later) but it will cover the vast majority of cases and truly speed up the workflow in the clinic.
If the user selects a prescription, it is added to the patient's list of orders and will be printed on a visit label that can be presented at the pharmacy.
In some cases (especially when the system is first deployed and not full of historical data), it is possible that the user will not want to use this and will instead choose to create a new prescription.

When building a prescription the user must first choose the generic drug and then a filtered list of formulations of that drug. We actually worked on several revisions of this and landed here. Basically we found that there were so many forms of similar drugs that we needed to do it in two steps. This way you can pick the kind of drug (for example Ciprofloxicin, and then the specific formulation and strength.

From there two types of prescription are allowed "Standard" and "Variable". A standard prescription means that each dose that is given is the same (for example 2 tablets in the morning, 2 tablets in the evening). The user should choose "Variable" when the dose strength is different at different times in the day (for example: 1 tablet in the morning 1/2 tablet in the afternoon, 2 tablets at night). We find these to be far less common but they do occur (especially when prescribing starter packs of drugs for Antiretroviral treatments).

The dose strength allows the user to input how much (in specified units that the drug is delivered in) each dose should be. So in the case of something like Cipro the drug is dosed in mg, however in other drugs it might use "tablets" or "vials" or "mg/mL" for the units. This is configurable in the database when drugs are added.

Next you need to decide the frequency for the dosage. This comes from a set of concepts in the database and is ultimately stored as plain text. Really, I wish the frequency were stored as a concept and concept name (in OpenMRS speak) because then it could be aggregated a little better and faster, but this works okay. If you were prescribing a variable dose this would be skipped and instead you would need to select the dose for each period (in the morning, in the afternoon, in the evening, at night).
Finally you select the number of days to continue the prescription and whether or not it should be taken only as needed (e.g., for pain).

New prescriptions are listed in the prescription dashboard. Tracking which orders are filled (dispensed) is not currently part of the treatment workflow (as we do not currently have a pharmacy workstation in Neno).

But wait, it might be wrong!
Right. It might not have the best prescription for a particular patient or even a particular diagnosis. We are conscious that it doesn't give any advice about dosage strengths for age or weight bands and that this might be problematic. This slowed us down for a long time until we realized that the system is not supposed to replace clinicians. It is supposed to make them faster. It keeps the clinicians from needing to write anything in a large number of cases which makes the data more consistent, auditable, and readable by the pharmacist. But in general you need someone with clinical experience to know if the suggestions are right or wrong. I look forward to checking the data in a few months to see how often non-suggested prescriptions occur.
Background
Now how this feature came to be is one of those great mysteries of "whose idea was that?" that often happen when you have a really great project manager. I mean, it is pretty common that people want medical record systems to do magic things with data, so the idea is not necessarily novel. Nevertheless, the actual data and workflow pieces of the implementation here came from a late-night/early-morning Skype session with Evan after he had been meeting with clinicians. Evan Waters fills the role of project manager (among other things) in Neno and is one of those truly brilliant guys. He is probably more socially brilliant than technically (where he is quite adept) and he just knows how to get the best from people.
A lot of the thinking on how prescriptions should work on the touchscreen came from work that Gerry Douglas and Zach Landis Lewis had done for the pharmacy system at Kamuzu Central Hospital. Those evolved into the Baobab Anti-Retroviral treatment prescription system used in the HIV clinics that Baobab supports. All of this led to a series of meetings at Lighthouse where a group of us (including Andreas Jahn, Soyapi, and Mike) hashed out just how to use the drug tables in OpenMRS. Ultimately Evan and I took this, formulated a proposal to the OpenMRS developers list and simplified where we could.
With the one change of connecting the diagnosis observation to the drug order, this should be generally useful and possible inside of OpenMRS and should maybe become a module. Of course, this assumes that you have the data and the patient in the same place when you are prescribing and that the information for their current diagnosis is in the system. To do that you need to have a point-of-care system.
Want to try it?
As always you can go try out a demo copy at http://mateme.socialrange.org using the user name "Demo" and the password "Demo". Please don't input real patient information in there! Also, keep in mind the system is "empty" right now and I will probably update the database with the data learned from Neno soon.
4 comments
Jump to comment form | comments rss [?]