Introduction
Ocean utilise la norme de l'industrie Lancement d'application SMART pour prendre en charge la connexion 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. Au lieu de cela, les informations d'identification de l'EHR de l'utilisateur peuvent être utilisées pour se connecter de manière sécurisée et automatique en tant qu'utilisateur Ocean correspondant.
- Ocean respecte la norme Open ID Connect pour garantir que ce processus d'authentification unique est sécurisé.
Pour se connecter à Ocean, les systèmes de lancement doivent :
- Mettre en œuvre et prendre en charge la séquence de lancement SMART "EHR" en tant que "Serveur FHIR de DSÉ / Serveur d'autorisation de 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, pour s'assurer qu'il peut valider la signature JWT du lanceur à l'aide de la clé publique spécifiée dans la "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 de 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 le cadre de la configuration par défaut, mais certaines installations de DSÉ et certains paramètres 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 de 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 pouvoir accueillir des noms de chemin variables en fonction de facteurs tels que le site Ocean, l'action Ocean prévue et d'autres paramètres pertinents.
- Une liste complète des paramètres d'« action » pour le lancement SMART dans Ocean peut être trouvée dans l'article Guide de mise en œuvre SMART on FHIR.
- Des exemples d'URL de lancement SMART dans Ocean incluent :
- Visualisation du patient dans la carte de santé d'Ocean - https://ocean.cognisantmd.com/sso/smart/auth?siteNum=1234&action=viewMap
- Ouverture du "Tableau de bord du patient Ocean" - https://ocean.cognisantmd.com/sso/smart/auth?siteNum=2000&action=dashboard
Les systèmes doivent également :
- Fournir la valeur encodée en Base64 de la Clé de Chiffrement Partagée du site Ocean en tant que valeur pour un attribut "oceanSharedEncryptionKey" dans le jeton d'accès au lancement SMART.
- Ce paramètre élimine le besoin pour les utilisateurs d'entrer 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 web des utilisateurs en stockant la Clé de Chiffrement Partagée dans le "localStorage" du navigateur, il est généralement obligatoire. Les navigateurs basés à l'hôpital ne conservent souvent pas le localStorage à travers les sessions utilisateur en raison de considérations de confidentialité.
- Plus d'informations sur les fournisseurs de lancement SMART sont fournies ici
- En plus de la SSO, le lancement SMART peut facultativement transmettre des informations à Ocean qui sont liées au patient actuellement sélectionné dans le DSÉ. Les informations sur le patient comprennent le numéro MRN du DSÉ, le nom, le numéro d'assurance maladie, le sexe, la date de naissance, les coordonnées et d'autres informations cliniques disponibles.
- Ocean lit ces informations sur le patient, avec l'autorisation du DSÉ, en demandant des "scopes" pour lire les données des points de terminaison FHIR du DSÉ.
- Certains cas d'utilisation pour le lancement contextuel du patient comprennent :
- Ouvrir le "Tableau de bord du patient d'Ocean" pour voir un résumé des informations d'Ocean liées à ce patient, y compris les eRéférences actives, les eConseils, les résultats de questionnaires, etc. Le tableau de bord sert également de point de lancement pratique pour effectuer d'autres actions, telles que l'initiation d'une référence.
- Visualiser le patient dans la Carte de santé d'Ocean.
- Créer une nouvelle eRéférence préremplie avec les informations démographiques et cliniques du patient basées sur le dossier du DSÉ.
- Utiliser Ocean pour envoyer un lien de message sécurisé ou un questionnaire directement à partir du dossier du DSÉ.
De plus, pour prendre en charge le lancement contextuel du patient, les systèmes doivent respecter les exigences suivantes :
- Prise en charge de 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 de lancement de l'application SMART, en suivant les normes FHIR R4.
- Inclure le paramètre "patient" dans le jeton d'accès au lancement SMART :
- Assurer la fourniture d'un paramètre "patient" dans le jeton d'accès au lancement SMART pour permettre des lancements contextuels du patient sans heurts.
- Respect des 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 de numéro d'assurance maladie "JHN" et de l'identificateur de code de version pour les patients de l'Ontario.
- Facultatif : Prise en charge de l'opération FHIR R4 /Patient/[id]/$everything :
- Prendre éventuellement en charge l'opération FHIR R4 /[/Patient/[id]/$everything pour préremplir les médicaments, les allergies, les antécédents médicaux et les 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 utilisateur 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 informations de base de lancement (basées sur le protocole SMART).
- Ensuite, en arrière-plan :
- Ocean utilise les informations de lancement pour demander des informations d'authentification au DSÉ en utilisant le protocole OAuth 2.0.
- En réponse, le DSÉ fournit à Ocean un jeton d'accès, qui fournit à Ocean des informations de base concernant l'utilisateur actuel du DSÉ et le patient actuel.
- Ocean vérifie si l'utilisateur du 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é, à partir de ce moment-là, la connexion unique est automatique.
- 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 soit une destination spécifique au patient, comme le tableau de bord patient Ocean, soit une destination générale comme le Portail Ocean, en fonction de l'"action" demandée par l'URL de lancement du bouton de lancement SMART.
Le diagramme de séquence ci-dessous illustre les interactions en arrière-plan entre les systèmes qui se produisent pour permettre la connexion unique et le lancement contextuel SMART d'Ocean (un fichier PDF est disponible en bas de cet article).
Pour des raisons de sécurité, tous les serveurs du système de santé qui souhaitent utiliser un lancement SMART dans Ocean doivent être privément autorisés par les administrateurs d'OceanMD.
Veuillez envoyer les valeurs suivantes à l'adresse e-mail de support d'Ocean 'support@oceanmd.com' afin que nous puissions créer l'entrée d'autorisation pour votre système de lancement :
- L'URL du serveur :
- Fournie en tant que paramètre "iss" initial lors du lancement SMART. Cette valeur doit également correspondre au serveur API FHIR.
- ID client :
- L'ID client unique et imprévisible pour Ocean, tel qu'assigné aléatoirement par le serveur de lancement. (Il s'agit du 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 "/authorize" OAuth 2.0.
- Point de terminaison de jeton :
- Le point de terminaison "/token" OAuth 2.0.
- URL de l'émetteur de jeton :
- La valeur "iss" fournie dans l'ensemble de revendications JWT signé, dans la valeur id_token du jeton d'autorisation.
- L'URL et le corps de réponse pour le ".../.well-known/smart-configuration" accessible publiquement (si pris en charge).
- L'URL et le corps de réponse pour le ".../.well-known/openid-configuration" accessible publiquement.
À l'exception de l'ID client, toutes ces valeurs devraient être disponibles dans le point de terminaison .well-known/openid-configuration du serveur DSÉ et/ou le point de terminaison de métadonnées FHIR.
Pour des raisons de sécurité, Ocean effectue une validation stricte du jeton JWT pour respecter les précautions de l'Open ID Connect. (Si un aspect quelconque du jeton JWT ne passe pas le protocole, Ocean tente de fournir un message d'erreur utile pour le dépannage.)