medical-laboratory is a fully functional medical laboratory management system. It is the operational record for a working clinical laboratory: it manages patient records for laboratory testing, manages test orders from creation through completion, manages specimen collection and tracking, records and reports laboratory test results, maintains a catalog of available laboratory tests, and manages laboratory staff and their access to the system.
The product is built for the people who run and depend on a laboratory bench: Laboratory Technicians who handle specimens and enter results, Laboratory Managers who oversee operations, the test catalog, and staff access, and Ordering Clinicians who request tests and read finalized reports to make clinical decisions. The system is accountable, calm, precise, and immediately operable — a working instrument, not a promotional surface.
Access is application-owned. An anonymous visitor reaches the Landing page, first-time staff enroll through Sign Up, and returning staff verify identity through Login before reaching protected laboratory records. A Laboratory Manager role governs staff accounts and the test catalog.
medical-laboratory is delivered as a first-party web application with a React frontend, a shared FastAPI backend, and a MariaDB database for application-owned persistent data. All laboratory records — patients, orders, specimens, results, reports, the test catalog, and staff accounts — are owned and persisted by the application itself; there is no external provider or headless delivery surface.
The public boundary is the Landing page, which explains the system, its users, and its capabilities before any identity is established. Login and Sign Up are the two anonymous identity-access surfaces: Sign Up is self-service first-use enrollment for staff who independently begin using the system, and Login is returning verification. Every other destination — Patients, Test Orders, Specimens, Results, Reports, Test Catalog, and Staff — is protected and requires an established session. Staff account management by managers governs access thereafter.
Access is differentiated by role where the workflow requires it: Patients, Specimens, Results, Test Catalog, and Staff are role-restricted; Test Orders and Reports are available to any signed-in staff member. The system does not add adjacent account-management capabilities beyond enrollment, verification, and manager-governed staff access.
All accepted behavior in this document is current. No future-horizon capabilities are defined.
Not applicable — no reference directive supplies a content_source.
FR-1 — Manage patient records (explicit) As a Laboratory Technician or Laboratory Manager, I should register and maintain patient records used for laboratory testing, so that every order, specimen, and result is tied to the correct patient.
FR-2 — Create test orders (explicit) As an Ordering Clinician, Laboratory Technician, or Laboratory Manager, I should create a test order for a patient by selecting tests from the catalog, so that the laboratory has an authoritative request to fulfill.
FR-3 — Track test orders through completion (explicit) As a Laboratory Technician or Laboratory Manager, I should track and advance each test order's status through the laboratory workflow, so that no order is lost between creation and completion.
FR-4 — Record specimen collection (explicit) As a Laboratory Technician, I should record specimen collection against an order, so that the laboratory knows which specimen exists and when it was collected.
FR-5 — Track specimen status (explicit) As a Laboratory Technician, I should update specimen status as it moves through the laboratory, so that the specimen's location in the workflow is always visible.
FR-6 — Enter test results (explicit) As a Laboratory Technician, I should enter test result values against an order's tests, so that the laboratory's measurements are recorded against the correct order.
FR-7 — Finalize results for reporting (explicit) As a Laboratory Technician, I should finalize entered results so that they can be reported.
FR-8 — View and search finalized reports (explicit) As an Ordering Clinician, Laboratory Manager, or Laboratory Technician, I should view and search finalized test reports for a patient or order, so that I can act on the laboratory's findings.
FR-9 — Maintain the test catalog (explicit) As a Laboratory Manager, I should add and edit the catalog of available laboratory tests, including their details, so that orders can be placed against accurate test definitions.
FR-10 — Manage staff accounts and access (explicit) As a Laboratory Manager, I should manage laboratory staff accounts and their access to the system, so that the right people can perform the right laboratory work.
FR-11 — Anonymous entry to Landing (required_inference) As an anonymous visitor, I should reach the Landing page before any identity establishment, so that I can understand the system and choose to enroll or sign in.
FR-12 — First-use enrollment through Sign Up (required_inference) As a first-time staff member, I should enroll through Sign Up to establish a staff account, so that I can begin using the system.
FR-13 — Returning verification through Login (required_inference) As a returning staff member, I should verify my identity through Login before accessing protected laboratory records, so that laboratory data remains bound to the correct account.
FR-14 — Manager-governed role assignment (required_inference) As a Laboratory Manager, I should assign and update staff roles and access so that role-restricted destinations are available only to the appropriate staff.
Muse: Dieter Rams. Headline: Functional clarity for the clinical workflow.
The visual identity makes the laboratory workflow legible at a glance: identify, collect, process, verify, report. It is accountable, calm, precise, and immediately operable — never promotional or futuristic.
| Role | Hex | Usage |
|---|---|---|
| Background | #E9E5DD | Warm laboratory-paper ground, dominant field (~65%) |
| Surface | #F8F5EF | Pale panels for tables, forms, drawers, reports (~25%) |
| Text | #171916 | Charcoal for all primary text, rules, and navigation |
| Primary | #D75A18 | Burnt orange operational signal: urgent queues, overdue collection, primary actions, exceptions — never a decorative wash |
| Accent | #216B4D | Deep specimen green for completed, verified, and in-range states |
| Muted | #77746D | Secondary text, quiet rules, reference-range intervals |
Quiet semantic tints derived from these colors are permitted for status badges only, always retaining dark text and readable contrast. Status is never communicated by color alone: every status carries a left-edge signal bar, a concise label, and an icon.
clamp(48px, 7vw, 88px) on the landing display; 32px page title; 25px section title.clamp(48px, 7vw, 88px) landing display.Purposeful diagrammatic visuals only: clean specimen tube silhouettes, accession-label patterns, sample route maps, test-panel diagrams, and calibrated instrument line drawings. No stock clinicians, glossy medical 3D imagery, abstract blobs, decorative DNA helices, or generic dashboard mockups.
The Landing page is a flat, asymmetric laboratory workboard on warm paper. On the left, an oversized two-line headline — "THE LAB / IN MOTION." — occupies roughly seven of twelve columns, with an orange horizontal rule passing beneath it and a compact sign-in control anchored below. On the right, a tall pale specimen-routing sheet is divided by black rules into four operational stations: ORDER, COLLECT, ANALYZE, VERIFY. Each station contains a large mono accession code, a tube silhouette, and a visible state marker; the third station carries the single burnt-orange active bar. A narrow deep-green completion strip runs vertically at the far edge.
The composition stays flat and diagrammatic: no centered SaaS copy stack, no blue button, no decorative gradient. The routing sheet is the product's defining state made visible — a specimen moving through the laboratory — and it recomposes only accepted workflow stages and statuses.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
prefers-reduced-motion, transitions are disabled and completed static state steps are rendered; all content remains usable.docker-compose.yml with the three provisioned services — frontend, backend, and database — connected as a single application stack. No additional services are required for the accepted workflows.
Patients, orders, specimens, results, reports, the test catalog and staff access — one accountable record from the order bench to the signed report.
First use? Enroll staff account
LAB-0042Order received
Logged · 08:12LAB-0042-AEDTA · 4.0 mL
Collected · 08:40LAB-0042-ARack 3 · Position 07
In analysisLAB-0042-APending review
Awaiting verificationTray moved
Capabilities described here. Laboratory records require a signed-in staff account.
Handles specimens at the bench and records the results that carry each order toward verification.
Oversees laboratory operations, maintains the test catalog, and governs staff access to the system.
Requests laboratory tests and reads finalized reports to make clinical decisions.

Patients, orders, specimens, results, reports, the test catalog and staff access — one accountable record from the order bench to the signed report.
First use? Enroll staff account
LAB-0042Order received
Logged · 08:12LAB-0042-AEDTA · 4.0 mL
Collected · 08:40LAB-0042-ARack 3 · Position 07
In analysisLAB-0042-APending review
Awaiting verificationTray moved
Capabilities described here. Laboratory records require a signed-in staff account.
Handles specimens at the bench and records the results that carry each order toward verification.
Oversees laboratory operations, maintains the test catalog, and governs staff access to the system.
Requests laboratory tests and reads finalized reports to make clinical decisions.
No comments yet. Be the first!