Mission-critical Ajax:Making Test Ordering Easier and Faster at Quest Diagnostics

Preview:

Citation preview

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

Recommended