APIs
Référence API
Appel contextuel
Appel vers les guides d'analyse

Introduction

Cette API permet d'effectuer un appel contextuel vers les differentes fonctionnalités de Posos.

💡

L'appel nécessite une authentification par jeton d'identité, décrit dans la section Authentification.

Point d'entrée

URL des appels contextuels

⚠️

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


post/api/partners/proxy/prepare

En-têtes HTTP

NomValeur
AuthorizationBearer <token>

Paramètres de la requête

Il est possible de passer les mêmes paramètres dans une requête GET plutôt que POST. Au lieu de les transmettre dans le corps de la requête, il faut alors les passer en paramètre d’URL.

Corps de la requête

NomTypeDescription
rppsstringLe numéro RPPS (chaine de caractère représentant 11 chiffres) de l'utilisateur, ou un identifiant technique de l’utilisateur au sein de l’établissement
first_namestringLe prénom de l'utilisateur
last_namestringLe nom de l'utilisateur
guidestringUne chaine dont la valeur est autorisée dans la liste des guides, et pouvant contenir autant de paramètre que nécessaire (voir la documentation des guides)

Bon à savoir : Le “RPPS” n’est pas nécessairement le RPPS mais peut être un identifiant technique de l’utilisateur au sein de l’établissement. Sur l’environnement preprod vous pouvez tester avec l’utilisateur abcde1234 qui est configuré.

Request

{
  "rpps": "<rpps_utilisateur>",
  "first_name": "<prenom_utilisateur>",
  "last_name": "<nom_utilisateur",
  "guide": "<nom_du_guide>"
}

Description du paramètre guide

Accès à la page d’accueil

guide: home

Ce guide permet d’accéder à la page d’accueil de POSOS, donnant ainsi accès à sa barre de recherche et aux autres guides. Cette intégration ne permet pas le pré-remplissage d’un champ de recherche.

Bon à savoir : Aucun paramètre d'appel à inclure dans le corps de l'appel.

Exemple
{
  "rpps": "abcde1234",
  "first_name": "John",
  "last_name": "Doe",
  "guide": "home"
}

Guide Effets Indésirables

guide: side_effects

Ce guide permet de lister les effets indésirables d'une liste de médicament et de proposer quel médicament peut être à l'origine d'un effet observé. Dans cette intégration, il est proposé de pré-remplir la recherche avec une liste de médicaments.

NomTypeDescription
ucdsstring[]Tableau contenant une liste de code ucd7 ou ucd13 décrivant les médicaments à envoyer.
dcisstring[]Tableau contenant une liste de dci décrivant les médicaments à envoyer.
cisstring[]Tableau contenant une liste de cis décrivant les médicaments à envoyer.

Il est nécessaire d’avoir au moins un des paramètres ucds ou dcis ou cis. Les trois se cumulent.

Exemple
{
  "rpps": "abcde1234",
  "first_name": "John",
  "last_name": "Doe",
  "guide": "side_effects",
  "ucds": ["3400894203018", "3400892335049"],
  "cis": ["67443191"],
  "dcis": ["paracétamol"]
}

Guide Interactions et Contre-indications

guide: interactions

Ce guide permet de lister les interactions médicamenteuses connues entre plusieurs médicaments.

NomTypeDescription
ucdsstring[]Tableau contenant une liste de code ucd7 ou ucd13 décrivant les médicaments à envoyer.
dcisstring[]Tableau contenant une liste de dci décrivant les médicaments à envoyer.
cisstring[]Tableau contenant une liste de cis décrivant les médicaments à envoyer.

Il est nécessaire d’avoir au moins un des paramètres ucds ou dcis ou cis. Les trois se cumulent.

ParamètreTypeDescription
terrainsstring[]Tableau de chaînes de caractères contenant une liste de codes cim10 à envoyer. Il peut aussi contenir des codes SNOMED-CT.
agenumberEntier représentant l'âge du patient en années.
birth_datestringChaîne de caractères représentant la date de naissance au format ISO.
pregnancybooleanfalse si le sujet n'est pas enceinte, true si le sujet est enceinte.

Les champs age et birth_date peuvent coexister mais c’est la valeur de birth_date qui est utilisée en cas de conflit.

Exemple
{
  "rpps": "abcde1234",
  "first_name": "John",
  "last_name": "Doe",
  "guide": "interactions",
  "ucds": ["3400894203018", "3400891764857"],
  "cis": ["67443191"],
  "dcis": ["paracétamol"],
  "terrains": ["E11"], // diabete
  "age": 70, // ou "birth_date": "1952-01-04" format date ISO;
  // 0 si âge < à 1 an.
  "pregnancy": false // false par défaut (pas de grossesse connue),
  //ou true (grossesse en cours)
 
  // résultat, l'association de haloperidol et citalopram est contre-indiquée
}

Guide Analyse d’ordonnance

guide: analysis

Ce guide centralise les fonctionnalités des guides Interactions et Contre-indication et Effets Indésirables.

NomTypeDescription
ucdsstring[]Tableau contenant une liste de code ucd7 ou ucd13 décrivant les médicaments à envoyer.
dcisstring[]Tableau contenant une liste de dci décrivant les médicaments à envoyer.
cisstring[]Tableau contenant une liste de cis décrivant les médicaments à envoyer.

Il est nécessaire d’avoir au moins un des paramètres ucds ou dcis ou cis. Les trois se cumulent.

ParamètreTypeDescription
terrainsstring[]Tableau de chaînes de caractères contenant une liste de codes cim10 à envoyer. Il peut aussi contenir des codes SNOMED-CT.
agenumberEntier représentant l'âge du patient en années.
birth_datestringChaîne de caractères représentant la date de naissance au format ISO (2024-09-11).
pregnancybooleanfalse si le sujet n'est pas enceinte, true si le sujet est enceinte.

Les champs age et birth_date peuvent coexister mais c’est la valeur de birth_date qui est utilisée en cas de conflit.

Exemple
{
  "rpps": "abcde1234",
  "first_name": "John",
  "last_name": "Doe",
  "guide": "analysis",
  "ucds": ["3400894203018", "3400891764857"],
  "cis": ["67443191"],
  "dcis": ["paracétamol"],
  "terrains": ["E11"], // diabete
  "age": 70, // ou "birth_date": "1952-01-04" format date ISO;
  // 0 si âge < à 1 an.
  "pregnancy": false // false par défaut (pas de grossesse connue),
  //ou true (grossesse en cours)
 
  // résultat, l'association de haloperidol et citalopram est contre-indiquée
}

Guide Alternatives médicamenteuses

guide: alternatives

Ce guide permet de trouver des traitements alternatifs à un médicament, en fonction du profil du patient et des traitements concomitants.

NomTypeDescription
ucdstringun code ucd7 ou ucd13 décrivant le médicament à traiter.
cisstringun code cis décrivant le médicament à traiter.
cipstringun code cip7 ou cip13 décrivant le médicament à traiter.

Il est nécessaire d’avoir au moins un des paramètres ucd, cis ou cip. Les trois ne peuvent pas être envoyés ensemble.

ParamètreTypeDescription
terrainsstring[]Tableau de chaînes de caractères contenant une liste de codes cim10 à envoyer. Il peut aussi contenir des codes SNOMED-CT.
agenumberEntier représentant l'âge du patient en années.
birth_datestringChaîne de caractères représentant la date de naissance au format ISO (2024-09-11).
pregnancybooleanfalse si le sujet n'est pas enceinte, true si le sujet est enceinte.

Tous ces champs sont optionnels. Les champs age et birth_date peuvent coexister mais c’est la valeur de birth_date qui est utilisée en cas de conflit.

ParamètreTypeDescription
concomitantTreatmentsobjectun objet décrivant les traitements concomitant du patient
concomitantTreatments.ucdsstring[]Tableau contenant une liste de code ucd7 ou ucd13 décrivant les traitements concomitant.
concomitantTreatments.dcisstring[]Tableau contenant une liste de dci décrivant les traitements concomitant.
concomitantTreatments.cisstring[]Tableau contenant une liste de cis décrivant les traitements concomitant.
concomitantTreatments.cipstring[]Tableau contenant une liste de cip7 ou cip13 décrivant les traitements concomitant.

concomitantTreatments est optionnel. S'il est transmis, il est nécessaire d’avoir au moins un des paramètres ucds, dcis cis, ou cip. Les trois se cumulent.

Exemple
{
  "rpps": "abcde1234",
  "first_name": "John",
  "last_name": "Doe",
  "guide": "alternatives",
  "cis": "61467730", // ou ucd ou encore cip
  "concomitantTreatments": {
    "ucds": ["3400894203018", "3400891764857"],
    "cis": ["68416845"],
    "dcis": ["paracétamol"],
    "cips": ["3406955"]
  },
  "terrains": ["E11"], // diabete
  "age": 70, // ou "birth_date": "1952-01-04" format date ISO;
  // 0 si âge < à 1 an.
  "pregnancy": false // false par défaut (pas de grossesse connue),
  //ou true (grossesse en cours)
}

Exemple

Request

POST
/api/partners/proxy/prepare
curl --request POST \
  --url https://partner-connect.preprod.posos.co/api/partners/proxy/prepare \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "rpps": "abcde1234",
    "first_name": "John",
    "last_name": "Doe",
    "guide": "analysis",
    "ucds": "3400891764857",
    "dcis": ["ketamine"]
}'

Response

{
  "location": "https://partner-connect.preprod.posos.co/api/partners/proxy/logout?payload=..."
}

Format de la réponse

En cas de succès, un code HTTP 201 est renvoyé avec un corps de réponse en JSON contenant un seul champ location contenant l'URL vers laquelle rediriger le poste de travail.

Response

{
  "location": "https://partner-connect.preprod.posos.co/partners/proxy/logout?payload=...."
}

Le paramètre payload dans l'url, contient un jeton opaque qui permettra d'authentifier l'utilisateur. C'est cette URL qui sera utilisée à l'étape suivante.

Codes de réponse

CodeDescription
201
400Un des paramètres passés dans la requête est invalide
403Le jeton de l'en-tête Authorization n'est pas correct ou manquant

Exemple d’erreur 400

Mauvaise syntaxe de code UCD

{
  "error": "'/ucds' must be array; '/ucds' must match pattern \"^([0-9]{7}|[0-9]{13})$\"; '/ucds' must match exactly one schema in oneOf"
}