osehra conference 2015: ewd.js - the future starts here
Post on 17-Aug-2015
88 Views
Preview:
TRANSCRIPT
Copyright © 2015 M/Gateway Developments Ltd
EWD.jsThe Future Starts Here
Rob Tweed
Twitter: @rtweedrob.tweed@gmail.com
http://www.mgateway.com
Copyright © 2015 M/Gateway Developments Ltd
What if…
• EWD.js was adopted at the VA?
• What's the view like from up there?
Copyright © 2015 M/Gateway Developments Ltd
EWD.js: the bigger picture
• What does it make possible?• A glimpse of the vision behind EWD.js
Copyright © 2015 M/Gateway Developments Ltd
What is EWD.js
• Development framework
• Run-time platform
http://ewdjs.com
Copyright © 2015 M/Gateway Developments Ltd
What is EWD.js
• Development framework– Client-server applications in the browser– Web Services– Legacy Mumps application modernisation
• Run-time platform
Copyright © 2015 M/Gateway Developments Ltd
What is EWD.js
• Development framework
• Run-time platform– Node.js-based application server– Web Server– Integrated JSON database
• Caché, GT.M, GlobalsDB, MongoDB
Copyright © 2015 M/Gateway Developments Ltd
EWD.js key features
• 100% JavaScript– Browser– Back-end (business logic): Node.js
• 100% JSON-based data– Browser– Back-end– Database
• Legacy Mumps code can be accessed from Node.js• High performance
– Node.js– In-process interface to database
• Highly scalable– stateless
Copyright © 2015 M/Gateway Developments Ltd
Current VistA
VistA
Caché
VistA Server
Roll & Scroll
RPC BrokerCPRS
RPCsFileMan
Sta
tefu
l
Copyright © 2015 M/Gateway Developments Ltd
EWD.js-enabled VistA
EWD.js
VistA
Caché
Node.jsVistA Server
cache.node
Roll & Scroll
RPC BrokerCPRS
RPCsFileMan
Interface functions
WebServiceClients
HTTPS +HMAC
SHA256
Sta
tefu
l
JavaScript /Node.jsbusiness logic
Sta
tele
ss
Copyright © 2015 M/Gateway Developments Ltd
VistACaché
EWD.jsApplication
Server
Caché
nginx
EWD.jsApplication
Server
Caché
EWD.jsApplication
Server
Caché
EC
PN
etworking
Mapped globalsfor shared EWD Sessions
& VistA data
Mapped VistAroutines
Inco
min
gW
eb S
ervi
ceT
raff
ic
Scaling Out
Copyright © 2015 M/Gateway Developments Ltd
Federated access across the VA?
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
HTTP-basedWeb Service
REST-basedService
Back-endServers
HTTP
REST
HMAC-SHA256
Signed HTTP
https://github.com/robtweed/ewd-federator
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
Aggregateresponses
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
Aggregateresponses
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
InterceptIncomingrequest
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
re-directInterceptIncomingrequest
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
InterceptIncomingresponse
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
InterceptIncomingresponse
re-direct
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
Aggregateresponses
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.Mpersistent JSON cacheing, storage
Node.jsRESTClients
RE
ST
Re
qu
est
s
EWD.jssystem
Back-endServers
EWD.jssystem
EWD.jssystem
EWD.jssystem
Aggregateresponses
VistA
VistA
VistA
VistA
Copyright © 2015 M/Gateway Developments Ltd
So that's REST…What about browser-based apps?
Copyright © 2015 M/Gateway Developments Ltd
ewd-
fede
rato
r
EWD.jsApplication
Server
EWD.js
Vis
tA
EWD.js
Vis
tA
Site 1
Site 2
EWD.js
Vis
tA
Site 3
RESTBrowser
Web
S
ocke
ts
HTTPWeb
Services
Copyright © 2015 M/Gateway Developments Ltd
All good stuff, but
It's the narrow, technical perspective on why EWD.js
Can be considered to be just one potential option
Copyright © 2015 M/Gateway Developments Ltd
Copyright © 2015 M/Gateway Developments Ltd
Benefits to the VA
• Single language skill– JavaScript
Copyright © 2015 M/Gateway Developments Ltd
Benefits to the VA
• Single language skill– JavaScript
• Controlled migration:– from rare Mumps development resources– To readily-available JavaScript developers
Copyright © 2015 M/Gateway Developments Ltd
Benefits to the VA
• Single language skill– JavaScript
• Controlled migration:– from rare Mumps development resources– To readily-available JavaScript developers– One-off interfacing of core VistA functionality
via JavaScript functions
Copyright © 2015 M/Gateway Developments Ltd
Browsers
JavaScript
Node.js
React Native
Copyright © 2015 M/Gateway Developments Ltd
Browsers
JavaScript
Node.js
React Native
There's never been a more exciting time to be in IT
And all the big innovations and developments are focusedIn these 4 areas
Copyright © 2015 M/Gateway Developments Ltd
JavaScript:
Now the world's most popular language
Already huge, and only getting bigger
Copyright © 2015 M/Gateway Developments Ltd
Node.js:
JavaScript on the server
There's a module for everything!
Tap into a huge and growing poolof innovations
Copyright © 2015 M/Gateway Developments Ltd
Browsers:
The ubiquitous desktop client
The target UI for all new applications
Copyright © 2015 M/Gateway Developments Ltd
So, browser-based VistA Apps
The right way to go?
Copyright © 2015 M/Gateway Developments Ltd
• Myth #1: Browser UIs just aren't good enough for clinical/medical apps• Myth #2: Browsers and web technologies aren't fast enough / too much latency• Myth #3: Browsers and web technologies aren't secure enough
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
It seems they're good enough for everyone else
There's nothing a browser can't do these daysThe days of being limited to simple pages were decades ago
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
Do you use:
• Google Docs• Microsoft Office 365 • Do you bank, shop, watch videos, etc on your browser at home?
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
• Sophisticated graphics: • 2-d - charts, graphs – updated in real-time• 3-d eg http://data-arts.appspot.com/globe/
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
See the work of Astute SemanticsVistA modernisation using EWD.js
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
Copyright © 2015 M/Gateway Developments Ltd
•Myth #2: Browsers and web technologies aren't fast enough / too much latency
Are the following hopelessly slow for you?
• Amazon• EBay• Google
• Do you watch Netflix or YouTube in your browser?
Copyright © 2015 M/Gateway Developments Ltd
•Myth #2: Browsers and web technologies aren't fast enough / too much latency
Demonstrations showing federated access to multipleVistA systems using ewd-federator and EWD.js:
Sub-second response
Asynchronous pre-emptive data fetching based on usage statistics
Copyright © 2015 M/Gateway Developments Ltd
•Myth #2: Browsers and web technologies aren't fast enough / too much latency
Copyright © 2015 M/Gateway Developments Ltd
•Myth #3: Browsers and web technologies aren't secure enough
It seems they're good enough for online banking….
Copyright © 2015 M/Gateway Developments Ltd
•Myth #3: Browsers and web technologies aren't secure enough
Copyright © 2015 M/Gateway Developments Ltd
The future is browser-shaped
• Web-sockets – used by EWD.js applications– Redefines the way you can think about browser apps– Server can send messages to the browser at any
time:• Alerts, message of the day
– Real-time graphing of clinical results on tablet browser by the bed-side
– Real-time bed state display– Cross-browser inter-communication between provider
and patient– Legacy green screen terminal in browser
• https://robtweed.wordpress.com/2014/03/04/vista-the-hackable-open-source-ehr-hackable-platform/
Copyright © 2015 M/Gateway Developments Ltd
The future is browser-shaped
• WebRTC– Real time communications– Skype-like behaviour in a browser, without
plug-ins• Video• Audio• File transfer
– Key to browser-based telemedicine
Copyright © 2015 M/Gateway Developments Ltd
Asm.js
• Subset of JavaScript that can be compiled and run at near native C++ speed in asm.js-enabled browsers
• Emscripten compiler• Being driven by the games industry
– Unreal Engine ported to run in browser, without plug-ins
– Try this:• http://www.flohofwoe.net/demos/dsomapviewer_asmjs.html
Copyright © 2015 M/Gateway Developments Ltd
The future is browser-shaped
Chromecast
• $35 Device from Google• Marketed as a video streaming
device for your TV• It actually has a lot more potential,
particularly in healthcare
Copyright © 2015 M/Gateway Developments Ltd
Chromecast Schematic
ChromeBrowser
Chrome OS
HD
MI O
utput
TVMonitor
Projector
Wire
less
Net
wor
kIn
terf
ace
Copyright © 2015 M/Gateway Developments Ltd
The future is browser-shaped
Chromecast
• Turns an HDMI-interfaced monitor or TV into a sophisticated, controllable display
https://robtweed.wordpress.com/2014/04/05/chromecast-understanding-its-potential/
Copyright © 2015 M/Gateway Developments Ltd
VistA Chromecast Applications
Chromecast
PC or Mac
Chrome
Chromecast
JavaScript APIs
SenderApplication
Wireless N
etwork
Chrome
HTML Page
ChromecastJavaScript APIs
EWD.jsApplication
EWD.js Application
JavaScript
EWD.js / Node.jsServer
EWD.js JavaScript
WebSocketmessaging
VistA
Copyright © 2015 M/Gateway Developments Ltd
The future is JavaScript-based
Costs $80
Copyright © 2015 M/Gateway Developments Ltd
What does it do?
Detects hand movementsand gestures in 3D areaabove and around the device
Copyright © 2015 M/Gateway Developments Ltd
How do you use it?
• USB Device• Move one or more hands
above it• Software can detect:
– Palms– Fingers & thumbs
• Including joints
– Position– Rotation in 3D
• Samples at whatever frequency you wish
• Sub-millimeter accuracy
• Program in JavaScript
http://osehra.org/sites/default/files/QuantitativeHandTremorTweed.pdf
Copyright © 2015 M/Gateway Developments Ltd
The future is JavaScript-shaped
The Internet of Things will be powered by JavaScript and Node.js
Copyright © 2015 M/Gateway Developments Ltd
React Native:
Facebook's Open Source solutionto the mobile app dilemma
Copyright © 2015 M/Gateway Developments Ltd
React Native:
Facebook's Open Source solutionto the mobile app dilemma
• How to effectively develop apps for:• desktop browsers• iOS mobile devices• Android devices
Copyright © 2015 M/Gateway Developments Ltd
React Native:
Facebook's Open Source solutionto the mobile app dilemma
• How to effectively develop apps for:• desktop browsers• iOS mobile devices• Android devices
• without 3 different skill-sets• JavaScript, HTML, CSS• Objective C, Swift• Java
Copyright © 2015 M/Gateway Developments Ltd
React Native:
Facebook's Open Source solutionto the mobile app dilemma
• How to effectively develop apps for:• desktop browsers• iOS mobile devices• Android devices
• without 3 different skill-sets• JavaScript, HTML, CSS• Objective C, Swift• Java
• or avoiding the compromises of• mobile browser apps• hybrid apps
Copyright © 2015 M/Gateway Developments Ltd
Copyright © 2015 M/Gateway Developments Ltd
Copyright © 2015 M/Gateway Developments Ltd
Copyright © 2015 M/Gateway Developments Ltd
ReactState Change
Re-renderVirtual DOM
iOSUIKit
Components
Standard React.js
JavaScriptCore
Copyright © 2015 M/Gateway Developments Ltd
ReactState Change
Re-renderVirtual DOM
iOSUIKit
Components
Standard React.js
JavaScriptCore
Copyright © 2015 M/Gateway Developments Ltd
• Creates truly Native Mobile Applications• Currently iOS only, but Android port due to
be released to Open Source any day• Mobile apps can be built by JavaScript
developers– Who can also create browser app equivalents
in the same way• Note:
– NOT write once, run everywhere– Learn Once, Write Anywhere
Copyright © 2015 M/Gateway Developments Ltd
React Native:
This is HUGE!Provides the mobile solutionthat the VA have beensearching for
EWD.js makes it possible for the VAto use React Native TODAY!
https://www.youtube.com/watch?v=zOIwTU6oPuo
Copyright © 2015 M/Gateway Developments Ltd
Further benefits to the VA
EWD.js
VistA
Caché
Node.jsVistA Server
cache.node
Roll & Scroll
RPC BrokerCPRS
RPCsFileMan
Interface functions
WebServiceClients
HTTPS +HMAC
SHA256
Sta
tefu
l
JavaScript /Node.jsbusiness logic
Sta
tele
ss
Free up serverresources
Copyright © 2015 M/Gateway Developments Ltd
Further benefits to the VA
• all EWD.js apps would work
• highly secure
• insignificant cost per device
• significantly simplify and reduce costs of security procedures
Copyright © 2015 M/Gateway Developments Ltd
Consequences for the VA
• ewd-federator:– Code distribution– Software update management– Synchronising configurations– Federated control over user privileges– Centralised performance monitoring /
dashboards
Copyright © 2015 M/Gateway Developments Ltd
Consequences for the VA
• ewd-federator:– Code distribution– Software update management– Synchronising configurations– Federated control over user privileges– Centralised performance monitoring /
dashboards• These are things the VA has been struggling to
find solutions for, for years
Copyright © 2015 M/Gateway Developments Ltd
What about the Open-Source VistA Community?
• Everything I've described applies to them also– All these capabilities and features are
available for GT.M-based versions of VistA
• Fully supports the original aims of OSEHRA
Copyright © 2015 M/Gateway Developments Ltd
So imagine if…
EWD.js was adopted at the VA..
Copyright © 2015 M/Gateway Developments Ltd
You really need to see the view from up here!
Copyright © 2015 M/Gateway Developments Ltd
EWD.jsThe Future Starts Here
Rob Tweed
Twitter: @rtweedrob.tweed@gmail.com
http://www.mgateway.com
top related