Welcome to the PerformanceBridge application development tutorial. PerformanceBridge applications are deployed on PerformanceBridge infrastructure. For those planning to use their own infrastructure see the API documentation. This tutorial will provide an in-depth walkthrough of how to build a PerformanceBridge application from the ground up in Ruby using the Ruby on Rails framework. The goal of this application is to present a real-time updating worklist of completed radiology exams, demonstrating the core features and functions of the platform as you progress through the tutorial. These features include:

  • Display all completed exams in a table, in real-time (no server polling)
  • Authentication and authorization using Single Sign-On
  • Centralized HIPAA Auditing
  • Centralized application usage logging
  • Contextually launching a clinical application (e.g. enterprise image viewer)
  • Implement threshold-based alerting via email (notify a user when an exam has been completed longer than a specified aging period)


Some application features are split across multiple parts of the tutorial, as it is organized by technical concept, not application feature.

When the tutorial relies heavily on concepts of a foundation technology in the stack (e.g. Ruby, Rails, or JavaScript) there will be an Prerequisites section with links to materials that cover the concept in-depth. Please take the time to familiarize yourself with the information linked to in these sections, it will be a great aid in learning the material.

When there are important tips or best practices to keep in mind while developing, they are emphasized with a Tip or Best Practice block:

Best Practice - When using dot notation to access a field in a model related to the model you are working, there is a behind-the-scenes SQL query to retrieve adjoining table row(s). The retrieved objects are subsequently cached. This is important to consider when you iterating over large lists of records. It's also important to note that you do not need to worry each time you reference an adjoining table that a new SQL query will run. For example, if a rad_exams object is being used and rad_exam.procedure.code is called, then rad_exam.procedure.description is subsequently called, only a single SQL query is executed to retrieve the entire procedure record. For more information on this and other ORM subjects see Querying.