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
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
identifier | Identifier[] | 0..* | Identifiants externes (numéro d'ordonnance). |
status | code | 1..1 | active, on-hold, ended, stopped, completed, cancelled, entered-in-error, draft, unknown. |
statusReason | CodeableConcept | 0..1 | Motif du statut (arrêt sur effet secondaire, allergie…). |
intent | code | 1..1 | proposal, plan, order, original-order, reflex-order, filler-order, instance-order, option. |
category | CodeableConcept[] | 0..* | Lieu d'administration (inpatient, outpatient, community, discharge…). |
priority | code | 0..1 | routine, urgent, asap, stat. |
doNotPerform | boolean | 0..1 | Contre-indication explicite — ne PAS prescrire. |
medication | CodeableReference(Medication) | 1..1 | Médicament — RxNorm, ATC, CIP, code local, ou ressource Medication. |
subject | Reference(Patient | Group) | 1..1 | Patient. |
encounter | Reference(Encounter) | 0..1 | Encounter de prescription. |
authoredOn | dateTime | 0..1 | Date de prescription. |
requester | Reference | 0..1 | Prescripteur (Practitioner, PractitionerRole, Organization, Patient…). |
reason | CodeableReference(Condition | Observation)[] | 0..* | Motif (indication clinique). |
courseOfTherapyType | CodeableConcept | 0..1 | Type de cure (acute, continuous, seasonal). |
insurance | Reference(Coverage | ClaimResponse)[] | 0..* | Couverture associée. |
note | Annotation[] | 0..* | Notes du prescripteur. |
dosageInstruction | Dosage[] | 0..* | Posologie (voir section dédiée). |
dispenseRequest | BackboneElement | 0..1 | Conditions de dispensation (quantité, renouvellements, validité, pharmacien attendu). |
substitution | BackboneElement | 0..1 | Substitution générique autorisée ou non. |
priorPrescription | Reference(MedicationRequest) | 0..1 | Prescription 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.boundsDurationouboundsPeriod— durée totale.route— voie d'administration (SNOMED CT).method— méthode (injection lente, voie sublinguale…).doseAndRate[].doseQuantityoudoseRange— 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 :
{
"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
}
} medicationcodée en double — RxNorm197361+ SNOMED323510009.dosageInstructionavectimingstructuré : 3 fois par 1 jour, bornes 7 jours.route= oral (SNOMED26643006).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.$lookupsur un code RxNorm pour récupérer les détails du médicament.
Profils
| Profil | Régulateur | Restrictions |
|---|---|---|
| US Core MedicationRequest | HL7 US Realm | Doit porter status, intent, medication (RxNorm), subject, authoredOn, requester. |
| IPS MedicationRequest | HL7 + CEN/TC 251 | Cross-border. medication codée SNOMED et/ou ATC. |
| FR Core MedicationRequest | ANS | Profil 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.conceptsans coding RxNorm/ATC : prescription en texte libre uniquement non interopérable. Toujours coder.dispenseRequest.quantity≠dosageInstruction× 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
doseQuantityetdoseRange: un seul à la fois pardoseAndRate. - Renouvellement sans
priorPrescription: casse la chaîne de traçabilité du traitement chronique. - UCUM mal formé :
mgest valide UCUM,milligramne 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 v2 — ORM^O01 segments RXO / RXE / RXR.