Implementation

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:

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 a 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:

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.