The billing model is a setting, not a product
Cash pay and insurance run on the same coded charge ledger, decided per encounter. Practices that change their mix — most of them, eventually — change a setting rather than a platform.
Coded charges, one ledger, payer connections as edge adapters
Authorization is computed, not configured per screen
Every request runs tenant, then role, then attributes before a handler executes, and the decision carries the field-level scope of what may come back. There is no screen-level shortcut, because the screen is not where the control lives.
Deny-by-default pipeline with minimum-necessary scope on every decision
The audit trail is evidence, not telemetry
Events are append-only and hash-chained, each committing to the one before it, and they belong to the practice rather than to an internal observability stack. An auditor gets the chain, not a screenshot.
Tamper-evident chain with correlation ids
AI is governed at one choke point
No product code calls a model directly. A single gateway attaches the workflow, risk tier, and PHI flag to every call, refuses providers not eligible for the payload, and records the proposal as well as the execution.
One governed gateway with PHI and BAA gating; no product code reaches a model without it
A stolen password is not enough, and neither is a stolen code
Sign-in happens at your identity provider, so the platform never handles a password. The second factor is a passkey bound to your practice’s own address — it will not be offered on a look-alike site, and it cannot be read aloud to whoever is on the phone claiming to be IT.
Practice-scoped WebAuthn for sign-in and step-up; bring your own SSO
Isolation is a deployment choice you can change later
Shared with row-level security, your own database, or your own stack and encryption key — the same application code, selected by configuration. Growing into a stricter boundary is not a re-platforming project.
Three isolation tiers behind one code path
Weakening a control fails the build
Authorization, tenant isolation, deny-by-default, audit emission, and PHI minimization are covered by a security suite that must pass before anything merges. The control is a test, not a paragraph in a policy document.
test:security as a required CI gate
Your record’s history is provable, not vouched for
A tamper-evident log tells you the vendor checked their own records and found nothing wrong — which is only as good as the vendor. Here every consequential act enters a Merkle log, and you keep short signed receipts for it somewhere we cannot reach. Later you can demand proof that the log still contains everything a receipt covered. If anything had been removed, reordered, or rewritten, no such proof exists, and no amount of access to our own infrastructure would produce one.
RFC 6962 transparency log, Ed25519 checkpoints; the verification key is served to staff the practice authorises, not on a public route
A signature covers the words, not the moment
When a clinician signs, their device signs a fingerprint of the exact text on screen. Change one character afterwards and the signature stops verifying — so "the note said this when I signed it" becomes something anybody can check rather than something they assert. Signed records cannot be edited by them, by the practice owner, or by us; corrections are amendments that name the original.
Content hash as the WebAuthn challenge; immutability enforced in one place
A controlled-substance signature covers the prescription, not a code
The DEA requires two-factor authentication at each signing. The usual implementation authenticates against a random challenge, which proves somebody was present but not which prescription was in front of them. Here the challenge IS the prescription — a hash of the exact block displayed — so the practitioner’s own key signs the drug, the quantity, the directions and the DEA number. Change any of them after the review and the signature simply fails to verify.
Content hash as the WebAuthn challenge; one ceremony signs one prescription
Nobody can grant themselves the authority to write for Schedule II
Controlled-substance signing is held by no role. It is granted per practitioner and per schedule by two people — one proposing, a DEA registrant approving with their own credential — which is what the regulation requires and what stops whoever administers accounts from quietly becoming a prescriber. Revocation is one person and takes seconds, because taking authority away should never be the hard direction.
Logical access control entries, not role assignments (21 CFR 1311.125)
The status page is deliberately unflattering
What has been implemented is stated alongside what has not been independently verified. A buyer who reads carefully should be able to trust the rest of the page because of it.
Published compliance status, no claimed certifications