clqms-be/.serena/memories/project_overview.md
root 2bcdf09b55 chore: repo-wide normalization + rules test coverage
Normalize formatting/line endings across configs, controllers, models, tests, and OpenAPI specs.

Update rule expression/rule engine implementation and remove obsolete RuleAction controller/model.

Add unit tests for rule expression syntax and multi-action behavior, and include docs updates.
2026-03-16 07:24:50 +07:00

32 lines
1.7 KiB
Markdown

# CLQMS Project Overview
- **Name:** CLQMS (Clinical Laboratory Quality Management System)
- **Type:** Headless REST API backend (no view layer for product UX)
- **Purpose:** Manage clinical laboratory workflows (patients, orders, specimens, results, value sets, edge/instrument integration) via JSON APIs.
- **Framework/Runtime:** CodeIgniter 4 on PHP 8.1+
- **Database:** MySQL (legacy PascalCase column naming in many tables)
- **Auth:** JWT (firebase/php-jwt), typically required for protected `/api/*` endpoints.
## Architecture Notes
- API-first and frontend-agnostic; clients consume REST JSON endpoints.
- Controllers delegate business logic to models/services; avoid direct DB query logic in controllers.
- Standardized response format with `status`, `message`, `data`.
- ValueSet/Lookups system supports static lookup data and API-managed lookup definitions.
- OpenAPI docs live under `public/api-docs.yaml`, `public/paths/*.yaml`, `public/components/schemas/*.yaml` and are bundled into `public/api-docs.bundled.yaml`.
## High-Level Structure
- `app/Config` - framework and app configuration (routes, filters, etc.)
- `app/Controllers` - REST controllers
- `app/Models` - data access and DB logic
- `app/Services` - service-layer logic
- `app/Filters` - auth/request filters
- `app/Helpers` - helper functions (including UTC handling per conventions)
- `app/Libraries` - shared libraries (lookups/valuesets, etc.)
- `app/Traits` - reusable traits (including response behavior)
- `tests/feature`, `tests/unit` - PHPUnit test suites
- `public/paths`, `public/components/schemas` - modular OpenAPI source files
## Key Dependencies
- `codeigniter4/framework`
- `firebase/php-jwt`
- `mossadal/math-parser`
- Dev: `phpunit/phpunit`, `fakerphp/faker`