Sorry to be slow in responding - traveling and battling a cold. There’s a lot of good points here and a few things to clarify. Hoping to respond in depth tomorrow.
Sorry to be late to the party. Great ideas throughout this thread; I’m also hoping for consistency among the growing number of drug ordering apps being built on OpenMRS. Some of the comments here have consistency as their goal, some are to reflect most common or most useful clinical functionality.
First, some definitions and terms that I hope will be adopted for consistency (after any necessary debate or tweaking):
Prescription – means a single drug order, and should not be used to mean a group of orders or a session’s worth of orders; that will confuse any clinically-oriented person.
Collections of orders: a. Order session = The collection of all orders for a patient that are signed/finalized at one time. b. Order set = A pre-written collection of orders, initially not attached to any one patient. The set is stored, named/indexed, and can be “played back” later by any clinician to become live orders for any patient. Order sets are widely used to store standard regimens – for example, one order set may contain five antibiotics that are normally ordered together for treatment of tuberculosis; another may contain three or four medications to be used after surgery. The orders in an order set are usually selectable – that is, when the doctor selects (“plays back”) the order set with a specific patient in mind, the doctor does not have to order everything in the set, but rather could select one, some, or all of the available orders. c. @darius, I don’t recall using the term “order sheet” as you have described it, although I could be wrong.
Dispensing vs. administration
a. Dispensing = taking drugs out of the primary storehouse (usually the pharmacy) and delivering them – to the patient for self-administration or to a nurse for administration in a hospital. b. Administration = Putting drugs into the patient’s body – which could mean a patient taking a pill, a nurse giving the patient a pill, or the nurse giving the patient a drug as a shot, infusion, patch, suppository, etc. Administration by a nurse is always done in response to an active order from the physician [or nurse practitioner, or midwife, etc., depending on local laws].
(re the comment about ‘prescribed’ vs. ‘prophy’):
a. Prescribed: a drug order that is intended to be dispensed and administered b. Documented: a drug “order” (using the same form) that is simply documenting a drug that someone else has already prescribed or that the patient takes on their own, such as vitamins – for the purpose of making the patient’s medication list complete and correct. c. Prophy: As I understand the thread, this is the same as “PRN” (“SOS” in some countries) drugs, which are prescribed but not given on a regular basis – rather they are given in response to some other event. Example: “Paracetamol 325mg tablets every 4 hours PRN headache” – only administer the drug if the patient has a headache, and in any event don’t give it more frequently than every 4 hours.
Now – to some comments about functionality, roughly in order of when the relevant item appeared in this thread:
Separate outpatient and inpatient tabs – an advanced concept, but a useful one if you are dealing with both inpatient and outpatient care. The outpatient meds are what you use most of the time; when the patient is admitted to a hospital as an inpatient, the outpatient list freezes, the inpatient list is reset, and the inpatient list is where new drug orders go until the patient is discharged.
a. Doing this automatically based on most recent admit/discharge events may not be 100% right, as you may write (inpatient) admit orders before the patient actually is admitted and you may write (outpatient) discharge orders before the patient is actually discharged. You could probably presume one or the other based on the admit/discharge events, but you must make it possible for the user to change to the other mode.
Default doses = standard fills for dose, frequency,
etc. – this is a good idea, but it needs some care to be clear to the ordering physician. Usually it depends on what you choose from the search results. Typically, when I search for a drug – say, “amoxicillin” – one of the returned search results is always the drug alone, usually with strength and form (amoxicillin 500mg capules); if this is selected, the physician fills in the dose, frequency, etc., fields in the ordering form – they are initially blank. Other search results, optionally, can be more fully filled templates that include any or all of: dose, frequency, duration, PRN information (amoxicillin 500mg capsules, 1 capsule 3x/day for 10 days). In that case the relevant fields are all pre-filled, although the physician could still make changes before pressing Ok to add the drug order to the current session.
Ordering vs. dispensing – the pharmacist who is dispensing (and also the nurse that is administering) should be able to see all the fields that the physician entered in any given prescription. However, the pharmacist will have different fields to edit, such as # of pills or amount of liquid dispensed, type of formulation and strength actually dispensed (sometimes the pharmacy doesn’t have the pill strength the doctor ordered, so they give the patient twenty 100mg pills instead of ten 200mg pills and change the instructions on the bottle). a. Where technology permits, the order form options could include: print prescription, send electronically to pharmacy, fax to pharmacy, document only.
Under ‘double entry’ you noted that the physician needs to sign off on all administration events. I have never seen that done and suspect it would be unwieldy as well as requiring the physician to be present every time the nurse gives the patient a pill, infusion or shot. I strongly suggest that this is not necessary or valuable – would be interested to hear if this is indeed the required workflow.
Active drug orders do indeed remain active until discontinued, changed, or they end, i.e., reach the end of their duration (not ‘expire’, which means the drugs have lost their potency). Many orders do not run out ever, such as taking a drug every day without cease to control your high blood pressure. Such prescriptions never have to change, although they usually need to be renewed periodically depending on
local laws (every year in the US).
As Darius has shown, I prefer a single display of drugs, which is either active medications or all prescriptions:
a. Active prescriptions – listed in reverse
chronological order (this is the default display). Usually called “active
medications” in the actual UI.
b. All prescriptions (this display is available with a click of a button labeled “show inactives”) showing all orders, whether active or discontinued/changed/ended. It doesn’t make much clinical sense to a user to only show the inactive drugs, especially when other drugs have been added in the middle of the sequence which happen to be still active. As Darius shows, we have favored showing these in reverse chronological order, with the inactive drugs shaded or otherwise visually distinct.
c. Also as Darius shows, one way we think has worked well is to roll up earlier prescriptions for the same drug underneath the most recent prescription (possibly indented), and to sort all of the drugs in reverse chronological order by most recent positive event (new prescription or change).
d. A drug being discontinued or running to the end of its duration does not affect the sort order of the drug in this list. e. When a drug finishes its course, you can change its status to inactive but you don’t have to post any new event at all.
Yes, it is good to propagate the medication form (capsules, pills, liquid, etc.) and route (oral, IV) directly from the drug concept into the ordering form. There must be flexibility, though: a drug which comes in a 500mg capsule can be dosed as “2 capsules” or as “1000 mg”, and a medication for children (especially for liquids) could also be weight-based – the same drug could be dosed as “50 mg”, “4mg/kg”, “5 mL”, or “1 teaspoon”. There are also alternative routes: a capsule or pill will normally be given by the Oral route, but could also be given per NGT (through a nasogastric tube) or a feeding tube. More commonly, a drug supplied as an infusion is often given IV, but could also be given intramuscularly (IM), subcutaneously (SC), and a few other variants. You even have to be careful with the default: IV is right for many medications, but insulin is most often given SC. There are standard “route groups” such as these which can be assigned for any medication form.
This may have already been discussed in this long thread, but I want to point out, from an architectural standpoint, these would be independent features:
- Prescribing (e.g., Order Entry Service)
- Dispensing (e.g., a Pharmacy Module)
- Administration (e.g., a Medication Administration Module)
In other words, each of these can benefit from the existence of the others, but we should avoid bundling these into one service/module or creating dependencies between them.
Some examples of common use cases in which OpenMRS is or will be used and can be supported if prescriptions, dispensing, and administration are independent:
- Electronic prescriptions (order entry), paper-based dispensing, no tracking of administration
- Paper-based prescriptions, electronic dispensing, paper-based administration
- Electronic prescriptions, dispensing, and administration all within OpenMRS + modules
- Electronic prescriptions in OpenMRS, a separate commercial pharmacy system used for dispensing, a separate commercial MAR (medication administration record) system used for administration
It’s probably safe to assume that order entry, if done electronically, would be done within OpenMRS. Just as with lab systems, those implementations doing electronic dispensing & administration might start with OpenMRS modules, but could easily evolve to replace those modules with enterprise level systems over time, so would migrate from doing these in OpenMRS to integration OpenMRS with external systems for these functions that would be out of scope for an EMR (see below).
Medication Tab for Pharmacist needs
Thanks everyone for the design call the other day. That helped me clarify a lot of things: As suggested by @jteich, I’ve looked at existing modules:
OpenMRS Dispensing module https://github.com/openmrs/openmrs-module-dispensing My understanding is that this module saves the dispenses as observations. That is what we currently do in our implementation (using HFE) so I guess it is just fine to keep it that way.
OpenHMIS Pharmacy https://github.com/OpenHMIS/openmrs-module-openhmis.pharmacy this module is not in use anymore and after talking with @ibewes, it has been replaced by the Inventory module ( https://github.com/OpenHMIS/openmrs-module-openhmis.inventory) which is a great module but obviously orientated in stock management, not really dispense (even thought a dispense is also a stock out event).
That brought me to the following conclusion:
Taking @burke advice to keep things clearly separate, what we need is:
- Prescribing - exists already (Order Entry UI)
- Dispensing - exists already (‘dispensing module’ or any module that saves dispenses as ‘observations’)
- Administration - does not exist yet (to create in a later stage)
Each of these modules would NOT depend on each other and just be used to create/edit/view their respective objects.
Then we would create another module that assembles the 3 functions above by providing the appropriate UI elements. That “Medication Management UI” module would add the kind of elements described earlier in the post:
- orders in reverse chronological order
- sorted by CareSetting
- with statuses
- and so on and so forth.
Plus some other elements such as dashboard widgets.
What do you guys think ?
can you share omod file of orderentrymodule.
Just wanted to point out that, the system domain should also support “MedicationStatement”.
We would like to show a summary of recent dispensed meds on the patient dashboard along with a link to a list of all dispensed medication. Has anyone tackled that?
- A new dashboard widget is needed which shows all obsgroups for an encounter, not just one obsgroup per encounter (obsAcrossEncounters) (see image below).
- Add a link to a new page from the clinician-facing dashboard which has the full list over time with all the fields (drug name, frequency, instructions, location, etc) for that patient.
We continue to use the Dispensing module. We will eventually move to using orders instead of obs, but our users would appreciate this feature now And this design would be needed with orders too.
@ball, who is making use of this information? Is this for the pharmacy, as opposed to the clinician? If the pharmacy refills an existing prescription, would that be a new and separate event in the dispensed-meds table, compared to the original dispensing of the original prescription? I ask because I would like to ensure that the dispensed-meds list is not confused with the prescribed-meds list. Doctors and nurses are (until you tell me otherwise) used to seeing a prescribed-meds list as the “med list” – with each prescription listed once even through many refills, etc. I can see the value of having a list of dispense events – I just wanted a bit of clarification in order to think more clearly about the elements of a dispensed-meds list.
@jteich - We want to show what was dispensed by the pharmacist on the clinician-facing patient dashboard.
This is what we currently have in the PIH EMR / RefApp-style:
- Dispensing: The pharmacist enters the medication dispensed into OpenMRS – drug name, dose, form, route, instructions, etc. The patient arrives at the pharmacy with a paper prescription. The pharmacist tries to fill that item, and might need to make adjustments to the formulary.
- Prescription: The clinician enters the plan for patient’s meds into OpenMRS – drug name, dose, form, route, instructions. The clinician writes paper Rx which is handed to the patient.
Of course we want to use OpenMRS drug orders, connect dispensing with prescription, replace the paper Rx with electronic, provide simple reordering, but we’re not there yet. When this is all connected than 1 med list would be ideal and show what meds were ordered/filled/reordered.
For now, the clinicians would like to start with the simple list of meds dispensed. It’s a good first step.