1.8 KiB
1.8 KiB
GDC CMOD - Laboratory Management System
Purpose
CodeIgniter 4 PHP application for laboratory management (GDC CMOD - Laboratory Request Management System). Handles specimen collection tracking, request validation, and result management with role-based access control.
Tech Stack
- Framework: CodeIgniter 4 (PHP 8.1+)
- Database: SQL Server (primary) + Firebird/InterBase (legacy patient data via ODBC)
- Frontend: TailwindCSS + DaisyUI 5 + Alpine.js + Font Awesome 7
- Testing: PHPUnit 10.x
- Server: Windows (XAMPP/IIS)
Database Architecture
- Primary DB: SQL Server (
GDC_CMOD.dbo) via Microsoft ODBC Driver (MSOLEDBSQL) - Legacy DB: Firebird/InterBase (
GLENEAGLESvia ODBC) - Connection:
\Config\Database::connect()returns MySQLi connection (configured as SQLSRV) - No CI4 Models: Uses raw SQL queries via
Database::connect()->query()
Key Database Tables
GDC_CMOD.dbo.USERS- Users withUSERID,USERROLEID,PASSWORDGDC_CMOD.dbo.CM_REQUESTS- Validation tracking (ISVAL1,ISVAL2, validation users/dates)GDC_CMOD.dbo.TUBES- Sample collection statusGDC_CMOD.dbo.V_DASHBOARD_DEV- Dashboard data viewglendb.dbo.*- Legacy Firebird patient data
Architecture Overview
- Session-based authentication with role-based access control (RBAC)
- Dual-level validation system requiring 2 different users to validate the same request
- Role groups filter middleware for routing control
- API endpoints for JSON responses
- Page controllers for HTML views
Current Pending Features (CHECKLIST.md)
- Restrict Print/Save-to-PDF to CS Role only
- Add Dedicated Print Button
- Update PDF Report Metadata (Replace 'Printed By' with validating user's name)
- Reprint Label functionality
- Print Result Audit (Track when result reports are printed/exported)