Connecting an application to a live instance, next steps

137 views
Skip to first unread message
Assigned to yegor...@gmail.com by jenni...@gmail.com

Owen Allen

unread,
Jul 6, 2018, 9:34:19 PM7/6/18
to Cerner FHIR Developers
Hello, I'm working to utilize the Cerner APIs as a means of improving some hospital workflows for a group of oncology pharmacists. I'm not exactly sure what the proper process is for integrating with Cerner Millenium. Using the sandbox environment I have been able to successfully authenticate and read patients and enter orders for medication. So, in theory that proves that my idea is theoretically possible. Now, I'm not sure what the next step is?

1. How would I go about getting the live FHIR URLs for the instance specific to this hospital?

2. Is the app registered with the Cerner Code Portal the same app I would be utilizing for this specific hospital, or do I have to register it specifically with the hospitals instance?

3. If I want to do an app for a specific client, does it still need to go through the approval flow documented at: https://code.cerner.com/submit ?

4. Regarding the different methods to launch my application. As I read the docs, most of them seem like they are launched from within the Cerner platform. In the case of stand-alone applications, it seems possible to me to simply have a SAAS website where the clinician would open it in a standard web-browser and then it would put them through the authentication flow. This way it doesn't have to be specifically launched from within Cerner. Is that correct? The reason I'm leaning towards this approach is that it would allow me to develop it as a prototype, so that I could interact with it, show it to hospital employees but it would not be available to staff until it has been given the all-clear internally.

So basically what I'm trying to figure out is how do I move through the phases of development from from a proof of concept in the sandbox, to developing an application against a live environment, to a beta against a live application, to launch on the live application.

Thanks,
Owen Allen

Jenni Syed (Cerner)

unread,
Jul 10, 2018, 10:44:50 AM7/10/18
to Cerner FHIR Developers
Hi Owen,

One clarification: when you say you've been able to enter orders for meds, I assume you are referring to the MedicationStatement resource? If so, that is not a prescription (that would be MedicationOrder). When you create new MedicationStatements, you're just creating a historical record that the patient is taking something at home that the site didn't have on record.

~ Jenni

Mark Butler

unread,
Jul 10, 2018, 2:32:52 PM7/10/18
to Cerner FHIR Developers
I'm not positive as I've yet to get to release myself but this is what I've gleaned so far:


1. How would I go about getting the live FHIR URLs for the instance specific to this hospital?

You should be getting these values dynamically from the metadata file. You could also manually pull the data from the file and then do a find and replace in your code (really icky) to get it pointing at the right resources. Also, the system admin would/should have that information for you.
 
2. Is the app registered with the Cerner Code Portal the same app I would be utilizing for this specific hospital, or do I have to register it specifically with the hospitals instance?

(I think) You would register it specifically with the hospitals instance to make it available within that system. You'd then have to configure the application with the paths, ClientId and AppCode/AppSecret from that registration.
 

3. If I want to do an app for a specific client, does it still need to go through the approval flow documented at: https://code.cerner.com/submit ?

I'd really like to know the answer to this one. The apps I develop probably won't be public domain either.


4. Regarding the different methods to launch my application. As I read the docs, most of them seem like they are launched from within the Cerner platform. In the case of stand-alone applications, it seems possible to me to simply have a SAAS website where the clinician would open it in a standard web-browser and then it would put them through the authentication flow. This way it doesn't have to be specifically launched from within Cerner. Is that correct? The reason I'm leaning towards this approach is that it would allow me to develop it as a prototype, so that I could interact with it, show it to hospital employees but it would not be available to staff until it has been given the all-clear internally.

I asked pretty much this same question a few days ago. What I'm doing is creating a new login at the Cerner Developer Portal and then giving instructions to the powers that be on how to interact with the app from there. I, for one, haven't figured out how, or if there is a way, to go through the authentication flow outside of the Portal.


So basically what I'm trying to figure out is how do I move through the phases of development from from a proof of concept in the sandbox, to developing an application against a live environment, to a beta against a live application, to launch on the live application.

Me too.
 

Thanks,
Owen Allen

Owen Allen

unread,
Jul 11, 2018, 1:01:56 AM7/11/18
to Cerner FHIR Developers
Jenni, from reading the documentation I didn't see a way from the API to issue create statements on MedicationOrder. I only see a GET option labeled in the documentation. Is there actually a POST endpoint for MedicationOrder?

Mark, when you say 'You should be getting these values dynamically from the metadata file.', do you know how I would find that metadata file. In the sandbox that requires knowing the base url to call the metadata route. How do I determine the base url for my hospitals dataset to call it's metadata route? Is there some consistent naming scheme or a way to derive it by looking at the cerner client?

Yegor Hanov (Cerner)

unread,
Jul 11, 2018, 8:23:52 AM7/11/18
to Cerner FHIR Developers
Hi, Owen!

You are correct, there is no POST endpoint for MedicationOrder.

If you are writing the app for launch within the EHR, base URL to the FHIR server will be provided when the EHR first triggers the launch of your app, you can then perform a query to the conformance statement - https://fhir.cerner.com/authorization/authorization-specification/#ehr-launch-flow

If you are following the contextless flow outside the EHR (https://fhir.cerner.com/authorization/authorization-specification/#contextless-flow), you will need to know the location of the FHIR server and the tenant key identifier of your domain.  Those get created during API onboarding process for your environment and you can request that key by logging a service request through eService portal.  Make sure to select the following when logging support request:

  • For Solution Family, select Open Development Services
  • For Solution, select Ignite APIs for Mill

Thanks,

-Yegor (Cerner)

Mark Butler

unread,
Jul 11, 2018, 8:29:37 PM7/11/18
to Cerner FHIR Developers
As Yegor said it's there to be had. It comes in three parts. 

1. It's the base part in the iss argument passed to your launch page at startup
2. The ClientId of your application. (From when your registered it.)
3. Then append "/metadata" to that url.

For example, the url passed to my application launch page is something like:

I pull out the base url "https://fhir-ehr.sandboxcerner.com" from the iss argument, I have my ClientId and I append "/metadata"

It ends up looking like: 

Everything else you need, except maybe the "/dstu2" part of any url is in there.

MArk B.

Kol Kheang (Cerner)

unread,
Jul 12, 2018, 9:53:32 AM7/12/18
to Cerner FHIR Developers
Hi MArk,

One clarification to #2.  The client id isn't part of the URL to call the /metadata endpoint.  What you've up there in the URL is actually the tenant id.  In this post[1], 0b8a0111-e8e6-4c26-a91c-5069cbc6b1ca, is the tenant id for FHIRPLAY Sandbox.



Kol
Reply all
Reply to author
Forward
0 new messages