Projects, designs, and writings on health IT


Rolodoc: a dynamic consultation directory for hospitals

4:40 PM Posted by David Do, MD , , 1 comment
Notes on a project I started at the Hospital of the University of Pennsylvania, now being used by providers in all departments.

The Problem

The hospital paging system was decades obsolete. In order to contact the on-call person for any specialty service, one had to dial the operator, wait on the telephone, and eventually be forwarded to a number, which was often the wrong one. (Not to mention they were still using beepers.) One had to go through this process several times throughout the day.

The Solution

Design a mobile app that contained a list of the people on call, and updated daily, allowing people to make calls directly from the app.

The project included a schedule API that would serve the calendars for all the services.
  • Tranquilapi (source code available upon request, still need to abstract away some hardcoded passwords)

And the app itself, which was a mobile-friendly website that used the API
  • (source code available upon request)

This system was quickly adopted without much publicity and is now used by all physicians in the hospital

Specific Challenges

  • Gathering many disparate schedules and scraping the data from different systems (COAST, Amion, Webexchange)
  • Ensuring the data are secure by whitelisting the IP addresses used by the hospital, and using logins for users outside this wall
  • Allowing people to override the schedule if it was incorrect
  • Accounting for missing data (some schedules would only list people on the very first day of their 2-week blocks, implying they were on the entire week)
  •  Making the app feel fast despite relying on remote data (using backbone.js framework to generate pages client-side, using jQuery mobile for a better mobile experience)
  • Getting backbone.js to play nicely with jQuery mobile (a non-trivial task given they both want to handle hash routing)
  • Being compatible with IE7 (which hospital computers use)


Ruby on Rails, Javascript, jQuery mobile, backbone.js, devise for authentication

Usage Statistics

3/2015 Update: 5605 usages per week (Mar 8-14 2015)
1/2016 Update: Over the past 12 months, we have continued to grow
78,653 calls placed directly from the app (215 per day)
40,182 text pages sent direction from the app (110 per day)
747,961 pageviews across 198,016 unique devices (2,049 pageviews across 543 unique devices per day)

10/2017 Update

We're still seeing growth after year 4 

1 comment:

  1. Have you ever thought about getting invertor to fund Rolodoc on the Shark Tank TV show.