MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

21
MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010

Transcript of MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

Page 1: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

MARC-HI Everest Framework

HL7v3 RMIM API OverviewJan 2010

Page 2: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

Agenda

• Introduction• Overview– What is the Everest Framework?– Components– From MIF to XML Instance– Roadmap

• Developer Experience

Page 3: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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)

Page 4: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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.

Page 5: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

MARC-HI Everest Framework

Page 6: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 7: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 8: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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.)

Page 9: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 10: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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.)

Page 11: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 12: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 13: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 14: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 15: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 16: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 17: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 18: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

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

Page 19: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.

19

EHR Infostructure:Conceptual Architecture

Page 20: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.
Page 21: MARC-HI Everest Framework HL7v3 RMIM API Overview Jan 2010.