HL7 BRP_O30 Blood Product Dispense Status Acknowledgment
BRP_O30 acknowledges a BPS_O29 blood product dispense status message. It tells the sender whether the status update was accepted, rejected, or accepted with returned product/order context.
The message is ACK-like at the top, but it can carry blood product detail in the response group. That is useful when both systems need to agree exactly which order, product, unit, or status was accepted.
A small BRP O30 example
What systems do with it
The BPS sender uses BRP to know whether the receiver accepted the dispense status update. If the receiver rejects the update, ERR should identify the problem, such as an unknown patient, order mismatch, duplicate unit, invalid status transition, or unsupported product code.
For high-safety workflows, a successful MSA is not just a transport nicety. It is evidence that the receiving system has accepted the product-status fact into its own audit trail.
How to read the structure
MSH, MSA, optional ERR, software details, and notes form the response header. The optional RESPONSE group can include patient context and order groups. Each order group can carry ORC, timing, BPO, and repeating BPX.
When BPX is present, read it as the product-level status that the receiver is acknowledging. ORC tells you the order context; BPX tells you the unit/product context.
Implementation traps
Do not create an acknowledgment loop. BRP is already the application-level response to BPS; it should not normally demand another application acknowledgment back.
Also avoid accepting a status update when the unit identity is ambiguous. A product-level status without the right donation ID or unique product ID is hard to trust later.
Reference notes
The HL7 v2+ BRP_O30 page shows MSA, ERR, and an optional response group with patient, ORC, BPO, and BPX detail. Its acknowledgment notes follow the same pattern as other order-response acknowledgments: application acknowledgment messages should not themselves create another application acknowledgment cycle.