gdc_cmod/.serena/memories/project_overview.md

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 (GLENEAGLES via 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 with USERID, USERROLEID, PASSWORD
  • GDC_CMOD.dbo.CM_REQUESTS - Validation tracking (ISVAL1, ISVAL2, validation users/dates)
  • GDC_CMOD.dbo.TUBES - Sample collection status
  • GDC_CMOD.dbo.V_DASHBOARD_DEV - Dashboard data view
  • glendb.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)