SMART in PowerChart and Contexts

585 views
Skip to first unread message

Jenni Syed (Cerner)

unread,
Mar 13, 2017, 5:46:36 PM3/13/17
to Cerner FHIR Developers
I received the following questions about setting up SMART in PowerChart/Millennium, and wanted to post them here since I know many others also have similar questions:

  • Are SMART apps integrated into PowerChart via PrefMaint? 
Yes, they are configured similar to how an MPage may be configured.
  • In PrefMaint, is the URL in the REPORT_NAME field equivalent to the SMART Launch URI for Code Console apps? Or, am I missing something here?
No, this is a different URL than what is configured in PrefMaint. The SMART app will receive the "normal" SMART launch. EG: https://{app_launch_URL}?iss=https://{fhir_base_url}&launch=123XYZ See http://docs.smarthealthit.org/authorization/#ehr-launch-sequence for more detailed workflow
  • Who hosts SMART apps? It looks like Cerner does. If we choose to do so, could we host our own SMART apps? How would that work?
It's actually more common for the person or organization writing the application to host it. So far, we only host the SMART applications that we provide or contribute to (If someone wanted us to host their app, we would need to do further investigation and discussion).
  • What does “context” mean for a SMART app running in the PowerChart environment? What contextual resources are available to a SMART app? It looks like user and patient context may be available. Is there anything else?
Profile (user), Patient, and Encounter are standard contexts that we provide. We also set the need_patient_banner context as described: http://docs.smarthealthit.org/authorization/scopes-and-launch-context/. There are a few non-standard contexts that may come back as well, like "tenant" which is often used to separate owning/contracting organizations, or to separate data (the iss parameter can be used for this as well).
  • How does a SMART app programmatically access context? Are there API calls, or is context simply passed in on the query string?
The SMART app would receive the context in the authorization token response. Example here: (in "Response") http://docs.smarthealthit.org/authorization/#app-exchanges-authorization-code-for-access-token. These are FHIR resource _ids. So, to read the encounter your application would take the id returned and GET /Encounter/[id from token response]

~ Jenni 

Steve Clark

unread,
Mar 14, 2017, 11:03:21 AM3/14/17
to Cerner FHIR Developers
Thank you very much for this very helpful information! I have some follow up questions:
  • What are the steps for moving a SMART app from the Code Console environment to a PowerChart environment? For example, let's say we wanted to move the SMART app in the Cerner code tutorial (http://engineering.cerner.com/smart-on-fhir-tutorial/) into PowerChart. What are the detailed steps we would take? For reference, here is how I have this app configured in my Code Console:

App Info


Client Id: <my-client-id>

SMART Launch URI: https://<my-github-username>.github.io/smart-on-fhir-tutorial/example-smart-app/launch.html

Redirect URI: https://<my-github-username>.github.io/smart-on-fhir-tutorial/example-smart-app/


App Type: provider

Authorized: true


Standard Scopes:

online_access

launch

profile

openid


Patient Scopes:

patient/Observation.read

patient/Patient.read




Jenni Syed (Cerner)

unread,
Mar 15, 2017, 7:03:58 AM3/15/17
to Cerner FHIR Developers
Hi Steve,

Most of the time, we would put it in one of our sandbox PowerChart domains once a developer was part of the Code Developer Program. The app would go through validation before being moved to production (once a client requests the application).

For a client developed app, the first requirement would be having FHIR installed, and usually there's some engagement to do the setup and install, as well as understand what the applications requirements are in order to ensure mappings for terminologies are done.

~ Jenni


Reply all
Reply to author
Forward
0 new messages