labscript
Generate prescription PDFs with e-signatures and QR verification.
A Rust CLI that turns structured prescription data into professional PDFs. Each document carries a digital signature and a QR code that anyone can scan to verify it has not been tampered with. Starts in about 2 milliseconds.
Install · Quick Start · Features · CLI Suite · Contributing
Why This Exists
Prescriptions are still written by hand or exported through clunky EMR interfaces. Neither fits into a modern clinical workflow.
labscript takes structured input -- a JSON file, stdin, or CLI flags -- and produces a clean, tamper-evident PDF. The QR code on each document encodes a SHA-256 hash of the prescription contents. Pharmacists or patients scan it to confirm nothing changed after signing.
One command. Deterministic output. No GUI, no cloud, no subscription.
Install
Requires Rust 1.70+. Builds to a single static binary.
How It Works
┌──────────────────────────────┐
│ Structured Input │
│ (JSON file / stdin / flags) │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ labscript generate │
│ │
│ • Validates all fields │
│ • Renders prescription PDF │
│ • Embeds e-signature (PNG) │
│ • Generates QR verification │
│ • SHA-256 content hash │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ prescription.pdf │
│ Professional layout with │
│ signature + scannable QR │
└──────────────────────────────┘
Quick Start
From CLI flags:
From a JSON file:
Piped from another tool:
|
Verify a prescription QR code:
Output is JSON when piped, human-readable tables on a TTY. Force JSON with --json.
Features
PDF Generation
- Professional prescription layout with patient and prescriber details
- Drug name, strength, form, quantity, sig, refills, and diagnosis fields
- Custom prescription date or automatic dating
E-Signatures
- Embed a PNG signature image directly into the PDF
- Prescriber credentials and license number on every document
QR Verification
- Each PDF carries a QR code encoding a SHA-256 hash of the prescription content
labscript verifychecks any scanned QR string against the expected hash- Tamper-evident: changing any field invalidates the QR
Input Flexibility
- CLI flags for scripting and one-off use
- JSON file input for batch workflows
- Stdin for piping from other tools in the suite
Agent-Friendly
labscript agent-infoexposes machine-readable capabilities- JSON output mode for AI agent consumption
- Exit codes: 0 success, 1 error, 2 config, 3 parse failure
Part of the Longevity CLI Suite
labscript is one tool in a set of composable Rust CLIs built by 199 Biotechnologies for clinical biomarker analysis and longevity medicine.
| Tool | What it does |
|---|---|
| labparse | Extract biomarkers from lab PDFs |
| labassess | Score biomarkers against longevity-optimal ranges |
| labstore | SQLite patient database for longitudinal tracking |
| labscript | Generate prescription PDFs with e-signatures and QR |
All tools communicate via JSON on stdout. Pipe them together.
Contributing
199 Biotechnologies owns this software. We are not accepting outside contributions right now. Found a bug or want a feature? Open an issue.
License
Proprietary. Copyright 2024-2025 199 Biotechnologies. All rights reserved.
Built by 199 Biotechnologies · Follow @longevityboris