Does anyone have recommendations as to how to record the fact that a drug order was administered? For example, if there is an order to give 2 tablets of paracetamol 3 times a day, we need a way to record that this has happened twice and the third time today has yet to occur.
As I understand it the design for Orders was intentionally limited in scope to recording the order itself, not recording whether the order was carried out. We’re developing a module for this so we have access to the Java API, and are looking for advice on ways to do this.
One possibility that came to mind is to define a Concept that means “Order executed” and record the administration of the drug as an Encounter in which there is a single Observation of Order executed with the relevant order ID. (In the example above there would be two such Encounters for the first two times that the patient took 2 tablets of paracetamol today.) Is there already a Concept that serves this purpose? Any thoughts on this approach, or other suggestions?
For the issue of determining if the third time of the day is yet to occur, i think you can calculate that based on the frequency and effective start date when the patient started taking the medication.
To track orders that have been already administered or not, you could possibly introduce a new table in your module with a foreign key to the orders table and store any relevant extra information about the orders that you can later use to determine the status of the order.
Thanks! I didn’t realize that modules could create their own tables. How do they get direct SQL access to the underlying RDBMS? Is there a good example of such a module that I could learn from?
@zestyping We also need to the ability to record drug administration, primarily for IPD settings. This is not a current priority for us, but if you are starting to develop something, I am interested.
@wyclif Do you think order administration can be identified as a domain in OpenMRS?
@vinay currently order administration is not taken care of in OpenMRS and that is what @zestyping is trying to address.
@zestyping there are several modules that introduce their own tables e.g allergy api, this page explains how to do it, documentation on how to do things in a module can be found here
@vinay, @wyclif, we have historically not included med administration in openmrs-core because we presume it will often be covered by other systems that OpenMRS would integrate with. However definitely we should be encouraging there to be a consensus-built implementation of order administration if that’s possible.
@zestyping, we started to implement something along these lines in the Ebola module. It is particularly focused on the idea that we know know when doses are scheduled for, and we mark them as given or not given, so that it would be very easy to see missed doses, when expecting to give meds over a short timespan. (That said, I’m not sure I’d take the same approach for a general-purpose solution.)