270 likes | 495 Views
MARC-HI Everest Framework. Enabling RMIM Based Applications Justin Fyfe (Mohawk College). Agenda. Overview Architecture Using Everest Universal Messaging Data types Enhancements Roadmap. Overview. HL7v3 Messaging API Object representation of structures within MIFs
E N D
MARC-HI Everest Framework Enabling RMIM Based Applications Justin Fyfe (Mohawk College)
Agenda • Overview • Architecture • Using Everest • Universal Messaging • Data types Enhancements • Roadmap
Overview • HL7v3 Messaging API • Object representation of structures within MIFs • Improved v3 Experience • Extensive documentation in developer’s IDE • Value sets represented as business names • Parameterized constructors, operators and helper functions • Flexible ITS and Transport Channel architecture
Guiding Principles Flexibility Performance Quality Standards Compliance Intuitiveness / Documentation
10,000 m View Development Canonical Data Canonical Data RIM Graph RIM Graph MARC-HI Everest ITS Graph ITS Graph Transport Transport
5,000 m - Everest .NET CodeDom XML ITS 1.0 DT R1 DT R2 CDA UV NE2008 Connectors Formatters RMIM Structures WCF MSMQ Everest Core Library GPMR .NET Framework
5,000 m - Overview jEverest XML ITS 1.0 DT R1 Connectors Formatters CA 2.04.02 UV NE2008 Metro / Axis JMS Everest Core Library J2SE/J2EE 1.6
From MIF to Code REST/JSON .js Optimizer C# .DLL HTML .HTM COR Repo. GPMR MIF 2.1.x Java .JAR XSL/XSD .XSL / .XSD
Graph to RMIMs Core Library Canonical Data RIM Graph RMIM Objects RMIM Graph Code (Written by Developer) Generated DLL Data
Formatting Objects Datatypes R1 Graph Aide Canonical Data RIM Graph RMIM Objects ITS Graph XML ITS 1.0 Formatter <PRPA_IN201305UV02 … <id root=“1.2.3.456 <creationTimeva…
Transporting Objects Datatypes R1 Graph Aide XML ITS 1.0 Formatter Canonical Data RIM Graph RMIM Objects ITS Graph WCF Client Connector Transport 1 Web Service
UV Support • NE2008 (since GPMR 0.9.x) • *_HD*.*mif files should be removed • NE2009 / NE2010 • HTML renderer works on Patched MIF files in quirks mode • Missing Several CMET definitions in DEFN IFC file • Templating issue with several Interactions • CDAr2 (NE2010) (since GPMR 1.1.x)
Patching NE2009/2010 • Some MIFs duplicate the “true” option • <mif:class name="GuarantorChoice" isAbstract="true true"> • Search / replace “true true” with “true” • PORP_MT0500032UV04 has invalid Type option • <mif:type name=")"/> • Replace name=“)” with name=“CS”
CDA Support in Everest • GPMR 1.1 supports processing of POCD_MTxxxxxx MIFs • Everest 1.0 Supports rendering of the ClinicalDocument RMIM structure
Operators • HL7v3 data types should behave like native primitives when not null-Flavored • INT should behave like int, long, uint • REAL should behave like float, double • BL should behave like bool • Operator overloading allows us to achieve this: • Casting to/from native types • Adding nullFlavors • Providing native operations (+, -, /, *, %, <=, >=, etc..)
Behaving Like Native Types for (int i = 0; i < 10; i++) if ((i % 2).Equals(1)) Console.WriteLine("{0} odd", i); for (INT i = 0; i < 10; i++) if ((i % 2).Equals(1)) Console.WriteLine("{0} odd", i);
Set Utilities • Interval IVL<PQ> ageRange = new IVL<PQ>( new PQ(1, “a”), new PQ(3, “a”) ); ageRange.Contains(new PQ(24, ”mo”));
Set Utilities • Periodic Interval: IVL<TS> nineToFive = new IVL<TS>( DateTime.Parse("2011-09-02 09:00 AM"), DateTime.Parse("2011-09-02 05:00 PM") ); PIVL<TS> repeated = new PIVL<TS>( nineToFive, new PQ(1, "wk") ); TS y2kLunch = DateTime.Parse("2000-01-01 11:30 AM"); boolisIncluded = repeated.Contains(y2kLunch ); // Returns false
Three levels of Equality • Reference Equals (default == operation) • Do the two objects represent the same reference in memory • Value Equality (via .Equals()) • Do all of the properties in A have the same content as all the properties in B? • Semantically Equal (via .SemanticEquals()) • Are the two objects equal according to data types guide?
Milestones • Q4 2011 – jEverest CTP (Community Tech. Preview) • Formatters • RMIM Structures • GPMR Patches • Q1 2012 – Release Candidate 3 • Everest .NET: • CDA Support • Datatypes R2 Support • jEverest : • Connectors • Q2 2012 – Release of Everest 1.0 • jEverest + Everest + GPMR Bundles • Documentation for jEverest
Questions • http://everest.marc-hi.ca