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

2.7 KiB

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)