Patient Management System PHP

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:

  1. Clone or Download: Get the source code from GitHub (see Download section below).
  2. Move to Web Directory: Place the project folder in your Apache web directory (e.g., C:\xampp\htdocs\patient_management_system_php).
  3. Install Dependencies: Open a terminal in the project folder and run:
    composer install

    This installs defuse/php-encryption, phpmailer/phpmailer, and fpdf/fpdf.

  4. Create Database: Open PHPMyAdmin (http://localhost/phpmyadmin), create a database named patient_management, and the system will auto-initialize tables on first run.
  5. 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');
    
  6. Create Invoices Directory: Make an invoices/ folder in the project root and ensure it’s writable (e.g., chmod 777 invoices/ on Linux).
  7. Start Server: Launch Apache and MySQL via XAMPP or your server control panel.
  8. 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:

Download ZIP

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 in config.php.
  • Security: Move ENCRYPTION_KEY to a .env file and use a library like vlucas/phpdotenv for secure key management.

Support

For issues or contributions, visit the GitHub repository and submit an issue or pull request.