380 likes | 498 Views
Winning the prize with EWD and Vista. CAMTA 2013 Chris Casey. The announcement.
E N D
Winning the prizewith 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 tools • EWD • 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 competition
Oroville Hospital • 153 bed acute care facility • Private, non-profit corporation • Based in Oroville, California • First hospital in the world to self-implement VistA • CEO Robert Wentz
The Team • Zach Gonzales – Head of Development Oroville • Rob Tweed • Chris Casey • Small team of clinicians and schedulers
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 hospital • Designed for VistA – see what fitted for competition
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#1-SB1*100,ST=SDQ#1*SI1\.6+($P(SDQ,".")*SI1),SS=SL1*HSI1/60 I SDQ'<1 F I=ST+ST:SDDIF1 S SDQ=$E(STR,$F(STR,$E(S,I+1))) 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 Sockets
OpenMDWS • Standardise VistA one chunk at a time • Wrap unreadable code into functions • 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 drag’n’drop • 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 Calendar • Later thrown away and put back to calendar UI • Most of processing code salvaged but sub-optimal
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 projects S ok=$$request^%zewdMDWSClient( "getAppointmentsByPatient", .nvps,.results,sessid,.params) • 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
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 announcement • Then the government shut down
Conclusions • We had the right tools • We had the right people • We took on the big boys and won
Questions and contact • chris.casey@ntlworld.com • Skype: borochris99 • Twitter: @ChrisPCasey • Blog: chrispcasey@wordpress.com