Download presentation
Presentation is loading. Please wait.
Published byAbner McCormick Modified over 9 years ago
1
Everest 1.2 Update – Progress – New Features Justin Fyfe Duane Bender January 2013 WGM
2
Agenda Overview News New Features –.NET Version –Silverlight and Windows Phone 7/8 Version –Java Version Roadmap
3
A (brief) History Everest: –Started in 2008 –An HL7v3 toolkit for writing Windows applications –Code generated from MIF files –Traditionally, focused on Microsoft.NET platform Tight integration with WCF Integrates with Visual Studio –Open Source (Apache 2)
4
News : Everest Book Complete Development guide Covers 1.0 eBook and Hardcover Free for contributors
5
News : Public SVN Everest and jEverest have publicly accessible SVN repositories –Readonly anonymous access –Patches can be submitted by anyone to justin.fyfe1@mohawkcollege.ca –Serious contributors can be given commit access
6
.NET EDITION New Features
7
Better integration with WCF Better support for accessing SOAP headers from messages receiveResult.ResponseHeaders = new System.ServiceModel.Channels.MessageHeaders (receiveResult.Headers.MessageVersion); receiveResult.ResponseHeaders.Add(MessageHeader.CreateHeader("myHeader", "urn:my-ns:com", "Value"));
8
Better Integration with WCF Creation of a custom binding provider for existing WCF services –EverestSerializerFormat attribute replaces standard XmlSerializerFormat attribute on service contract [EverestSerializerFormat(Formatter = typeof(XmlIts1Formatter), GraphAide = typeof(DatatypeFormatter), ValidateConformance = false)] [ServiceContract(Namespace="urn:hl7-org:v3")] public interface IServiceContract { /// /// Do something /// [OperationContract(Action="*")] IGraphableAnything(IGraphable request); }
9
Other Features Detailed validation errors/warnings for data types Over 60 defects were corrected Enhanced documentation on data types classes Formatter performance enhancements
10
EVEREST COMPACT VERSION New Features
11
Compact Edition? Optimized for low resource execution environments –Phones (Windows Phone 7/8) –Windows RT Devices (ARM based Windows 8) –Silverlight (Browser based execution)
12
HL7v3 from your mobile
13
Supported Features Full data types support (including behaviors) Serialization support for –XML ITS1 and Data Types R1 (R2 on roadmap) –Tested with NE2008, NE2010, and CA standards Connectivity –WCF (SOAP 1.1/1.2) over http/https Limitations –Reflection formatter only Can use a pre-generation tool to make this faster
14
Why? Mobile apps can benefit from integration using HL7v3 –FHIR is not yet ready –HL7v3 registries/repositories have lots of information that can be leveraged on mobile –PIX/PDQ HL7v3 can be useful in mobile apps Especially when integrating with XDS on mobile platforms –HL7v3 is preferable over HL7v2.x on mobile platforms as WS-* can easily be implemented on mobile platforms using WCF. A debate between myself and a coworker in our lab … an “I’ll show you” project
15
XML/v3 is CPU intensive
16
XML/v3 Wastes Bandwidth
17
JAVA VERSION New Features
18
The Java Version Finally, after 3 years Separate code base from.NET version –Leverages Java patterns –Code generated from MIF from GPMR –Tested with NE2008, NE2010, CA Technical challenges with Java –Lack of reified generics –No closures / lambda expressions
19
Adaptations from.NET Java INT ten = new INT(10); for(INT i = new INT(0); i.compareTo(ten) < 0; i = i.increment()) System.out.println(i.toString()); TS now = TS.now(); System.out.println(now.getValue()); PQ day = new PQ(BigDecimal.ONE, "d"); TS yesterday = now.subtract(day); System.out.println(yesterday.getValue()); ST str = new ST("Justin"); TS today = TS.now(); PQ day = new PQ(BigDecimal.ONE, "d"), hours = new PQ(BigDecimal.valueOf(3), "h"); PQ dayLessHours = day.subtract(hours); INT rad = new INT(3); REAL pi = new REAL(Math.PI); REAL area = pi.multiply(new REAL(Math.pow(rad.toDouble(), 2)));.NET for (INT i = 0; i < 10; i++) Console.WriteLine(i); TS now = DateTime.Now; Console.WriteLine(now.Value); TS yesterday = now - "1 d"; Console.WriteLine(yesterday.Value); ST str = "Justin"; TS today = DateTime.Today; PQ day = "1 d", hours = “3 h"; PQ dayLessHours = day - hours; INT rad = 3; REAL pi = Math.PI; REAL area = pi * Math.Pow((double)rad, 2);
20
Constructing an Instance // Quickly create an instance MCCI_IN000002CA instance = new MCCI_IN000002CA( new II(UUID.randomUUID()), TS.now(), ResponseMode.Immediate, MCCI_IN000002CA.defaultInteractionId(), MCCI_IN000002CA.defaultProfileId(), ProcessingID.Production, AcknowledgementCondition.Never ); // Format try(XmlIts1Formatter fmtr = new XmlIts1Formatter()) { // Add a helper formatter for R1 fmtr.getGraphAides().add(new DatatypeFormatter()); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); IFormatterGraphResult graphResult = fmtr.graph(outStream, instance); // Output validation errors for(IResultDetail detail : graphResult.getDetails()) System.out.printf("%s : %s", detail.getType(), detail.getMessage()); } catch(Exception e) { e.printStackTrace(); }
21
Sending/Receiving v3 Everest integrates with Spring one of two ways: –Using SpringClientConnector Similar to the WcfClientConnector in.NET –Using EverestMarshaller / EverestUnmarshaller in AppContext xml configuration
22
Feature Comparison Java.NETCompact Data TypesStructure + Behaviors ǂ Behaviors + Structure Serialization DT R1XXX DT R2X XML ITS1ReflectionReflection + CodeDom + Pre-Generated Reflection + Pre- Generated Connectivity SOAPSpringWCF FilesX MQX ǂ - Not fully ported
23
Version 1.2 “Todo” List Unit Testing (Jan – Feb 2013) –Currently one student in charge of porting unit tests (help is appreciated) Spring Connector –Currently needs testing and additional development work. Documentation & Clean-up
24
Roadmap If interest continues development will continue on Everest –1.4 (Q1 2014) Data Types R2 for Java and Compact version CDA/XDS Connectors (experimentation required) MEX support (for WCF services) and WSDL import functionality (map XMLSerializer to Everest classes) JSON Formatter Android version of jEverest
25
More Info http://everest.marc-hi.ca SVN: –https://fisheye.marc-hi.ca/svn/Everesthttps://fisheye.marc-hi.ca/svn/Everest –https://fisheye.marc-hi.ca/svn/jEveresthttps://fisheye.marc-hi.ca/svn/jEverest –UN: Guest
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.