HL7 RSP_Z90 Lab Results History Response

HL7 message structure RSP_Z90 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
Query Parameter Definition Yes No
Response Control Parameter Yes No
RSP_Z90.QUERY_RESPONSE
Query Response group Yes Yes
RSP_Z90.PATIENT
Patient group No No
Patient Identification Yes No
Patient Additional Demographic No No
Next of Kin / Associated Parties No Yes
Notes and Comments No Yes
RSP_Z90.VISIT
Visit group No No
Patient Visit Yes No
Patient Visit - Additional Information No No
RSP_Z90.COMMON_ORDER
Common Order group Yes Yes
Common Order Yes No
RSP_Z90.TIMING
Timing group No Yes
Timing/Quantity Yes No
Timing/Quantity Relationship No Yes
Observation Request Yes No
Notes and Comments No Yes
Contact Data No No
RSP_Z90.OBSERVATION
Observation group Yes Yes
Observation/Result No No
Notes and Comments No Yes
RSP_Z90.SPECIMEN
Specimen group No Yes
Specimen Yes No
Observation/Result No Yes
Continuation Pointer Yes No

RSP_Z90 returns lab results history. Unlike ORU_R01, which pushes a result when it is available, RSP_Z90 answers a query for prior results. The receiver uses it to fill a history screen, support clinical review, or reconcile old results into a repository.

The shape is familiar to anyone who has worked with lab messages: patient context, order/report headers, observation values, and specimen detail. The difference is the query envelope: MSA, QAK, QPD, and RCP tell you what was asked and what the server returned.

A small RSP Z90 example

MSH|^~\&|LAB|CITYLAB|PORTAL|CITYHOSP|20260718110000||RSP^Z90^RSP_Z90|RSPZ900001|P|2.5.1 MSA|AA|QBPZ890001 QAK|QLAB001|OK|Z89^Lab Results History^HL7nnn|1|1|0 QPD|Z89^Lab Results History^HL7nnn|QLAB001|123456^^^CITYHOSP^MR|20260701000000|20260717235959 RCP|I|20^RD PID|1||123456^^^CITYHOSP^MR||Smith^Jane^Anne^^Ms^^L||19800314|F PV1|1|O|CLINIC^12^^CITYHOSP ORC|RE|ORD448811^EHR|LAB998877^CITYLAB OBR|1|ORD448811^EHR|LAB998877^CITYLAB|718-7^Hemoglobin^LN|||20260715113000|||||||||12345^Careful^Clara||||||20260715142500|||F OBX|1|NM|718-7^Hemoglobin^LN||128|g/L|115-155|N|||F|||20260715142000 SPM|1|S25-0001&CITYLAB||BLD^Blood^HL70487 DSC|CONT-Z90-001|I

What systems do with it

The requester is usually a clinical viewer, portal, repository, or integration engine that needs prior lab data for a patient and date range. The sender is the lab, repository, or results server that can search historical results.

Use QAK to understand the query outcome before filing any result data. A message can be accepted and still return no rows, a partial result, or a continuation pointer.

How to read the structure

The required query-response group can repeat. It may include patient and visit context, one or more common-order groups with ORC, required OBR, repeating OBX observations, and optional CTD contact data. A specimen group can repeat with SPM and specimen-level OBX segments.

The local imported structure marks DSC as required. That means any implementation profile should be very clear about whether every response carries a pointer, whether the pointer can indicate the final page, and how the requester asks for the next increment.

Implementation traps

Do not merge historical results as if they were fresh ORU messages. Result status, correction status, timestamps, and order identifiers decide whether the receiver should display, replace, or ignore a result.

Also keep specimen context attached. When the same test code appears on multiple specimens, losing SPM can make a clean-looking history clinically misleading.

Reference notes

HL7 identifies event Z90 as Lab Results History (Response). The local RSP_Z90 structure uses query status plus patient, order, observation, and specimen groups. See HL7 Europe event Z90.