Laboratory & Blood Bank¶
A full laboratory information system (LIS): order tests, track specimens, enter and verify results, run quality control, monitor turnaround time, and manage the blood bank.
Screenshot: Lab dashboard — TODO
Medical → Laboratory (/medical/lab) shows the active worklist, pending verification, today's
critical results, TAT breaches today, blood-bank alerts, and QC exceptions.
Test orders & results¶
- Lab Orders (
/medical/lab/orders) — create requisitions (patient, ordering provider, tests, priority Routine/Urgent/STAT). Status flows Requested → Specimen Collected → In Process → Resulted → Verified (or Cancelled). - Result entry (
/medical/lab/orders/{id}/results) — enter values per test line; the system auto‑flags critical high/low against reference ranges. Verify releases the report. - Report (
/medical/lab/orders/{id}/report) — the formatted lab report.
Screenshot: Lab result entry — TODO
Priority-first worklist & auto-billing
The lab and radiology worklists sort STAT above Urgent above Routine (then by order time), so urgent tests surface at the top without filtering. Placing a lab/imaging order auto-raises the patient charge for the test/procedure fee (once per test — no double-billing on edits), and the nightly billing batch bundles the day's unbilled charges into a draft invoice per patient.
Turnaround time (TAT) & SLA¶
Each order is timed from specimen collection to final report (Verified) and measured against its priority's SLA target — STAT 60 min, Urgent 4 h, Routine 24 h. The lab worklist shows a TAT badge (green within target, red on breach), and a breached STAT order raises an alert so the delay is investigated. The lab home board carries a TAT breaches today KPI.
"View your report online" (public QR)¶
A verified report can be retrieved by the patient with no login — the model used by walk‑in patients. When a report is verified it gets an unguessable access code, printed as a QR on the patient's invoice/receipt (and shown on the staff order screen). The patient scans it, enters their date of birth as a second factor, and sees only that report. Access is rate‑limited (locks after repeated wrong dates), expires after 90 days, and every view is logged.
Catalogue, analyzers & QC¶
- Tests (
/medical/lab/tests) — define tests: code, LOINC, section, specimen type, unit, reference & critical ranges, price, turnaround time. - Analyzers (
/medical/lab/analyzers) — register instruments and their integration mode (Manual / LIS Interface / Bidirectional; HL7/ASTM). - Quality Control (
/medical/lab/qc) — record QC runs by control level; the system computes a z‑score and flags In Control / Warning (1‑2s) / Out of Control (1‑3s) per Westgard rules.
Consumables (reagents, kits, films, USG paper)¶
Medical → Lab → Consumables (/medical/lab/consumables) tracks diagnostic consumables — reagents,
kits, chemicals, X‑ray film, USG paper — for both Lab and Radiology, separately from pharmacy drug
stock. Define the consumable (category, department, unit, reorder level), then receive lots (lot
number, quantity, expiry) and consume against them.
- Stock view (
/medical/lab/consumables/stock) shows on‑hand vs reorder level flagged OK / LOW / OUT, plus near‑expiry lots; downloadable as CSV. - A daily sweep raises Low stock, Out of stock and Near‑expiry alerts into Clinical Alerts (idempotent per consumable/lot), so reagents and film are reordered before they run out.
Specimen labels¶
Specimen Labels (/medical/lab/specimen-labels) — print QR/barcode labels carrying the accession
number for collection → receipt → result traceability.
Blood bank¶
Blood Units (/medical/lab/blood-units) — register donor units (number, group, component, expiry,
volume) and move them through custody: Pass/Fail screening, Reserve (cross‑match to a patient),
Issue (transfuse), or Discard.
Verify before release
Results aren't visible on the report until Verified, and verified results lock from editing — this enforces the second-check before a result reaches the clinician. The public QR link only ever exposes a verified report.