The slides of the presentation I gave to the GNU Health community on December 11, 2013.
Video of the presentation, including question from the audience, is available on YouTube:
https://www.youtube.com/watch?v=t5LxER0Fbm0
Top Rated Bangalore Call Girls Richmond Circle ⟟ 8250192130 ⟟ Call Me For Gen...
GNU Health and HL7
1. GNU Health and HL7
Emilien Klein
December 4, 2013
CC BY-SA 4.0
2. GNU Health
●
Free Health and Hospital Information System
–
●
Free as in Freedom, part of the GNU project
Goal: to contribute with health professionals
around the world to improve the lives of the
underprivileged, providing a free system that
optimizes health promotion and disease
prevention. (GNU Health website)
3. What is HL7?
●
Health Level Seven (OSI layer 7 - application)
●
The name refers both to:
–
The non-profit organization developing healthcare
informatics interoperability standards
–
Specific standards developed by the organization
4. What is HL7?
●
Open Standards
–
●
Since April 2013, free to download
Various versions
–
–
v3 – XML format, for more advanced/newer
interactions
–
●
v2.X – Character-delimited text, most in use inside
healthcare facilities
FHIR (Fast Healthcare Interoperability Resources)
– do not call it HL7 v4
Also, local flavors of the standards
5. Recommendation: Implement v2 for
intra-hospital communication
●
It is the most used within hospitals, e.g. between
–
–
●
Laboratory
–
●
Patient registration system
Billing system
Stable: in use by most systems and hospitals since 2
decades
Text based:
–
More compact than XML
–
Challenge: reading counting can become tiresome
6. Composition of an HL7 v2 message
●
A v2 message is composed of:
–
–
Fields (separated by |)
–
Components (separated by ^)
–
Subcomponents (separated by &)
–
●
Segments (different lines)
A field can contain repetitions (separated by ~)
Theoretically, the special characters
determining fields, components, etc. can be
configured, but in practice the previous
characters are used.
7. Sample Outgoing ADT v2 message
Admit/visit notification - event A01 (admitted patient)
MSH|^~&|ADT1|GOOD HEALTH HOSPITAL|GHH LAB, INC.|GOOD HEALTH
HOSPITAL|200708181126|SECURITY|ADT^A01^ADT_A01|MSG00001|P|2.7|<cr>
EVN|A01|200708181123||<cr>
PID|1||PATID1234^5^M11^ADT1^MR^GOOD HEALTH
HOSPITAL~123456789^^^USSSA^SS||EVERYMAN^ADAM^A^III||19610615|M||C|
2222 HOME STREET^^GREENSBORO^NC^274011020|GL|(555) 5552004|
(555)5552004||S||PATID12345001^2^M10^ADT1^AN^A|444333333|
987654^NC|<cr>
NK1|1|NUCLEAR^NELDA^W|SPO^SPOUSE||||NK^NEXT OF KIN<cr>
PV1|1|I|2000^2012^01||||004777^ATTEND^AARON^A|||SUR||||ADM|A0|<cr>
Patient Adam A. Everyman, III was admitted on July 18, 2007 at 11:23 a.m. by Doctor Aaron A.
Attending (#004777) for surgery (SUR). He has been assigned to room 2012, bed 01 on nursing
unit 2000.
The message was sent from system ADT1 at the Good Health Hospital site to system GHH Lab,
also at the Good Health Hospital site, on the same date as the admission took place, but
three seconds after the admit.
8. A new module for GNU Health
●
Why?
–
●
Integration with other systems
How?
–
First step, implementation of base module
●
●
●
–
Second step, specific interfaces (to be determined)
●
●
●
●
Handling events
Creation of messages
Communication with external system
Outgoing ADT
Outgoing lab orders
Incoming lab results
When?
–
Release after next?
9. A new module for GNU Health
Module must be able to handle:
●
General:
–
–
●
Configuration of interfaces
Overview of running interfaces
Outgoing:
–
–
●
Handle events, such as patient admitted, order placed
Create message and send it out
Incoming:
–
Receive messages
–
Parse messages and file to database
10. A new module for GNU Health
●
Possibly use existing Python HL7 library:
–
–
Available on the Python Package Index
–
●
Code hosted on Github
–
●
BSD licensed
Packaged for Debian
But support for components, repetitions, proper
HL7 numbering is still
in the process of being merged.
twisted-hl7 to transfer messages using the
MLLP protocol?