Introduction
Cette API permet d’initialiser un accompagnement pharmaceutique, comme un bilan partagé de médication pour un patient
La logique est la suivante:
- Création de l’utilisateur s’il n’existe pas
- Création du patient s’il n’existe pas
- Création de l’accompagnement si aucun n’est en cours, avec scan d’ordonnance asynchrone
Point d’entrée
URL de l’appel contextuel
L’url de base est https://partner-connect.{env}.posos.co où {env} est
l’environnement suivant : preprod pour la validation, production pour le
live.
post/api/partners/:facilitySlug/bpm/create
Avec facilitySlug le facilitySlug unique pour votre intégration et qui sera le même pour l’ensemble des pharmacies
En-têtes HTTP
| Nom | Valeur |
|---|---|
Content-Type | application/json |
Authorization | Bearer <token> |
Authentification
Une authentification est nécessaire pour l’appel à cet endpoint. Il y a deux types de jetons d’authentification qui peuvent être utilisés
Jeton par certificat (x5c)
Le jeton peut être signé avec la clé publique fournie dans un certificat dans le x5c du jeton. L’autorité de certification correspondante doit nous être fournie au préalable pour que nous la rajoutions dans les autorités de confiance.
Généralement ce mode opératoire vous permet de générer un jeton par pharmacie ou opérateur (intervenant de santé). Dans ce cas le jeton d’authentification doit contenir les claims suivants.
| Attribut | Type | Description |
|---|---|---|
email | string | Email de l’intervenant de santé Requis |
posos_id | string | Identifiant unique de l’intervenant de santé Requis |
cip | string | Identifiant unique de la pharmacie Requis |
given_name | string | Prénom de l’intervenant de santé Requis |
family_name | string | Nom de l’intervenant de santé Requis |
Note : les champs posos_id et email doivent être uniques pour l’opérateur parmi toutes les pharmacies (pas uniquement pour sa pharmacie).
Jeton d’accès à nos APIs
Le jeton peut également être le jeton standard d’accès à nos APIs et appels contextuels dont la génération est décrite dans la page Authentification.
Cette méthode doit uniquement être utilisée dans le cas d’un accès serveur à serveur, et ne doit pas émaner de la pharmacie pour des raisons de sécurité (il est possible de faire des requêtes pour n’importe quelle pharmacie de l’éditeur).
Dans ce scénario il sera obligatoire de fournir dans le corps de la requête le champ operator.
Corps de la requête
| Nom | type | Description |
|---|---|---|
images | object[] | La liste des ordonnances à scanner. Voir la section Ordonnances Requis mais peut être un tableau vide. |
patient | object | Objet décrivant le patient. Vois la section Patient Requis |
medicationReviewInterviewDate | string | Date de l’entretien au format YYYY-MM-DD Requis |
operator | object | Détails de l’intervenant de santé qui réalise l’entretien. Le format est identique à celui attendu pour le jeton par certificat (x5c). Requis sauf dans l’authentification x5c |
Ordonnances
| Attribut | Type | Description |
|---|---|---|
image | string | Contenu de l’image en base64 Requis |
isPdf | boolean | Flag indiquant si l’image est un PDF ou non Requis |
Patient
| Attribut | Type | Description |
|---|---|---|
ins | string | Numéro de sécurité sociale du patient Requis |
givenName | string | Prénom du patient Requis |
familyName | string | Nom du patient Requis |
birthDate | string | Date de naissance du patient au format YYYY-MM-DD Requis |
birthLocation | object | Lieu de naissance du patient. Voir la section Location |
gender | enum | Sexe du patient. Voir la section Gender Requis |
profile | object | Profil du patient |
Gender
Peut prendre une de ces valeurs:
FEMALEMALEUNDIFFERENTIATEDUNKNOWN
Location
| Attribut | Type | Description |
|---|---|---|
city | string | Ville de naissance |
country | string | Pays de naissance |
line1 | string | 1e ligne d’adresse du lieu de naissance |
line2 | string | 2e ligne d’adresse du lieu de naissance |
department | number | Département de naissance. Requis |
Profile
| Attribut | Type | Description |
|---|---|---|
height | number | Taille du patient |
weight | number | Poids du patient |
dfg | number | Débit de filtration glomérulaire du patient |
renalImpairment | enum | Insufisance rénale Voir la section Renal impairment |
heartFailure | enum | Insufisance cardiaque Voir la section Heart failure |
hepaticFailure | enum | Insufisance hépatique Voir la section Hepatic failure |
allergies | object[] | Liste d’allergies Voir la section Conditions |
conditions | object[] | Liste de terrains Voir la section Conditions |
Renal impairment
Peut prendre une de ces valeurs :
NONEMILDMODERATESEVERETERMINALUNSPECIFIED
Heart failure
Peut prendre une de ces valeurs :
NONEMILDMODERATESEVEREUNSPECIFIED
Hepatic failure
Peut prendre une de ces valeurs :
NONEMILDMODERATESEVEREUNSPECIFIED
Conditions
| Attribut | Type | Description |
|---|---|---|
label | string | Label de la condition Requis |
codings | object[] | Liste de codings pour la condition Voir la section Coding Requis |
Pour chaque condition précisée il est nécessaire de spécifier au moins un coding pour que la donnée soit correctement structurée par le BPM et que des alertes puissent remonter.
Coding
| Attribut | Type | Description |
|---|---|---|
code | string | Code du coding Requis |
display | string | Label du coding Requis |
system | string | System du coding (peut être snomed, cim10 ou meddra) Requis |
{
"patient": {
"ins": "1880593059061",
"givenName": "Robert",
"familyName": "De Niro",
"birthDate": "1970-05-25",
"gender": "MALE",
"profile": {
"conditions": [
{
"label": "insuffisance cardiaque à haut débit",
"codings": [
{
"code": "10091002",
"display": "insuffisance cardiaque à haut débit",
"system": "snomed"
}
]
},
{
"label": "spasme artériel",
"codings": [
{
"code": "3750006",
"display": "spasme artériel",
"system": "snomed"
}
]
}
]
}
},
"images": [],
"medicationReviewInterviewDate": "2025-10-12"
}Format de la réponse
Le résultat obtenu est du JSON de la forme suivante:
Output
{
"patientIpp": "<string>"
}Le champ patientIpp est celui de l’identifiant patient dans le BPM Posos.
Exemple de réponse
Output
{
"patientIpp": "ABCDEFG01"
}Codes de réponse
| Code | Description |
|---|---|
201 | |
400 | Un des paramètres passés dans la requête est invalide |
401 | Le token passé est invalide |