Skip to content
APIsRéférence APIAppel contextuelBPMRécupérer les infos de l'accompagnement

Introduction

Cette API permet d’accéder à l’entretien pharmaceutique pour un patient au travers d’un appel contextuel.

La logique est la suivante:

  • Création de l’utilisateur s’il n’existe pas
  • Redirection vers la fiche de l’entretien pharmaceutique en cours

Attention : si l’utilisateur n’existe pas et que celui-ci est créé à la volée, il est nécessaire que le code identifiant pharmacie soit bien celui en charge de l’accompagnement du patient pour ne pas avoir une erreur d’autorisation à la consultation.

Point d’entrée

URL de l’appel contextuel

⚠️

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/:facilitySlug/bpm/medication-review-infos

Avec facilitySlug le facilitySlug unique pour votre intégration et qui sera le même pour l’ensemble des pharmacies

En-têtes HTTP

NomValeur
Content-Typeapplication/json
AuthorizationBearer <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.

AttributTypeDescription
emailstringEmail de l’intervenant de santé
Requis
posos_idstringIdentifiant unique de l’intervenant de santé
Requis
cipstringIdentifiant unique de la pharmacie
Requis
given_namestringPrénom de l’intervenant de santé
Requis
family_namestringNom 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

NomtypeDescription
patientIppstringIPP (identifiant) du patient dans le logiciel Posos
Requis
operatorobjectDé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
{
  "patientIpp": "ABCDEFG01"
}

Format de la réponse

Le résultat obtenu est du JSON de la forme suivante:

Output

{
  "medicationReview": { ... }
}

Le champ medicationReview contient les informations de l’accompagnement en cours pour le patient.

Medication Review

NomtypeDescription
idstringIdentifiant unique de l’accompagnement
stepsobjectObjet décrivant les différentes étapes de l’accompagnement avec les données à proprement parler Steps

Steps

NomtypeDescription
currentenumEtape en cours de l’accompagnement (signifie que les étapes précédentes sont validées)
preparationobjectObjet décrivant les données relatives à l’étape de préparation Preparation
interviewobjectObjet décrivant les données relatives à l’étape de premier entretien Interview
reportobjectObjet décrivant les données relatives à l’étape de compte-rendu Report
counselingInterviewobjectObjet décrivant les données relatives à l’étape d’entretien conseil Counseling Interview
observanceobjectObjet décrivant les données relatives à l’étape d’observance Observance

Preparation

NomtypeDescription
importedPrescriptionsobject[]Ordonnances importées lors de la création de l’accompagnement Imported Prescription
patientTreatmentsobject[]Traitements patient reseignés lors de l’étape de préparation. Cette liste est figée lorsque l’étape est validée Treatment
validationDatenumberDate de validation de l’étape

Imported Orescription

NomtypeDescription
idstringIdentifiant de la prescription
creationDatestringDate d’import
treatmentsobject[]Traitements détectés dans l’ordonnance Treatment
jobStatusenumEtat du job d’import

Le jobStatus peut être :

  • PENDING
  • IN_PROGRESS
  • ERROR
  • SUCCESS

Interview

NomtypeDescription
questionsobjectQuestions posées lors de l’entretien avec leurs réponses Interview Question
patientTreatmentEvolutionsobject[]Liste d’évolution de traitements par le patient renseignées lors de cette étape Treatment Evolution
validationDatenumberDate de validation de l’étape

Interview Question

NomtypeDescription
lifestyle{questions: object[]}Questions relatives au style de vie Question
physiologicalState{questions: object[]}Questions relatives à l’état physiologique Question
treatments{questions: object[]}Questions relatives aux traitements Question
modifications{questions: object[]}Questions relatives aux modifications des traitements par le patient Question
observance{questions: object[]}Questions relatives à l’observance Question
conclusion{questions: object[]}Questions complémentaires Question

Question

NomtypeDescription
slugstringIdentifiant de la question
answerobjectRéponse à la question answer

Les slugs utilisés sont les suivants :

Answer

NomtypeDescription
numericalValuenumberRéponse numérique
textValuestringRéponse texte
booleanValuebooleanRéponse vrai / faux
conditionsobject[]Liste de conditions physiologiques significatives affectant le patient et répondant à la question Condition
commentstringCommentaire

Report

NomtypeDescription
patientTreatmentsobject[]Liste des traitements issus des premières étapes de préparation et d’entretien Treatment
patientTreatmentEvolutionsobject[]Liste d’évolutions de traitements proposées par le pharmacien Treatment Evolution
commentstringCommentaire du pharmacien sur l’étape de compte rendu
validationDatenumberDate de validation de l’étape (timestamp unix)

Counseling Interview

NomtypeDescription
datenumberDate de l’entretien conseil (timestamp unix)
patientTreatmentsobject[]Liste des traitements issus des premières étapes de préparation, d’entretien et de compte rendu Treatment
patientTreatmentEvolutionsobject[]Liste d’évolutions de traitements Treatment Evolution
validationDatenumberDate de validation de l’étape (timestamp unix)

Observance

NomtypeDescription
datenumberDate de l’entretien conseil (timestamp unix)
patientTreatmentsobject[]Liste des traitements issus de l’accompagnement Treatment
validationDatenumberDate de validation de l’étape (timestamp unix)

Conditions

AttributTypeDescription
designationstringLibellé de la condition
codingsobject[]Liste de codings pour la condition Coding avec les systemes snomed, cim10 ou meddra
modifiersstring[]Modificateurs utilisés pour préciser la description de la condition (Légère, Sévère, etc)

Coding

AttributTypeDescription
codestringCode du coding
displaystringLabel du coding
systemstringSysteme du coding

Treatment

AttributTypeDescription
idstringIdentifiant unique du traitement du patient
alertsobject[]Alertes relatives à ce traitement Treatment Alert
brandedDrugobjectInformations sur le traitement Branded Drug
commentstringCommentaire
indicationobjectMotif de prescription
isSelfMedicationbooleanIndique si le patient prend son traitement en auto-médication
posologyobjectPosologie Posology

Branded Drug

AttributTypeDescription
codingsobject[]Codes relatifs au branded drug avec le systeme cis Coding
brandName{designation: string}Nom de marque ou INN du médicament
innstringINN du médicament
clinicalDrugobjectMédicament virtuel associé Clinical Drug

Clinical Drug

AttributTypeDescription
codingsobject[]Codes relatifs au branded drug avec le systeme posos Coding
formstringForme du médicament
labelledStrengthstringDose des substances actives

Posology

AttributTypeDescription
textstringTexte brut de la posologie
structuredPosologystring[]Posologie structurée au format FHIR (JSON)

Treatment Alert

AttributTypeDescription
typeenumType d’alert CONTRAINDICATION ou ADVERSE_EFFECT ou INTERACTION
levelnumberNiveau de gravité de 0 à 4

Treatment Evolution

AttributTypeDescription
idstringIdentifiant unique de l’évolution
typeenumType d’évolution
kindenumNature d’évolution
pharmaceuticalInterventionDetailsobjectDétails de l’intervention pharmaceutique pharmaceutical-intervention-details
oldobjectTraitement supprimé ou ancienne version d’un traitement modifié Treatment
newobjectTraitement ajouté ou nouvelle version d’un traitement modifié Treatment
replacesobjectEvolution replacée par l’évolution actuelle Treatment Evolution
commentstringCommentaire au sujet de l’évolution de traitement

Le type peut être :

  • CREATE
  • UPDATE
  • DELETE

Le kind peut être :

  • PHARMACEUTICAL_INTERVENTION : intervention proposée par le pharmacien
  • PATIENT_INTERVENTION : modification opérée par le patient
  • MEDICAL_INTERVENTION : intervention proposée par le médecin

Pharmaceutical Intervention Details

AttributTypeDescription
problemenumCode du problème du traitement
problemDescriptionstringTexte explicatif du problème du traitement
statusenumStatus d’acceptation de l’intervention pharmaceutique
rejectCommentstringCommentaire en cas de refus de l’intervention pharmaceutique

Le problem peut être :

  • NON_COMPLIANCE_WITH_GUIDELINES
  • UNTREATED_INDICATION
  • UNDERDOSING
  • OVERDOSING
  • DRUG_NOT_INDICATED
  • INTERACTION_TO_ACKNOWLEDGE
  • INTERACTION_PRECAUTIONS
  • INTERACTION_DISCOURAGED_ASSOCIATION
  • INTERACTION_PUBLISHED_CONTRAINDICATION
  • ADVERSE_EFFECT
  • INAPPROPRIATE_PATHWAY
  • TREATMENT_NOT_RECEIVED
  • NOT_DEFINED
  • ONGOING_MONITORING

Le status peut être :

  • ACCEPTED
  • REJECTED
  • NOT_SPECIFIED

Medication review current steps

Peut prendre une de ces valeurs:

  • PREPARATION : préparation
  • INTERVIEW : premier entretien
  • REPORT : compte-rendu
  • COUNSELING_INTERVIEW : entretien conseil
  • OBSERVANCE : observance
  • FINISHED : accompagnement terminé

Exemple de réponse

Output

{
  "medicationReview": {
    "id": "58ea6fc6-ba29-4a88-bbd1-75b604438ee3",
    "adverseEffects": [],
    "archived": false,
    "billing": {
      "reference": {
        "content": {
          "code": {
            "amount": 0,
            "label": "BMI"
          },
          "status": "MISSING_STEPS"
        },
        "versionedObjectId": "c182daed-1e55-480f-a12c-83b71983ad6e"
      }
    },
    "comment": null,
    "documents": [],
    "nextReviewDate": null,
    "eligibilityCriteria": false,
    "isAdhesionCollected": true,
    "medicationCount": null,
    "prescriptions": [],
    "reviewerParty": {
      "reference": {
        "partyId": "bc94c4e4-4bd7-4751-8f23-4a6e53b0e0b3",
        "originTenantSlug": null,
        "content": {
          "name": "demo",
          "kind": "OFFICINE",
          "contacts": null
        }
      }
    },
    "validatorParty": null,
    "steps": {
      "current": "PREPARATION",
      "counselingInterview": {
        "validationDate": null,
        "date": null,
        "patientTreatments": [],
        "patientTreatmentEvolutions": []
      },
      "interview": {
        "validationDate": null,
        "questions": null,
        "patientTreatmentEvolutions": []
      },
      "preparation": {
        "validationDate": null,
        "importedPrescriptions": [],
        "patientTreatments": []
      },
      "report": {
        "validationDate": null,
        "comment": null,
        "patientTreatments": [],
        "patientTreatmentEvolutions": []
      },
      "reportValidation": null,
      "observance": {
        "validationDate": null,
        "questions": null,
        "patientTreatments": []
      }
    }
  }
}

Codes de réponse

CodeDescription
201
400Un des paramètres passés dans la requête est invalide
401Le token passé est invalide
404Aucun accompagnement n’existe pour ce patient