HL7 TBR_R08 Tabular Data Response

HL7 message structure TBR_R08 groups and segments from HL7 v2.5.1 Hide structure

These are the generated groups and segments for the version selected at the top of the page. The article explains the workflow, and this panel follows the chosen HL7 version.

Message Structure

SegmentNameRequiredRepeatable
Message Header Yes No
Software Segment No Yes
Message Acknowledgment Yes No
Error No No
Query Acknowledgment Yes No
Table Row Definition Yes No
Table Row Data Yes Yes
Continuation Pointer No No

TBR_R08 is a tabular data response. It uses RDF to describe columns and repeating RDT segments to carry rows.

This is more structured than a display response, but it is still a legacy query pattern. For new work, a modern QBP/RSP or receiver-specific profile is usually clearer.

A small TBR R08 example

MSH|^~\&|RESULTS|CITYHOSP|PORTAL|CITYHOSP|20260718155500||TBR^R08^TBR_R08|TBRR080001|P|2.5.1 MSA|AA|VQQQ070001 QAK|QVT001|OK|Q07^Virtual table query^HL7nnn|2 RDF|3|Code^CE^20~Display^ST^60~Status^ID^8 RDT|A1^Alpha one^L|First row|A RDT|B2^Beta two^L|Second row|A

What systems do with it

The requester sends a query such as VQQ_Q07 or SPQ_Q08. The responder returns an acknowledgment, query status, a row definition, and one RDT segment per row.

Receivers usually map each RDT field by position against RDF. That makes the column definition important operational data, not decoration.

How to read the structure

MSH identifies TBR^R08^TBR_R08. MSA, optional ERR, and QAK report query status. RDF defines the result columns. RDT repeats for each row. Optional DSC supports continuation.

Implementation traps

Do not change RDF order without versioning the query. Receivers often parse RDT fields by ordinal position, so one reordered column can silently corrupt every row.

Also avoid putting complex clinical payloads into generic table cells unless the receiver's profile defines the exact datatypes and code systems.

Reference notes

HL7 v2.3.1 Chapter 2 includes TBR as the tabular data response and later material retains it mainly for backward compatibility. See the HL7 v2.3.1 control/query chapter.