Consider the following scenario: A patient visits the Emergency Department of a hospital. A screening doctor sees the patient and records their vitals, and writes a note that the patient has fever and cough. Then a second doctor, a respiratory specialist, sees the patient, writes another note, and orders Aspirin (drug order) and a chest X ray (lab order) for the patient.
How can we model the above interactions with encounters, and with what encounter types? Are all of the following methods valid? For the purpose of this post, let’s ignore any current limitation of the form engine or any other hard-coded forms we have. Also, consider how each method adheres to our definition of an encounter: “an encounter represents an interaction between a patient and the healthcare system at a single point in time”.
-
We create 2 encounters, one for each doctor the patient sees. The first encounter, of type “screening”, records the vitals and first note observations. The second encounter, of type “respiratory specialist”, records the second note observation, and the drug order and chest order.
- While it is literally impossible for one screening doctor to take vitals and write a patient note at the exact same time, this is a technicality we don’t care about, and we loosen the encounter’s “single point in time” definition. We bundle those observations into a single encounter. We do so even if, say, there was a 10-minute lapse in real life between taking the vitals and writing the note. This might happen because the screening doctor fills out a form that asks for both vitals and notes, and the form is not submitted until both are filled out.
-
We create 5 encounters, basically one for each observation / order. The first 2 encounters, a “Vitals” encounter and a “Notes” encounter, record the vitals and first notes observations respectively, with the encounter provider being the screening doctor. The last 3 encounters, a “Notes” encounter and a “drug order” encounter and a “lab order” encounter, records the second note and the drug order and lab order respectively, with the encounter provider being the respiratory specialist. (This is how the vitals and notes (and to a lesser extent, the order basket) workspaces in the O3 patient chart work right now.)
- This takes the encounter’s “single point in time” definition more literally, and the doctor fills out a different form for each obs / order. However, we do this at the expense of creating multiple encounters over the course of one sitting with a single doctor. The doctor might have to fill out multiple forms for related observations, and there is nothing in our data model linking encounters that happen within the same sitting.
Aside 1: It is worth noting that the FHIR standard has a more flexible definition of an encounter. Specifically: a FHIR encounter has a time range (duration) instead of happening at a single point in time, and FHIR encounters can be nested, i.e. there can be a parent encounter with 0 or more child encounters. This means we can have a hybrid of both 1 and 2, by creating encounters for each observation / order, and also parent encounters grouping them by the doctors. That said, I’m not sure if this is an intended usage, and our current data model does not support this.
Aside 2: Also worth noting that, historically, encounters being a “single point in time” is not taken literally. For example, a surgery lasting a few hours can be modeled as an encounter.
How we model the interactions also drives how we design our forms. When submitting (NOT editing) a form recording obs / orders, is it ever true that it can:
- create exactly ONE new encounter? (I think Yes. We link the obs and orders to that one new encounter)
- This means, for a form that asks for both vitals and notes, it would be incorrect to have the encounter type as just “Vitals” or “Notes”. A more appropriate encounter type would be something like “Screening Encounter”.
- I think this also means, for distributions that never asks for vitals or notes standalone by itself, the O3 refapp notes and vitals workspaces should be disabled, and more appropriate forms should be created / used instead.
- This means, for a form that asks for both vitals and notes, it would be incorrect to have the encounter type as just “Vitals” or “Notes”. A more appropriate encounter type would be something like “Screening Encounter”.
- create MORE THAN ONE new encounter? (I think No. If we want observations / orders to be in 2 separate encounters, we should have 2 different forms)
- Does this mean, for distributions configured to have “drug order” and “lab order” encounter types, we should disable the O3 order basket (which bundles both types of orders into a single encounter), and instead create 2 separate forms, one that only produces a “drug order” encounter and another only a “lab order” encounter?
- create ZERO new encounter, i.e. the obs are recorded, but to an encounter that already exist in the system? (This is how the order basket kind of works right now). (I thought no, but I’m not sure now based on comments here.)
- Does this mean we need to build something, either in the frontend or backend, that has a notion of an “encounter context”, and that when we submit an observation, the encounter context determines which encounter the obs is linked to?
(This post is motivated by this slack thread, and has implications on how RDE and form engine should work.)
cc: @ibacher @samuel34 @slubwama @makombe @amosmachora @mseaton @mogoodrich