Skip to content
APIsRéférence APIPosologies complexes

Posologies complexes (detect_complex_posology)

L’option detect_complex_posology (booléen du corps de requête du scan d’ordonnance, false par défaut) active une analyse de l’ordonnance dans son ensemble, conçue pour les ordonnances dont les schémas de prise dépassent la ligne simple : perfusions et injectables (HAD), décroissances multi-phases, nutrition parentérale, consignes multi-lignes.

Request

{
  "images": [{ "image": "<base64>", "isPdf": true }],
  "detect_complex_posology": true
}

En cas d’indisponibilité de l’analyse avancée, le scan retombe automatiquement sur le pipeline standard : la requête aboutit toujours, avec le niveau de structuration habituel.

Ce qui change dans le bundle FHIR

Le format général du bundle est inchangé (Modélisation export d’ordonnance). L’option enrichit chaque MedicationRequest des éléments suivants, lorsqu’ils sont présents sur l’ordonnance.

dosageInstruction.method — technique d’administration

La technique d’administration est codée en SNOMED CT :

PrescriptionCode SNOMEDLibellé
Perfusion IV14152002Intravenous infusion
IVD / IV lente (IVL)43060002Intravenous injection
IVD rapide, bolus, flash447963004Intravenous push technique
Diffuseur portable, pompe ambulatoire261754007Continuous infusion
PCA241716000Patient controlled analgesia
Hydratation sous-cutanée (hypodermoclyse)113154008Subcutaneous clysis of patient for fluid administration

doseAndRate — débit prescrit

Le débit rejoint la dose dans le même élément : rateQuantity (« 500 mg/h ») ou rateRange (« 5 à 10 mL/h »).

timing.repeat — durées, phases datées

  • duration / durationMax : durée d’une administration (« en perfusion de 15 à 30 min » → duration: 15, durationMax: 30).
  • boundsPeriod : bornes calendaires d’une phase (« 40 mg matin et 20 mg soir jusqu’au 15/10/2024, puis 20 mg matin et soir jusqu’au 23/10/2024 »). Le début de chaque phase est déduit : date de l’ordonnance pour la première, lendemain de la fin de la phase précédente ensuite.
  • boundsDuration : durée de traitement relative (« pendant 7 jours », « QSP 28 jours », « OAR 3 mois » — les durées globales de pied d’ordonnance sont propagées à chaque médicament sans durée propre).

dosageInstruction.sequence — phases

Une décroissance produit plusieurs dosageInstruction : les prises d’une même phase (« 40 mg le matin et 20 mg le soir ») partagent le même sequence ; le numéro s’incrémente à chaque phase (« puis… »).

maxDosePerPeriod — plafond de dose

« Maximum 6 cp/j », « sans dépasser 8 gélules par jour » → un Ratio (numérateur : dose plafond codée, dénominateur : période). Le plafond est distinct de la dose par prise, conservée par ailleurs.

dispenseRequest.numberOfRepeatsAllowed — renouvellements

« À renouveler 3 fois », « Renouvelable trois fois » → dispenseRequest: { "numberOfRepeatsAllowed": 3 }.

Extensions dosageinstruction

Base : https://terminology.posos.co/fhir-extension/dosageinstruction/

ExtensionValeurExemple d’origine
ivModevalueString slow/fast« en IVD lente »
administrationDevicevalueCoding (SNOMED ou posos)« sur pompe » → 430033006 Infusion pump
diluentvalueCoding (médicament lié) ou valueString« dans NaCl 0,9 % »
diluentVolumevalueQuantity (UCUM)« dans 100 mL de NaCl »
rateMaxvalueQuantity« débit maximum 10 mL/min »
continuousvalueBooleanadministration continue sur 24 h

Dispositifs d’administration codés : pompe à perfusion (430033006), pompe PCA (462741000), diffuseur élastomérique (468746004), pousse-seringue (465254002), et — dans la terminologie posos (https://terminology.posos.co/device), faute de concept SNOMED — la poche de nutrition parentérale (NP_BAG) pour les additifs « à introduire dans la poche de NP ».

note — consignes non structurables

Les consignes de prise sans champ FHIR dédié sont conservées verbatim dans le note du MedicationRequest : « au moins 1h avant la chimiothérapie », « après chaque selle liquide », « arrêter les injections si les plaquettes sont < 50 000/mm3 », « par gravité »…

Exemple

Ordonnance : « VANCOMYCINE 1 g dans 250 mL de NaCl 0,9 %, en perfusion IV lente au débit de 500 mg/h sur 2 heures, matin et soir, pendant 10 jours »

dosageInstruction

{
  "text": "VANCOMYCINE 1 g dans 250 mL de NaCl 0,9 %, en perfusion IV lente au débit de 500 mg/h sur 2 heures, matin et soir, pendant 10 jours",
  "method": {
    "coding": [
      { "system": "http://snomed.info/sct", "code": "14152002", "display": "Intravenous infusion" }
    ]
  },
  "doseAndRate": [
    {
      "doseQuantity": { "value": 1, "unit": "g", "code": "g", "system": "https://ucum.org" },
      "rateQuantity": { "value": 500, "unit": "mg/h" }
    }
  ],
  "timing": {
    "repeat": {
      "frequency": 2,
      "period": 1,
      "periodUnit": "d",
      "duration": 2,
      "durationUnit": "h",
      "when": ["MORN", "EVE"],
      "boundsDuration": { "value": 10, "unit": "day", "code": "d" }
    }
  },
  "extension": [
    { "url": "https://terminology.posos.co/fhir-extension/dosageinstruction/ivMode", "valueString": "slow" },
    { "url": "https://terminology.posos.co/fhir-extension/dosageinstruction/diluent", "valueString": "NaCl 0,9 %" },
    { "url": "https://terminology.posos.co/fhir-extension/dosageinstruction/diluentVolume", "valueQuantity": { "value": 250, "unit": "mL", "code": "mL", "system": "https://ucum.org" } }
  ]
}

Autres garanties

  • Texte fidèle : le text de chaque dosageInstruction reprend les lignes de l’ordonnance telles qu’écrites — jamais une phrase reconstruite.
  • Médicaments arrêtés : une ligne « Arrêt X, Y » n’engendre aucun MedicationRequest.
  • Solutés autonomes : une ligne de soluté quantifiée (« NaCl 0,9 % poches de 100 mL : 2 poches par jour ») est un médicament à part entière ; un solvant inline (« dans NaCl 0,9 % 20 mL ») reste le diluent du médicament concerné.
  • Unités de dose codées ou absentes : une unité de prise sans code (UCUM/SNOMED) n’est pas émise — la valeur est conservée.

Limites connues

  • Les dispositifs médicaux prescrits (étuis, sondes, cathéters) ne sont pas restitués par l’analyse avancée — utiliser detect_medical_device avec le pipeline standard si nécessaire.
  • Les ordonnances de dotation (réserve PUI : « 2 ampoules », « 3 flacons ») sont restituées comme des posologies, pas comme des quantités de délivrance.