Set MedicationRequest.status to 'active' (or 'draft' for pending orders) and MedicationRequest.intent to 'order' for a prescriber order or 'proposal' for a suggestion.
Populate MedicationRequest.medicationCodeableConcept with a coding using system http://www.nlm.nih.gov/research/umls/rxnorm and the appropriate RxCUI for the drug (e.g. a clinical drug concept at the SCD or SBD level).
Set MedicationRequest.subject to a reference to the Patient, and MedicationRequest.requester to a reference to the prescribing Practitioner.
Add dosageInstruction[] with at least one element containing text (human-readable), doseAndRate[].doseQuantity (with UCUM units), and timing.repeat fields describing frequency.
Include MedicationRequest.authoredOn as an ISO 8601 datetime and MedicationRequest.reasonCode or reasonReference if the indication is known.
POST to {base}/MedicationRequest; validate against US Core MedicationRequest profile if targeting a US Core-conformant server.
Known gotchas
RxNorm has multiple term types; for prescribing, use Clinical Drug (SCD) or Branded Drug (SBD) RxCUIs that include dose form and strength rather than ingredient-only (IN) or dose-form-group (BPCK) concepts.
Some FHIR servers require medicationReference (pointing to a Medication resource) rather than medicationCodeableConcept; check the server's CapabilityStatement or profile constraints.
Medication orders carry patient safety implications; never synthesize or modify dosing information programmatically without pharmacist or prescriber review, and treat API-written orders as requiring clinical workflow approval before dispensing.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp