Introduction
Ocean utilise la norme industrielle SMART App Launch pour prendre en charge l’authentification unique (SSO) et le lancement contextuel du patient à partir d’un dossier de santé électronique (DSÉ) ou d’un autre système de santé.
- Le cadre de lancement SMART permet à une personne authentifiée utilisant un système de santé tiers de confiance d’ouvrir une application ou une page spécifique dans Ocean sans avoir à se connecter manuellement à Ocean. À la place, les identifiants DSÉ de l'utilisateur peuvent être utilisés pour se connecter de façon sécurisée et automatique en tant qu'utilisateur Ocean correspondant.
- Ocean respecte la norme Open ID Connect afin d’assurer la sécurité de ce processus d’authentification unique.
Pour se connecter à Ocean, les systèmes de lancement doivent :
- Implémenter et prendre en charge la séquence de lancement DSÉ SMART en tant que « Serveur FHIR DSÉ / Serveur d’autorisation DSÉ » (Ocean est l’« Application » dans ce contexte).
- Fournir des points de terminaison OAuth 2.0 pour le lancement SMART.
- Respecter le protocole Open ID Connect en tant que système de lancement dans le cadre du protocole :
- Fournir un accès public au point de terminaison : [le-serveur-fhir]/.well-known/openid-configuration.
- (Ocean accède à ce point de terminaison dans le cadre du protocole Open ID, afin de s’assurer qu’il peut valider la signature JWT du lanceur à l’aide de la clé publique spécifiée dans le « jwks_uri » de la configuration.)
- Signer le jeton JWT avec l’algorithme ES256 ou RS256.
- Fournir un accès public au point de terminaison : [le-serveur-fhir]/.well-known/openid-configuration.
- Être capable de lancer un navigateur web moderne (intégré ou via un lien d’application de bureau).
- Le navigateur web doit prendre en charge l’utilisation par Ocean des cookies de session HTTPS typiques et du localStorage pour les URL suivantes :
- https://ocean.cognisantmd.com
- https://staging.cognisantmd.com
-
https://test.cognisantmd.com
- Note : Presque tous les navigateurs prennent en charge ces exigences dans la configuration par défaut, mais certaines installations DSÉ et certains milieux hospitaliers imposent des restrictions spécifiques sur le stockage des cookies.
- Le navigateur web doit prendre en charge l’utilisation par Ocean des cookies de session HTTPS typiques et du localStorage pour les URL suivantes :
- S’assurer que les utilisateurs du système ont accès à au moins une URL de lancement configurable pour Ocean. Ces URL doivent permettre des noms de chemin variables selon des facteurs tels que le site Ocean, l’action Ocean souhaitée et d’autres paramètres pertinents.
- Une liste complète des paramètres « action » pour le lancement SMART dans Ocean se trouve dans l’article Guide de mise en œuvre SMART sur FHIR.
- Exemples d’URL de lancement SMART Ocean :
- Afficher le patient dans la Carte Santé d’Ocean - https://ocean.cognisantmd.com/sso/smart/auth?siteNum=1234&action=viewMap
- Ouvrir le « Tableau de bord du patient Ocean » - https://ocean.cognisantmd.com/sso/smart/auth?siteNum=2000&action=dashboard
Les systèmes devraient également :
- Fournir la valeur encodée en Base64 pour la clé de chiffrement partagée du site Ocean comme valeur pour un attribut « oceanSharedEncryptionKey » dans le jeton d’accès SMART launch.
- Ce paramètre élimine la nécessité pour les utilisateurs de saisir manuellement la clé de chiffrement partagée de leur site dans leur navigateur web pour chaque lancement contextuel. Bien qu’il puisse être omis si une clinique préconfigure les navigateurs des utilisateurs en stockant la clé de chiffrement partagée dans le « localStorage » du navigateur, il est généralement obligatoire. Les navigateurs en milieu hospitalier ne conservent souvent pas le localStorage entre les sessions utilisateur pour des raisons de confidentialité.
- Plus d’informations sur les fournisseurs de lancement SMART sont disponibles ici
- En plus du SSO, le lancement SMART peut, de façon optionnelle, transmettre à Ocean des informations liées au patient actuellement sélectionné dans le DSÉ. L’information du patient comprend le numéro de dossier médical du DSÉ, le nom, l’Assurance maladie, le sexe, la date de naissance, les coordonnées et d’autres informations cliniques lorsque disponibles.
- Ocean lit ces informations du patient, avec la permission du DSÉ, en demandant des « scopes » pour lire les données à partir des points de terminaison FHIR du DSÉ.
- Quelques cas d’utilisation du lancement contextuel du patient incluent :
- Ouvrir le « Tableau de bord du patient Ocean » pour voir un résumé des informations Ocean liées à ce patient, incluant les eOrientations actives, les eConsultations, les résultats de questionnaires, etc. Le tableau de bord sert également de point de départ pratique pour effectuer d’autres actions, comme initier une orientation.
- Afficher le patient dans la Carte Santé d’Ocean.
- Créer une nouvelle eOrientation préremplie avec les informations démographiques et cliniques du patient à partir du dossier DSÉ.
- Utiliser Ocean pour envoyer par courriel un lien de message sécurisé ou un questionnaire directement à partir du dossier DSÉ.
De plus, pour prendre en charge le lancement contextuel du patient, les systèmes doivent respecter les exigences suivantes :
- Prendre en charge FHIR R4 pour le point de terminaison Patient.read :
- L’intégration doit inclure la prise en charge du point de terminaison Patient.read dans le contexte du lancement SMART App, conformément aux normes FHIR R4.
- Inclure le paramètre « patient » dans le jeton d’accès SMART launch :
- S’assurer de la présence d’un paramètre « patient » dans le jeton d’accès SMART launch pour permettre des lancements contextuels du patient sans interruption.
- Respecter les conventions FHIR pour le stockage des RPS :
- Respecter les conventions FHIR établies pour le stockage des RPS pertinents utilisés par Ocean. Cela inclut l’utilisation de l’identificateur Assurance maladie « JHN » et de l’identificateur du code de version pour les patients de l’Ontario.
- Optionnel : Prendre en charge l’opération FHIR R4 /Patient/[id]/$everything :
- Prendre en charge de façon optionnelle l’opération FHIR R4 /Patient/[id]/$everything pour préremplir les médicaments, allergies, antécédents médicaux et pièces jointes du dossier.
- Un utilisateur est connecté au système DSÉ.
- L’utilisateur clique sur un bouton de lancement « Ocean » dans l’interface du DSÉ.
- Le bouton de lancement ouvre Ocean dans un nouvel onglet ou une nouvelle fenêtre du navigateur web. Le lanceur fournit à Ocean une URL contenant les identifiants de lancement de base (selon le protocole SMART).
-
Ensuite, en arrière-plan :
- Ocean utilise les identifiants de lancement pour demander des informations d’authentification au DSÉ à l’aide du protocole OAuth 2.0.
- En réponse, le DSÉ fournit à Ocean un jeton d’accès, qui donne à Ocean des informations de base concernant l’utilisateur DSÉ actuel et le patient actuel.
- Ocean vérifie si l’utilisateur DSÉ a déjà été lié à un compte Ocean.
-
Si l’utilisateur n’a pas encore lié son compte DSÉ à Ocean,
une invite de connexion s’affiche :
- Une fois le compte lié, l’authentification unique devient automatique pour les prochaines fois.
- Ensuite, si un patient a été spécifié, Ocean demande au DSÉ des informations sur le patient actuel (en utilisant les API FHIR du DSÉ).
- Enfin, Ocean redirige vers la page demandée dans Ocean. Cette page peut être une destination spécifique au patient, comme le tableau de bord du patient Ocean, ou une destination générale comme le Portail Ocean, selon l’« action » demandée par l’URL de lancement du bouton SMART.
Le diagramme de séquence ci-dessous illustre les interactions backend entre les systèmes qui permettent l’authentification unique SMART Ocean et le lancement contextuel (un fichier PDF est disponible au bas de cet article). 
Pour des raisons de sécurité, tous les serveurs de systèmes de santé souhaitant utiliser un lancement SMART vers Ocean doivent être ajoutés à une liste d’autorisation privée par les administrateurs OceanMD.
Veuillez soumettre les valeurs suivantes via le formulaire de demande de liste d’autorisation Ocean Smart afin que nous puissions créer l’entrée de liste d’autorisation pour votre système de lancement.
- L’URL du serveur :
- Fournie comme paramètre initial « iss » lors du lancement SMART. Cette valeur doit également correspondre au serveur API FHIR.
- Identificateur client :
- L’« client_id » unique et impossible à deviner pour Ocean, attribué aléatoirement par le serveur de lancement. (C’est le paramètre d’URL fourni par Ocean lors de la redirection SMART initiale vers le point de terminaison d’autorisation du lanceur.)
- Point de terminaison d’autorisation :
- Le point de terminaison OAuth 2.0 « /authorize ».
- Point de terminaison du jeton :
- Le point de terminaison OAuth 2.0 « /token ».
- URL de l’émetteur du jeton :
- La valeur « iss » fournie dans l’ensemble des revendications JWT signées, dans la valeur id_token du jeton d’autorisation.
- L’URL et le corps de la réponse pour le « .../.well-known/smart-configuration » accessible publiquement (si pris en charge).
- L’URL et le corps de la réponse pour le « .../.well-known/openid-configuration » accessible publiquement.
À l’exception de l’identificateur client, toutes ces valeurs devraient être disponibles dans le point de terminaison .well-known/openid-configuration du serveur DSÉ et/ou dans le point de terminaison de métadonnées FHIR.
Pour des raisons de sécurité, Ocean effectue une validation stricte du jeton JWT afin de respecter les précautions Open ID Connect. (Si un aspect du jeton JWT ne respecte pas le protocole, Ocean tente de fournir un message d’erreur utile pour le dépannage.)