marc-hi everest framework hl7v3 rmim api overview jan 2010
TRANSCRIPT
MARC-HI Everest Framework
HL7v3 RMIM API OverviewJan 2010
Agenda
• Introduction• Overview– What is the Everest Framework?– Components– From MIF to XML Instance– Roadmap
• Developer Experience
What is MARC-HI?• Mohawk Applied Research Centre in Health
Informatics– 3 Faculty Members– 3 Full Time Developers– 6 Course release and co-op students
• Began work with HL7v3 in summer 2007• NSERC operational funding for 2009-2014• Focused on building reference implementation
of the CHI EHR Infostructure (HL7v3 using pCS)
Accomplishments to date
• Operational (online sandbox) HIAL supporting approximately 20% of the pCS interactions
• Acted as HIAL infrastructure for eHealth 2008 and 2009
• Have built reference implementations of TLI, Referral, iEHR domain, etc.
• Have completed contract based investigation work for CIHI, CHI, 3M, etc.
MARC-HI Everest Framework
What is the Everest Framework?• Everest is the foundation for an HL7v3
Messaging API– Class/Object representation of structures from
pCS HL7v3 MIFs– Improved v3 experience• Extensive documentation in developer’s IDE brought
forward from MIFs• Parameterized constructors, operators, and helper
functions
What is the Everest Framework?– Flexible ITS and Transport layers– Current version .NET based, ports to Java
underway– Primarily used by higher level APIs, but also used
directly by application programmers
Why bother?
• Productivity raised 10-100x by simplifying application developer environment (no requirement to learn XML for example)
• Built-in message conformance testing• Enables higher-level business APIs, advanced
tooling (interaction wizards, canonical data mapping, automated message creation, automated testing tools, etc.)
Components
• Data-Types– Hand written (not possible to auto-generate)– Combination of R1 and R2 data type structures– Provide validation, operator overloading and other
valuable functionality (compression, formatting data, etc..)
• RMIM Classes– Automatically generated from MIF v2
Components (Cont’d)
• Formatters– (De)Serializes class structures a variety of formats
(XML, Binary, etc...)– Can be combined– Provide built-in validation support– Optimizes mass processing of HL7v3 structures
• Connectors– Transports classes to/from remote endpoints
using HL7v3 (WS-*, FileSystems, Memory, etc.)
Application DataApplication Data
DevelopmentDevelopment
HL7v3 System
Canonical DataCanonical Data
RIM GraphRIM Graph
ITS GraphITS Graph
TransportTransport
Canonical DataCanonical Data
RIM GraphRIM Graph
ITS GraphITS Graph
TransportTransport
Application DataApplication Data
DevelopmentDevelopment
Everest
MARC-HI EverestMARC-HI Everest
Canonical DataCanonical Data
RIM GraphRIM Graph
ITS GraphITS Graph
TransportTransport
Canonical DataCanonical Data
RIM GraphRIM Graph
ITS GraphITS Graph
TransportTransport
From MIF to Instance
ApplicationCode
ApplicationCode
MIF v2MIF v2
Use Structures
Use Structures No ITS?CreateCreate
<PRPA_IN1012..<id root=“”
<PRPA_IN1012..<id root=“”
XML ITS1.0 with DT R1
RMIMRMIM
RMIMRMIMApplication Code
Application Code
Sending the Instance
<PRPA_IN1012..<id root=“”
<PRPA_IN1012..<id root=“”
SendSend
<PRPA_IN1012..<id root=“…<versionCod
<PRPA_IN1012..<id root=“…<versionCod
Remote System
Remote System
Application DataApplication Data
DevelopmentDevelopment
MARC-HI EverestMARC-HI Everest
Canonical DataCanonical Data
RIM GraphRIM Graph
ITS GraphITS Graph
TransportTransport
Canonical DataCanonical Data
RIM GraphRIM Graph
ITS GraphITS Graph
TransportTransport
How does it all fit?
Application Code
Application Code
Data TypesData Types
Generated TypesGenerated Types
FormatterFormatter
ConnectorConnector
App DataApp Data
Everest Roadmap• Everest November CTP (Infoway sponsored)
– Released October 30 2009 to OHT– .NET edition– Tutorials (online)– Documentation (Reference Guide)
• Business model API on top of Everest– Assists developers by abstracting messaging standard
• Java Edition – Underway
• Web Services (REST) Edition – Underway
Demonstration at Tooling Demo
• Everest support site– Downloads– Tutorials– Code documentation library
• Using Everest in Visual Studio – Hello World example • From RMIM classes to instance• From instance to RMIM classes
Obtaining MARC-HI Everest
• http://everest.marc-hi.ca
• Support available through:– Everest forums (website above)– Email ([email protected])– Telephone 905-575-1212 x 3653
19
EHR Infostructure:Conceptual Architecture