HL7 RRD_O14 Pharmacy/Treatment Dispense Acknowledgment
RRD_O14 is the application response to an RDS_O13 dispense message. It tells the dispense sender whether the receiving application accepted the dispense event, and it can optionally echo the patient, order, and dispense details that were processed.
In the real world this message is most useful when pharmacy, dispensing cabinets, inventory systems, eMAR systems, and billing workflows need a closed loop. The original RDS says "this was dispensed." RRD says whether the receiver could use that information.
A small RRD example
What systems do with it
The sender is usually the application that received the RDS dispense message. The receiver is the original dispense sender. MSA carries the basic acknowledgment result, while ERR should explain application-level problems such as an unknown patient, unknown order, duplicate dispense event, unsupported dispense code, or a quantity/unit problem.
If the optional response group is populated, RXD is the important segment. It carries the dispense that was accepted or rejected in context, with ORC tying the response back to the order and RXR carrying route information when the dispense group is present.
How to read the structure
The required core is MSH and MSA. ERR, software, and notes can add operational detail. The optional response group contains an optional patient group and one or more order groups. Each order group requires ORC and may include timing and a dispense group.
Inside the dispense group, RXD is required, RXR repeats and is required, and RXC can carry component detail. This is useful for compound medications and inventory workflows where the receiver needs more than a single display label.
Implementation traps
Do not use RRD as the dispense event itself. The event is RDS. RRD is the response to that event. If the receiving system creates inventory, charge, or MAR updates from RRD alone, it is probably reacting to the wrong side of the conversation.
Also be precise about duplicate handling. A repeated RDS after a timeout may receive an RRD with the same accepted result, or it may receive an application error that means "already processed." Those are operationally different, so document the resend behavior.
Reference notes
The HL7 v2+ RRD_O14 page describes the pharmacy/treatment dispense acknowledgment and shows the optional response, patient, order, timing, dispense, RXD, RXR, and RXC structure.