Version 1.1 | Author: Rick Hayes | License: MIT
Overview
The Patient Management System is a PHP-based web application designed for doctors’ offices to manage patient records, appointments, and billing efficiently. Built with security and usability in mind, it includes HIPAA-compliant encryption, user authentication, and a modern interface styled with Bootstrap.
Features
- HIPAA-Compliant Encryption: Securely encrypts sensitive patient data (e.g., SSN) using
defuse/php-encryption
. - User Authentication: Session-based login system for secure access (default: admin/password123).
- Security: CSRF protection and input validation to prevent common vulnerabilities.
- Appointment Scheduler: Manage appointments with email reminders sent via PHPMailer.
- Invoicing: Generate and track invoices with PDF output using FPDF.
- Web Interface: Responsive design powered by Bootstrap 5.3.
Requirements
- Apache Server (e.g., XAMPP) with HTTPS enabled
- PHP 7.4+ with OpenSSL extension
- MySQL database
- Composer for dependency management
Installation
Follow these steps to set up the Patient Management System locally:
- Clone or Download: Get the source code from GitHub (see Download section below).
- Move to Web Directory: Place the project folder in your Apache web directory (e.g.,
C:\xampp\htdocs\patient_management_system_php
). - Install Dependencies: Open a terminal in the project folder and run:
composer install
This installs
defuse/php-encryption
,phpmailer/phpmailer
, andfpdf/fpdf
. - Create Database: Open PHPMyAdmin (
http://localhost/phpmyadmin
), create a database namedpatient_management
, and the system will auto-initialize tables on first run. - Configure Settings: Edit
config.php
with your MySQL credentials and SMTP details for email reminders:define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'patient_management'); define('EMAIL_HOST', 'smtp.example.com'); define('EMAIL_USER', 'your-email@example.com'); define('EMAIL_PASS', 'your-email-password');
- Create Invoices Directory: Make an
invoices/
folder in the project root and ensure it’s writable (e.g.,chmod 777 invoices/
on Linux). - Start Server: Launch Apache and MySQL via XAMPP or your server control panel.
- Access the System: Open a browser and go to
https://localhost/patient_management_system_php/
. Log in with default credentials:admin
/password123
.
Download
Get the latest version of the Patient Management System from GitHub:
Alternatively, clone the repository using Git:
git clone https://github.com/encrypter15/patient_management_system_php.git
Deployment Notes
- HTTPS: For production, configure Apache with an SSL certificate (e.g., via Let’s Encrypt) and update
SITE_URL
inconfig.php
. - Security: Move
ENCRYPTION_KEY
to a.env
file and use a library likevlucas/phpdotenv
for secure key management.
Support
For issues or contributions, visit the GitHub repository and submit an issue or pull request.