Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Introduction

This sample will demonstrate how to retrieve the current user within an app, using the SMART on FHIR JavaScript client.

SMART on FHIR Authorization

Request Authorization

In order to receive the current user, you must request the openid and profile scopes.

Authorize
FHIR.oauth2.authorize({
    client_id: "my_client_id",
    redirect_uri: "https://mydomain.com/app/index.html",
    scope: "patient/*.read openid profile"
});

Authorization Success

After successful authorization, retrieve the resulting SMART FHIR client. The current user's fully qualified FHIR URL is on the FHIR client at userId. 

Ex: https://sandbox.hspconsortium.org/dstu2/open-hspc-reference-api/data/Practitioner/COREPRACTITIONER1

Authorization Success
var currentUserFhirUrl;
 
FHIR.oauth2.ready(function(fhirClient){
	currentUserFhirUrl = fhirClient.userId;
});

Query User FHIR Resource

Retrieve the User's FHIR resource (patient, practitioner, etc).

Query Resource
var userIdSections = currentUserFhirUrl.split("/");

$.when(fhirClient.api.read({type: userIdSections[userIdSections.length-2], id: userIdSections[userIdSections.length-1]}))
    .done(function(userResult){

        var user = {name:""};
		if (userResult.data.resourceType === "Patient") {
    		var patientName = userResult.data && userResult.data.name && userResult.data.name[0];
    		user.name = patientName.given.join(" ") + " " + patientName.family.join(" ").trim();
		}
        user.id  = userResult.data.id;
    });
  • No labels