an object oriented hl7 framework hands-on workshop hl7 version 2.x implementation tools an object...
TRANSCRIPT
![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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/38.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/39.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/40.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/41.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/42.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/43.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/44.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/45.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/46.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/47.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/48.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/49.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062404/551aa30b550346856e8b461c/html5/thumbnails/50.jpg)
Medical Objects Network Today
www.medical-objects.com.au