ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

MedicationRequest — Prescription médicamenteuse

La prescription médicamenteuse en FHIR. Couvre l'ordonnance ambulatoire, la prescription hospitalière (ordre médical), la prescription nominative et les renouvellements.

Objet de la ressource

MedicationRequest représente une prescription, une commande ou une suggestion de médicament pour un patient. Le pendant d'OrderMessage en FHIR pour le médicament. Couvre :

  • l'ordonnance ambulatoire envoyée à un pharmacien ;
  • la prescription hospitalière à dispensation par la pharmacie de l'hôpital ;
  • la prescription nominative individuelle ;
  • le renouvellement de traitement chronique ;
  • les recommandations issues d'un système d'aide à la décision (intent plan, proposal).

Pour la dispensation effective, voir MedicationDispense. Pour la prise réelle constatée, voir MedicationAdministration (en hospitalier). Pour le traitement actif du patient sans prescription explicite identifiable, voir MedicationStatement.

Champs clés

ChampTypeCardinalitéRôle
identifierIdentifier[]0..*Identifiants externes (numéro d'ordonnance).
statuscode1..1active, on-hold, ended, stopped, completed, cancelled, entered-in-error, draft, unknown.
statusReasonCodeableConcept0..1Motif du statut (arrêt sur effet secondaire, allergie…).
intentcode1..1proposal, plan, order, original-order, reflex-order, filler-order, instance-order, option.
categoryCodeableConcept[]0..*Lieu d'administration (inpatient, outpatient, community, discharge…).
prioritycode0..1routine, urgent, asap, stat.
doNotPerformboolean0..1Contre-indication explicite — ne PAS prescrire.
medicationCodeableReference(Medication)1..1Médicament — RxNorm, ATC, CIP, code local, ou ressource Medication.
subjectReference(Patient | Group)1..1Patient.
encounterReference(Encounter)0..1Encounter de prescription.
authoredOndateTime0..1Date de prescription.
requesterReference0..1Prescripteur (Practitioner, PractitionerRole, Organization, Patient…).
reasonCodeableReference(Condition | Observation)[]0..*Motif (indication clinique).
courseOfTherapyTypeCodeableConcept0..1Type de cure (acute, continuous, seasonal).
insuranceReference(Coverage | ClaimResponse)[]0..*Couverture associée.
noteAnnotation[]0..*Notes du prescripteur.
dosageInstructionDosage[]0..*Posologie (voir section dédiée).
dispenseRequestBackboneElement0..1Conditions de dispensation (quantité, renouvellements, validité, pharmacien attendu).
substitutionBackboneElement0..1Substitution générique autorisée ou non.
priorPrescriptionReference(MedicationRequest)0..1Prescription précédente (renouvellement).

dosageInstruction

Sous-élément central qui structure la posologie. Champs principaux :

  • text — texte libre lisible humain (« 1 capsule 3 fois par jour pendant 7 jours »).
  • timing.repeat.frequency + timing.repeat.period + timing.repeat.periodUnit — rythme.
  • timing.repeat.boundsDuration ou boundsPeriod — durée totale.
  • route — voie d'administration (SNOMED CT).
  • method — méthode (injection lente, voie sublinguale…).
  • doseAndRate[].doseQuantity ou doseRange — dose unitaire.
  • doseAndRate[].rateQuantity — débit (pour les perfusions).
  • maxDosePerPeriod — dose maximale par période.
  • asNeededFor — médicament à la demande, avec indication.

Exemple JSON

Amoxicilline 500 mg PO, 3×/jour, 7 jours, indication otite moyenne :

json medicationrequest-example.json
{
  "resourceType": "MedicationRequest",
  "id": "example",
  "status": "active",
  "intent": "order",
  "category": [{
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-admin-location",
      "code": "inpatient",
      "display": "Inpatient"
    }]
  }],
  "priority": "routine",
  "medication": {
    "concept": {
      "coding": [{
        "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
        "code": "197361",
        "display": "Amoxicillin 500 MG Oral Capsule"
      }, {
        "system": "http://snomed.info/sct",
        "code": "323510009",
        "display": "Amoxicillin 500mg capsule"
      }],
      "text": "Amoxicillin 500 mg oral capsule"
    }
  },
  "subject": { "reference": "Patient/example" },
  "encounter": { "reference": "Encounter/example" },
  "authoredOn": "2026-05-14T11:00:00+01:00",
  "requester": { "reference": "Practitioner/example" },
  "reason": [{
    "concept": {
      "coding": [{
        "system": "http://snomed.info/sct",
        "code": "65363002",
        "display": "Otitis media"
      }]
    }
  }],
  "dosageInstruction": [{
    "sequence": 1,
    "text": "1 capsule par voie orale, 3 fois par jour, pendant 7 jours.",
    "timing": {
      "repeat": {
        "frequency": 3,
        "period": 1,
        "periodUnit": "d",
        "boundsDuration": { "value": 7, "unit": "d", "system": "http://unitsofmeasure.org", "code": "d" }
      }
    },
    "route": {
      "coding": [{
        "system": "http://snomed.info/sct",
        "code": "26643006",
        "display": "Oral route"
      }]
    },
    "doseAndRate": [{
      "type": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/dose-rate-type",
          "code": "ordered",
          "display": "Ordered"
        }]
      },
      "doseQuantity": {
        "value": 1,
        "unit": "capsule",
        "system": "http://unitsofmeasure.org",
        "code": "{capsule}"
      }
    }]
  }],
  "dispenseRequest": {
    "validityPeriod": {
      "start": "2026-05-14",
      "end": "2026-05-21"
    },
    "numberOfRepeatsAllowed": 0,
    "quantity": {
      "value": 21,
      "unit": "capsule",
      "system": "http://unitsofmeasure.org",
      "code": "{capsule}"
    }
  },
  "substitution": {
    "allowedBoolean": true
  }
}
  • medication codée en double — RxNorm 197361 + SNOMED 323510009.
  • dosageInstruction avec timing structuré : 3 fois par 1 jour, bornes 7 jours.
  • route = oral (SNOMED 26643006).
  • dispenseRequest.quantity = 21 capsules — calcul cohérent avec 3 × 7.
  • substitution.allowedBoolean = true — substitution générique autorisée.

API REST

  • GET /MedicationRequest/example — fetch direct.
  • GET /MedicationRequest?patient=example&status=active — traitements actifs.
  • GET /MedicationRequest?patient=example&authoredon=ge2026-01-01 — prescriptions récentes.
  • GET /MedicationRequest?patient=example&medication.code=http://www.nlm.nih.gov/research/umls/rxnorm|197361 — antécédent d'amoxicilline.
  • $lookup sur un code RxNorm pour récupérer les détails du médicament.

Profils

ProfilRégulateurRestrictions
US Core MedicationRequestHL7 US RealmDoit porter status, intent, medication (RxNorm), subject, authoredOn, requester.
IPS MedicationRequestHL7 + CEN/TC 251Cross-border. medication codée SNOMED et/ou ATC.
FR Core MedicationRequestANSProfil français — CIP / UCD pour le médicament, CIM-10 pour reason.

Pièges courants

  • status=active + intent=plan : incohérent. Un plan n'est pas une prescription active. Pour exécution, intent=order.
  • medication.concept sans coding RxNorm/ATC : prescription en texte libre uniquement non interopérable. Toujours coder.
  • dispenseRequest.quantitydosageInstruction × durée : une ordonnance de 3 cp/j sur 7 j mais 50 comprimés délivrés est suspecte (et illégale dans plusieurs juridictions).
  • Mélanger doseQuantity et doseRange : un seul à la fois par doseAndRate.
  • Renouvellement sans priorPrescription : casse la chaîne de traçabilité du traitement chronique.
  • UCUM mal formé : mg est valide UCUM, milligram ne l'est pas. {capsule} (avec accolades) pour les unités énumérables.

Ressources liées

  • Patient — sujet.
  • Encounter — contexte.
  • Practitioner — prescripteur.
  • Medication — détail du médicament (forme, composition, fabricant).
  • MedicationDispense — dispensation par la pharmacie.
  • MedicationAdministration — administration constatée (hôpital).
  • MedicationStatement — traitement actif déclaré (anamnèse).
  • Condition — référencée via reason (indication).
  • Equivalent HL7 v2ORM^O01 segments RXO / RXE / RXR.