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.

Leave a Comment

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.