HL7 RDE^O11 (Pharmacy/Treatment Encoded Order)
RDE^O11 is the pharmacy/treatment encoded order message. The RXE segment carries the encoded (pharmacy-validated) medication order: drug code, give amount and units, and timing/frequency.
When is RDE^O11 sent?
Sent to or from a pharmacy system to communicate an encoded medication order ready for dispensing/administration. It typically follows a prescriber’s original RDE^O11 or order.
Key segments
The segments below are the ones most relevant to RDE^O11. Real messages may carry additional optional segments depending on the sending system’s configuration.
| Segment | Usage | Role |
|---|---|---|
| MSH | Required | Message header: sending/receiving application & facility, message type, control id, version. |
| PID | Required | Patient identification: identifiers (MRN), name, date of birth, sex, address, phone. |
| ORC | Required | Common order: order control code, placer/filler order numbers. |
| RXE | Required | Pharmacy/treatment encoded order: give code (e.g. RxNorm), give amount min/max and units, dosage form, and timing/quantity. |
| RXR | Optional | Pharmacy/treatment route: route and site of administration. |
Full message structure (v2.8.2)
Every segment and group the standard defines for RDE^O11, in order, straight from the machine-readable specification. Indented rows sit inside the repeating group above them. R is required, O optional, C conditional; ∞ means the group or segment may repeat without a defined limit.
| Segment / group | Usage | Repeats |
|---|---|---|
| MSH | R | 1 |
| SFT | O | ∞ |
| UAC | O | 1 |
| NTE | O | ∞ |
| PATIENT (group) | O | 1 |
| PID | R | 1 |
| PD1 | O | 1 |
| PRT | O | ∞ |
| NTE | O | ∞ |
| PATIENT_VISIT (group) | O | 1 |
| PV1 | R | 1 |
| PV2 | O | 1 |
| PRT | O | ∞ |
| INSURANCE (group) | O | ∞ |
| IN1 | R | 1 |
| IN2 | O | 1 |
| IN3 | O | 1 |
| GT1 | O | 1 |
| AL1 | O | ∞ |
| ORDER (group) | R | ∞ |
| ORC | R | 1 |
| TIMING (group) | O | ∞ |
| TQ1 | R | 1 |
| TQ2 | O | ∞ |
| ORDER_DETAIL (group) | O | 1 |
| RXO | R | 1 |
| NTE | O | ∞ |
| RXR | R | ∞ |
| COMPONENT (group) | O | ∞ |
| RXC | R | 1 |
| NTE | O | ∞ |
| PRT | O | ∞ |
| RXE | R | 1 |
| PRT | O | ∞ |
| NTE | O | ∞ |
| TIMING_ENCODED (group) | R | ∞ |
| TQ1 | R | 1 |
| TQ2 | O | ∞ |
| RXR | R | ∞ |
| RXC | O | ∞ |
| OBSERVATION (group) | O | ∞ |
| OBX | R | 1 |
| PRT | O | ∞ |
| NTE | O | ∞ |
| FT1 | O | ∞ |
| BLG | O | 1 |
| CTI | O | ∞ |
Which HL7v2 versions changed RDE^O11?
RDE^O11 has been defined since v2.4. Consecutive versions sharing an identical structure are grouped, so a single row spanning several versions means nothing changed across them.
| Versions | What changed |
|---|---|
| v2.4 | First defined, with 31 segments and groups. |
| v2.5 - v2.5.1 | Added BLG, FT1, SFT, TQ1, TQ2. |
| v2.6 | Added UAC. |
| v2.7 - v2.8.2 | Added PRT. |
Example RDE^O11 message
A realistic, well-formed example. Segments are separated by carriage returns; fields by the pipe (|) delimiter.
MSH|^~\&|PHARM|HOSP|REC|REC|20240115120000||RDE^O11|MSGCTRL7777|P|2.5.1
PID|1||MRN12345^^^EPIC^MR||DOE^JOHN^A||19800101|M
ORC|NW|PLAC1234|FILL5678
RXE|^Q6H^^^^R|209387^Amoxicillin 500mg^RXNORM|500||mg|TABMapping RDE^O11 to FHIR
See the full field-by-field mapping of RDE^O11 to a FHIR MedicationRequest - including the transforms and gotchas - on the RDE^O11 → US Core MedicationRequest reference page. You can fork that template and run it in the Mapping Builder.
Frequently asked questions
What is an HL7 RDE^O11 message?
RDE^O11 is the pharmacy/treatment encoded order message. The RXE segment carries the encoded medication order: the drug (often RxNorm), give amount and units, and the timing/frequency quantity.
What does the RXE segment contain?
RXE carries the give code (RXE-2, e.g. RxNorm), the give amount minimum (RXE-3) and units (RXE-5), the dosage form (RXE-6), and the quantity/timing (RXE-1) for the medication order.
How do I map RDE^O11 to a FHIR MedicationRequest?
Map RXE-2 to medicationCodeableConcept (RxNorm system), RXE-3/5 to dosageInstruction dose, and set status active / intent order. The Interoperall template implements this.
How do I validate an RDE^O11 message?
Paste it into the HL7v2 validator to parse the ORC/RXE structure and confirm the order is well-formed, in your browser.