Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
The OHF Legacy
Eclipse UOMo, STEM and Open
Health Tools
          Werner Keil

         Eclipse Day Kraków
         13th September 2012
UOMo         STEM   Open Health Tools



2   © 2007-2012 Creative Arts & Technologies          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&A
3   © 2007-2012 Creative Arts & Technologies
Who am I?
Werner Keil


                 • Consultant – Coach
                 • Creative Cosmopolitan
                 • Open Source Evangelist
                 • Software Architect
                 • Java Godfather
                 • UOMo Project Lead
                 • …



                     Twitter @wernerkeil

4   © 2007-2012 Creative Arts & Technologies
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 Missile
  The cause was an inaccurate calculation of the
  time since boot due to a computer arithmetic error.
• Ariane 5 Explosion
  The 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
What do these disasters have in common?
• 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 3 rd party contractors are involved or projects are
         developed Offshore




7   © 2007-2012 Creative Arts & Technologies
NASA “Star Wars” Initiative, 1983
                                               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.




8   © 2007-2012 Creative Arts & Technologies
1985




             Mirror on underside of            SDI Experiment:
                     shuttle
                                               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…
  Despite their name
• 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.




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…
Unit-API | Operations


   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()
Eclipse UOMo

          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

17   © 2007-2011 Creative Arts & Technologies
Eclipse UOMo

          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



18   © 2007-2012 Creative Arts & Technologies
UOMo UCUM

          Unified Code for Units of Measure
          The Unified Code for Units of Measure is inspired by
           and heavily based on
          • ISO 2955-1983
          • ANSI X3.50-1986
          • HL7's extensions called ISO+



19   © 2007-2012 Creative Arts & Technologies
HL7 DSL
     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

20   © 2007-2012 Creative Arts & Technologies
UOMo Examples




  DEMO
STEM is Open Source
http://www.eclipse.org/stem/downloads.php
STEM is a Framework
  Epidemiological Compartment Models
    Standard SEIR model                         Standard SIR model


 Births                                       Births


          S     E       I      R                        S     I      R
                                     Deaths                              Deaths
                    S: susceptible
                    E: exposed but not yet infectious
                    I: infectious
                    R: recovered
The Many Vectors of Infectious Disease

     Human Flu                  Swine Flu




                 “Mixing Cell
US Counties (3109) Edges
                             Common
                           Border Edges

                                   Interstate Highway
                                          Edges




        Air Travel Edges
Goal: Evaluation of Public Health Policies
                                                         Masks



                                                      No Air travel


HCN/HL7

Weather                                                Vaccinate


Air Traffic
                                                      Masks/No Air

Multiple parallel scenarios identically initialized
from current real world conditions and simulate
each simultaneously forward in time.                       ?
Simulations Based on ICDC Influenza Data
as initial condition
Recent H1N1 Outbreak
STEM in Action




  DEMO
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.
OHT | Stakeholder Communities

                            Community of Health
                            Professionals



   Community of National                             Community of Vendors
   Health Services               Consumers
                                 Providers
                                 Patients
   Community of Regional,
   State and Local               Physicians          Community of Open Source
   Health Services                                   Technology Developers


                            Community of Standards
                            Organizations
OHT | Approach to Standards

    Strategy:
     ■   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.

     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 | Clinical Application Layers


            Business Use Case


           Clinical Use Case


          Clinical Content Model
                                             Application Design

            Clinical Templates


            Clinical Archetypes


       Reference Model, Types, Terminology
OHT | Based upon Eclipse Experience

                                                                            The Eclipse Eco-system
           Eclipse Open Source Community                                    The community takes the Open Source Technology and
                                                                            build products for profit and use.
                                                                            The community includes 800,000 vendors and
               Eclipse Foundation                                           organizations, 10 Leadership Projects, 150 Members, in
                                                                            120 countries project.
                                                                            The economic value of the “free” code is $700,000,000
                Eclipse Eco-system                                          (USD). The commercial value of the revenue generated
                                                                            to members is in excess of 2 Billion (USD)




 The Eclipse Open Source                                                    The Eclipse Foundation
                                                                            Enable & Manage Eclipse
 The community builds the technology
 has over 4 million developers and 120 open source projects. These            -Infrastructure Support
 projects can be conceptually organized into seven different "pillars" or     -Intellectual Property
 categories:
                                                                              -Legal
   -Enterprise Development
                                                                              -Marketing
   -Embedded and Device Development
   -Rich Client Platform                                                      -Enable Eco-system
   -Rich Internet Applications                                                -Enable Open Source
   -Application Frameworks
   -Application Lifecycle Management (ALM)
   -Service Oriented Architecture (SOA)
OHT | Communities

                                               Open Health Tools
                                               Open Source Community



                                             Open Health Tools
                 Private Public                                                         Non-Eclipse
                                             Eco-system
                 Commercial                                                             Open
                 Applications                                                           Source
                 Code & Data           Eclipse Open Source Community                    Community


                                              Eclipse Eco-system



The Open Health Tools Open Source                                  The Open Health Tools Eco-system
The community builds common services, frameworks,                  The community takes the Open Health Tools
exemplary tools and example applications.                          Technology and builds, packages, and sells the
  For example:                                                     technology as products, applications, tools, for
Record Locator Services & Hl7 Messaging                            profit and use.
Terminology Services & Identity Management
Let„s talk

Q&A
Links

   Eclipse – Project UOMo
   http://www.eclipse.org/uomo/


   Units of Measurement API
   http://www.unitsofmeasurement.org


   UCUM
   http://www.unitsofmeasure.org
Links (2)

   Eclipse STEM
   http://www.eclipse.org/stem

   Open Health Tools
   http://www.openhealthtools.org/


   OpenHealth Project
   http://www.openhealth.org
Contact

          werner@catmedia.us
                   or
          uomo@catmedia.us


          Twitter: @wernerkeil
          Hashtag #EclipseUOMo

More Related Content

The OHF Legacy

  • 1. The OHF Legacy Eclipse UOMo, STEM and Open Health Tools Werner Keil Eclipse Day Kraków 13th September 2012
  • 2. UOMo STEM Open Health Tools 2 © 2007-2012 Creative Arts & Technologies Images based on © Universal Pictures
  • 3. 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&A 3 © 2007-2012 Creative Arts & Technologies
  • 4. Who am I? Werner Keil • Consultant – Coach • Creative Cosmopolitan • Open Source Evangelist • Software Architect • Java Godfather • UOMo Project Lead • … Twitter @wernerkeil 4 © 2007-2012 Creative Arts & Technologies
  • 5. 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
  • 6. What do these disasters have in common? • Patriot Missile The cause was an inaccurate calculation of the time since boot due to a computer arithmetic error. • Ariane 5 Explosion The 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
  • 7. What do these disasters have in common? • 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 3 rd party contractors are involved or projects are developed Offshore 7 © 2007-2012 Creative Arts & Technologies
  • 8. NASA “Star Wars” Initiative, 1983 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. 8 © 2007-2012 Creative Arts & Technologies
  • 9. 1985 Mirror on underside of SDI Experiment: shuttle The Plan Big mountain in Hawaii 9 © 2007-2012 Creative Arts & Technologies
  • 10. 1985 SDI Experiment: What really happened 10 © 2007-2012 Creative Arts & Technologies
  • 11. 1985: What happened? 11 © 2007-2012 Creative Arts & Technologies
  • 12. Unit Tests wouldn„t find these… Despite their name • 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. 13 © 2007-2012 Creative Arts & Technologies
  • 13. 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
  • 14. Eclipse UOMo One Small Step…
  • 15. Unit-API | Operations 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()
  • 16. Eclipse UOMo 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 17 © 2007-2011 Creative Arts & Technologies
  • 17. Eclipse UOMo 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 18 © 2007-2012 Creative Arts & Technologies
  • 18. UOMo UCUM Unified Code for Units of Measure The Unified Code for Units of Measure is inspired by and heavily based on • ISO 2955-1983 • ANSI X3.50-1986 • HL7's extensions called ISO+ 19 © 2007-2012 Creative Arts & Technologies
  • 19. HL7 DSL 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 20 © 2007-2012 Creative Arts & Technologies
  • 21. STEM is Open Source http://www.eclipse.org/stem/downloads.php
  • 22. STEM is a Framework Epidemiological Compartment Models Standard SEIR model Standard SIR model Births Births S E I R S I R Deaths Deaths S: susceptible E: exposed but not yet infectious I: infectious R: recovered
  • 23. The Many Vectors of Infectious Disease Human Flu Swine Flu “Mixing Cell
  • 24. US Counties (3109) Edges Common Border Edges Interstate Highway Edges Air Travel Edges
  • 25. Goal: Evaluation of Public Health Policies Masks No Air travel HCN/HL7 Weather Vaccinate Air Traffic Masks/No Air Multiple parallel scenarios identically initialized from current real world conditions and simulate each simultaneously forward in time. ?
  • 26. Simulations Based on ICDC Influenza Data as initial condition
  • 29. 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.
  • 30. OHT | Stakeholder Communities Community of Health Professionals Community of National Community of Vendors Health Services Consumers Providers Patients Community of Regional, State and Local Physicians Community of Open Source Health Services Technology Developers Community of Standards Organizations
  • 31. OHT | Approach to Standards Strategy: ■ 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. 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
  • 32. OHT | Clinical Application Layers Business Use Case Clinical Use Case Clinical Content Model Application Design Clinical Templates Clinical Archetypes Reference Model, Types, Terminology
  • 33. OHT | Based upon Eclipse Experience The Eclipse Eco-system Eclipse Open Source Community The community takes the Open Source Technology and build products for profit and use. The community includes 800,000 vendors and Eclipse Foundation organizations, 10 Leadership Projects, 150 Members, in 120 countries project. The economic value of the “free” code is $700,000,000 Eclipse Eco-system (USD). The commercial value of the revenue generated to members is in excess of 2 Billion (USD) The Eclipse Open Source The Eclipse Foundation Enable & Manage Eclipse The community builds the technology has over 4 million developers and 120 open source projects. These -Infrastructure Support projects can be conceptually organized into seven different "pillars" or -Intellectual Property categories: -Legal -Enterprise Development -Marketing -Embedded and Device Development -Rich Client Platform -Enable Eco-system -Rich Internet Applications -Enable Open Source -Application Frameworks -Application Lifecycle Management (ALM) -Service Oriented Architecture (SOA)
  • 34. OHT | Communities Open Health Tools Open Source Community Open Health Tools Private Public Non-Eclipse Eco-system Commercial Open Applications Source Code & Data Eclipse Open Source Community Community Eclipse Eco-system The Open Health Tools Open Source The Open Health Tools Eco-system The community builds common services, frameworks, The community takes the Open Health Tools exemplary tools and example applications. Technology and builds, packages, and sells the For example: technology as products, applications, tools, for Record Locator Services & Hl7 Messaging profit and use. Terminology Services & Identity Management
  • 36. Links Eclipse – Project UOMo http://www.eclipse.org/uomo/ Units of Measurement API http://www.unitsofmeasurement.org UCUM http://www.unitsofmeasure.org
  • 37. Links (2) Eclipse STEM http://www.eclipse.org/stem Open Health Tools http://www.openhealthtools.org/ OpenHealth Project http://www.openhealth.org
  • 38. Contact werner@catmedia.us or uomo@catmedia.us Twitter: @wernerkeil Hashtag #EclipseUOMo