Schedule a demo
Segment

Requisition detail

Carries the line-item details of a supply requisition, including internal and external item codes, the hospital-specific item code, quantity requested, unit of measure, cost center, natural account code, and the intended delivery destination. It is used in general supply and non-stock requisition messages (O18, O22) to communicate procurement requests from departments to materials management and purchasing systems.

10fields
0required
v2.9HL7 version
rqd.py
from zato.hl7v2 import RQD

rqd = RQD()
rqd.requisition_line_number = '1'
rqd.requisition_quantity = '25'
rqd.date_needed = '20260901'

Build RQD segments in Python

How to construct and work with real-world RQD segments.

1

Basic supply request

Single-line requisition with internal item code, quantity, and delivery location

from zato.hl7v2.v2_9 import RQD
from zato.hl7v2.v2_9 import CWE

rqd = RQD()
rqd.requisition_line_number = '1'
rqd.item_code_internal = CWE(
    identifier='4521',
    text='Saline bags',
    name_of_coding_system='HL70684'
)
rqd.deliver_to_id = CWE(
    identifier='DEPT-200',
    text='Nursing',
    name_of_coding_system='HL70688'
)
rqd.date_needed = '20240901'
2

Quantity with unit

Requisition line specifying quantity, unit of measure, and cost center allocation

from zato.hl7v2.v2_9 import RQD
from zato.hl7v2.v2_9 import CWE, CX

rqd = RQD()
rqd.requisition_line_number = '2'
rqd.item_code_external = CWE(
    identifier='8001',
    text='Gloves nitrile',
    name_of_coding_system='HL70685'
)
rqd.requisition_quantity = '50'
rqd.requisition_unit_of_measure = CWE(
    identifier='BX',
    text='Box',
    name_of_coding_system='HL70687'
)
rqd.cost_center_account_number = CX(
    id_number='CC-4400',
    assigning_authority='Surgery',
    identifier_type_code='HL70319'
)
3

Hospital item with account

Requisition using hospital-specific item code with natural account code and date needed

from zato.hl7v2.v2_9 import RQD
from zato.hl7v2.v2_9 import CWE

rqd = RQD()
rqd.requisition_line_number = '3'
rqd.hospital_item_code = CWE(
    identifier='H-3300',
    text='IV Set',
    name_of_coding_system='HL70686'
)
rqd.requisition_quantity = '10'
rqd.requisition_unit_of_measure = CWE(
    identifier='EA',
    text='Each',
    name_of_coding_system='HL70687'
)
rqd.item_natural_account_code = CWE(
    identifier='5200',
    text='Supplies',
    name_of_coding_system='HL70320'
)
rqd.deliver_to_id = CWE(
    identifier='ICU-1',
    text='ICU Ward',
    name_of_coding_system='HL70688'
)
rqd.date_needed = '20240915'

Learn by building

Step-by-step guides for working with HL7 v2 in Zato.

Frequently asked questions

RQD carries the individual line items of a supply requisition. Each RQD instance represents one requested item with its codes, quantity, unit of measure, cost center, and delivery destination. It appears in requisition messages such as O18 and O22.

RQD supports three item code fields for internal, external, and hospital-specific coding schemes:

from zato.hl7v2.v2_9 import RQD, CWE

rqd = RQD()
rqd.item_code_internal = CWE(
    identifier='4521',
    text='Saline bags',
    name_of_coding_system='HL70684'
)

Set requisition_quantity as a numeric string and requisition_unit_of_measure as a CWE value:

from zato.hl7v2.v2_9 import RQD, CWE

rqd = RQD()
rqd.requisition_quantity = '50'
rqd.requisition_unit_of_measure = CWE(
    identifier='BX',
    text='Box',
    name_of_coding_system='HL70687'
)

The cost_center_account_number field uses the CX datatype to identify the department or cost center:

from zato.hl7v2.v2_9 import RQD, CX

rqd = RQD()
rqd.cost_center_account_number = CX(
    id_number='CC-4400',
    assigning_authority='Surgery',
    identifier_type_code='HL70319'
)

The deliver_to_id field uses a CWE value to identify where the items should be delivered:

from zato.hl7v2.v2_9 import RQD, CWE

rqd = RQD()
rqd.deliver_to_id = CWE(
    identifier='ICU-1',
    text='ICU Ward',
    name_of_coding_system='HL70688'
)

Zato connects to any system that speaks HL7v2 over MLLP or FHIR over REST. This includes Epic, Cerner, Meditech, Allscripts, and other EHR platforms.

Yes, Zato has built-in MLLP support for sending and receiving HL7v2 messages. MLLP channels handle the framing protocol automatically.

Zato supports HL7 v2.9, which is backward compatible with earlier versions including v2.3, v2.5, and v2.7. Standard segments and datatypes are available as typed Python classes.

Yes. Zato handles both HL7v2 and FHIR natively, so you can parse v2 messages and build FHIR resources with IG-specific extensions in the same service. Typed Python classes are available for both protocols, including extensions from US Core, UK Core, Da Vinci, and other Implementation Guides.

RQD field reference

Complete list of fields in the RQD segment, HL7 v2.9.

#Python nameDatatypeUsageRepeatableTable
1requisition_line_numberSIOptionalNo-
2item_code_internalCWEOptionalNoHL70684
3item_code_externalCWEOptionalNoHL70685
4hospital_item_codeCWEOptionalNoHL70686
5requisition_quantityNMOptionalNo-
6requisition_unit_of_measureCWEOptionalNoHL70687
7cost_center_account_numberCXOptionalNoHL70319
8item_natural_account_codeCWEOptionalNoHL70320
9deliver_to_idCWEOptionalNoHL70688
10date_neededDTOptionalNo-

Ready to build integrations?

Get started with Zato and connect your systems in minutes.

Open source In Python