Chris Casey - Scheduler

Winning the prize
with EWD and Vista
CAMTA 2013
Chris Casey
The announcement
To encourage development of systems that help
Veterans schedule appointments to receive care
from the Veterans Health Administration and to
reduce risks in the future procurement and
deployment of those systems, the Secretary of
Veterans Affairs (VA) announces a prize contest
under Section 105 of the America COMPETES
Reauthorization Act of 2011, Public Law 111-358
(2011), 15 USC 3719 (the “Act”).
Too good to be True?
VA will award monetary prizes of as much as $3
Million to as many as three entrants that deliver
demonstration software or service which the
judges determine delivers the required
functionality and is compatible with Open
Source VistA, as described in this notice.
Why not
• We knew we had the right
– Node.js
– Sencha Ext.js framework
Reality Check
• The scale
– Probably at least 6 months work
• The Competition
– Very big players including BT,HP, CSC, etc
• The complexity
– Neither Rob or myself knew Vista
The Way Forward
• Oroville Hospital wanted a scheduler for Vista
– We would develop it for them and enter it into the
Oroville Hospital
153 bed acute care facility
Private, non-profit corporation
Based in Oroville, California
First hospital in the world to self-implement
• CEO Robert Wentz
The Team
Zach Gonzales – Head of Development Oroville
Rob Tweed
Chris Casey
Small team of clinicians and
The requirements
• VA requirements designed by committee
A different approach
Build what Oroville wanted:• Designed with and for people doing the job in
the real world
• Tested and used by real clinicians in a working
• Designed for VistA – see what fitted for
The original system -1
The Original system -2
The code
S SD1(1)=^SC(I,"SL"),SD1=$P(SD1(1),"^",3),SB1=$S(SD1:SD1,1:8)1/100,SD1=$P(SD1(1),"^",6),HSI1=$S(SD1:SD1,1:4),SI1=$S(SD1="":4,
SD1<3:4,SD1:SD1,1:4),SDDIF1=$S(HSI1<3:8/HSI1,1:2) K SD1
S S=^SC(I,"ST",$P(SD,"."),1),SDQ=SD#1SB1*100,ST=SDQ#1*SI1\.6+($P(SDQ,".")*SI1),SS=SL1*HSI1/60
Q:SDQ="" S S=$E(S,1,I)_SDQ_$E(S,I+2,999),SS=SS-1 Q:SS'>0
S ^(1)=S
Simple Architecture
Node.js Child
• Standardise VistA one
chunk at a time
• Wrap unreadable code into
• Open, flexible, extendable
• Stateless and Scalable
Web Sockets
• Real-time feedback of actions taken by other
users or events
• Ability to send information to one, a group, or
all browsers FROM VISTA
• Event-driven and bi-directional
• Used in the application to send appointment
changes to all current users
• No Polling required!
Getting Started
• Main Requirements
– Visually appealing
– Simple to use
– Multiple views
• Three main parts
– Core Calendar - Rob
– Interactivity with VistA – Me and Zach
– Rest of application - Me
Core Calendar
• Open-source samples calendar from Sencha
• Complex but functional – including
• Tailor to our needs
– Colours (calendars) based on event types
– Variable timeslots per clinic
– Extendable edit window
– Control
Multiple Clinics view
• First attempt in a grid – whilst waiting for core
• Later thrown away and put back to calendar
• Most of processing code salvaged but suboptimal
Interaction with Vista
• Spend lots of time reading Vista code
• Wrap Vista “api’s” as OpenMDWS calls
– Often required rewriting
• openMDWS functions then available for all
S ok=$$request^%zewdMDWSClient(
• Also work for EWD.js (next talk)
Key Features
Simple and intuitive (feedback from clinicians)
View multiple clinics across systems at once
Drag-n-Drop appointments
Resource appointments/calendars
Providers can see/merge Google Calendar
Flexible and intuitive resource scheduling
Real Time feedback to users
Provider holiday replacements
Multiple systems
Mail Templates
In Summary
Production ready system
Not ‘Proof of Concept’
Designed for Oroville not just for competition
Easily extendable to meet VA requirements
Deploy and enhance
Access granted to 3xVM 14/5/2013
Systems to be frozen 13/6/2013
All three systems set up differently
Test cases we had to meet changed
Told to use test scripting tool which was
impossible for web based apps
• First real chance to test cross-system
Four days to go
Could not get Cmake working properly
Team trying to install and use Selenium
96 hour day
Needed one more hour
Forced to hand over with a written test script
Several weeks later
Call to present for stage 2
But not allowed to present product
Answer yes/no and describe
N x reports
The Announcement – not quite
• Told that we had won
• Couldn’t tell anyone
until formal
• Then the government
shut down
The Result
• We had the right tools
• We had the right people
• We took on the big boys and won
Questions and contact
[email protected]
Skype: borochris99
Twitter: @ChrisPCasey
Blog: [email protected]

similar documents