Understanding HL7 Messaging Specifications

Message specifications define the layout of the HL7 records that Vocera Platform expects to receive from an HIS at a customer site.

Vocera HL7 Messaging Specifications

Health Level Seven (HL7) and its members provide a framework (and related standards) for the exchange, integration, sharing, and retrieval of electronic health information. These standards define how information is packaged and communicated from one party to another, setting the language, structure and data types required for seamless integration between systems. HL7 standards support clinical practice and the management, delivery, and evaluation of health services, and are recognized as the most commonly used in the world. Source: HL7.org

This implementation guide is based on the HL7 version 2.X Standard for HL7 message types such as ADT (Admit, Discharge, Transfer), ORM (Order), ORU (Observation) and RAS (Treatment Administration) which are to be sent to the Vocera Platform application by a Health Information System (HIS). This specification contains the minimum requirements for these commonly used HL7 trigger events within the Vocera Platform application. This list is not exhaustive; should a site utilize an HL7 message type not listed here, refer to this external source for trigger event construct guidance: HL7-Definitions-Caristix.com

The following message specifications define the layout of the HL7 records that Vocera Platform expects to receive from an HIS. A sender will create an HL7 version 2.X trigger event message. The sender will send the HL7 trigger event message to the Vocera Platform application at the provided IP address and port (6661 by default) in accordance to the Minimum Lower Layer Protocol (MLLP). The library that Vocera Platform uses to recognize HL7 messages is based on version 2.6, allowing recognition of most inbound HL7 messages.

Outbound messages can be optionally customized and enabled upon request. Vocera Platform creates these outbound messages to the sender using HL7 version 2.3 by default; if a different HL7 version is required for outbound HL7 messages from Vocera Platform to a customer source, the appropriate version can be specified in the interface property. Configure the "hl7.outbound.version" field in the interface.properties file with the HL7 version needed to implement the appropriate sending HL7 version used.

Trigger Events

The following trigger events are supported by Vocera Platform.

ADT-A01 Admit / Visit Notification
ADT-A02 Transfer A Patient
ADT-A03 Discharge/End Visit
ADT-A04 Register A Patient
ADT-A05 Pre-admit A Patient
ADT-A06 Change An Outpatient To An Inpatient
ADT-A07 Change An Inpatient To An Outpatient
ADT-A08 Update Patient Information
ADT-A09 Patient Departing - Tracking
ADT-A11 Cancel Admit / Visit Notification
ADT-A12 Cancel Transfer
ADT-A13 Cancel Discharge/ End Visit
ORM-O01 Order Message
ORU-R01 Unsolicited Transmission Of An Observation Message
RAS-O17 Pharmacy/treatment Administration Message

ADT (Admit/Discharge/Transfer)

ADT messages are sent to Vocera Platform including the demographic, status, and location information of a patient. Vocera Platform aggregates this data and uses it to provide context to the various alerts and/or other events generated.

Segment Field Component Description Field Type Required
MSH 1 1 Field Separator String Y
2 4 Encoding Characters String Y
3 180 Sending Application String Y
4 180 Sending Facility String Y
5 180 Receiving Application String Y
6 180 Receiving Facility String N
7 26 Date/Time of Message Date/Time (YYYYMMDDTTTT) Y
8 40 Security String N
9 7 Message Type String Y
10 20 Message Control ID String Y
11 3 Processing ID String N
12 8 Version ID String Y
13 15 Sequence Number String N
14 180 Continuation Pointer String N
15 2 Accept Acknowledgement Type String N
16 2 Application Acknowledgement Type String N
17 2 Country Code String N
18 6 Character Set String N
19 3 Principal Language of Message String N
Segment Field Component Attribute Description Field Type Required
PID 3 1 mrn Unique Patient ID String Y
5 1 last name Patient Last Name String Y
5 2 first name Patient First Name String Y
5 3 middle name Patient Middle Name String N
5 4 suffix Patient Name Suffix String N
5 5 prefix Patient Name Prefix String N
7 1 dob Patient Date of Birth Date (YYYYMMDD) N
8 1 sex Patient Sex String N
PV1 3 1 bed.room.unit.name Assigned Unit Name String Y
3 2 bed.room.room_number Assigned Room Number String Y
3 3 bed.bed_number Assigned Bed Number Integer Y
17 1 provider.cell_phone_number Admitting Provider Cell Phone Number String (NNNNNNNNNN) N
17 2 provider.last_name Admitting Provider Last Name String Y
17 3 provider.first_name Admitting Provider First Name String Y
17 4 provider.middle_name Admitting Provider Middle Name String N
17 5 provider.suffix Admitting Provider Suffix String N
17 6 provider.title Admitting Provider Title String N
17 6 provider.title Admitting Provider Title String N
17 7 provider.degree Admitting Provider Degree String N
17 9 provider.npi Admitting Provider NPI or Unique Identifier String Y
39 1 facility_name Facility Name String N
41 1 status Patient Status String N
44 1 admit_date Admit Date Date/Time (YYYYMMDDTTTT) Y
45 1 discharge_date Discharge Date Date/Time (YYYYMMDDTTTT) N
PV2 3 1 reason Admit Reason String N

ROL (Role)

The ROL segment contains the data necessary to add, update, correct, and delete from the record persons involved, as well as their functional involvement with the activity being transmitted. For Vocera Platform deployments utilizing the ROL segment, additional datasets and rules will need to be custom-built by the Vocera Platform Implementation Engineer. Columns in the table below are incomplete because the segment data will be custom-built.

Note: Not included in the Vocera Platform EMDAN standard solution.
Segment Field Component Attribute Description Field Type Required
ROL 1 Role Instance ID N
2 Action Code N
3 Role-ROL Y
4 Role Person Y
5 Role Begin Date/Time N
6 Role End Date/Time N
7 Role Duration N
8 Role Action Reason N
9 Provider Type N
10 Organization Unit Type N
11 Office/Home Address/Birthplace N
12 Phone N

ORU (Observational Result)

ORU messages contain lab result information that is used to deliver critical lab result notifications. Vocera Platform only receives ORU messages that are intended to trigger an alert to the appropriate recipient.

Segment Field Component Description Field Type Required
MSH 1 1 Field Separator String Y
2 4 Encoding Characters String Y
3 180 Sending Application String Y
4 180 Sending Facility String Y
5 180 Receiving Application String Y
6 180 Receiving Facility String N
7 26 Date/Time of Message Date/Time (YYYYMMDDTTTT) Y
8 40 Security String N
9 7 Message Type String Y
10 20 Message Control Id String Y
11 3 Processing Id String N
12 8 Version Id String Y
13 15 Sequence Number String N
14 180 Continuation Pointer String N
15 2 Accept Acknowledgement Type String N
16 2 Application Acknowledgement Type String N
17 2 Country Code String N
18 6 Character Set String N
19 3 Principal Language of Message String N
Segment Field Component Attribute Description Field Type Required
PID 3 1 patient.mrn Patient ID Mapped ID Y
5 1 patient.last_name Patient Name String Y
5 2 patient.first_name Patient Name String Y
5 3 patient.middle_name Patient Name String N
5 4 patient.suffix Patient Suffix String N
5 5 patient.prefix Patient Prefix String N
7 1 patient.dob Patient Date of Birth Date (YYYYMMDD) N
8 1 patient.sex Patient Sex String N
OBR 4 1 abbreviation Test Name Abbreviation String Y
4 2 name Test Name String Y
7 1 order_time Observation Date/Time Date/Time (YYYYMMDDTTTT) Y
16 2 provider.last_name Ordering Provider Last Name String Y
16 3 provider.first_name Ordering Provider First Name String Y
16 4 provider.middle_name Ordering Provider Middle Name String N
16 5 provider.suffix Ordering Provider Suffix String N
16 6 provider.title Ordering Provider Title String N
16 7 provider.degree Ordering Provider Degree String N
16 9 provider.npi Ordering Provider NPI or Unique ID String Y
17 1 provider.cell_phone_number Order Callback Telephone Number String N
OBX 3 1 results.abbreviation Result Name Abbreviation String Y
3 2 results.name Result Name String Y
5 1 results.value Result Value String Y
7 1 results.range Result Reference Range String N
7 2 results.units Result Units String Y
7 4 results.note Result Notes String N
8 1 results.flag Result Flag String N
11 1 results.status Result Status String N
14 1 results.time Result Time Date/Time (YYYYMMDDTTTT) Y
PV1 3 1 patient.bed.room.unit.name Assigned Patient Location String Y
3 2 patient.bed.room.room_number Assigned Patient Location Integer Y
3 3 patient.bed.bed_number Assigned Patient Location Integer Y
39 1 patient.facility_name Facility Name String N
41 1 patient.status Status String N
44 1 patient.admit_date Admit Date Date/Time (YYYYMMDDTTTT) Y
45 1 patient.discharge_date Discharge Date Date/Time (YYYYMMDDTTTT) N

ORM (Order Message, non-perfected)

ORM messages include details of an Order that was placed in the health information system (HIS). ORM messages will trigger an order notification such as STAT or NOW and deliver the relevant information to the appropriate recipient.

Segment Field Component Description Field Type Required
MSH 1 1 Field Separator String Y
2 4 Encoding Characters String Y
3 180 Sending Application String Y
4 180 Sending Facility String Y
5 180 Receiving Application String Y
6 180 Receiving Facility String N
7 26 Date/Time of Message Date/Time (YYYYMMDDTTTT) Y
8 40 Security String N
9 7 Message Type String Y
10 20 Message Control Id String Y
11 3 Processing Id String N
12 8 Version Id String Y
13 15 Sequence Number String N
14 180 Continuation Pointer String N
15 2 Accept Acknowledgement Type String N
16 2 Application Acknowledgement Type String N
17 2 Country Code String N
18 6 Character Set String N
19 3 Principal Language of Message String N
Segment Field Component Attribute Description Field Type Required
PID 3 1 patient.mrn Patient ID Mapped ID Y
5 1 patient.last_name Patient Name String Y
5 2 patient.first_name Patient Name String Y
5 3 patient.middle_name Patient Name String N
5 4 patient.suffix Patient Name String N
5 5 patient.prefix Patient Name String N
7 1 patient.dob Patient Date of Birth Date (YYYYMMDD) N
8 1 patient.sex Patient Sex String N
PV1 3 1 patient.bed.room.unit.name Assigned Patient Location String Y
3 2 patient.bed.room.room_number Assigned Patient Location Integer Y
3 3 patient.bed.bed_number Assigned Patient Location Integer Y
ORC 5 1 status Order Status String Y
9 1 order_time Ordered Time Date/Time (YYYYMMDDTTTT) Y
OBR 4 1 order_code Order Code String Y
4 2 description Order Description String Y
16 2 provider.last_name Ordering Provider Last Name String Y
16 3 provider.first_name Ordering Provider First Name String Y
16 4 provider.middle_name Ordering Provider Middle Name String N
16 5 provider.suffix Ordering Provider Suffix String N
16 6 provider.title Ordering Provider Title String N
16 7 provider.degree Ordering Provider Degree String N
16 9 provider.npi Ordering Provider NPI or Unique ID String Y
17 1 provider.cell_phone_number Order Callback Telephone Number String N

RAS (Pharmacy/treatment Administration Message, non-perfected)

RAS messages include details of an pharmacy/treatment that was placed in the health information system (HIS). RAS messages will trigger an pharmacy/treatment notification and deliver the relevant information to the appropriate recipient.

Segment Field Component Description Field Type Required
MSH 1 1 Field Separator String Y
2 4 Encoding Characters String Y
3 180 Sending Application String Y
4 180 Sending Facility String Y
5 180 Receiving Application String Y
6 180 Receiving Facility String N
7 26 Date/Time of Message Date/Time (YYYYMMDDTTTT) Y
8 40 Security String N
9 7 Message Type String Y
10 20 Message Control Id String Y
11 3 Processing Id String N
12 8 Version Id String Y
13 15 Sequence Number String N
14 180 Continuation Pointer String N
15 2 Accept Acknowledgement Type String N
16 2 Application Acknowledgement Type String N
17 2 Country Code String N
18 6 Character Set String N
19 3 Principal Language of Message String N

Segment Field Component Attribute Description Field Type Required
PID 3 1 patient.mrn Patient ID Mapped ID Y
PV1 3 1 patient.bed.room.unit.name Assigned Patient Location String Y
3 2 patient.bed.room.room_number Assigned Patient Location Integer Y
3 3 patient.bed.bed_number Assigned Patient Location Integer Y
ORC 2 1 order_code Entity Identifier String
5 1 status Order Status String Y
7 1 dosage Quantity Composite Quantity with Units
7 2 frequency Interval Repeat Interval
7 3 description Duration String
9 1 order_time Ordered Time Date/Time (YYYYMMDDTTTT) Y
10 1 provider.npi ID Number String
10 2 provider.last_name Provider Family Name FN (Family Name)
10 3 provider.first_name Provider Given Name String