Stream: smart
Topic: EHR launch prompted by an external party's request
Frank McKinney (Sep 28 2020 at 19:00):
Hi. I’m looking for guidance on launching a SMART app from an EHR, prompted by a request communicated from an external system. This would happen after a patient encounter, maybe hours or days later. I spent some time googling IGs and searching chat.fhir.org and didn’t find models matching our use case, so I thought I’d reach out to folks for feedback on the approach below.
In our use case…
- a doctor sends a prescription from her EHR to a specialty pharmacy
- the pharmacy gets the prescription and determines that it needs to ask the prescriber’s office a question (e.g., a clarification on an aspect of the prescription)
- the pharmacy needs to notify clinic staff and ask them to answer the question
- the clinic user gets notified, launches the pharmacy’s SMART app, get’s brought to the right question for the patient/prescription, and provides an answer
My main question areas…
- best way to notify clinic staff to launch the SMART app from the EHR and answer the questions
- best way to convey a unique identifier for the particular question(s) to be answered… to be used during SMART launch so the app can pull up the right questions. In the approach below, the pharmacy sends this identifier in the Task to the EHR, and it is then sent in the “intent” launch context parameter back to the app
Strawman approach:
- while working the prescription, pharmacy staff captures their questions in the pharmacy’s SMART app. The app associates the questions with an “initiation id” that can be used later to pull them up
- the pharmacy system exchanges a Task resource with the EHR, asking it to create a staff work queue item to launch the pharmacy’s app and answer the questions. Included in the Task are: identification of the SMART app, the patient ID and the “initiation ID” for pulling up the questions
- when the clinic user takes action on the notification, the EHR…
- launches the SMART App
- sets a session launch context using the patient ID it received in the Task
- includes the “initiation ID” in the “intent” launch context parameter… which the SMART app will use to pull up the right patient/medication questions. (I'm proposing the intent parameter here because I don't see another option...)
Is this a reasonable approach? Or is there an existing convention that folks could point me to that accomplishes the same thing but in a different way? I’d appreciate any input.
Thanks!
(sorry this got kind of long)
Isaac Vetter (Sep 28 2020 at 19:08):
Frank, in truth, I'd say that these more complex workflows are still being figured out and there aren't yet strong patterns for them. A Task containing a link to a SMART app makes sense to me. CDS Hooks defines an appContext
SMART launch parameter which is used in a similar way to your proposed use of intent, but it wouldn't make sense for the CPOE/EHR system to always ask the pharmacy if a prescription needs more information.
Isaac Vetter (Sep 28 2020 at 19:08):
Personally, I think it's very reasonable for an IG to define it's own "SMART launch context parameters", with their own meaning.
Frank McKinney (Sep 29 2020 at 16:59):
Thanks for your input, Isaac. Appreciate it
We'll write up this approach with some more detail in the Specialty Rx IG... and will reach out for thoughts on the more concrete description.
Josh Mandel (Sep 30 2020 at 16:23):
agreed that IG-specific params are a good balance here. (They key aspect of appContext
is that values are created and consume by the app, and are opaque to the EHR, which just manages the state of passing them around; it'd be good to avoid using appContext
in a way that violated this basic premise.)
Frank McKinney (Oct 15 2020 at 21:22):
Hi @Isaac Vetter , @Josh Mandel . I drafted an approach for prompting the launch/use of a SMART app by submitting a Task to the EHR... like we discussed above. Based on your suggestion, the process passes a context value into the EHR in the Task that's then included in the SMART launch in the appContext
parameter.
If you'd have a chance to take a closer look at what I've put together, and let me know if I'm on the right track, that would be great.
- Here's a page from the IG I'm working on that overviews the process and talks about the key Task content and how it's used in the app launch
- This is the Task profile
- and here's an example Task
Any thoughts will be appreciated!
Last updated: Apr 12 2022 at 19:14 UTC