mirror of
https://github.com/tiennm99/BSK-All-in-One-Clinic-Management-System.git
synced 2026-10-11 03:12:53 +00:00
a583b133bc5d1f200aa0f42f6c1fa4d4e9ca619c
BSK All-in-One Clinic Management System
Overview
BSK All-in-One Clinic Management System is a comprehensive, desktop-based application designed to streamline clinic operations. Built with Java Swing for the user interface and leveraging the Netty framework for client-server communication, it supports multiple connected computers, allowing for efficient patient management, appointment booking, medical check-ups, and billing.
Key Features
- User Authentication & Management: Secure login for clinic staff.
- Patient Queue Management: Real-time updates for patient queues displayed on a TV screen and within the application.
- **Check-Up Module (
CheckUpPage):- Detailed patient information entry and management.
- Symptom recording, diagnosis, and notes.
- Prescription management for medicines and services.
- Integration with
MedicineDialogfor adding medicines to prescriptions. - Patient history tracking.
- Ability to call patients to specific rooms.
- **Invoice Generation (
MedicineInvoice):- Dynamic PDF generation for medical invoices (prescriptions).
- Includes detailed sections for both medicines and services.
- Enhanced medicine information: dosage, notes, quantity with units.
- Professional PDF layout with clinic logo, patient/doctor details, and itemized costs.
- VND currency formatting with thousand separators.
- NEW: Check-Up ID barcode at the top of the invoice for quick scanning at checkout.
- Resizable PDF preview dialog with improved scroll sensitivity.
- **Checkout & Billing Module (
CheckoutPage):- View queue of patients who have completed check-ups and are awaiting payment.
- Create new standalone bills for customers purchasing items without a check-up.
- NEW: Barcode scanning field to quickly add items to a bill (backend lookup pending).
- NEW:
StandaloneMedicineDialogfor adding medicines to standalone bills, featuring name and barcode search. - Itemized bill display with subtotal, discount, and grand total.
- Functionality for processing payments and printing bills (backend and PDF generation pending).
- **Dashboard (
DashboardPage):- Centralized overview of clinic statistics (placeholder data currently).
- Summary cards for key metrics.
- Modernized User Interface:
- Consistent top navigation bar across
DashboardPage,CheckUpPage, andCheckoutPage. - Navigation items include icons and text, with visual states for hover and active selection.
- Improved layout with taller navigation bar and better spacing.
- User-friendly pop-up menus for user profile actions (logout, etc.).
- Consistent top navigation bar across
- Data Management:
- Functionality for managing patient data, inventory (stubbed), and user accounts (stubbed).
- Networking: Utilizes Netty for robust client-server communication for data synchronization and requests.
Core Technologies
- Java Swing: For the graphical user interface (GUI).
- iTextPDF: For generating PDF invoices and other documents.
- Netty: For client-server networking and real-time communication.
- SLF4J (with a logging backend like Logback/Log4j): For application logging.
Main Modules / Pages
MainFrame.java: The main application window orchestrating page navigation.LandingPage.java: Initial page for login/authentication.DashboardPage.java: Overview and statistics.CheckUpPage.java: For managing patient check-ups and prescriptions.CheckoutPage.java: For handling billing and payments.PatientDataPage.java: (Assumed) For managing patient records.InventoryPage.java: (Assumed) For managing clinic inventory.UserPage.java: (Assumed) For managing system users.InfoPage.java: (Assumed) For clinic information or application help.
Setup & Usage
- Prerequisites: Java Development Kit (JDK) installed (version based on project requirements).
- Dependencies: Ensure all Maven/Gradle dependencies (like iText, Netty, SLF4J, etc.) are correctly configured in your
pom.xmlorbuild.gradlefile. - Running the Server: Start the Netty server application.
- Running the Client: Launch the client application (
MainFrame). - Log in with appropriate staff credentials.
- Navigate through the different modules using the top navigation bar to manage clinic operations.
Future Enhancements (TODOs from recent development)
- Checkout Page Backend: Implement network requests for:
- Fetching the queue of patients awaiting payment.
- Loading full bill details for selected patients.
- Looking up medicines by barcode.
- Processing payments and updating bill status.
- Updating inventory after sales.
- Standalone Medicine Dialog: Ensure medicine data from
GetMedInfoResponseincludes barcodes and indices are handled correctly. - Bill Printing: Develop a PDF generation class for sales bills/receipts from the
CheckoutPage. - Complete backend logic for all
//TODOcomments inCheckoutPage.javaandStandaloneMedicineDialog.java. - Implement actual data fetching and display for the
DashboardPage. - Flesh out
PatientDataPage,InventoryPage,UserPage, andInfoPagefunctionalities.
This README provides a general overview. For specific class details and logic, please refer to the source code documentation and comments.
Languages
Java
98.8%
PowerShell
1.1%