SMART on FHIR

Substitutable Medical Applications and Reusable Technologies (SMART on FHIR) (applications médicales substituables et les technologies réutilisables) est une norme de santé grâce à laquelle les applications peuvent accéder aux informations cliniques via un magasin de données. Cela 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 on FHIR offre au moins trois avantages importants :

  • Les applications ont une méthode connue pour obtenir l’authentification/l’autorisation sur un référentiel FHIR.
  • Les utilisateurs accédant à un référentiel FHIR avec SMART on FHIR sont limités aux ressources associées à l’utilisateur, au lieu d’avoir accès à toutes les données du référentiel.
  • Les utilisateurs ont la possibilité d’accorder aux applications l’accès à un ensemble limité de leurs données à l’aide d’étendues cliniques SMART.

Les didacticiels ci-dessous fournissent des étapes pour activer les applications SMART on FHIR avec le service FHIR.

Prérequis

SMART on FHIR à l’aide d’exemples de Services de données de santé Azure (SMART on FHIR (amélioré))

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

Suivez les étapes répertoriées dans la section Gérer les utilisateurs : attribuer des utilisateurs au rôle. Tout utilisateur ajouté à ce rôle peut accéder au service FHIR, à condition que ses requêtes soient conformes au guide d’implémentation SMART on FHIR. L’accès accordé aux utilisateurs dans ce rôle sera ensuite limité par les ressources associées à leur compartiment fhirUser et les restrictions dans les étendues cliniques.

Remarque

Le guide d’implémentation SMART on FHIR définit l’accès aux types de ressources FHIR avec des étendues. Ces étendues ont un impact sur l’accès qu’une application peut avoir aux ressources FHIR. L’utilisateur disposant du rôle d’utilisateur SMART a accès au service FHIR pour effectuer des interactions d’API de lecture. Le rôle d’utilisateur SMART n’accorde pas l’accès en écriture au service FHIR.

Étape 2 : intégration du serveur FHIR à des exemples

Cliquez sur le lien pour accéder à la solution Open source d’exemples de Données et IA de santé Azure. Cette étape répertoriée dans le document permet l’intégration du serveur FHIR à d’autres services Azure (par exemple, APIM, fonctions Azure et bien plus encore).

Remarque

Les exemples sont du code open source et vous devez passer en revue les informations et les conditions de licence sur GitHub avant de les utiliser. Ils ne font pas partie du service de données de santé Azure et ne sont pas pris en charge par le Support Microsoft. Ces exemples peuvent être utilisés pour expliquer comment les Services de données de santé Azure et d’autres outils open source peuvent être utilisés ensemble pour illustrer l’API standardisée §170.315(g)(10) pour la conformité des critères des services patients et de population, à l’aide de Microsoft Entra ID comme flux de travail du fournisseur d’identité.

Proxy SMART on FHIR

Cliquez pour développer

Remarque

Il s’agit d’une autre option pour SMART on FHIR (amélioré) à l’aide d’exemples AHDS mentionnés ci-dessus. Nous vous suggérons d’adopter SMART on FHIR (amélioré). L’option du proxy SMART on FHIR est une option héritée. SMART on FHIR (amélioré) fournit des capacités ajoutées par rapport au proxy SMART on FHIR. SMART on FHIR (amélioré) peut être considéré comme répondant aux exigences du Guide d’implémentation SMART on FHIR (v 1.0.0) et de l’API standardisée §170.315(g)(10) pour les critères des services de patients et de population.

Pour utiliser SMART on FHIR, vous devez d’abord authentifier et autoriser l’application. La première fois que vous utilisez SMART on 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 de vous accorder le consentement administrateur dans l’application.

Si vous disposez de privilèges administratifs, effectuez les étapes suivantes pour accorder le consentement administrateur à vous-même directement. (Vous pouvez également vous accorder le consentement administrateur ultérieurement lorsque vous ê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 à Microsoft Entra ID.
  2. Dans le menu de gauche, sélectionnez Inscription de l’application.
  3. Recherchez l’inscription de l’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 ou ajoutez l’utilisateur pour lequel vous souhaitez obtenir le consentement administrateur.
  6. Cliquez sur Enregistrer

Étape 2 : activer le proxy SMART on FHIR

SMART on FHIR exige que Audience possède un URI d’identificateur égal à l’URI du service FHIR. La configuration standard du service FHIR utilise une valeur Audience de https://fhir.azurehealthcareapis.com. Cependant, vous pouvez aussi définir une valeur correspondant à l’URL spécifique de votre service FHIR (par exemple https://MYFHIRAPI.fhir.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 instance FHIR, cochez la case proxy SMART on FHIR.

Le proxy SMART on FHIR joue le rôle d’intermédiaire entre l’application SMART on FHIR et Microsoft Entra ID. 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 Microsoft Entra 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.fhir.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 Microsoft Entra ID

Étape 3 : obtenir un patient test

Pour tester le service FHIR et le proxy SMART on FHIR, la base de données doit avoir 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.fhir.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.fhir.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 on 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 :

Screenshot showing SMART on FHIR app launcher.

Lorsque vous renseignez les champs Patient, Consultation ou Médecin, vous constatez que le contenu de Contexte de lancement est mis à jour. Lorsque vous utilisez le service FHIR, le contexte de lancement est simplement un document JSON qui contient des informations concernant le patient, le médecin, etc. 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 Launch (Lancer) pour démarrer l’exemple d’application ; vous obtenez alors quelque chose qui ressemble à cet exemple :

Screenshot showing SMART on FHIR app.

Inspectez la réponse du jeton pour voir comment les champs de contexte de lancement sont transmis à l’application.

Migrer du proxy SMART on FHIR vers SMART on FHIR (amélioré)

Important

Le proxy SMART on FHIR sera mis hors service en septembre 2026, transitionnant à SMART on FHIR (amélioré) à cette date. À compter de septembre 2026, les applications qui s’appuient sur le proxy SMART on FHIR signaleront des erreurs lors de l’accès au service FHIR.

SMART on FHIR (amélioré) fournit plus de capacités par rapport au proxy SMART on FHIR. SMART on FHIR (amélioré) peut être considéré comme répondant aux exigences du Guide d’implémentation SMART on FHIR (v 1.0.0) et de l’API standardisée §170.315(g)(10) pour les critères des services de patients et de population. Le tableau suivant répertorie la différence entre le proxy SMART on FHIR et SMART on FHIR (amélioré).

Fonctionnalité SMART on FHIR (amélioré) SMART sur le proxy FHIR
Prend en charge le lancement autonome Oui Non
Prend en charge le lancement EHR Oui Oui
Prend en charge les restrictions d’étendue Oui Non
S’appuie sur des produits Azure de premiers tiers Oui, les produits Azure tels que Gestion des API Azure (APIM) doivent être intégrés Non
Support Microsoft Pris en charge pour le service FHIR. La prise en charge de l’exemple open source doit être signalé et surveillé via GitHub Pris en charge pour le service FHIR

Étapes de migration

  • Étape 1 : configurer le rôle d’utilisateur SMART FHIR. Suivez les étapes répertoriées dans la section Gérer les utilisateurs : attribuer des utilisateurs au rôle. Tout utilisateur ajouté au rôle d'utilisateur SMART peut accéder au service FHIR, à condition que ses requêtes soient conformes au guide d’implémentation SMART on FHIR.
  • Étape 2 : déployer l’exemple SMART on FHIR sous les exemples OSS Données et IA de santé Azure
  • Étape 3 : mettre à jour le point de terminaison de l’URL du service FHIR sur « {{BASEURL_FROM_APIM}}/smart ».
  • Étape 4 : décochez le paramètre du proxy SMART on FHIR sous le panneau Authentification du service FHIR.

Si vous avez des questions, vous pouvez les poser aux experts de la communauté dans Microsoft Q&A. Pour le support technique, vous pouvez également créer une demande de support.

Étapes suivantes

Maintenant que vous avez découvert comment activez les fonctionnalité de SMART on 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.