SMART on FHIR Authentication with Meteor

Hey all,

I was wondering if anyone has any experience developing “SMART on FHIR” applications with Meteor.

I’m having trouble with the authentication required and redirecting the client to the application itself… Does anyone having any best practices or tips with authentication?

Currently I’m attempting to connect to Epic’s Open Sandbox, an when I make the HTTP call outlined in Epic’s documentation I just receive an undefined object in return and won’t allow the user to sign into their profile.

Here is the Epic authorization request example, which I’ve then replaced with my client ID

https://open-ic.epic.com/argonaut/oauth2/authorize?response_type=code&client_id=6c12dff4-24e7-4475-a742-b08972c4ea27&redirect_uri=http://localhost:8000

I’m executing it on the server side of my application with

HTTP.call(‘GET’, ‘https://open-ic.epic.com/argonaut/oauth2/authorize?response_type=code&client_id=6c12dff4-24e7-4475-a742-b08972c4ea27&redirect_uri=http://localhost:8000’)

Any help is greatly appreciated!

http://docs.smarthealthit.org/
https://open.epic.com/Tutorial/OAuth

1 Like

We gave it a try last year and didn’t have much luck; which is why we decided to use an OAuth solution that was known to work with Meteor; which eventually lead to Meteor on FHIR.

My guess is that your context isn’t initialized correctly and that the redirect_uri isn’t configured. http://localhost:8000 probably won’t work, since Meteor runs on port 3000. At least try http://localhost:3000. But you’ll probably need a path as well to avoid routing collisions; but to set that up, you’ll need to tell FHIR.js the route path… which is why you need to detect the context.

It’s all a giant headache. You’re going to need to trace the entire OAuth workflow. Follow the protocol below, and substitute prime8consulting:meteor-oauth2-client with FHIR.js on the client; and assume that Epic is running some alternative to prime8consulting:meteor-oauth-server on their servers.

Good luck!

1 Like

Thank you, I appreciate the help.

Am I correct in assuming that FHIR.js should be somewhere in the SMART on FHIR tutorial/SDK that they provide?
Otherwise I have found this: https://github.com/FHIR/fhir.js

Is this what you were referring to? If so, I’m not entirely sure how to go about integrating this into the application. I’m still relatively new to Meteor and JS development in general.

Honestly, I don’t really know. I can walk you through using Clinical Meteor and Meteor on FHIR; but I haven’t seen a successful SMART on FHIR + Meteor integration yet. (I’d be curious to know the steps if you can figure it out.)

My best guess would be to look at the SMART on FHIR Javascript page and look at this function:

FHIR.oauth2.ready(function(smart){
    // now do something cool
});

I’m not entirely sure if that’s the same FHIR object as what’s provided from FHIR/fhire.js. But it seems the same?