The OHF Legacy
Eclipse UOMo, STEM and Open Health Tools
Werner Keil
Eclipse Day Kraków
13th September 2012
2 © 2007-2012 Creative Arts & Technologies
UOMo STEM Open Health Tools
Images based on © Universal Pictures
Overview
• Introduction•UOMo
• Type-Safety• Why do we need it?• Unit-API, UOMo
•Units and Healthcare• UCUM, HL7, used by Healthcare
•STEM• What is STEM?• New Features• Demo
•Open Health Tools•Q&A3 © 2007-2012 Creative Arts & Technologies
Who am I?
4 © 2007-2012 Creative Arts & Technologies
Werner Keil
• Consultant – Coach
• Creative Cosmopolitan
• Open Source Evangelist
• Software Architect
• Java Godfather
• UOMo Project Lead
• …
Twitter @wernerkeil
Type-Safety
•Java does not have strongly typed primitive types (like e.g. Ada language).
•For performance reasons most developer prefer primitive types over objects in their interface.
•Primitives type arguments often lead to name clashes (methods with the same signature)
5 © 2007-2012 Creative Arts & Technologies
What do these disasters have in common?•Patriot MissileThe cause was an inaccurate calculation of the time since boot due to a computer arithmetic error.
•Ariane 5 ExplosionThe floating point number which a value was converted from had a value greater than what would be represented by a 16 bit signed integer.
6 © 2007-2012 Creative Arts & Technologies
• Gimli Glider (near disaster)Fuel loading was miscalculated through misunderstanding of the recently adopted Metric System, replacing the Imperial System
• Mars Orbiter Preliminary findings indicate that one team used English units (e.g. inches, feet and pounds) while the other used metric units for a key spacecraft operation.
• NASA lost a $125 million Mars orbiter because a Lockheed Martin engineering team used English units of measurement while the agency's team used the more conventional metric system for a key spacecraft operation
• A credible source disclosed, there was a manual step with an outsourced person to convert these calculations between the different teams, and NASA budget cuts caused them to fire him and have the wrong, unpatched data transmitted!!!
• This also underlines the added risk when 3rd party contractors are involved or projects are developed Offshore
What do these disasters have in common?
7 © 2007-2012 Creative Arts & Technologies
23rd March 1983. Ronald Reagan announces SDI (or “Star Wars”): ground-based and space-based systems to protect the US from attack by strategic nuclear ballistic missiles.
NASA “Star Wars” Initiative, 1983
8 © 2007-2012 Creative Arts & Technologies
1985
Mirror on underside of shuttle
SDI Experiment: The Plan
Big mountain in Hawaii
9 © 2007-2012 Creative Arts & Technologies
1985
SDI Experiment: What really happened
10 © 2007-2012 Creative Arts & Technologies
1985: What happened?
11 © 2007-2012 Creative Arts & Technologies
Unit Tests wouldn‘t find these…
•All previous example illustrate three categories of errors difficult to find through Unit Testing:
• Interface Errors (e.g. millisecond/second, radian/degree, meters/feet).
• Arithmetic Errors (e.g. overflow).
• Conversion Errors.
Despite their name
13 © 2007-2012 Creative Arts & Technologies
Causes of Conversion Errors
•Ambiguity on the unit• Gallon Dry / Gallon Liquid
• Gallon US / Gallon UK
• Day Sidereal / Day Calendar
• Degree Celsius / Degree Fahrenheit• Did you know that Gabriel Fahrenheit was born in Gdansk (Danzig) in northern
Poland?
• ...
•Wrong conversion factors:static final double PIXEL_TO_INCH = 1 / 72;
double pixels = inches * PIXEL_TO_INCH
14 © 2007-2012 Creative Arts & Technologies
Eclipse UOMo
One Small Step…
Results with
Same Dimension Different Dimension
Binary Operations Binary Operations
add(double) or (long) root(int)
multiply(double) or (long) power(int)
divide(double) or (long) multiply(Unit)
compound(Unit) divide(Unit)
Unary Operations
inverse()
Unit-API | Operations
Bundles
• UOMo currently consists of• UOMo Core
• General parts of the framework, reusable components
• UOMo Util• Utility classes, Formatting, Date/Time and other ICU4J or Unicode
related items
• UOMo XML• XMLPull and support for Markup Languages like UnitsML, MathML
or SensorML
Eclipse UOMo
17 © 2007-2011 Creative Arts & Technologies
Bundles (2)
• UOMo Units• Based on Units of Measurement API
• UOMo UCUM• Unified Code for Units of Measure support
• UOMo Business• Business Types and Monetary System
Eclipse UOMo
18 © 2007-2012 Creative Arts & Technologies
Unified Code for Units of Measure
The Unified Code for Units of Measure is inspired byand heavily based on
• ISO 2955-1983
• ANSI X3.50-1986
• HL7's extensions called ISO+
UOMo UCUM
19 © 2007-2012 Creative Arts & Technologies
HL7 DSL
20 © 2007-2012 Creative Arts & Technologies
def mySegment = ... // assignment to another NK1 segment instance
def group = message.PATIENT_RESULT(0).PATIENT
group.NK1(0) = 'abc' // syntax error!
msg1.NK1(0) = mySegment // syntax error!
msg1.NK1(0).from(mySegment) // works!
def nk1 = message.PATIENT_RESULT(0).PATIENT.NK1(0)
def otherNk1 = message.PATIENT_RESULT(0).PATIENT.NK1(0)
nk1[4] = otherNk1[4] // copy address
nk1[4][4] = otherNk1[4][4] // copy state or province only
nk1[4][4].from(otherNk1[4][4])// equivalent
nk1[4][4] = 'NY' // set state or province directly
DEMO
UOMo Examples
STEM is Open Sourcehttp://www.eclipse.org/stem/downloads.php
22
Epidemiological Compartment Models
S E I R
Births
Deaths
S I R
Births
Deaths
Standard SEIR model Standard SIR model
S: susceptible
E: exposed but not yet infectious
I: infectious
R: recovered
STEM is a Framework
Swine FluHuman Flu
“Mixing Cell
The Many Vectors of Infectious Disease
Common
Border Edges
Interstate Highway Edges
Air Travel Edges
US Counties (3109) Edges
Masks
No Air travel
Vaccinate
?
HCN/HL7
Weather
Air Traffic
Multiple parallel scenarios identically initialized from current real world conditions and simulate each simultaneously forward in time.
Masks/No Air
Goal: Evaluation of Public Health Policies
26
as initial condition
Simulations Based on ICDC Influenza Data
Recent H1N1 Outbreak
DEMO
STEM in Action
VISION OF OPEN HEALTH TOOLS
Vision: To enable a ubiquitous ecosystem where members of the Health and IT professions can collaborate to build open, standards-based interoperable systems that enable patients and their care providers to have access to vital and reliable medical information at the time and place it is needed.
Community of Open Source Technology Developers
Community of Health Professionals
Community of VendorsConsumers
Providers
Patients
Physicians
Community of National Health Services
Community of Regional, State and LocalHealth Services
Community of Standards Organizations
OHT | Stakeholder Communities
31
■ Adopt recognized industry standards and best practices in services. Maintain close working relationships with identified SDOs Provide feedback to SDOs via early adopter program and communities to
foster creation of useful, usable healthcare standards that address real healthcare requirements.
Strategy:
Important SDOs:■ HL7: CCD, Semantics, Documents, Services■ OMG: technical specifications of services■ IHE: pragmatic community for adoption■ IHTSDO (SNOMED): Semantics, terminology definitions for healthcare■ ASTM: CCR / CCD specifications■ ISO/CEN/HL7: EHR requirements and specifications■ ISO
OHT | Approach to Standards
32
Application Design
Business Use Case
Clinical Use Case
Clinical Content Model
Clinical Templates
Clinical Archetypes
Reference Model, Types, Terminology
OHT | Clinical Application Layers
33
Eclipse Open Source Community
Eclipse Foundation
Eclipse Eco-system
The Eclipse Foundation Enable & Manage Eclipse
-Infrastructure Support
-Intellectual Property
-Legal
-Marketing
-Enable Eco-system
-Enable Open Source
The Eclipse Eco-system The community takes the Open Source Technology and build products for profit and use.
The community includes 800,000 vendors and organizations, 10 Leadership Projects, 150 Members, in 120 countries project.
The economic value of the “free” code is $700,000,000 (USD). The commercial value of the revenue generated to members is in excess of 2 Billion (USD)
The Eclipse Open Source The community builds the technology has over 4 million developers and 120 open source projects. These projects can be conceptually organized into seven different "pillars" or categories: -Enterprise Development -Embedded and Device Development -Rich Client Platform -Rich Internet Applications -Application Frameworks -Application Lifecycle Management (ALM) -Service Oriented Architecture (SOA)
OHT | Based upon Eclipse Experience
Open Health Tools Eco-system
Eclipse Eco-system
Eclipse Open Source Community
Open Health Tools
Open Source Community
Non-EclipseOpen Source Community
Private PublicCommercialApplicationsCode & Data
The Open Health Tools Open Source
The community builds common services, frameworks, exemplary tools and example applications.
For example:
Record Locator Services & Hl7 Messaging Terminology Services & Identity Management
The Open Health Tools Eco-system
The community takes the Open Health Tools Technology and builds, packages, and sells the technology as products, applications, tools, for profit and use.
OHT | Communities
35
Q & ALet‘s talk
Eclipse – Project UOMo
http://www.eclipse.org/uomo/
Units of Measurement API
http://www.unitsofmeasurement.org
UCUM
http://www.unitsofmeasure.org
Links
Eclipse STEM
http://www.eclipse.org/stem
Open Health Tools
http://www.openhealthtools.org/
OpenHealth Project
http://www.openhealth.org
Links (2)
Contact
or
Twitter: @wernerkeil
Hashtag #EclipseUOMo