1 / 28

MARC-HI Everest Framework

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

zelig
Download Presentation

MARC-HI Everest Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MARC-HI Everest Framework Enabling RMIM Based Applications Justin Fyfe (Mohawk College)

  2. Agenda • Overview • Architecture • Using Everest • Universal Messaging • Data types Enhancements • Roadmap

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

  4. History

  5. Guiding Principles Flexibility Performance Quality Standards Compliance Intuitiveness / Documentation

  6. Documentation

  7. Architecture

  8. 10,000 m View Development Canonical Data Canonical Data RIM Graph RIM Graph MARC-HI Everest ITS Graph ITS Graph Transport Transport

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

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

  11. Universal Messaging & CDA

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

  13. 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”

  14. DT Enhancements

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

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

  17. Operator Example INT zero = 0; REAL pi = Math.PI; TS now = DateTime.Now; PQ day = new PQ(1, “d”); INT integerDiv = 3 / 2; REAL floatDiv = 3 / (REAL)2; TS yesterday = now – day; PQ negation = -day; REAL nullFlavored = pi / zero; NullFlavornf = (pi / zero).NullFlavor; TS throwsAnException = now – new PQ(3, “ft”); Cast to/from native datatypes Natural operations on datatypes Null flavor rules still apply (nullFlavor = NI) Unit checking is performed

  18. Implemented Operators • Comparison (<, >, <=, >=) • Any PDV<T> where T is IComparable<T> • Basic Arithmetic (+, -) • TS, PQ, MO, INT, REAL • Arithmetic (*, /) & Unary (-) • PQ, MO, REAL, INT • Integer Arithmetic (%, /) & Unary (--, ++) • INT • Logic (^, &, |, !) • BL • Casting (Implicit / Explicit) • Many of the datatypes support this, many times when ToX or FromX is listed in the Data Types implementation guide.

  19. Utility Functions • To / from Interval: REAL pi = Math.PI; pi.Precision = 2; IVL<REAL> piRange = pi.ToIVL(); TS ts2008 = new TS() { Value = “2008” }; IVL<TS> range2008 = ts2008.ToIVL(); Low = 3.1400000000 High = 3.1499999999 Low = 20080101000000.000 High = 20081231115959.999

  20. Set Utilities • Interval IVL<PQ> ageRange = new IVL<PQ>( new PQ(1, “a”), new PQ(3, “a”) ); ageRange.Contains(new PQ(24, ”mo”));

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

  22. 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 from a messaging standpoint?

  23. Example II a = new II(“1.1.1.1”, “123”) { Use = InstanceIdentifierUse.Business }, b = new II(“1.1.1.1”, “123”) { Use = InstanceIdentifierUse.Version } bool reference = a == b; bool value = a.Equals(b); bool semantics = a.SemanticEquals(b); False – A is not B False – Use is not equal True – A is equal to B according to Data Type rules.

  24. roadmap

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

  26. Everest 1.0 Goals • jEverest – Java Version of Everest • XML ITS 1.0 and Datatypes R1 • File and SOAP Connectors (Metro / Axis undecided yet) • Support for NE2010 • CDA Support for Everest • DataTypes R2 Support for .NET version

  27. Development Roadmap

  28. Questions • http://everest.marc-hi.ca

More Related