Skip to content

Semi-2005/Hospital_Management_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏥 Hospital Management System

Java JavaFX Maven

A comprehensive desktop application developed using Java and JavaFX to digitalize and manage core hospital operations, including patient registration, doctor management, appointment scheduling, and Emergency Room (ER) triage.

What truly sets this project apart is its underlying architecture. Instead of relying on standard Java Collections (like java.util.HashMap or java.util.LinkedList), the core data management relies entirely on custom-built, from-scratch Data Structures. This approach ensures complete control over algorithmic efficiency, memory management, and execution speed.

✨ Key Features

  • 👥 Patient & Doctor Management: Register, search, and manage records with auto-generated unique IDs.
  • 📅 Smart Appointment System: Schedule appointments strictly within doctors' working hours, complete with overlap and conflict prevention.
  • 🚑 ER Triage Operations: An advanced Emergency Room queue that automatically prioritizes patients based on the severity of their condition.
  • 🏥 Hospital Directory: A visual, hierarchical representation of hospital departments and their respective doctors.
  • 📊 Comprehensive Reporting: Dynamic tables to view all patients, doctors, the current ER queue, and daily visit summaries.
  • ↩️ Undo Operations: A robust undo mechanism allowing administrators to revert accidental additions or deletions of records.
  • 🕒 Real-Time UI: Integrated live clock and dynamic UI updates across all dashboard screens.

🛠 Custom Data Structures Implemented

To maximize performance and demonstrate deep technical proficiency, the following custom data structures were developed and integrated:

  • Hash Table (Separate Chaining): Provides O(1) average time complexity for rapid insertion and retrieval of Patient and Doctor records (PatientHashTable, DoctorHashTable).
  • Max-Heap & Priority Queue: Power the ER system by instantly sorting incoming patients by severity, ensuring critical cases are always treated first (ERPriorityQueue, Heap).
  • Stack: Serves as the backbone for the system's "Undo" functionality, adhering strictly to LIFO principles (MyStack).
  • Queue: Manages standard, non-emergency patient queues for individual doctors (MyQueue).
  • Linked List: Efficiently stores and traverses individual patient visit histories (VisitLinkedList).
  • General Tree: Models the hierarchical structure of the Hospital -> Departments -> Doctors for the directory view (HospitalDirectoryTree, GeneralTreeNode).
  • Binary Search Tree (BST): Designed for sorted storage and efficient name-based patient lookups (PatientBST).

💡 Technical Highlights

  • Seed-Based Deterministic ID Generation: Utilizes a unique algorithm (IDUtil) combining student IDs as a project seed to generate collision-resistant, reproducible hashing and patient IDs.
  • Architectural Patterns: * Employs the MVC (Model-View-Controller) pattern seamlessly via JavaFX and FXML.
    • The UndoManager conceptually implements the Command Design Pattern by encapsulating actions (UndoAction and ActionType) to reverse states securely.
  • Pre-loaded Mock Data: Automatically initializes with a predefined set of doctors and patients upon launch to facilitate immediate testing and evaluation.

🚀 Getting Started

This project is built with Maven and includes the Maven Wrapper (mvnw), meaning you do not need to install Maven locally to run it.

Prerequisites

  • JDK 21 or higher (Note: The pom.xml is configured with <source>25</source>, so a recent JDK version is recommended).

Installation & Execution

  1. Clone the repository:
    git clone [https://github.com/yourusername/Hospital_Management_Project.git](https://github.com/yourusername/Hospital_Management_Project.git)
    cd Hospital_Management_Project

About

3rd Semester Data Structure Term Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors