+ All Categories
Home > Documents > Everest 1.2 Update – Progress – New Features Justin Fyfe Duane Bender January 2013 WGM.

Everest 1.2 Update – Progress – New Features Justin Fyfe Duane Bender January 2013 WGM.

Date post: 27-Dec-2015
Category:
Upload: abner-mccormick
View: 225 times
Download: 1 times
Share this document with a friend
Popular Tags:
25
Everest 1.2 Update – Progress – New Features Justin Fyfe Duane Bender January 2013 WGM
Transcript
  • Slide 1
  • Everest 1.2 Update Progress New Features Justin Fyfe Duane Bender January 2013 WGM
  • Slide 2
  • Agenda Overview News New Features .NET Version Silverlight and Windows Phone 7/8 Version Java Version Roadmap
  • Slide 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)
  • Slide 4
  • News : Everest Book Complete Development guide Covers 1.0 eBook and Hardcover Free for contributors
  • Slide 5
  • News : Public SVN Everest and jEverest have publicly accessible SVN repositories Readonly anonymous access Patches can be submitted by anyone to [email protected] Serious contributors can be given commit access
  • Slide 6
  • .NET EDITION New Features
  • Slide 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"));
  • Slide 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); }
  • Slide 9
  • Other Features Detailed validation errors/warnings for data types Over 60 defects were corrected Enhanced documentation on data types classes Formatter performance enhancements
  • Slide 10
  • EVEREST COMPACT VERSION New Features
  • Slide 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)
  • Slide 12
  • HL7v3 from your mobile
  • Slide 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
  • Slide 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 Ill show you project
  • Slide 15
  • XML/v3 is CPU intensive
  • Slide 16
  • XML/v3 Wastes Bandwidth
  • Slide 17
  • JAVA VERSION New Features
  • Slide 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
  • Slide 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);
  • Slide 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(); }
  • Slide 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
  • Slide 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
  • Slide 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
  • Slide 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
  • Slide 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

Recommended