50
Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison Medical Objects http://www.medical-objects.com.au/ 9 th HL7 Australia Conference, 9 th November 2005 Sydney, Australia

An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Embed Size (px)

Citation preview

Page 1: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

An object oriented HL7 Framework

Hands-on WorkshopHL7 Version 2.x Implementation Tools

An object oriented HL7 Framework

Andrew McIntyre & Jared DavisonMedical Objects

http://www.medical-objects.com.au/

9th HL7 Australia Conference, 9th November 2005Sydney, Australia

Page 2: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

In the beginning…• There was paper• There was PIT• Idea of a PIT distribution network

– Envisaged in 1997– Full PIT support developed at that time– Data format considered inadequate for storing

endoscopy data– We discovered HL7 during research of more rich data

formats available– Joined HL7 USA as an individual member early 1998– Started understanding the HL7 v2 specifications– Been on a loop to provide full support for HL7 since…

Page 3: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

In the beginning…• Researched available toolkits for HL7 v2 &

DICOM during May 1998• Largely the cost (particularly royalties) made it

impossible to write systems for specialists & GPs• Decision made to write a HL7 processing

framework• The development effort has had full time staff

members since 1998• Development has been ramped up since wide

availability of fast internet connectivity & open source SQL servers

Page 4: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Initial barriers• Communications infrastructure

– Solved by wide spread internet availability (broadband speeds a BIG plus)

• SQL database servers– Initially considered essential but too expensive

for specialists (1997)– Problem solved by availability of OpenSource

Transactional SQL 3 servers

• Encryption– Initially technology was not generally available

however this is not the case now

Page 5: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Initial barriers• Messaging platform

– Standardisation of HTTP has solved this

• Lack of any Australian examples– Pathology in HL7 format became available in

Sept 2001 from QML

FHS|^~\&|PRSLT|NATA^2184^N|PRSLT|hl7_am27|20010720094242||qm016082.oru||1|

Page 6: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Development style• Development style

– Test driven– Agile– Continuous integration– Highly object orientated– Design patterns– Object Pascal & Java

• Tools have been in use in Buderim Gastroenterology Centre since 2001

• HL7 result delivery has been occurring since 2002• Entire Sunshine Coast is a permanent trial site and test

bed for new features & developments• Now have users from as far North as PNG, south to

Geelong, west to Esperance WA (as part of DoHA Eastern Goldfields Regional Reference project)

Page 7: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Parsing HL7• HL7 messages are parsed into a tree

• Read by message objects which are flyweights

• HL7 parsing rules are respected

• This allows significant HL7 version mismatch resolution

• Currently the framework is at HL7 v2.3.1

• HL7 is easily downgraded if needed

Page 8: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 Abstraction• All HL7 data types appear as native data

types• All access is via interfaces• Automatic memory management• Code generation used above data type

level• All higher level methods operate on the

interfaces• Development is totally isolated from

encoding of HL7

Page 9: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 CE data type

Page 10: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Objects are aggregated

Page 11: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

OBX data type

Page 12: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 v2 is Object Oriented!• Framework fully supports the HL7 v2 Information Model

• HL7 v2 information model predates UML modelling techniques, however, refined & proven via real use

• We have adopted the HL7 v2 Information Model as the native framework model – why?

• because HL7 is used in real world systems• HL7 v2 is mature• adopting HL7 model reduces impedance to interoperability• Can be extended via standards process to fill in gaps• Internally linkage can be enhanced as needed

Page 13: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 Code Generation

Page 14: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 Application Server Architecture

Pluggable Transport LayerHTTP LLP SMTP S/MIME

PGP PKCS#7 HeSA PKI GnuPG Pluggable Encryption Layer

Fine grain access control LDAP Authentication / Access Control(Public Key Authentication)

Synchronous Asynchronous Proxy Message Processing

Interface Engine Layer (In & Out)HL7/XML PIT Lab Specific PMS Specific

ORU^R01 QRY^R02 ORM^O01 MFQ Pluggable Message Processors

HL7 file based

Picture ArchivalPluggable Persistence Layer

Firebird SQL

SQL Server*

Oracle*

* May be supported in future

Etc..

Page 15: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Server handling of messages• Machinery delivers incoming interface to be

processed and provides the mechanism to return a response– Message processors can be plugged into the

framework to create specialised services

• Security is handled entirely by the use of Public Key Authentication & Encryption

• Abstraction enables different message storage mechanisms– SQL server– offline HL7 File based storage

Page 16: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Server message processing

Page 17: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Client Application Architecture

Transport LayerHTTP LLP SMTP S/MIME

PGP PKCS#7 HeSA PKI GnuPG Encryption Layer

Specific Message Processing

Interface Engine Layer

Archetypes HL7 Modelling LayerSNOMED-CT LOINC

Presentation Persistence HL7 RTF

DICOM JPEG HTML

PIT HL7

Offline Index

PIT

Presentation or Persistence Layers

HL7/XML PIT Lab Specific PMS Specific

ORU^R01 QRY^R02 ORM^O01 MFQ Etc..

HL7 Model

Page 18: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Client Application Development

Page 19: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Hierarchic Designator (IHL7HD)

• The namespace ID and the combination of universal ID and universal ID type should be equivalent in meaning

• Used in the framework to identify practices and institutions, or units within hospitals

• Currently we use GUIDs as universal ID type, but OIDs (assigned by HL7 Australia) are a potential option in the future.

Page 20: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HDs & Routing

Page 21: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Server routing report

Page 22: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Putting it all together

The Internet

Allied Health

Specialist

GP Practice

Day Surgery

Hospital

NursingStaff

Health Funds

Standards Compliance CertificationMessaging

Standards

Encryption

PKIHTTP://servers

Application ServerHosting

SQL

Pathology

DiseaseRegistries

Page 23: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

LOINC support

Page 24: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

ICD-10AM support

Page 25: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

SNOMED-CT support

Page 26: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

SNOMED-CT Query

Page 27: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

SNOMED-CT Canonical Forms•To leverage the full power of SNOMED-CT terminology services that make concepts computable are required. The Medical Objects framework provides internet terminology services using HL7 Master Files messages as transport.

•Medical Objects also provides full LOINC, ICD-10AM, and MBS support using real-time HL7 master files messaging services

Page 28: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 Word ProcessorThe word processor is HL7 data field aware. Set up templates and populate them directly from HL7 messages.

Page 29: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Blood Pressure Archetype •Meta data in the form of Archetypes potentially enrich HL7 v2.x to remove any limits on semantic interoperability.•Archetypes & Terminology overlap in applicability but are complimentary

Page 30: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Service Oriented Architecture (N-tier)

• Early in development, a decision was made to use HL7 as the only protocol/middle-ware between client and server

• This means that messaging is a core component of the framework and has had extensive real world use.

• It is real time messaging• Messages are processed by an application server which

may be quite remote• Database access is abstracted – currently using

FirebirdSQL/Interbase• Service oriented message processing

– A particular message may be delegated for processing by another HL7 processing service eg. Provider directory, routing, terminology services, registration

– This is invisible to the client

Page 31: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Medical Objects was the first messaging service and organization in Australia to receive Australian Standards AS4700.2 HL7 v2.3.1 certification, awarded by the National Association of Testing Authorities (NATA) approved Australian Healthcare Messaging Laboratory (AHML).

Both our Orders & Results are compliant

To date Medical Objects are the only organisation to have completed certification.

We achieved compliance

Page 32: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

AHML Compliance Integration

Page 33: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Sending GP referrals• GP referrals

– Captured from clinical practice software

– Digitally signed HESA PKI USB key

– Encrypted with PKI certificates

– Encrypted provider lookup– Zero configuration install

• Referrals are delivered real-time

Page 34: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Open Spec - Inline Signature

DigitalSignatureBlock

Open Specification: http://download.medical-objects.com.au/docs/api/MO-Signature-v2.zip

Page 35: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Medical Objects Explorer

Page 36: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Combined results analysis showing adverse drug reaction Liver Function Tests

Page 37: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Capsule Endoscopy

Page 38: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 Orders

Page 39: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Provider directory• HL7 2.3 Master files

– Defines messages for maintenance & query for providers using the STF segment

– CH 8.3.3 MFQ/MFR (Master Files Query/Response)

Page 40: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

MFQ/MFR

Page 41: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 for Mere Mortals

Page 42: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 Master Files Query

Page 43: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 FilterUsing the framework to bring existing non-compliant messages up to HL7 2.3.1.Improving the quality of the terminology coding

Page 44: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 Filter Configuration

Page 45: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Magellan

Page 46: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Eclipse

Page 47: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Word Plugin

Page 48: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 Visualiser• Designed for trusted

message set• Part of Standards

Australia work for IT-14-6-5

Page 49: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

HL7 is a messaging environment• HL7 predates Web Services and many of the commercial

messaging environments• There is no need to wrap HL7 inside another messaging

environments as it is already richer than services such as SOAP/WSDL

• The combination of compliant HL7 encryption and digital signatures along with a URL or email address is all that is required. (Assuming the HL7 is processed!) Open Specification: http://download.medical-objects.com.au/docs/api/MO-Connect.txt

• Open standards are essential to avoid vendor lock in and to enable interoperability

• Use of HL7 as messaging environment ensures the messages can be read at the destination

Page 50: An object oriented HL7 Framework Hands-on Workshop HL7 Version 2.x Implementation Tools An object oriented HL7 Framework Andrew McIntyre & Jared Davison

Medical Objects Network Today

www.medical-objects.com.au