CHOIR was developed at the Stanford Pain Management Center and is actively being used at Stanford and elsewhere to track patient progress and outcomes for chronic pain patients. The software is made available at no charge to any institution interested in using it and collaborating to improve it. Full source code access is provided, and we are building a community for mutual support and for the development of new capabilities. This software is currently provided as source code only. You will need technical resources that understand how to build, deploy, and manage systems built with the technologies described below. Since this system will contain Protected Health Information (PHI), there are many local considerations and choices around security and compliance.

The CHOIR system is a web application designed to run on the Java Runtime Environment (JRE) and connect to an Oracle or PostgreSQL database for storing patient data. You should be able to run it on any physical or virtual servers with operating systems fully supported by the Java platform. Here is a current support matrix:

Current Support Matrix

Patient Survey Clinic App Server Side Container Database
Most browsers, especially targeting mobile IE 9+ Java 7 on a supported platform Tomcat 6 Oracle 11g or 12c Enterprise Edition
Firefox Should work with other Servlet 2.5 compliant containers Should work with other editions
Adobe Reader or equivalent
Color printer recommended

For a typical clinic, the total number of patients seen per day, and the number of clinic staff accessing the system are relatively small. This means using individual servers or virtuals for the deployment nodes is sufficient. Each node should have several GB of RAM available to the application, and plenty of space for logs (perhaps a few hundred MB/day). You will probably want to plan enough space to keep the application logs as part of your audit records. The database size scales with the number of patient surveys. Estimate it at around 80MB per patient assessment (patients * appointments * 80MB). The first integration you will want to consider is to set up a data feed from the electronic health record (EMR) to import appointments into CHOIR. This makes the front desk workflow simpler, and allows survey request emails to be sent prior to patient appointments. This typically requires a report to be run in the EMR on a periodic basis that can extract a list of upcoming appointments, with various information about the patient, provider, visit date, visit type, etc. For more information on what fields should be included and how this information can be loaded into CHOIR, refer to the documentation (see “More information, below). CHOIR can be set up and used without any access to the primary EMR, but this can result in additional work for clinic staff and reduced functionality.

If you want to send email requests to patient prior to their appointments, this will also require access to an email server that can accept standard SMTP mail. We use the standard JavaMail library for sending the mail. You may need to configure your mail server to accept unauthenticated requests from the CHOIR server.

Clinic staff and providers choosing to access CHOIR will need to be authenticated. Depending on your local systems and policies, this will require configuration or possibly customization to integrate with your centralized authentication system.

Access to patient surveys is controlled through tokens on the email links or PIN codes typed into clinic tablets, so there is no integration required for authenticating patients.

To gain access to the software, you must agree to the license terms. Definitive legal language is in the license, but the basic intent is:

  • You are free to use and modify it as desired internally
  • You may not redistribute or provide it as a service externally
  • We accept no liability or obligations for anything; use it at your own risk
  • Contributing your improvements to CHOIR is encouraged but not required
  • We may incorporate and redistribute any contributions as we see fit.

For More Information

  • To obtain a copy of the license agreement, contact Sean Mackey, MD, PhD
  • All project code and documentation is hosted on GitHub. The project wiki with documentation is here:
  • If you do not already have a GitHub account, you will need to create an account here (choose the free plan): Once you have created your account, send your username to requesting access to the CHOIR repository. Once this access has been granted, you will be able to access the repository here:
  • There is a Google Group for software developers who are working with the CHOIR source code:!forum/registry-developers Developers from Stanford and other institutions monitor and participate in technical discussions on that group. This is a private group, so you will need to request access once you have completed the above licensing steps.
  • We respond to technical questions in the Google Group, but we do not have the resources and infrastructure to provide full commercial support at this time, and we do not provide hosted solutions. We are currently focusing on building a consortium of partners who have the infrastructure and technical skills to further develop this platform.

We chose to host this project on GitHub, in part, because of its culture of collaboration. In that spirit, we operate much like an open source project, and encourage you to work the code, make it better, and create pull requests for your improvements, however big or small.

Contact Us

Not readable? Change text. captcha txt

Start typing and press Enter to search