APIs
Guides d'intégration
Scan d'ordonnance

Intégration du scan d'ordonnance

Introduction

La retranscription automatique d’ordonnance proposée par POSOS est accessible soit:

  • Sous la forme d’un appel à une application qui offre une interface complète d’import et de validation de la prescription (Scan & Go)
  • Sous la forme d'un appel API

L'information ci-dessous détaille l'intégration de l'application complète d'import et de validation de la prescription, pour intégrer directement par API, merci d'aller sur la documentation dédiée

Comment ça fonctionne ?

L'intégration repose sur une succession d'appels HTTP réalisés à partir d'un navigateur web.

Appel initial

La session commence par un appel du poste de travail vers l'API partner-connect, avec un ensemble de paramètres contextuels déterminant la requête effectuée (quelle fonctionnalité, quels paramètres), identifiant l'utilisateur (via son RPPS) et la structure qui effectue la requête (via un jeton d'authentification)

Sécurisation

l'API répond avec une URL unique et sécurisée vers laquelle le navigateur est redirigé

Redirection

Redirection de l’utilisateur ou ouverture de l’URL vers l'interface de Scan & Go

Le résultat de la retranscription est ensuite envoyé à votre logiciel via un flux spécifique (FHIR, PN13 ou API dédiée) expliqué dans la documentation sur l'import de prescription.

URL des appels contextuels

L'url de base est https://api.{env}.posos.co{env} est l'environnement suivant : preprod pour la validation, production pour le live.

https://partner-connect.preprod.posos.co

Bon à savoir : La clé privée de compte de service est différente pour chaque environnement. Nous vous transmettrons la clé de production une fois les tests terminés.

Obtention d’un jeton d’identité

Voir Authentification par jeton d'identité

Fonctionnement détaillé

Cette API permet de récupérer un URL vers l'interface de Scan & Go. La documentation de l'API Scan & Go vous permettra de comprendre les paramètres à envoyer.

Deux parcours existent :

  • parcours classique : l'appel contextuel renvoie l'url d'une interface permettant l'envoi d'une prescription et sa validation
  • parcours avec fichiers pré-importés : l'appel contextuel est réalisé en joignant d'emblée des fichiers à retranscrire et renvoie l'url d'une interface de validation de la prescription

La principale différence entre les deux parcours est dans les paramètres à envoyer. Le second parcours nécessite l'envoi des ficheirs en base64. Le détail des paramètres se trouve ici Référence de l'API Scan & Go.

Exemple d’appel

POST https://partner-connect.preprod.posos.co/api/partners/patient/scan-token
Authorization: Bearer <token>
Content-type: application/json
 
{
	"first_name": "John",
	"last_name": "Carter",
	"rpps": "abcde1234",
	"facilitySlug": "hopital-demo",
	"patientId": "123456"
}

L’application Scan & Go

Pré-requis

L’URL ouvre une application web reposant sur une stack technique NextJS / ReactJS. Elle nécessite l’utilisation d’un navigateur ou d’une webview récente. Les versions compatibles sont :

  • Chrome 64+
  • Edge 79+
  • Firefox 67+
  • Opera 51+
  • Safari 12+

Expérience sur l’application

Ecran d’import

Sur cet écran se trouvent les options d’envoi de document à retranscrire.

Accueil scan & go

Pour l’usage “QR Code + Application” demandez à votre contact technique l’activation de la fonctionnalité de scan de QR code.

  • Par QR Code + Application: l’utilisateur ouvre l’application POSOS sur son smartphone, appuie sur “scanner une ordonnance” puis est invité à scanner le QR Code puis son ordonnance.
  • Par glisser-déposer de fichier : pour envoyer des fichiers présents localement sur le poste de travail.
  • Par photographie avec la webcam : pour utiliser la webcam du poste de travail pour photographier un document.

Ecran de validation

Validation scan & go

Sur cet écran, l’utilisateur est invité à vérifier chaque ligne de prescription et préciser la spécialité et la présentation le cas échéant. Il peut aussi mettre à jour les posologies structurées, ajouter ou retirer des médicaments.

Si un médicament est incomplet lors de notre retranscription, l'export vers le DPI est bloqué et l'utilisateur est invité à compléter le médicament identifié.

Validation scan & go
Score de confiance

Pour chaque ligne de posologie structurée, nous calculons un score de confiance. Le comportement de l'interface est adapté en fonction de ce score, divisé en 3 classes de confiance (High, Medium, Low).

  • Une posologie de classe High, étant fiable par essence, n’a aucun impact sur le résultat actuel du scan. Validation scan & go
  • Une posologie de classe Medium, étant structurée avec davantage de doute, nous incitons visuellement l’utilisateur à vérifier la structuration de la posologie. Validation scan & go
  • Une posologie de classe Low, étant très probablement incorrectement structurée, nous obligeons l’utilisateur à ouvrir la fenêtre de structuration de la posologie avant d’importer l’ordonnance dans son DPI Validation scan & go

Ecran d’envoi vers le DPI

Un clic sur “Importer dans le DPI” déclenchera le processus d’envoi vers votre logiciel.

Validation scan & go
Notification de fin d’import

Votre logiciel sera notifié de la fin de l’import de la prescription de deux façons. Selon la façon dont vous avez intégré l’application, vous pouvez choisir l’une ou l’autre des méthodes suivantes :

Bon à savoir : cette notification a pour but de vous permettre de mettre à jour votre interface utilisateur, en attendant le flux de données de la prescription (via appel FHIR ou en push suivant le mode d'intégration choisi)

iframe seulement

Les navigateurs permettent de communiquer entre différentes iframe via l'API window.postMessage (opens in a new tab). Votre logiciel doit écouter les messages envoyés par l’application Posos et réagir en conséquence. Voici le format des messages envoyés :

AttributTypeDescription
statusstringok ou error si l'import a échoué côté Posos. prescription sera absent si error
prescriptionobjectLa prescription importée

Voici un exemple de code :

const callback = function (event) {
  const origin = event.origin || event.originalEvent.origin;
  if (origin !== "https://scan-complete.preprod.posos.co") {
    return;
  }
  if (event.data?.status) {
    if (event.data.status === "success") {
      // Import réussi
    } else {
      // Import échoué
    }
  }
};
 
//Compatibilité avec IE8 / IE9
if (window.attachEvent !== undefined) {
  window.attachEvent("message", callback);
} else {
  window.addEventListener("message", callback);
}

Changement d'URL de la page

Cette méthode modifie l'url de la page. #success ou #error en fonction du résultat de l'import.