GNU Health and HL7


Published on

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:

Published in: Health & Medicine
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

GNU Health and HL7

  1. 1. GNU Health and HL7 Emilien Klein December 4, 2013 CC BY-SA 4.0
  2. 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. 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. 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. 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. 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. 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^27401­1020|GL|(555) 555­2004|     (555)555­2004||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. 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. 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. 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?
  11. 11. Resources ● GNU Health: ● HL7 international: – Create your account and get access to the standards ● python-hl7 documentation ● twisted-hl7 documentation