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
où {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.
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
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é.
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.
- Une posologie de classe Medium, étant structurée avec davantage de doute, nous incitons visuellement l’utilisateur à vérifier la structuration de la posologie.
- 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
Ecran d’envoi vers le DPI
Un clic sur “Importer dans le DPI” déclenchera le processus d’envoi vers votre logiciel.
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 ou popup
Les navigateurs permettent de communiquer entre différentes iframe ou popup via l’API window.postMessage. 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 :
Attribut | Type | Description |
---|---|---|
status | string | ok ou error si l’import a échoué côté Posos. prescription sera absent si error |
prescription | object | La 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
// event.data.prescription contient la prescription
} else {
// Import échoué
// event.data.prescription n'est pas défini
}
}
};
// Compatibilité avec IE8 / IE9 + autre navigateur
const eventFunction = window.addEventListener ? "addEventListener" : "attachEvent";
const listener = window[eventFunction];
const eventName = eventFunction == "attachEvent" ? "onmessage" : "message";
listener(eventName, 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.