64

Click here to load reader

HL7 Tutorial

Embed Size (px)

Citation preview

Page 1: HL7 Tutorial

HL7 Interfacingand RODS

Jeremy Espino MDDirector RODS Open Source Project

President General Biodefense

Page 2: HL7 Tutorial

HL7 Interfacing

Page 3: HL7 Tutorial

HL7 Interfacing

• Health Level Seven Overview

Page 4: HL7 Tutorial

HL7 Interfacing

• Health Level Seven Overview

• HL7 Tools

• Integration Engine (MIRTH)

• Simulators (nule.org)

Page 5: HL7 Tutorial

HL7 Interfacing

• Health Level Seven Overview

• HL7 Tools

• Integration Engine (MIRTH)

• Simulators (nule.org)

• Tasks

• HL7 Routing

• Filtering

• Transformation

Page 6: HL7 Tutorial

HL7 Overview

Page 7: HL7 Tutorial

Health Level 7

Page 8: HL7 Tutorial

Health Level 7

• A standard messaging protocol for the exchange of healthcare information

Page 9: HL7 Tutorial

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

Page 10: HL7 Tutorial

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

Page 11: HL7 Tutorial

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

Page 12: HL7 Tutorial

HL7 Characteristics

Page 13: HL7 Tutorial

HL7 Characteristics

• Event-Driven

Page 14: HL7 Tutorial

HL7 Characteristics

• Event-Driven

• Application-to-application

Page 15: HL7 Tutorial

HL7 Characteristics

• Event-Driven

• Application-to-application

• Point-to-point

Page 16: HL7 Tutorial

HL7 Characteristics

• Event-Driven

• Application-to-application

• Point-to-point

• Independent of transport protocol(i.e., FTP, LLP)

Page 17: HL7 Tutorial

HL7 Characteristics

• Event-Driven

• Application-to-application

• Point-to-point

• Independent of transport protocol(i.e., FTP, LLP)

• Concerned only with data exchange

Page 18: HL7 Tutorial

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)

Page 19: HL7 Tutorial

HL7 Versions

Page 20: HL7 Tutorial

HL7 Versions

• HL7 Version 2.5 Specification is provided on your tutorial CD

Page 21: HL7 Tutorial

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

Page 22: HL7 Tutorial

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)

Page 23: HL7 Tutorial

Advantages, Disadvantage of HL7

Page 24: HL7 Tutorial

Advantages, Disadvantage of HL7

• Advantages

• Open Systems

• HL7 Tools

Page 25: HL7 Tutorial

Advantages, Disadvantage of HL7

• Advantages

• Open Systems

• HL7 Tools

• Disadvantage

• Not plug and play – semantic, vocabulary differences in implementation by different vendors

Page 26: HL7 Tutorial

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

Page 27: HL7 Tutorial

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

Page 28: HL7 Tutorial

Components and Data Types

Page 29: HL7 Tutorial

Components and Data Types

• Example is Extended Person Name (XPN)|Slater^Bruce^M^Mr|

Page 30: HL7 Tutorial

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)

Page 31: HL7 Tutorial

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

Page 32: HL7 Tutorial

HL7 Delimiters

Character Purpose

0x0D Marks the end of each segment

| Field Delimiter

^ Sub Field Delimiter

& Sub-sub Field Delimiter

‘~’ repetition character ‘/’ escape character

Page 33: HL7 Tutorial

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

Page 34: HL7 Tutorial

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

Page 35: HL7 Tutorial

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

Page 36: HL7 Tutorial

HL7 Acknowledgment

Page 37: HL7 Tutorial

HL7 Acknowledgment• After each message is handled the transmitter

expects an acknowledgment

Page 38: HL7 Tutorial

HL7 Acknowledgment• After each message is handled the transmitter

expects an acknowledgment

• Transmitter will not send next message until acknowledgment (queued)

Page 39: HL7 Tutorial

HL7 Acknowledgment• After each message is handled the transmitter

expects an acknowledgment

• Transmitter will not send next message until acknowledgment (queued)

Page 40: HL7 Tutorial

HL7 Transports

Page 41: HL7 Tutorial

HL7 Transports

• “Real-time HL7” accomplished using Minimum Lower Layer Protocol (MLLP)

Page 42: HL7 Tutorial

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

Page 43: HL7 Tutorial

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>

Page 44: HL7 Tutorial

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

Page 45: HL7 Tutorial

HL7 Tools

Page 46: HL7 Tutorial

Integration Engine

Page 47: HL7 Tutorial

Integration Engine

• Act as a router of messages

Page 48: HL7 Tutorial

Integration Engine

• Act as a router of messages

• Filter messages

Page 49: HL7 Tutorial

Integration Engine

• Act as a router of messages

• Filter messages

• Transform messages

Page 50: HL7 Tutorial

MIRTH

Page 51: HL7 Tutorial

MIRTH

• An open source HL7 integration engine

Page 52: HL7 Tutorial

MIRTH

• An open source HL7 integration engine

• Handles HL7 2.x messages

Page 53: HL7 Tutorial

MIRTH

• An open source HL7 integration engine

• Handles HL7 2.x messages

• Transports: MLLP, directory, JMS

Page 54: HL7 Tutorial

MIRTH

• An open source HL7 integration engine

• Handles HL7 2.x messages

• Transports: MLLP, directory, JMS

• Transformation and filtering using Javascript E4X

Page 55: HL7 Tutorial

Nule.org HL7 Browser

• Open source HL7 interface simulator

• An HL7 interface simulator and browser

• Inbound and outbound HL7 interfaces

Page 56: HL7 Tutorial

How we use these tools

MIRTH RODS

Hospital

Hospital

Hospital

Page 57: HL7 Tutorial

How we use these tools

MIRTH RODS

Hospital

Hospital

Hospital

Page 58: HL7 Tutorial

How we use these tools

MIRTH RODS

Hospital

Hospital

Hospital

Page 59: HL7 Tutorial

Hands-on Lessons

Page 60: HL7 Tutorial

Lesson 1: SetupSimulation Environment

Page 61: HL7 Tutorial

Lesson 2Route messages

Page 62: HL7 Tutorial

Lesson 3Filter messages

Page 63: HL7 Tutorial

Lesson 4Delete fields

Page 64: HL7 Tutorial

Lesson 5Transform fields