Mission-critical Ajax: Making Test Ordering Easier and Faster at Quest Diagnostics David Rapperport
May 21, 2015
Mission-critical Ajax:Making Test Ordering Easier and Faster at Quest Diagnostics
David Rapperport
Diagnostics Testing:In the U.S., it is estimated that the cost of
laboratory testing is only 3% of the total annual cost of health care. Yet, up to 80% of objective information used in diagnostic decision making is estimated to come from laboratory tests*
* American Society for Clinical Laboratory Science Mar/Apr 1998
Background
About Quest Diagnostics:The leading provider of diagnostic medical testing in the
USOffer access to its services through its national network of
laboratories and patient service centersQuest's Care360 web-based lab ordering system is relied
upon by more that 100,000+ physicians throughout the USTypical application users are; Physicians, Phlebotomists,
Hospital Techs, Nurses, and other Healthcare workers
Background
Quest Diagnostics’ scale 150,000,000 Patients tested each year 550,000 Patients tested each night 41,500 Employees 2,000 Patient Service centers 185 Laboratories
Data from the Quest Diagnostics 2006 Annual Report
Background
Ordering a test is a complex taskRule based ordering (77m rules currently
dynamically applied)Accurately specifying correct required dataDifferent regulatory requirements State, National,
and InternationalPayment via Government and private payors
Background (application) Care360 has been internet-based since May 2000
Cache and WebLink basedProven to be very stable, secure, and scalableStandard page/form mode web applicationFrames, complete page refreshes as user progressed
through stepsSome field level “Ajax” like validations db retrieval using
hidden frame submissions and hand crafted JavaScriptCurrent scale 750,000,000 HTMSix-Sigma availability over the last 5 yearsCode base includes 600+ Cache classes and 500+
dynamic WLD active server pages
Ordering the old way
Ordering the old way
Ordering the old way
Issues
Ordering process is cumbersome when implemented as “traditional” web applicationHuge, complex web pages Complex tree of possible transitions between
pages
Issues
Care360 should aid customersConstantly inputting many orders a daySpeed and efficiency highly importantThis is not buying a book….
The act of placing a medically and financially correct order can never be too fast. BUT, designs must constantly balance “easy of
use” versus “speed of entry”
Issues
Difficult for team to collaborate effectively: Modifying different parts of the same pages
Big, complex pages cause maintenance headachesOriginal author may not be maintaining itWhat the page does takes valuable time to discover
Multiple concurrent version developmentMany versions under development at the same time
A case for Ajax?
So, did Ajax warrant the hype and deliver the goods at Quest Diagnostics?
Our plan
Leave the main core of Care360 aloneEvolution versus Disruptive InnovationJust add/integrate not “Rip and Replace”
Add a new “EZ-Order” option that applied new Ajax techniquesRe-design of UIBroken down into small, atomic units“Container page” containing designated target
<div> placeholdersAlso modal “lightbox” pop-up <div> panels
EWD vs. ZEN Decision
CMMI – Substantial Decision Analysis and Resolution Process (DAR) CompletedProduct Requirements:
• Bidirectional Session Integration with WLD
• Continue to use DMZ hardened and proven MGW Infrastructure
• Reuse of existing backend array based method returns
• Cache 5.0.x compatibility
• Fast Learning Curve for current WLD Developers
• Extremely aggressive business timeline requirement
Our Decision
EWD was selected due to it’s ability to meet the defined requirements
ZEN has many positive attributes but for this project it was not able to meet our required needs within the timeline
Additional EWD BenefitsConcise browser payload ~(25%) differenceContextual Multi-lingual supportAdaptation Layer for 3rd Party JavaScript Libraries
Implementation; extjs, ejscharts, yui, dojo, etc.Deployable as WebLink, CSP, PHP, or JSP application
Technical Solution
Using Enterprise Web Developer (EWD)Ajax framework
• Concept of page fragments• Replace the innerHTML of specified target
tags
Compatible with Quest’s existing technical infrastructure
Container Page: <div> breakdown
Page1
OrderDetail PatientInfo
StandingOrder PatientSearchList / InfoDetail
Billing
InsuranceInfo GuarantorInfo
Comments
Ajax Application Flow
ContainerPage
Fetchdata
Pre-pageScript
EWD State & Session Management
Back-end Server
Front-end technology (WebLink, PHP, CSP etc)
GeneratePage
Ajax Application Flow
ContainerPage
FetchPage
Fragment
Page Fragment
Fetchdata
Event
Replaces DOM content
Pre-pageScript
Pre-pageScript
EWD State & Session Management
Back-end Server
XMLHttpRequest
GenerateFragment
Ajax Application Flow
ContainerPage
FetchPage
Fragment
Page Fragment
Fetchdata
Event
Replaces DOM content
Pre-pageScript
EWD State & Session Management
Back-end Server
Ajax Application Flow
ContainerPage
EWD State & Session Management
Back-end Server
Timescales and resources
4 developers 45 days each Tasks:
• Learn the technology and methodology:– Advanced JavaScript, Ajax, JSON, YUI,
etc– EWD Toolset
• Deliverables:– Phase 1 production ready
End Product
End Product
End Product
End Product
User satisfaction
User trials were fully successful Full production rollout successful Some initial performance issues that have been
ironed outDue to many more, but smaller, back-end
transactions
User Interface improvements Flow through the complexity of ordering is now
much more intuitive
The impression is that of a much slicker, more responsive interfaceEach event just changes a small area of screen
User Interface improvements
Not yet fully utilizing pre-emptive, asynchronous data-fetchingCurrently using pre-fetching in application where
long option lists are expected via Dynamic Select List
More potential opportunities for this in the future
System/performance: pros
Performance good during ordering process
Good scaling with load balanced app and web servers
JavaScript performance adequate
System/performance: cons
Application Servers work harder managing more, smaller, Ajax transactions
Potential client issues with any JavaScript error that can stop client processing
Not so good for users with latent internet connections
Security
No adverse problems experienced to date
Independent penetration test completed with no EZ-Order issues uncovered
EWD’s Ajax framework secure in our deployment
Development & Maintenance
Simplified the design and construction of the UI and the user’s work-flow
Allowed much better work breakdownAllowed individual functions to be assigned to
individualsEach concentrated on his/her fragmentsClean, well defined interfacing of fragment
modules
Development & Maintenance
Already experiencing lower maintenance overhead compared with the “classic” web approachSmaller team required to support new moduleMore reuse possibleFaster for bug-fix and enhancementsNo one module is overly complex
Business improvements Marketing very pleased with the product and
aggressively selling
Very well received at HIMMS Conference
Recognized by AjaxWorld at their 2008 Conference
Conclusions
Ajax is not just hype
Ajax really does bring business benefits