This system was built to allow free, student-run clinics to effectively collect structured data on their patient populations for the purposes of research and qualtiy improvement. Data collection is performed through a completely electronic form that can either serve as a replacement for or be used in addition to the current check-in form. This intake system was built by volunteer students at the University of Alabama free, student-run clinic Equal Access Birmingham and is currently running on a local network at the clinic.
The original design of the system focused on three goals listed below in order of importance:
- Providing a completely electronic form for collecting patient data for research
- Storing patient data in as structured a manner as possible for easier retrieval
- Displaying limited views of patient information for clinical workflow
- New Patient Form - adds new patients to the system by collecting preliminary information
- Patient Search - searches for patients by name and date of birth, returning options for several different views of patient data
- Returning Patient Form - allows patient information to be updated
- Clinical Summary - displays relevant medical information for clinical workflow
- Social Services Summary - displays relevant information for social service workers
- Research Data Dumps - provide whole CSV dumps of database information to administrators for easy data retrieval
- Patient Demographics Data
- Patient Social History Data
- Patient Visit Information Data
- Date of LastMammogram
- Date of Last Secxually Transmitted Infection
- Date of Last Colonoscopy
- Date of Last Pap Smear
- Administrative-focused Login System - allows easy creation and maintenance of accounts and administrative privileges by master administrator
A demo of the system is available at https://data.eabclinic.tk. No data should be stored here permanently as it is just for testing out the system and its features.
- Username: admin
- Password: password
- Username: admin
- Password: password
While there is no pre-packaged install for this system, it is a relatively simple PHP application that can be easily dropped into any server stack running PHP 5 or greater.
The stack below is the one that EAB has running in their clinic; however, this application does not take advantage of specialized web server settings or PHP packages. Therefore, it should run on almost any server stack with PHP installed.
There are multiple tutorials online detailing how to set up a server stack such as the one listed above. This tutorial from DigitalOcean is one such example.
Installation is mader super simple through git/GitHub. Simply follow these steps:
- Recommended install location:
/var/www
git clone https://github.com/equal-access-birmingham/DataWarehouse.git
This system is kept separate from the main system for security reasons and the recommended procedure is to install the login system in a completely separate database from the main system. Run the following command on the server:
`mysql -u <intake_database_user_name> -p <intake_database_name> < php-login-admin/_installation/02-create-user-table.sql`
<intake_database_user_name>
: The name of the user that has access to the database to be used by the login system<intake_database_name>
: The name of the database for the login system
A mysql workbench file (database/datawarehousedb.mwb
) is provided for those that know how to use this file. However, the procedure below uses ye olde command line of the server.
`mysql -u <intake_database_user_name> -p <intake_database_name> < database/datawarehouse_creation_script.sql`
<intake_database_user_name>
: The name of the user that has access to the database to be used by the intake system<intake_database_name>
: The name of the database for the intake system
There are two locations for the configuration files due to the separation of the login system.
- includes/db.php.default
- php-login-admin/config/config.php.default
For each of the files above:
- Copy the files
- Remove the
.default
ending to make them active
To make this file active simply change the values to the appropriate ones for your setup:
$host
: the hostname/IP address of the server the intake system's database is located on (probablylocalhost
)$db_user
: the user that has access to the intake system's database (see Intake System Database Setup)$db_pass
: the password of the user that has access to the intake system's database$db_db
: the name of the database housing the intake system
Caution: it is better to leave the settings in the config.php
file not described below alone...
define("DB_HOST", "your_host");
: change "your_host" to the server's hostname/IP address that is hosting the login system's database (probablylocalhost
)define("DB_NAME", "database_name");
: change "database_name" to the database name housing the login systemdefine("DB_USER", "database_username");
: change "database_username" to the user that has access to the database housing the login systemdefine("DB_PASS", "database_password");
: change "database_password" to the password of the user that has access to the database housing the login system
define("COOKIE_DOMAIN", ".192.168.56.101");
: change "192.168.56.101" to the IP address or domain name of the site hosting the intake systemdefine("COOKIE_SECRET_KEY", "cookie_secret_key");
: change "cookie_secret_key" to some long, random string
A gmail account with lowered security settings is recommended. Otherwise, more settings in the config file will need to be changed.
define("EMAIL_SMTP_USERNAME", "your_username_email");
: change "your_username_email" to the gmail username (not the full address)define("EMAIL_SMTP_PASSWORD", "yourpassword");
: change "yourpassword" to the gmail account's password
define("EMAIL_PASSWORDRESET_URL", "http://your_server/php-login-admin/password_reset.php");
: change "your_server" to the IP address or domain name hosting the intake systemdefine("EMAIL_PASSWORDRESET_FROM", "your_username_email");
: change "your_username_email" to the sender's email that should be shown to recipients (can be anything...)define("EMAIL_PASSWORDRESET_FROM_NAME", "yourname");
: change "yourname" to the sender's name that should be show to recipients (can be anything...)
New Account Email configurations and Reset Account Email configurations follow the same pattern as the password reset configurations.
The database model is provided in a mysql workbench file in databases/datawarehouse.mwb
. This file can be viewed with MySQL Workbench and will show a detailed model of the database.
This system is setup with a default user and password listed below up install. These credentials should obviously be changed as soon as possible after install.
- Username: admin
- Password: password
In order to get the system running, there are a few tables that have been filled with default values. Some of these tables can have their values changed; some can't. Below two lists highlighting the differences. Tables marked as "Yes/No Table" only contain those values as binary answers to simple questions on the forms.
- Alcohol (Yes/No Table)
- CitizenStatus
- CooperGreen (Yes/No Table)
- CurrentEmployment (Yes/No Table)
- Disability (Yes/No Table)
- EducationLevel
- FoodStamp (Yes/No Table)
- Gender
- HeadofHousehold (Yes/No Table)
- HomeType
- MedicalInsurance (Yes/No Table)
- RelationshipStatus
- Transport
- Veteran (Yes/No Table)
- VisitType