Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

29
© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623 Overview Presentation for OSHERA Architecture Working Group 5 Nov 2013 Technical Team: Andy Gregorowicz, Dave Hill, Andrew Hubley, Salim Semy Outcome Leads: Mary Pulvermacher, Mike Dowe Task Outcome: Technical contributions to accelerate open source VistA’s ability to successfully serve our nation and share information with entities that do not use VistA Open Source VistA Developer Toolkit (Working title: VistA Novo)

description

Open Sourc e VistA Developer Toolkit (Working title: VistA Novo). Overview Presentation for OSHERA Architecture Working Group 5 Nov 2013 Technical Team: Andy Gregorowicz , Dave Hill, Andrew Hubley , Salim Semy Outcome Leads: Mary Pulvermacher , Mike Dowe - PowerPoint PPT Presentation

Transcript of Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

Page 1: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

© 2013 The MITRE Corporation. All rights reserved.Approved for Public Release; Distribution unlimited. 13-3623

OverviewPresentation for OSHERA Architecture Working Group5 Nov 2013

Technical Team: Andy Gregorowicz, Dave Hill, Andrew Hubley, Salim Semy

Outcome Leads: Mary Pulvermacher, Mike Dowe

Task Outcome: Technical contributions to accelerate open source VistA’s ability to successfully serve our nation and share information with entities that do not use VistA

Open Source VistA Developer Toolkit(Working title: VistA Novo)

Page 2: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 2 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Outline

VistA Novo Conceptual Overview– Problem– Key Principles– Using VistA Novo– Deploying a VistA Novo based

app– Key Technical Principles– VistA Novo Developer Toolkit

Unified Architecture– VSA – VistA Novo Relationship– Unified Architecture: The Big

Picture– Unified Architecture Value

VistA Novo Proof of Concept– Proof of Concept Use Case– Blood Pressure Use Case– VistA Novo Use Case

Architecture– Use Case Sequence with Test

Stub– Planned Implementation– Security Approach– Planned Products– Schedule

Conclusion– Anticipated Results– Summary

Page 3: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

© 2013 The MITRE Corporation. All rights reserved.Approved for Public Release; Distribution unlimited. 13-3623

| 3 |

Vi s t A N o v o C o n c e p t u a l O v e r v i e w

VistA Novo Overview

Page 4: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 4 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Problem

VistA is a robust software product, but daunting to beginners– Development environment and interfaces are obscure– Often frustrates potential new users before they can see VistA’s potential

The current VistA environment hinders a healthy open source ecosystem– Simply setting up an instance of VistA and adding a patient can take hours to days for a novice

user MUMPS skills are difficult to find

– Developers and organizations typically don't know MUMPS and new developers are reluctant to invest in MUMPS

– Recent pushes for everyone to learn to code, from places like Code Academy, are creating a new wave of developers in modern, scripting languages

Current technologies offer a wealth of tools and services advantages not available with MUMPS– Automated testing and support for Behavior Driven Development (BDD)

Including the ability to track the exact code covered by the tests– Performance tuning– Rich open source library and tool ecosystem

Support for health standards, newest web technologies

Page 5: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 5 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Key Principles

Make VistA an attractive project for open source developers– Most open source projects have a way to let new users get something up and running in less than 30

minutes– Open source developers have their choices for EHR systems

OpenMRS, OpenEHR and others– A healthy open source ecosystem will benefit the VA, iEHR and the nation

Allow for the creation of new capabilities in VistA using current software development languages and tools– Leverage current talent pool and modern software tools and services to create a healthy open source

ecosystem Use what is available

– Don’t reinvent the wheel– Leverage projects that are working on incorporating current development tools into the MUMPS/VistA

environment Keep it Open

– All code and documentation must be open to allow a community to function– Dependencies on commercial software inhibit newcomers and low resource parties

Be Transparent– Transparently share to invite ideas, advice, support and contribution– Leverage collective intelligence of the open source community

Page 6: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 6 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Using VistA Novo

Work with the VistA Novo Test Stub to create your test health data

Build your application in JavaScript

Work with clinical data using FHIR services

Test using Jasmine to follow Behavior Driven Development (BDD) best practices

Use tools like HRCov for code coverage and NewRelic for performance tuning

Technology Details

Page 7: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 7 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Deploying a VistA Novo based app

Create your application using

VistA Novo

Package the application

Deploy the stand alone application• Communicates with

an existing VistA installation using VistA based services

Share stand alone application

with OSS community

Page 8: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 8 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Key Technical Principles

Robust test suites enable correctness, confidence, and software evolution – All software should have robust, automated, repeatable testing.– This enables change in software. Developers more confidently

make changes if they are provided with some assurance that they haven’t broken other pieces of the software.

Keep it Simple – Create the most simple implementation possible. Do not implement a feature until it is required.

Use Design Patterns – Create software solutions that follow well accepted patterns. This will increase familiarity for developers.

Developers First – Modern toolkits hide mundane code/tasks from developers. This toolkit should focus on developer convenience, leading toward greater productivity.

Page 9: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 9 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

VistA Novo Developer Toolkit

An open source toolkit for building VistA-based applications using mainstream development environments– Initially JavaScript (node.js); Other environments (e.g., Ruby

(Rails), Python (Django)) could be added later Run-time features

– Health data standards support (CCDA, FHIR) Design-time features

– VistA service testing stub utility to mock prospective behavior of new services that don’t yet exist, allowing parallel application development

CCDA = Consolidated Clinical Document ArchitectureFHIR = Fast Health Interoperable Resource

Page 10: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

© 2013 The MITRE Corporation. All rights reserved.Approved for Public Release; Distribution unlimited. 13-3623

| 10 |

U n i f i e d A r c h i t e c t u r e

VistA Novo Overview

Page 11: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 11 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

VSA – VistA Novo Relationship

VSA Wizard

Internal VA Services

External Authoritative Services

Vista Based ServicesGenerates

Uses

Vista Novo

VistA Service Assembler (VSA)– Provide utilities to build VistA Based Services as authoritative

services for use by other systems and technologies VistA Novo (Open Source VistA Developer Toolkit)

– Proof-of-concept open source toolkit for building VistA-based applications using mainstream development environments

Page 12: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 12 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

VistA

Non-VistA System

VSA Wizard

Generates

FHIR

MITRE developing VistA Novo and VSA Service test

stub based on blood pressure use case

VSA team developing VSA Wizard tool

* VistA Novo will start as an open source project;VistA Novo = Open Source VistA Developer Toolkit

Unified Architecture: The “Big Picture”

SOAInfrastructure

VistA-Based Service

Mobile App VistA Novo*

App could call VistA-Based Services directly

Legend

App developer

Service dev

VA

MITRE

Other systemOptional

FHIR

Page 13: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 13 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Unified Architecture Value

Stakeholder Potential Value

Veteran• New tools for patient empowerment• Increased access to their own health data• Broader network of “connected” providers

Clinician

• Increased access to computable patient health data

• Tighter feedback loop to adjust care plan• Easier to collect, share and use health data

meaningfully• Better care at lower cost

Developer

• VistA innovation open to larger community• Ability to leverage mainstream technologies to

increase developer efficiency and decrease sustainment costs

• Better data interoperability via open standards

Page 14: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

© 2013 The MITRE Corporation. All rights reserved.Approved for Public Release; Distribution unlimited. 13-3623

| 14 |

Vi s t A N o v o P r o o f o f C o n c e p t

VistA Novo Overview

Page 15: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 15 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

VistA Novo Proof of Concept Use Case

Tests Unified Architecture Concepts– Selected to test key concepts of a unified architecture that combines an Open Source

VistA Developer Toolkit, VistA Based Services to access VistA data, and services to access other patient generated data (PGD)

Proposes Simple Blood Pressure Use Case– Simple proof-of-concept implementation– Use case proposed by VHA Office of Informatics & Analytics Patient Generated Data

(PGD) Connected Health Team in June 2013– Helps VA explore PGD topics

Serves up consolidated data using FHIR and simple CRUD interfaces– Reduces risk on use of FHIR (Fast Health Interoperable Resources), a fast emerging

health data exchange standard– Uses mobile friendly RESTful approach

Resources identified by URLs Uses standard set of stateless services (Create, Read, Update, Delete) to interact with resources Small learning curve

Demonstrates use of a test stub to mock the VistA Based Services allowing coordination on the interface to those access services

Page 16: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 16 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Blood Pressure Use CaseNotional Summary

Caveat: Notional summary for proof of concept implementation only; actual business processes and rules for Patient Generated Data (PGD) data to be defined by Veterans Health Administration (VHA)

Goals– Clinician: Demonstrate clinical value of access to PGD– Veteran: Motivate engagement in their own health– Technical: Inform cross-platform data standardization and

interoperability efforts Steps

– Veteran enters PGD data Veteran monitors blood pressure (BP) at home Veteran enters BP data using VA mobile subscription service to populate PGD

database; Data saved to PGD store with sharing allowed

– Clinician (e.g., Nurse) pulls PGD data as needed– Clinical team makes treatment decision

Page 17: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 17 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Mobile Apps

Open Source

Services

Things we haven’t

thought of

VistA Based Applications

PGD Database

VistA

Other Data Sources

Data Sources

ServiceInvocation

Data Storage

FHIRServices

Simple CRUD interface allows for easy development

and surprisingly sophisticated applications

Only used for caching

Pluggable back end that can be

adapted to other services

PGD Service

VistABased

Service*

Other Services

FHIR

FHIR

FHIR

VistA Novo

*VistA Based Services may be generated using VistA Service Assembler (VSA)

VistA Novo Use Case Production Architecture

Page 18: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 18 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Mobile Apps

Open Source

Services

Things we haven’t

thought of

VistA Based Applications

ServiceInvocation

Data Storage

FHIRServices

Simple CRUD interface allows for easy development

and surprisingly sophisticated applications

Only used for caching

Pluggable back end that can be

adapted to other services

FHIR

FHIR

FHIR

VistA Novo

VistA Novo Use Case Design Time Architecture

Test Data

Test Stub

Test Data Creation

User Interface

Mock Services

User enters syntheticblood pressure

readings for testing

Page 19: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 19 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

ServiceInvocation

Data Storage

FHIRServices

Test Data

Test Stub

Test Data Creation

User Interface

Mock Services

VistA Novo

1

234

5 6 7

Data Storage checks for data & invokes

a service toretrieve observations

FHIR Services check Data Storage for observation

External application requests

observations via FHIR

Test Stub returns synthetic BP

readings

Synthetic BP readings are cached in Data Storage

Observations are served through

the FHIR interface from Data Storage

User enters synthetic

blood pressure readings for testing

Blood Pressure (BP) Use Case Sequencewith VistA Novo Test Stub

Page 20: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 20 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

VistA Novo Proof of ConceptPlanned Implementation VistA Novo Framework

– JavaScript Implementation Data Storage and FHIR Services generated with the help of HL7

tooling– JSON representations of resources

Ease of creation in JavaScript environment XML representation is out of scope

Test Stub for Proof of Concept Use Case (BP Service)– Ruby on Rails application– Mock implementation of BP service

RESTful service with JSON payload– Web-Based User Interface

Enter/edit patient demographics and BP readings Can incorporate new data models with minimal effort (rails_admin)

VistA Based Application – out of scope– No client development– Will simulate using HTTP utilities

Test Data Creation

User Interface

Mock Services

Test Data

ServiceInvocation

Data Storage

FHIRServices

Mobile Apps

Open Source

Services

Things we

haven’t thought

of

Page 21: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 21 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

ServiceInvocation

Data Storage

FHIRServices

Test Data

Test Stub

Test Data Creation

User Interface

Mock Services Mock Service Calls

CRUD FHIR calls on patient data

Web User InterfaceUse to enter synthetic BP readings for testing

VistA Novo BP Use CasePlanned Implementation Graphic

Mock Authoritative VistA Based Services• Get BP (RESTful API)

• VistA or PGD data• Set BP (RESTful API)

• PGD dataUse HTTP utility, such as

cURL, Poster, etc. to invoke FHIR service and

view results

FHIR Services• Get Observation

(RESTful API)• Set Observation

(RESTful API)

VistA Novo Framework

Page 22: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 22 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

generates

VistA Novo Technical Architecture

Test Stub VistA Novo Framework

DB Tools: Mongoose

Runtime: JavaScript

HTTP Client: Restlet

Database:

Service API: FHIR

Runtime: Ruby

Database:

Web UI: Rails Admin

HL7 FHIR Code

Generator

Mock Service API

C#module

App Server:

Web Framework:

MITRE creates and donates back to HL7

Delphimodule

JavaScript module

Javamodule

To be built

Page 23: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 23 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

VistA Novo Proof of ConceptSecurity Approach Summary

– Using simplistic approach for proof of concept Defer security implementation Use security component of underlying VistA Based Services

– Consider features of future RESTful approach Proof of Concept Approach

– Send authentication information to VistA Based Service– Assume Patient id is a string that can be used as a FHIR identifier and VistA Record IEN/SID– Use HTTP Basic Authentication to authenticate services for now– Assume that authorization will happen at the data source

Test stub assumes that authentication is equal to authorization Possible future RESTful approach

– Secure communications using https– Use proven open standards for identity management as well as user and service authentication

OpenID Connect for distributed identity management and user authentication OAuth 2 for service to service authentication

– Enforce privacy at the provider location at the time the information is requested– Leverage approach profiled by RESTful Health Exchange (RHEx) wiki.siframework.org/RHEx

Original proof of concept sponsored by ONC Federal Health Architecture (FHA) Endorsed by ONC Health IT Standards Committee, 19 June 2013

Page 24: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 24 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Planned Products

Open Source VistA Community Engagement Artifacts– Proof of concept source code on GitHub– Developer documentation on Wiki– Online discussions on mailing lists– WebEx presentations

Proof-of-Concept Source Code– Pathfinder capabilities for an open source VistA developer toolkit

Sufficient source code to verify the toolkit approach viability Not all features will be complete

– FHIR Services to expose VistA data– A backend that can invoke VistA-based services to populate FHIR-

based data models– A testing stub to simulate the VistA Based Services

Page 25: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 25 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

VistA Novo Schedule

AugSept Oct

NovDec

Jan

Create service invocation framework

Test Stub feature complete

Open Source VistA Services Collab Session

VistA Novo Release 1.0

Build FHIR generator in Java using HL7 tools

FHIR support feature complete

VistA Novo Demo

Create mock BP service

Create framework for building new stubs

Create UI for setting test stub data

Test Stub Development

FHIR Development

10/11

11/8

11/15

11/22

11/15

12/6

12/201/14

12/138/21

Page 26: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

© 2013 The MITRE Corporation. All rights reserved.Approved for Public Release; Distribution unlimited. 13-3623

| 26 |

C o n c l u s i o n

VistA Novo Overview

Page 27: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 27 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Anticipated Results

Evidence on Open Source VistA Developer Toolkit viability– Founded on actual experience– Demonstrating the use of mainstream development technologies

Proof-of-concept open source developer toolkit software Risk reduction on the use of FHIR: a rapidly emerging HL7 standard Easier extension and modification of the VistA Platform

– Avenue for innovative applications using VistA data & business logic– Greater utilization of VistA’s vast feature set by the community– Easier integration through tooling for Health IT standards

Greater participation in the VistA community from new developers– Lower barrier to entry especially for small and resource constrained

organizations– Ability to leverage community innovation & dominant IT skills available

Significant step toward VA ASD targeted outcomeTargeted Outcome: Technical contributions to accelerate open source VistA’s ability to successfully serve our nation and share information with entit ies that do not use VistA

Page 28: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 28 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

Summary

VistA Novo is a VA ASD sponsored proof-of-concept for an open source VistA developer toolkit– Built open– Using open source perspective– Using mainstream development technologies

Intended to demonstrate the viability of a unified architecture that tests and uses authoritative VistA Based Services

Including excellent partnership with OSEHRA to engage and encourage broader Open Source VistA community involvement

Page 29: Open Sourc e VistA Developer Toolkit (Working title: VistA Novo)

| 29 |

© 2013 The MITRE Corporation. All rights reserved. Approved for Public Release; Distribution unlimited. 13-3623

More Information

Mailing List: [email protected]  Code Repositories:

– Test Stub: https://github.com/OSEHRA/vista-novo-test-stub– FHIR Implementation: https://github.com/OSEHRA/vista-novo-fhir

Wiki: http://wiki.osehra.org/display/VN/VistA+Novo+Home Issue Tracking: http://issues.osehra.org/browse/VN