Partager via


Vue d’ensemble de SMART on FHIR

Les applications médicales substituables et les technologies réutilisables (SMART sur FHIR) sont une norme de santé qui permet aux applications d’accéder à des informations cliniques par le biais d’un magasin de données. Il ajoute une couche de sécurité basée sur des normes ouvertes, notamment OAuth2 et OpenID Connect, aux interfaces FHIR pour permettre l’intégration avec les systèmes EHR. L’utilisation de SMART sur FHIR offre au moins trois avantages importants :

  • Les applications ont une méthode connue pour obtenir l’authentification/autorisation d’un dépôt FHIR.
  • Les utilisateurs qui accèdent à un dépôt FHIR avec SMART sur FHIR sont limités aux ressources associées à l’utilisateur, au lieu d’avoir accès à toutes les données du dépôt.
  • Les utilisateurs ont la possibilité d’accorder aux applications l’accès à un autre ensemble limité de leurs données en utilisant des étendues cliniques SMART.

Les tutoriels ci-dessous décrivent les étapes à suivre pour activer SMART sur les applications FHIR avec le service FHIR.

Prérequis

SMART sur FHIR à l’aide d’exemples AHDS OSS (SMART on FHIR(Enhanced))

Étape 1 : Configurer le rôle d’utilisateur FHIR SMART

Suivez les étapes répertoriées sous la section Gérer les utilisateurs : Affecter des utilisateurs à un rôle. Tout utilisateur ajouté au rôle : « Utilisateur FHIR SMART » peut accéder au service FHIR si ses demandes sont conformes au Guide d’implémentation SMART on FHIR, par exemple la demande ayant un jeton d’accès, qui inclut une revendication fhirUser et une revendication d’étendues cliniques. L’accès accordé aux utilisateurs dans ce rôle sera alors limité par les ressources associées à leur compartiment fhirUser et les restrictions dans les étendues cliniques.

Étape 2 : Intégration du serveur FHIR avec des exemples

Suivez les étapes sous Azure Health Data Service Samples OSS. Cela permet l’intégration du serveur FHIR à d’autres services Azure (tels que APIM, Azure Functions, etc.).

Notes

Les exemples sont du code open source, et vous devez consulter les informations et les conditions de licence sur GitHub avant de l’utiliser. Ils ne font pas partie d’Azure Health Data Service et ne sont pas pris en charge par Support Microsoft. Ces exemples peuvent être utilisés pour montrer comment Azure Health Data Services et d’autres outils open source peuvent être utilisés ensemble pour illustrer la conformité ONC (g)(10), en utilisant Azure Active Directory comme flux de travail du fournisseur d’identité.

PROXY SMART sur FHIR

Cliquez pour développer !

Notes

Il s’agit d’une autre option de SMART sur FHIR (amélioré) mentionnée ci-dessus. L’option de proxy SMART sur FHIR active uniquement la séquence de lancement du DMI.

Pour utiliser SMART sur FHIR, vous devez d’abord vous authentifier et autoriser l’application. La première fois que vous utilisez SMART sur FHIR, vous devez également obtenir le consentement administratif pour permettre à l’application d’accéder à vos ressources FHIR.

Si vous n’avez pas de rôle de propriété dans l’application, contactez le propriétaire de l’application et demandez-lui d’accorder le consentement administrateur pour vous dans l’application.

Si vous disposez de privilèges administratifs, effectuez les étapes suivantes pour vous accorder directement le consentement administrateur. (Vous pouvez également accorder votre consentement administrateur ultérieurement lorsque vous y êtes invité dans l’application.) Vous pouvez effectuer les mêmes étapes pour ajouter d’autres utilisateurs en tant que propriétaires, afin qu’ils puissent afficher et modifier cette inscription d’application.

Pour vous ajouter vous-même ou un autre utilisateur en tant que propriétaire d’une application :

  1. Dans le portail Azure, accédez à Azure Active Directory.
  2. Dans le menu de gauche, sélectionnez Inscription de l’application.
  3. Recherchez l’inscription d’application que vous avez créée, puis sélectionnez-la.
  4. Dans le menu de gauche, sous Gérer, sélectionnez Propriétaires.
  5. Sélectionnez Ajouter des propriétaires, puis ajoutez vous-même ou l’utilisateur auquel vous souhaitez obtenir le consentement de l’administrateur.
  6. Sélectionnez Enregistrer.

Étape 2 : Activer le proxy SMART sur FHIR

SMART on FHIR exige que Audience possède un URI d’identificateur égal à l’URI du service FHIR. La configuration standard de l’API Azure pour FHIR utilise la valeur https://azurehealthcareapis.com pour Audience. Cependant, vous pouvez aussi définir une valeur correspondant à l’URL spécifique de votre service FHIR (par exemple https://MYFHIRAPI.azurehealthcareapis.com). Cela est nécessaire quand le proxy SMART on FHIR est utilisé.

Pour activer le proxy SMART on FHIR dans les paramètres d’authentification de votre API Azure pour FHIR instance, cochez la case smart on FHIR proxy case activée :

Capture d’écran montrant l’activation du proxy SMART sur FHIR.

Le proxy SMART on FHIR joue le rôle d’intermédiaire entre l’application SMART on FHIR et Azure AD. La réponse d’authentification (code d’authentification) doit accéder au proxy SMART on FHIR à la place de l’application proprement dite. Le proxy transmet ensuite la réponse à l’application.

Du fait de ce relais en deux étapes du code d’authentification, vous devez définir l’URL de réponse (rappel) de votre application cliente Azure AD sur une URL qui combine l’URL de réponse du proxy SMART on FHIR et l’URL de réponse de l’application SMART on FHIR. L’URL de réponse combinée prend la forme suivante :

https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA

Dans cette réponse, aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA est une version sécurisée, encodée en base64 de l’URL de réponse de l’application SMART on FHIR. Pour le lanceur d’application SMART on FHIR, quand l’application s’exécute localement, l’URL de réponse est https://localhost:5001/sampleapp/index.html.

Vous pouvez générer l’URL de réponse combinée en utilisant un script de ce type :

$replyUrl = "https://localhost:5001/sampleapp/index.html"
$fhirServerUrl = "https://MYFHIRAPI.azurewebsites.net"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($ReplyUrl)
$encodedText = [Convert]::ToBase64String($bytes)
$encodedText = $encodedText.TrimEnd('=');
$encodedText = $encodedText.Replace('/','_');
$encodedText = $encodedText.Replace('+','-');

$newReplyUrl = $FhirServerUrl.TrimEnd('/') + "/AadSmartOnFhirProxy/callback/" + $encodedText

Ajoutez l’URL de réponse à l’application cliente publique que vous avez créée précédemment pour Azure AD :

Capture d’écran montrant comment l’URL de réponse peut être configurée pour le client public.

Étape 3 : Obtenir un patient test

Pour tester l’API Azure pour FHIR et le proxy SMART on FHIR, la base de données doit contenir au moins un patient. Si vous n’avez pas encore interagi avec l’API et que vous n’avez pas de données dans la base de données, consultez Accéder au service FHIR à l’aide de Postman pour charger un patient. Notez l’ID d’un patient spécifique.

Étape 4 : Télécharger le lanceur d’applications SMART on FHIR

Le dépôt FHIR Server pour Azure open source comporte un lanceur d’application SMART on FHIR simple et un exemple d’application SMART on FHIR. Dans ce tutoriel, utilisez ce lanceur SMART on FHIR localement pour tester la configuration.

Vous pouvez cloner le dépôt GitHub et accéder à l’application à l’aide de ces commandes :

git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher

L’application a besoin de quelques paramètres de configuration, que vous pouvez définir dans appsettings.json :

{
    "FhirServerUrl": "https://MYFHIRAPI.azurehealthcareapis.com",
    "ClientId": "APP-ID",
    "DefaultSmartAppUrl": "/sampleapp/launch.html"
}

Nous vous recommandons d’utiliser la fonctionnalité dotnet user-secrets :

dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>

Utilisez cette commande pour exécuter l’application :

dotnet run

Étape 5 : Tester le proxy SMART sur FHIR

Après avoir démarré le lanceur d’application SMART on FHIR, vous pouvez faire pointer votre navigateur vers https://localhost:5001, où l’écran suivant doit s’afficher :

Capture d’écran du lanceur d’applications SMART sur FHIR.

Quand vous renseignez les champs Patient (Patient), Encounter (Consultation) ou Practitioner (Médecin), vous constatez que le contenu de Launch context (Contexte de lancement) est mis à jour. Quand vous utilisez l’API Azure pour FHIR, le contexte de lancement est simplement un document JSON qui contient des informations notamment sur le patient et le médecin. Ce contexte de lancement est encodé en base64 et transmis à l’application SMART on FHIR en tant que paramètre de requête launch. Conformément à la spécification SMART on FHIR, cette variable est inintelligible pour l’application SMART on FHIR et est transmise au fournisseur d’identité.

Le proxy SMART on FHIR se sert de ces informations pour compléter les champs de la réponse de jeton. L’application SMART on FHIR peut utiliser ces champs pour contrôler sur quel patient porte la demande de données et sur la façon dont l’application s’affiche à l’écran. Le proxy SMART on FHIR prend en charge les champs suivants :

  • patient
  • encounter
  • practitioner
  • need_patient_banner
  • smart_style_url

Ces champs visent à fournir des indications à l’application, mais ils ne véhiculent pas d’information de sécurité. Une application SMART on FHIR peut les ignorer.

Notez que le lanceur d’application SMART on FHIR met à jour l’information Launch URL (URL de lancement) au bas de la page. Sélectionnez Lancer pour démarrer l’exemple d’application.

## Étapes suivantes

Maintenant que vous avez appris à activer la fonctionnalité SMART sur FHIR, consultez la page d’exemples de recherche pour plus d’informations sur la façon de rechercher à l’aide de paramètres de recherche, de modificateurs et d’autres méthodes de recherche FHIR.

FHIR® est une marque déposée de HL7 utilisé avec l’autorisation de HL7.