PatoLab is a full-stack laboratory management platform purpose-built for pathology laboratories. It accompanies every specimen from the moment it arrives at the intake desk through macroscopic and microscopic review, collaborative report authoring, billing, and final result delivery to the requesting clinician or patient. Whether you run a small private pathology practice or a multi-pathologist diagnostic centre, PatoLab provides the structured workflow, role-based access controls, and real-time collaboration tools your team needs to operate with confidence and traceability.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/lerichardv/patolab-platform/llms.txt
Use this file to discover all available pages before exploring further.
Tech Stack
PatoLab is built on a modern, well-supported open-source stack chosen for reliability and developer ergonomics:| Layer | Technology |
|---|---|
| Backend | Laravel 13 (PHP 8.3+) with Laravel Fortify authentication |
| Frontend | React 19 + Inertia.js v3 (SPA, no API layer needed) |
| Language | TypeScript throughout the frontend codebase |
| Styling | Tailwind CSS 4 with shadcn/ui (New York) components and Radix UI primitives |
| Build Tool | Vite 8 with Rolldown |
| Database | SQLite (development/testing) · MySQL or PostgreSQL (production) |
| PDF Generation | Spatie Browsershot backed by Chromium |
| Collaborative Editor | Hocuspocus v4 WebSocket server · Yjs · TipTap 3 |
| Queue | Laravel database-backed queue (QUEUE_CONNECTION=database) |
Key Feature Areas
Specimen Tracking
Manage the complete specimen lifecycle with a real-time Kanban board. Track every case from intake through seven discrete statuses, assign priorities, and keep a full audit trail.
Collaborative Report Editor
Multi-pathologist real-time report authoring powered by TipTap and Yjs. Pathologists can co-edit a single report simultaneously, with presence cursors and conflict-free merging.
Invoicing & Billing
Generate PDF invoices directly from finalized specimens. Chromium-based PDF rendering produces print-ready billing documents without any third-party services.
Roles & Permissions
Fine-grained role-based access control built on Laravel Fortify. Assign pathologists, technicians, receptionists, and administrators with scoped permissions per module.
Inventory Management
Track reagents, staining supplies, and consumables consumed per specimen. Link products to specimens via the
specimen_products pivot and monitor stock levels.WhatsApp Notifications
Deliver result notifications and report links directly to patients and referring physicians via the WhatsApp Business API — no third-party SMS gateway required.
Domain Model
TheSpecimen model is the central entity that everything else in PatoLab revolves around.
priorities_specimens_order join table records the drag-and-drop order of every specimen card within its lane, so the board state is persisted across sessions and users.
Specimen Statuses
Each specimen moves through a defined set of statuses that map directly to real laboratory workflow stages. Every status has a dedicated colour used across the Kanban board, list views, and PDF reports.| Status | Label | Hex Colour |
|---|---|---|
received | Received | #3b82f6 (blue-500) |
macroscopic_review | Macroscopic Review | #8b5cf6 (violet-500) |
processing | Processing | #f59e0b (amber-500) |
microscopic_review | Microscopic Review | #d946ef (fuchsia-500) |
finalized | Finalized | #10b981 (emerald-500) |
delivered | Delivered | #64748b (slate-500) |
cancelled | Cancelled | #ef4444 (red-500) |
Specimen::STATUS_COLORS (see app/Models/Specimen.php) and are appended to every serialised specimen via the computed status_color attribute, making them immediately available on the frontend without a separate lookup.
The Kanban board is the primary day-to-day interface for laboratory staff. Column order is determined by the
Priority model, and card order within each column is stored in the priorities_specimens_order table. After any database restoration or migration from another environment you must clean stale rows from this table — otherwise duplicate cards will appear. See the Deployment page for the exact cleanup SQL.Quick Navigation
Quickstart
Get a local development environment running in under 10 minutes, including seeded test data and all dev servers.
Deployment
Step-by-step production deployment guide for traditional servers and Docker, including caching, queue workers, and Chromium setup.
Specimens
Deep dive into specimen intake, the Kanban board, status transitions, priority management, and grouped specimens.
Report Editor
Learn how the collaborative TipTap editor works, how to start the Hocuspocus WebSocket server, and how reports are finalised and signed.
Roles & Permissions
Configure roles, restrict feature access per role, and manage pathologist signatures for PDF sign-off.
WhatsApp Integration
Connect PatoLab to the WhatsApp Business API to send result notifications and secure report-delivery links.
