Mission-critical Ajax:Making Test Ordering Easier and Faster at Quest Diagnostics - Presentation Transcript
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 US
Offer access to its services through its national network of laboratories and patient service centers
Quest's Care360 web-based lab ordering system is relied upon by more that 100,000+ physicians throughout the US
Typical 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 task
Rule based ordering (77m rules currently dynamically applied)
Accurately specifying correct required data
Different regulatory requirements State, National, and International
Payment via Government and private payors
Background (application)
Care360 has been internet-based since May 2000
Cache and WebLink based
Proven to be very stable, secure, and scalable
Standard page/form mode web application
Frames, complete page refreshes as user progressed through steps
Some field level “Ajax” like validations db retrieval using hidden frame submissions and hand crafted JavaScript
Current scale 750,000,000 HTM
Six-Sigma availability over the last 5 years
Code 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 application
Huge, complex web pages
Complex tree of possible transitions between pages
Issues
Care360 should aid customers
Constantly inputting many orders a day
Speed and efficiency highly important
This 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 headaches
Original author may not be maintaining it
What the page does takes valuable time to discover
Multiple concurrent version development
Many 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 alone
Evolution versus Disruptive Innovation
Just add/integrate not “Rip and Replace”
Add a new “EZ-Order” option that applied new Ajax techniques
Ajax Application Flow Container Page Fetch data Pre-page Script EWD State & Session Management Back-end Server Front-end technology (WebLink, PHP, CSP etc) Generate Page
Ajax Application Flow Container Page Fetch Page Fragment Page Fragment Fetch data Event Replaces DOM content Pre-page Script Pre-page Script EWD State & Session Management Back-end Server XMLHttpRequest Generate Fragment
Ajax Application Flow Container Page Fetch Page Fragment Page Fragment Fetch data Event Replaces DOM content Pre-page Script EWD State & Session Management Back-end Server
Ajax Application Flow Container Page 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 out
Due 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 interface
Each event just changes a small area of screen
User Interface improvements
Not yet fully utilizing pre-emptive, asynchronous data-fetching
Currently 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 breakdown
Allowed individual functions to be assigned to individuals
Each concentrated on his/her fragments
Clean, well defined interfacing of fragment modules
Development & Maintenance
Already experiencing lower maintenance overhead compared with the “classic” web approach
Smaller team required to support new module
More reuse possible
Faster for bug-fix and enhancements
No one module is overly complex
Business improvements
Marketing very pleased with the product and aggressively selling
1 comments
Comments 1 - 1 of 1 previous next Post a comment