Process Reengineering & Automation


Clinical Web Schedule

The first large-scale project I created for the UCSD Department of Family Medicine is a custom scheduling system to help them get a handle on activities at three clinics, campus, and other locations. I have also leveraged this code to provide similar functionality for other groups such as the Residency and PACE (Physician Assessment and Clinical Education) programs.

This project differed dramatically from simply attaching an off-the-shelf software solution to a pre-existing business process, and it is a good example of the appropriate application and benefits of custom software. Depending on the situation, pre-built software sometimes can be the most economical solution. Often though, the business process itself, the human behaviors involved, and the potential interactions of software tools is not well enough understood, and technology becomes something that is simply "pasted" onto a process, an extra step in the process rather than integrated into the process. Thus the "solution" adds more work, more complexity, potentially more problems, and greater dissatisfaction than it was meant to solve. On the other hand, a savvy system designer and programmer can build a custom software solution that actually reshapes the underlying process and integrates into the process for greater efficiency. This is where technology can become a tool for revolutionizing processes.

I developed this application in order to automate a scheduling process that previously involved a work-intensive and inefficient communication of scheduling requests and approvals from one person to another. The process was characterized by unacceptable lag times, a confusing mix of phone, fax, email, and paper requests, and a spreadsheet-based tracking system, with requests often getting lost in the shuffle. This resulted in a continuing, unacceptable level of scheduling mishaps, which frustrated clinicians and staff and regularly precipitated last minute patient appointment reschedules--a key element in patient dissatisfaction.

Using web scripting, I was able to provide a low cost, highly customizable system, rapidly developed alongside other work. The application automated the work of a full time scheduling employee and support by clinic staff. It also improved the process. This web portal, accessible from any internet-enabled device, including by mobile phone, provides self-service scheduling from any location--clinic, campus, and home--at any time of day. (Doctors can keep some strange hours!)

It has succeeded in streamlining the scheduling process, providing clinicians with online change request submission and providing clinic directors with a consistent interface for evaluating and approving requests. Changes now move efficiently through the system and are reflected instantaneously. Duplicated data entry and related errors are eliminated. The application also automatically keeps a detailed history of every change, which may be searched according to any combination of selectable criteria. In short, the system eases the task for everyone involved, eliminating entire steps in the previous manual process, encouraging good scheduling habits, and shaping the entire process of scheduling behavior for the better.

In order to preserve schedule information from tampering, to track who makes changes, and to reveal only that subset of functionality appropriate to each user, the system implements secure user authentication using SSL and encrypted passwords. It validates user input, for instance checking that dates make sense. It detects and warns of scheduling conflicts before and after submission. It also detects and displays where coverage may be needed. It allows the user to view events on the calendar for an entire clinic, for just a single provider, or for events of a certain type.

Now a clinician now knows exactly where in the process a particular request sits--pending, approved, recorded, rejected, etc.--and when a change was made or approved, encouraging accountability. Clinicians initially build their own schedule templates in the same way as individual events are added, canceled, and modified, and these form the basis of schedules that are applied automatically at the beginning of each new term.

When a director approves a request, the system provides information that aids in decision making, such as the number of clinicians and residents already scheduled at the clinic for that session.

Once the core system was complete, additional functionality, sometimes based on suggestions by directors, clinicians, and staff, becomes almost trivial to implement. For instance, I have added a variety of statistical information, compiled dynamically on request from information in the database, providing expanded business process analysis.

This enables providers and directors to track hours, vacation, productivity, and even patterns of scheduling behavior. Not only does it provide a tool for scheduling but also for visualizing the otherwise chaotic underlying process in order to improve it and to measure that improvement.

Finally, the system also collects, processes, and displays data from other sources, providing appointment makers with an overview of where they should direct appointments, aiding the Division in efforts to establish and maintain its "Advanced Access" (next-day scheduling) project, and identifying inconsistencies between this and other Med Center scheduling systems.

The Web Scheduling System is comprised of about 60 web pages of approximately 7,000 lines of code using a combination of HTML, CSS, ASP, VBScript, and Javascript.


Back to Projects.