clqms-fe1/.serena/memories/project_overview.md

63 lines
2.7 KiB
Markdown

# CLQMS Frontend - Project Overview
## Project Purpose
CLQMS (Clinical Laboratory Quality Management System) frontend built with SvelteKit. This is a web application for managing clinical laboratory operations including patients, specimens, test orders, results, and laboratory workflows.
## Tech Stack
- **Framework**: SvelteKit (latest with Svelte 5 runes)
- **Styling**: TailwindCSS 4 + DaisyUI
- **Icons**: Lucide Svelte
- **Language**: JavaScript (no TypeScript - KISS principle)
- **Build Tool**: Vite
- **Package Manager**: pnpm
- **Authentication**: JWT tokens with HTTP-only cookies
## Architecture Principles
- **KISS**: Keep It Simple - plain JavaScript, minimal tooling
- **Manual API Wrapper**: No codegen, simple fetch-based API client
- **File-based Routing**: Standard SvelteKit routing patterns
- **Server-side Auth Check**: SvelteKit hooks for session validation
## Project Structure
```
src/
├── lib/
│ ├── api/ # API service functions (client.js, auth.js, valuesets.js, etc.)
│ ├── components/ # Reusable Svelte components (DataTable, Modal, SelectDropdown, Sidebar, etc.)
│ ├── stores/ # Svelte stores (auth.js, valuesets.js)
│ └── utils/ # Utility functions (toast.js)
├── routes/ # SvelteKit routes
│ ├── +layout.svelte # Root layout
│ ├── login/ # Login page
│ └── (app)/ # Protected route group
│ ├── +layout.svelte # Auth check with sidebar
│ ├── dashboard/
│ ├── master-data/ # Locations, contacts, specialties, valuesets, geography, occupations, counters
│ └── patients/
├── app.css # Global styles with Tailwind
└── app.html # HTML template
```
## Key Features Implemented
- Phase 0: Foundation (Auth, base API client, layouts) ✅
- Phase 1: Foundation Data (ValueSets, Locations, Contacts, Occupations, Specialties, Counters, Geography) ✅
- Phase 2a: Patient CRUD ✅
- Phase 11: Authentication (login/logout, JWT handling) ✅
## Pending Features
- Phase 2b: Advanced Patient Features
- Phase 3: Patient Visits (list page exists, needs create/edit forms)
- Phase 4: Specimen Management
- Phase 5: Test Catalog
- Phase 6: Orders
- Phase 7: Results & Dashboard
- Phase 8: User-defined ValueSets
- Phase 9: Organization Structure
- Phase 10: Edge API (Instrument Integration)
## API Proxy Configuration
API requests to `/api` are proxied to `http://localhost:8000` in development mode (configured in vite.config.js).
## Environment Variables
- `VITE_API_URL`: Base URL for API (default: empty string, uses proxy in dev)