Automating Healthcare
Solving business problems with savvy automation
 


Speeding with Static Pages

Business problem
We hate to wait. Every second that we wait for a Web page or document to open feels like an eternity. This is especially true for a corporate intranet, where workers want to find their document or complete their request without delay and get back to their real work. This poses a dilemma for a database-driven intranet because every database connection slows down the transaction, no matter how well the process is optimized.

The need for speed
We were disappointed when the first iteration of our new intranet, with dynamically generated pages, wasn't quite as quick as we preferred. It wasn't bad, but we wanted it to be faster. Joe suggested that we create a hybrid process that leveraged the flexibility of the database design with the speed of static pages.

He created an automated process to sweep through the Backbone database (Driving With Databases) and create every navigation page that is defined in the database. Each generated page is saved in the appropriate folder as a static HTML page, eliminating the need for that page to touch the database when it is opened by a user.

genBackbone
The automated "genBackbone" process runs every 30 minutes, with a manual override available if we need to regenerate the site before the next scheduled update. This process currently generates about 735 pages, and takes about five minutes to complete.

Of course, this only affects the navigation pages for the intranet. These pages contain all the links to lower-level categories or to specific documents, as defined in the Backbone database. Pages or documents with actual content are updated manually, and are not touched by the genBackbone process.

Lessons learned

  • Loading pages dynamically from a database will always take longer, and should be reserved for situations where it is really necessary.
  • With a little creativity, it is possible to have the best of both worlds — storing the site structure in a database without touching the database during routine use.


Posted 31 March 2008

   


Custom Applications
ADT Event Alerts
Clinical Operations
      Dashboard

Integrated Clerkship
      Registry

On-call Schedules
People Profiles
Chronic Disease
      Registries

Security Badge Requests
eSignout
Charge Capture
Mental Health Treatment
      Plan Tracking

Timesheets
Earned Time Calculator
Non-employee
      Management

Supervisory Tree
E-mail Distribution Lists
User Access Requests
HR Requests
Employee Health &
      Safety

Interpreter Dispatching
Generic Patient Registry
Conference Room
      Scheduling

Classifieds
Tuition Reimbursement
Equipment Rental
Code Cart Tracking
Nursing Audits

Show me the data
Growing a Data
      Warehouse

Building a Data Portal
Reporting on Full Auto

Intranet Design
Driving With Databases
Speeding with Static
      Pages

Personalization
Transparent Security
      and Permissions

Redesigning the
      Intranet

Foundations
Who works here?
Organizational buckets
System access: Who
      has what?

System access: Use
      it or lose it

Integrating Security
      Badges

Integrating Provider
      Directories

Creating A Supervisory
      Tree

Data Quality Dashboard

About

 
RSS Feed