Todd Freter Program Manager Web Technologies and Standards A Java API for HL7 Version 3 RI M "Write once, run anywhere"
Todd Fre te r
Program Manager
Web Technologies and Standards
A Java API for HL7 Vers ion 3 RIM
"Write once, run anywhere"
Useful abbrevia tions� HL7 = Hea lth Level Seven, Inc. www.hl7.org� SIG = Specia l Interest Group� V3 = Vers ion 3� RIM = Reference Information Model� RMIM = Refined Message Information Model� HMD = Hierarchical Message Definition� HIMSS = Health Information Management Systems
Society www.himss.org� ebXML = Electronic Bus iness XML www.ebxml.org� W3C = World Wide Web Consortium www.w3.org� OASIS = Organization for the Advancement of
Structured Information Standards www.oasis-open.org
Sun's HL7 work� Evange lize ebXML framework for e lectronic
business� Co-chair HL7 Java SIG� Represent Java SIG in HL7 Interoperability
events(e .g., HIMSS 2003)
� Support Java SIG code development by recruiting volunteers and funding work by experts under contract with Sun
Background: XML at HL7� Prior to 1996, HL7 developed EDI formats for
hea lthcare information interchange� "Kona Project," 1996: Explored us ing SGML in
hea lthcare� SGML/XML SIG chartered in 1997 with three
working groups Documents: Patient Record Architecture Messaging: Message encoding in XML Education: Teaching HL7 about XML
� Foundation for HL7 Vers ion 3, the XML-based standard (to be balloted this year)
HL7 Java SIG� Sponsored by HL7 Control/Query TC� Chartered to deve lop Java API to HL7 V3
RIM, which uses XML� Supported by
Sun Microsystems Oracle McKesson US Veterans Adminis tra tion Regenstrie f Institute (Univers ity of Indiana)
Goals of HL7 Java SIG� Encourage adoption of HL7 V3� Fos ter HL7 V3 application interoperability� Provide universa l HL7 API for full range of
hea lthcare applications� Provide sample implementations for
deve lopers� Encourage HL7 V3 API development for other
popular programming languages
HL7 Java SIG chronology� Approved by HL7 Technica l Steering
Committee and HL7 Board, May 2002� Approved basic API design in July 2002,
s tarted development� Accepted role in HL7 interoperability demo for
HIMSS conference, October 2002� Completed and showed API demo code a t
HIMSS, February 2003
The HL7 V3 Java API� Java classes for HL7 RIM objects� Java classes for HL7 data types� Tools :
Message builder Message parser
API des ign principles� Minimal inte rpretation
Classes re flect V3 specifications as directly as poss ible
� Universa l, not specific Classes enable any message type, not specific
message types� Inte lligent use of HL7 V3 specifica tions and
resources (e.g., HMDs)� Adaptable, "sca lable"
New message types don't require new classes
API components (1)Java classes for RIM objects� "Getters" and "se tte rs" for in-memory
message structures� Create, read instances of HL7 V3 RMIMs
API components (2)Java classes for HL7 V3 RIM data
types� 29 specific da tatypes� Many data types conta in rich methods� Specific data type handlers support API tools
API components (3)Message builder� Creates V3-compliant XML message from in-
memory RMIM instance� Uses HMD to build XML message with correct
e lements in correct order with appropria te attributes
� May a lso use XML message templa tes (under discuss ion)
API components (4)Message parser� Creates in-memory RMIM instance from V3-
compliant XML message� Uses HMD to es tablish correct data s tructure
suggested by XML e lements� Uses data type-specific handlers to evaluate
data in XML message
HL7 RMIM ins tance in memory
Java HL7 message builder
HL7 XML message
Creating V3 XML messages
EpicCare Patient Medical Records
JavaSIG Object Browser
v3r1b3
HL7 RMIM ins tance in memory
Java HL7 message parser
HL7 XML message
Pars ing V3 XML messages
EpicCare Patient Medical Records
JavaSIG Object Browser
v3r1b3
API current s tatus� "Pre liminary, incomplete prototype"
demonstrated at HIMSS 2003� Classes for HL7 V3 RIM classes : a ll
completed� Classes and handlers for HL7 V3 data types:
only 3 of 29 completed� Message parser: comple ted� Message builder: not yet s tarted
Next s teps for Java SIG� Assess current completion� Calculate requirements to complete a lpha-
leve l components� Recruit further technica l resources� Publish a tenta tive schedule for a lpha re lease
of API
Thanks for your a ttention!
Questions?
Todd Fre te r
[email protected] "Write once,run a nywhere"