hl7 tutorial
TRANSCRIPT
HL7 Interfacingand RODS
Jeremy Espino MDDirector RODS Open Source Project
President General Biodefense
HL7 Interfacing
HL7 Interfacing
• Health Level Seven Overview
HL7 Interfacing
• Health Level Seven Overview
• HL7 Tools
• Integration Engine (MIRTH)
• Simulators (nule.org)
HL7 Interfacing
• Health Level Seven Overview
• HL7 Tools
• Integration Engine (MIRTH)
• Simulators (nule.org)
• Tasks
• HL7 Routing
• Filtering
• Transformation
HL7 Overview
Health Level 7
Health Level 7
• A standard messaging protocol for the exchange of healthcare information
Health Level 7
• A standard messaging protocol for the exchange of healthcare information
• Corresponds to the Application Layer (layer 7) of the OSI communication layer levels
Health Level 7
• A standard messaging protocol for the exchange of healthcare information
• Corresponds to the Application Layer (layer 7) of the OSI communication layer levels
Health Level 7
• A standard messaging protocol for the exchange of healthcare information
• Corresponds to the Application Layer (layer 7) of the OSI communication layer levels
• Source for HL7 tutorial information:http://www.interfaceware.com/manual/hl7.html
HL7 Characteristics
HL7 Characteristics
• Event-Driven
HL7 Characteristics
• Event-Driven
• Application-to-application
HL7 Characteristics
• Event-Driven
• Application-to-application
• Point-to-point
HL7 Characteristics
• Event-Driven
• Application-to-application
• Point-to-point
• Independent of transport protocol(i.e., FTP, LLP)
HL7 Characteristics
• Event-Driven
• Application-to-application
• Point-to-point
• Independent of transport protocol(i.e., FTP, LLP)
• Concerned only with data exchange
HL7 Characteristics
• Event-Driven
• Application-to-application
• Point-to-point
• Independent of transport protocol(i.e., FTP, LLP)
• Concerned only with data exchange
• Standard (HL7.org)
HL7 Versions
HL7 Versions
• HL7 Version 2.5 Specification is provided on your tutorial CD
HL7 Versions
• HL7 Version 2.5 Specification is provided on your tutorial CD
• Versions are designed to be backward compatible. i.e., 2.5 parsers can read 2.1 messages
HL7 Versions
• HL7 Version 2.5 Specification is provided on your tutorial CD
• Versions are designed to be backward compatible. i.e., 2.5 parsers can read 2.1 messages
• HL7 Version 3.0 in development since 1997 (XML Schema, RIM)
Advantages, Disadvantage of HL7
Advantages, Disadvantage of HL7
• Advantages
• Open Systems
• HL7 Tools
Advantages, Disadvantage of HL7
• Advantages
• Open Systems
• HL7 Tools
• Disadvantage
• Not plug and play – semantic, vocabulary differences in implementation by different vendors
Message Structure
• Message
• Segments - MSH, PID, NK1, PV1
• Fields - |CONROY^MARI^^^^|
• Subfields - CONROY
• MSH|^~\&|EPIC|EPICADT|SMS|SMSADT|199912271408|CHARRIS|ADT^A04|1817457|D|2.3|PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 E238ST^^EUCLID^OH^44123^USA||(216)731-4359|||M|NON|400003403~1129086|NK1||CONROY^MARI^^^^|SPO||(216)731-4359||EC|||||||||||||||||||||||||||PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN FADZL^BONNIE^^^^|||||||||||| 2688684|||||||||||||||||||||||||199912271408||||||002376853
Example Segments
• MSH segment contains information about the Sender and Receiver
• PID contains demographic information
• NK1 contains demographic information about next of kin
• PV1 contains information regarding the patient's stay in the hospital
• Z contains anything a hospital wants
• Many, many more segments in the specification
Components and Data Types
Components and Data Types
• Example is Extended Person Name (XPN)|Slater^Bruce^M^Mr|
Components and Data Types
• Example is Extended Person Name (XPN)|Slater^Bruce^M^Mr|
• Coded entries (i.e., CE, CNE, CWE, CF) have vocabularies (e.g., SNOMED, LOINC, HL7)
Components and Data Types
• Example is Extended Person Name (XPN)|Slater^Bruce^M^Mr|
• Coded entries (i.e., CE, CNE, CWE, CF) have vocabularies (e.g., SNOMED, LOINC, HL7)
• Found in Section 2.16 and 2.A of HL7 2.5 Specification
HL7 Delimiters
Character Purpose
0x0D Marks the end of each segment
| Field Delimiter
^ Sub Field Delimiter
& Sub-sub Field Delimiter
‘~’ repetition character ‘/’ escape character
Reading the Specification
• Each message is an event that has:
• Message level definition
• Required Segments
• [Optional Segments]
• {Repeating Segments}
• Segment level definition
• Fields - optionality, data type, repeatability
Chapter 3: Patient Administration
Health Level Seven, Version 2.5 © 2003. All rights reserved Page 3-9
Final Standard. July 2003.
ACK^A03^ACK General Acknowledgment Status Chapter
MSH Message Header 2
[ { SFT } ] Software Segment 2
MSA Message Acknowledgment 2
[ { ERR } ] Error 2
3.3.4 ADT/ACK - Register a Patient (Event A04)
An A04 event signals that the patient has arrived or checked in as a one-time, or recurring outpatient, and is
not assigned to a bed. One example might be its use to signal the beginning of a visit to the Emergency
Room (= Casualty, etc.). Note that some systems refer to these events as outpatient registrations or emer-
gency admissions. PV1-44 - Admit Date/Time is used for the visit start date/time.
The ROL - Role Segment is used in this message to communicate providers not specified elsewhere. Per-
son level providers with an ongoing relationship are reported in the ROL segment following the PID/PD1
segments. Providers corresponding to the PV1 data are reported in the ROL segment following the
PV1/PV2 segments. Providers related to a specific procedure are reported in the ROL segment following
the PR1 segment. Providers related to a specific insurance are reported in the ROL segment following the
IN1/IN2/IN3 segments. To communicate the begin- and end-date of the provider, use the ROL-5 - Role Be-
gin Date/Time and the ROL-6 - Role End Date/Time in the ROL segment, with the applicable ROL-3 - Role
Code. Refer to Chapter 15 for the definition of the ROL segment.
ADT^A04^ADT_A01 ADT Message Status Chapter
MSH Message Header 2
[ { SFT } ] Software Segment 2
EVN Event Type 3
PID Patient Identification 3
[ PD1 ] Additional Demographics 3
[{ ROL }] Role 15
[{ NK1 }] Next of Kin / Associated Parties 3
PV1 Patient Visit 3
[ PV2 ] Patient Visit - Additional Info. 3
[{ ROL }] Role 15
[{ DB1 }] Disability Information 3
[{ OBX }] Observation/Result 7
[{ AL1 }] Allergy Information 3
[{ DG1 }] Diagnosis Information 6
[ DRG ] Diagnosis Related Group 6
[{ --- PROCEDURE begin
PR1 Procedures 6
Chapter 3: Patient Administration
Health Level Seven, Version 2.5 © 2003. All rights reserved Page 3-77
Final Standard. July 2003.
facilities) or by a government entity, for example a nationally assigned unique individual identifier. While
a facility is usually an assigning authority, not all assigning authorities are facilities. Therefore, the fourth
component is referred to as an assigning authority, but retains backward compatibility using the construct of
the HD data type (see the note in chapter 2). Additionally, CX data types support the use of assigning facil-
ity (HD) as the sixth component.
HL7 Attribute Table - PID - Patient Identification
SEQ LEN DT OPT RP/# TBL# ITEM# ELEMENT NAME
1 4 SI O 00104 Set ID - PID
2 20 CX B 00105 Patient ID
3 250 CX R Y 00106 Patient Identifier List
4 20 CX B Y 00107 Alternate Patient ID - PID
5 250 XPN R Y 00108 Patient Name
6 250 XPN O Y 00109 Mother’s Maiden Name
7 26 TS O 00110 Date/Time of Birth
8 1 IS O 0001 00111 Administrative Sex
9 250 XPN B Y 00112 Patient Alias
10 250 CE O Y 0005 00113 Race
11 250 XAD O Y 00114 Patient Address
12 4 IS B 0289 00115 County Code
13 250 XTN O Y 00116 Phone Number - Home
14 250 XTN O Y 00117 Phone Number - Business
15 250 CE O 0296 00118 Primary Language
16 250 CE O 0002 00119 Marital Status
17 250 CE O 0006 00120 Religion
18 250 CX O 00121 Patient Account Number
19 16 ST B 00122 SSN Number - Patient
20 25 DLN B 00123 Driver's License Number - Patient
21 250 CX O Y 00124 Mother's Identifier
22 250 CE O Y 0189 00125 Ethnic Group
23 250 ST O 00126 Birth Place
24 1 ID O 0136 00127 Multiple Birth Indicator
25 2 NM O 00128 Birth Order
26 250 CE O Y 0171 00129 Citizenship
27 250 CE O 0172 00130 Veterans Military Status
28 250 CE B 0212 00739 Nationality
29 26 TS O 00740 Patient Death Date and Time
30 1 ID O 0136 00741 Patient Death Indicator
31 1 ID O 0136 01535 Identity Unknown Indicator
32 20 IS O Y 0445 01536 Identity Reliability Code
33 26 TS O 01537 Last Update Date/Time
34 241 HD O 01538 Last Update Facility
35 250 CE C 0446 01539 Species Code
36 250 CE C 0447 01540 Breed Code
37 80 ST O 01541 Strain
38 250 CE O 2 0429 01542 Production Class Code
39 250 CWE O Y 0171 01840 Tribal Citizenship
HL7 Acknowledgment
HL7 Acknowledgment• After each message is handled the transmitter
expects an acknowledgment
HL7 Acknowledgment• After each message is handled the transmitter
expects an acknowledgment
• Transmitter will not send next message until acknowledgment (queued)
HL7 Acknowledgment• After each message is handled the transmitter
expects an acknowledgment
• Transmitter will not send next message until acknowledgment (queued)
HL7 Transports
HL7 Transports
• “Real-time HL7” accomplished using Minimum Lower Layer Protocol (MLLP)
HL7 Transports
• “Real-time HL7” accomplished using Minimum Lower Layer Protocol (MLLP)
• MLLP uses specific ASCII characters to denote the start and end of each message
HL7 Transports
• “Real-time HL7” accomplished using Minimum Lower Layer Protocol (MLLP)
• MLLP uses specific ASCII characters to denote the start and end of each message
• <SB><HL7 MESSAGE><EB><CR>
HL7 Transports
• “Real-time HL7” accomplished using Minimum Lower Layer Protocol (MLLP)
• MLLP uses specific ASCII characters to denote the start and end of each message
• <SB><HL7 MESSAGE><EB><CR>
• “Batch HL7” accomplished using text files and any available file transfer protocol
HL7 Tools
Integration Engine
Integration Engine
• Act as a router of messages
Integration Engine
• Act as a router of messages
• Filter messages
Integration Engine
• Act as a router of messages
• Filter messages
• Transform messages
MIRTH
MIRTH
• An open source HL7 integration engine
MIRTH
• An open source HL7 integration engine
• Handles HL7 2.x messages
MIRTH
• An open source HL7 integration engine
• Handles HL7 2.x messages
• Transports: MLLP, directory, JMS
MIRTH
• An open source HL7 integration engine
• Handles HL7 2.x messages
• Transports: MLLP, directory, JMS
• Transformation and filtering using Javascript E4X
Nule.org HL7 Browser
• Open source HL7 interface simulator
• An HL7 interface simulator and browser
• Inbound and outbound HL7 interfaces
How we use these tools
MIRTH RODS
Hospital
Hospital
Hospital
How we use these tools
MIRTH RODS
Hospital
Hospital
Hospital
How we use these tools
MIRTH RODS
Hospital
Hospital
Hospital
Hands-on Lessons
Lesson 1: SetupSimulation Environment
Lesson 2Route messages
Lesson 3Filter messages
Lesson 4Delete fields
Lesson 5Transform fields