Skip to content

tagresorts/clinic

Repository files navigation

Dental Clinic Patient Management System (DCPMS)

A comprehensive web-based patient management system designed specifically for dental clinics, built with Laravel 12 and following healthcare industry best practices. Features 🏥 Core Functionality

Patient Management: Complete patient registration, demographics, medical history, and dental records
Appointment Scheduling: Advanced scheduling system with conflict detection and automated reminders
Treatment Planning: Comprehensive treatment plan creation, tracking, and progress monitoring
Billing & Invoicing: Integrated billing system with payment tracking and insurance management
Inventory Management: Supply tracking with automatic reorder alerts
Reporting: Detailed financial, patient, and treatment analytics

🔐 Security & Compliance

Role-Based Access Control: Three distinct user roles (Administrator, Dentist, Receptionist)
Data Encryption: All sensitive data encrypted at rest and in transit
Audit Trail: Complete logging of all system activities for compliance
HIPAA/GDPR Ready: Built with healthcare data privacy regulations in mind

👥 User Roles Administrator

Full system access and configuration
User management and role assignment
Financial reporting and analytics
Inventory management
System audit logs

Dentist

Patient medical and dental records
Treatment planning and execution
Dental charting and notes
Progress tracking
Patient appointment management

Receptionist

Patient registration and check-in
Appointment scheduling and management
Billing and payment processing
Insurance claim management
Front desk operations

Technical Specifications System Requirements

PHP: 8.2 or higher
Database: SQLite (development) / MySQL/PostgreSQL (production)
Web Server: Apache/Nginx
Node.js: 18+ (for asset compilation)
Composer: 2.0+

Technology Stack

Backend: Laravel 12 (PHP)
Frontend: Blade Templates with Tailwind CSS
Authentication: Laravel Breeze
Database: Eloquent ORM with comprehensive migrations
File Storage: Laravel's file system (configurable for cloud storage)

Installation

  1. Clone and Setup

git clone cd dental-clinic-pms composer install npm install

  1. Environment Configuration

cp .env.example .env php artisan key:generate

Configure your database in .env:

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=dental_clinic_pms DB_USERNAME=your_username DB_PASSWORD=your_password

  1. Database Setup

php artisan migrate php artisan db:seed

  1. Asset Compilation

npm run build

  1. Start Development Server

php artisan serve

Default User Accounts

After seeding, the following test accounts are available: Administrator

Email: admin@dentalclinic.com
Password: password
Role: Administrator

Dentist

Email: dr.smith@dentalclinic.com
Password: password
Role: Dentist

Receptionist

Email: receptionist@dentalclinic.com
Password: password
Role: Receptionist

Database Schema Core Entities

Users - System users with role-based access
Patients - Patient demographics and contact information
Appointments - Scheduling and appointment management
Treatment Plans - Diagnosis and treatment planning
Treatment Records - Actual treatments performed
Invoices - Billing and financial records
Payments - Payment tracking and processing
Inventory Items - Supply and equipment management
Suppliers - Vendor and supplier information
Dental Charts - Tooth-by-tooth dental condition tracking
Audit Logs - System activity and compliance logging

Key Relationships

Patients have many Appointments, Treatment Plans, Invoices
Appointments belong to Patient and Dentist (User)
Treatment Plans belong to Patient and Dentist
Invoices track multiple line items and payments
Dental Charts track individual tooth conditions per patient

API Endpoints

The system includes RESTful routes for all major entities:

GET|POST /patients # List and create patients GET /patients/{id} # Show patient details PUT|PATCH /patients/{id} # Update patient information DELETE /patients/{id} # Deactivate patient

GET|POST /appointments # List and create appointments GET /appointments/{id} # Show appointment details PUT|PATCH /appointments/{id} # Update appointment DELETE /appointments/{id} # Cancel appointment

GET|POST /treatment-plans # List and create treatment plans GET /treatment-plans/{id} # Show treatment plan PUT|PATCH /treatment-plans/{id} # Update treatment plan

GET|POST /invoices # List and create invoices GET /invoices/{id} # Show invoice PUT|PATCH /invoices/{id} # Update invoice

Security Features Authentication & Authorization

Laravel Breeze for secure authentication
Role-based middleware protection
Session management with automatic timeout
Strong password policies enforced

Data Protection

All sensitive medical data encrypted
CSRF protection on all forms
SQL injection prevention via Eloquent ORM
XSS protection with Blade templating

Audit Trail

Complete logging of all CRUD operations
User action tracking with IP addresses
Data change history with before/after values
Compliance reporting capabilities

Configuration Environment Variables

Key configuration options in .env:

Application

APP_NAME="Dental Clinic PMS" APP_ENV=production APP_DEBUG=false

Database

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=dental_clinic_pms

Security

SESSION_LIFETIME=120 PASSWORD_RESET_EXPIRATION=60

File Storage

FILESYSTEM_DISK=local

Role Permissions

Permissions are enforced at both route and controller levels:

Route Middleware: role:administrator,dentist,receptionist
Controller Authorization: Role-specific checks in each method
View-Level: Conditional rendering based on user role

Development Adding New Features

Create migrations for new database tables
Generate models with appropriate relationships
Create controllers with role-based authorization
Add routes with proper middleware
Create Blade views following the established patterns
Update tests and documentation

Testing

Run all tests

php artisan test

Run specific test suite

php artisan test --testsuite=Feature

Generate test coverage

php artisan test --coverage

Code Standards

Follow PSR-12 coding standards
Use Laravel naming conventions
Include comprehensive documentation
Implement proper error handling
Add appropriate validation rules

Production Deployment Security Checklist

Set APP_DEBUG=false
Configure proper database credentials
Set up SSL/TLS certificates
Configure file upload limits
Set up regular database backups
Configure log rotation
Set up monitoring and alerts

Performance Optimization

Enable OPcache for PHP
Configure database query caching
Set up Redis for session storage
Optimize image and asset delivery
Configure proper cache headers

Support & Documentation User Guides

Administrator Guide: Complete system management
Dentist Guide: Patient care and treatment workflows
Receptionist Guide: Front desk operations and billing

Technical Documentation

API Reference: Complete endpoint documentation
Database Schema: Entity relationships and constraints
Security Guidelines: Best practices and compliance

Contributing

Fork the repository
Create a feature branch (git checkout -b feature/new-feature)
Commit your changes (git commit -am 'Add new feature')
Push to the branch (git push origin feature/new-feature)
Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details. Compliance

This system is designed to support compliance with:

HIPAA (Health Insurance Portability and Accountability Act)
GDPR (General Data Protection Regulation)
Local healthcare data protection regulations

Note: While the system provides technical safeguards, organizations must implement proper policies and procedures to ensure full compliance with applicable regulations.

For technical support or questions, please contact the development team or create an issue in the project repository.

About

dental clinic app

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages