Patient Management

Java
Healthcare Full-Stack Security
View on GitHub

A comprehensive healthcare patient management system built with Spring Boot and PostgreSQL. Features role-based access control, appointment scheduling, medical history tracking, and audit logging for regulatory compliance.

Overview

Healthcare software has unique requirements: strict data privacy regulations, audit trails for every change, and reliability that can literally be life-critical. This project implements a patient management system that addresses these challenges.

The system supports multiple user roles (doctors, nurses, administrators, patients) with fine-grained permissions, ensuring that users only see data relevant to their role while maintaining a complete audit trail.

Key Features

Patient Records

Complete patient profiles with demographics, medical history, allergies, medications, and visit history.

Appointment Scheduling

Calendar-based scheduling with conflict detection, reminders, and waitlist management.

Role-Based Access Control

Fine-grained permissions with hierarchical roles. Doctors see different data than nurses or admins.

Audit Logging

Every data access and modification is logged with timestamp, user, and before/after values for compliance.

Security & Compliance

Data Encryption: All sensitive data is encrypted at rest using AES-256. Database connections use TLS 1.3. Passwords are hashed with bcrypt.

GDPR Compliance: Built-in support for data subject access requests, right to erasure (with medical record retention exceptions), and data portability exports.

The audit log captures over 40 different event types, enabling complete reconstruction of any patient's data history for regulatory audits.

Tech Stack

Java 17 Spring Boot Spring Security PostgreSQL Flyway Thymeleaf Docker

What I Learned

Building healthcare software taught me about the intersection of technology and regulation. Every feature decision must consider privacy implications, audit requirements, and potential misuse scenarios.

I also learned about implementing complex authorization logic with Spring Security, designing database schemas for audit trails, and the importance of thorough testing in safety-critical systems.