Download presentation
Presentation is loading. Please wait.
Published byShanon Norton Modified over 9 years ago
1
Everest Bridging Internal Assets and External Requirements Justin Fyfe March 2013 RIMBAA OOC
2
Agenda Introduction Everest – A 5,000 foot view Everest in Use –As a service –Through the bus –To the phone
3
Introduction Mohawk Applied Research in Health Informatics –Started in 2007 to prototype the pan-Canadian EHRs blueprint –Use standards prescribed by Canada Health Infoway (HL7v3) –Quickly ran into implementation issues
4
Problem : Prototype the HIAL HIAL Shared Health Record Longitudinal Record Services Client Registry Provider Registry Location Registry v3 Clients v3
5
System B System A Application Data Development Integration using v3 Data RIM Graph ITS Graph Transport Data RIM Graph ITS Graph Transport
6
Issues HL7v3 complex –XML instances are often scary –Nuances in XML ITS –Datatype behaviors (1 + NI) Existing tools (ca. 2007) were clunky 4 month student turnaround
7
EVEREST, A 5000 FOOT VIEW
8
Everest Started in 2008 –Abstracting v3 XML –Well documented so students can learn as you type –Implements data-types and related rules –Validation / Transmission of instances First public release in Fall 2009
9
Optimizer From MIF to Code MIF 2.1.x GPMR C# Java HTML XSL/X SD COR Repo. COR Repo..DLL.HTM.JAR.XSL /.XSD SDO *.vsd.DOC.XSD
10
Architecture of Everest.NET Framework GPMR Everest Core Library Connectors Formatters WCF MSMQ XML ITS 1.0 DT R1 DT R2 RMIM Structures CDA UV NE2008 UV NE2008 CodeDom
11
Application Data Development MARC-HI Everest Canonical Data RIM Graph ITS Graph Transport Canonical Data RIM Graph ITS Graph Transport How does it all fit? Application Code Core Library RMIM Files Formatters Connectors App Data
12
C# - A Sample // Create instance MCCI_IN000002CA hello = new MCCI_IN000002CA() { Id = Guid.NewGuid(), CreationTime = DateTime.Now, AcceptAckCode = AcknowledgementCondition.Always, InteractionId = MCCI_IN000002CA.GetInteractionId(), ProfileId = MCCI_IN000002CA.GetProfileId(), Sender = new Sender() { Device = new Device1() { Id = new II("1.2.3.4.5") } }; // End Create Instance using (var formatter = new XmlIts1Formatter()) { formatter.ValidateConformance = false; formatter.GraphAides.Add(new DatatypeFormatter()); using (var connector = new WcfClientConnector("endpointname=cr")) { connector.Formatter = formatter; connector.Open(); connector.Send(hello); }
13
Java – A Sample ApplicationContext ctx = new ClassPathXmlApplicationContext("MyApp.xml"); // Create Instance MCCI_IN000002CA hello = new MCCI_IN000002CA(); hello.setId(UUID.randomUUID()); hello.setCreationTime(TS.now()); hello.setAcceptAckCode(AcknowledgementCondition.Always); hello.setInteractionId(MCCI_IN000002CA.defaultInteractionId()); hello.setProfileId(MCCI_IN000002CA.defaultProfileId()); hello.setSender(new Sender(new Device1())); hello.getSender().getDevice().setId(new II("1.2.3.4.5")); // End Create Instance try(XmlIts1Formatter formatter = new XmlIts1Formatter()) { formatter.setValidateConformance(false); formatter.getGraphAides().add(new DatatypeFormatter()); try(SpringClientConnector connector = new SpringClientConnector(ctx)) { connector.setConnectionString("templateBeanName=serviceTemplate;contextFile=MyApp.xml"); connector.setFormatter(formatter); connector.open(); connector.send(hello); }
14
Platform Support 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
15
EVEREST IN USE
16
How we use Everest HIAL Shared Health Record Longitudinal Record Services Client Registry Provider Registry Location Registry Clients As a Service Provider: Everest is currently employed in.NET using WCF to implement application roles for a variety of services
17
Service Framework (using Everest) Everest Framework Connector Architecture WCF MSMQ File Formatter Architecture pCS Maintenance Releases Everest Framework Connector Architecture WCF MSMQ File Formatter Architecture pCS Maintenance Releases Message Handling Message Canonicalization Message Validation Message Handling Message Canonicalization Message Validation Data Services Data Model Object Representation (Canonical data model for registry) Data Services Data Model Object Representation (Canonical data model for registry) Terminology Services Code Validation Code Expansion Concept Synonym Lookup Terminology Services Code Validation Code Expansion Concept Synonym Lookup Auditing Services Audit Trail Accountability Tracing Auditing Services Audit Trail Accountability Tracing Registration Services Event Registration Event Querying Registration Services Event Registration Event Querying Message Persistence Exec-Once Message Tracking Long term message persistence Message Persistence Exec-Once Message Tracking Long term message persistence Query Services Query Registration Query Continuation Query Services Query Registration Query Continuation Application Host System Configuration Service OID Registry Custodial Settings Logging / Tracing Service Contracts Application Host System Configuration Service OID Registry Custodial Settings Logging / Tracing Service Contracts Persistence Services Data Maintenance (Insert, Update, Get) Data Validation Persistence Services Data Maintenance (Insert, Update, Get) Data Validation Decision Support Services WF Workflow Host User Pluggable Workflows WF Trigger Management Microsoft Platform Only Decision Support Services WF Workflow Host User Pluggable Workflows WF Trigger Management Microsoft Platform Only PSA Consent Policy Enforcement Record Masking PSA Consent Policy Enforcement Record Masking
18
Services / Applications Everest supports a variety of HL7v3 standards –Normative Edition 2008 Client Registry –IHE PIX/PDQ v3 –Canadian Edition MR2009 Shared Health Record Location Registry Client Registry
19
Hosting HL7v3 In Everest WcfServerConnector connector = new WcfServerConnector(); connector.Formatter = new MARC.Everest.Formatters.XML.ITS1.Formatter(); connector.Formatter.GraphAides.Add( new DatatypeFormatter() ); connector.MessageAvailable += new EventHandler ( connector_MessageAvailable ); try { WcfConnectionStringBuilder builder = new WcfConnectionStringBuilder(); builder.ServiceName = "ApplicationService"; connector.ConnectionString = builder.GenerateConnectionString(); connector.Open(); connector.Start(); Console.WriteLine("Server started, press any key to close..."); Console.ReadKey(); connector.Stop(); connector.Close(); } catch (Exception e) { Console.WriteLine(e.ToString()); }
20
Services using Everest Shared Health Record Reference Implementation –http://shr.marc-hi.ca:8080/shrhttp://shr.marc-hi.ca:8080/shr Client Registry Reference Implementation –http://cr.marc-hi.ca:8080/crhttp://cr.marc-hi.ca:8080/cr PIXv3 Manager / PDQv3 Supplier Reference Implementation –http://cr.marc-hi.ca:8080/PIXManagerhttp://cr.marc-hi.ca:8080/PIXManager –http://cr.marc-hi.ca:8080/PDQSupplierhttp://cr.marc-hi.ca:8080/PDQSupplier Service Delivery Location Registry Reference Implementation –http://sdlr.marc-hi.ca/v200812/Service.svchttp://sdlr.marc-hi.ca/v200812/Service.svc –(early prototype version of Everest)
21
How we use Everest HIAL Shared Health Record Longitudinal Record Services Client Registry Provider Registry Location Registry Clients In the Service Bus: Everest and its tools are used to generate a RIM ITS canonical form for our HIAL reference implementation
22
.XSL /.XSD RIM-ish ITS Clients Everest Pipeline Component BizTalk Server Receive Host... COMP100075......... COMP100075......... COMP100075......... COMP100075......
23
How we use Everest HIAL Shared Health Record Longitudinal Record Services Client Registry Provider Registry Location Registry Clients Clients: Everest can be used by clients to access the jurisdictional infrastructure. Exposing the full v3 data model
24
HL7v3 on Surface Computers
25
HL7v3 on Mobile Devices
26
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.