Controls as code
Guards run inside the workflow engine itself. An illegal transition returns an HTTP 409 from the API.
Every control described on this page is enforced in code — in the state machine, the permission layer, and the audit spine — and can be independently inspected against the running system. Nothing here is a policy PDF promise.
mdvin is a prior-authorization and value-based-care orchestration platform for a domain where a wrong decision is a legal event. The platform therefore treats security and decision governance as one discipline: statutory constraints are compiled into the workflow state machine, every privileged action requires an authenticated, credentialed actor, and every state change lands in an append-only, hash-chained audit trail.
The hosted environment you can sign into today is a live demo environment running entirely on synthetic data — no PHI is stored or processed. The controls are built as though the data were real, with the same guards, the same audit chain and the same server-side refusals. You can verify that yourself — the audit integrity endpoint (/ops/audit-verify) recomputes the hash chain on demand, and the Auditor demo role gives read-only access to full decision traces (credentials in the manual).
Guards run inside the workflow engine itself. An illegal transition returns an HTTP 409 from the API.
Hash-chained audit trail with a public self-check endpoint; correlation IDs tie every UI action to server events.
No AI or automation path can issue an adverse determination. The deny transition demands a physician credential.
Every patient, payer, and policy in the demo is fictional. A deployment flag pins the environment to synthetic-only mode.
mdvin is designed to align with the frameworks below. Where a control is enforced in code today we say so, and where alignment is still a design target or a roadmap item we say that instead. We do not claim certifications or attestations we do not hold.
| Framework | What it demands | Where mdvin stands | Status |
|---|---|---|---|
| HIPAA Security Rule incl. Jan 2025 NPRM direction (final rule expected ~2027) |
The proposed rewrite removes the required-vs-addressable distinction and points to mandatory MFA, encryption in transit and at rest, asset inventory and network mapping, prescriptive risk analysis, and vulnerability-scanning cadence. | The build targets the NPRM rather than the current minimum: MFA slot (TOTP) on every account with an enforcement flag; TLS-only transport with HSTS; Argon2id password storage; documented deployment checklist covering asset inventory and least-privilege database users. Field-level encryption at rest with managed keys is a tracked roadmap item. | Designed to align |
| CMS-0057-F Interoperability & Prior Authorization Final Rule |
Since Jan 1, 2026: 72-hour expedited / 7-calendar-day standard decision timeframes, specific denial reasons (no generic denials), and annual public PA metrics. From Jan 1, 2027: Prior Authorization, Patient Access, Provider Access, and Payer-to-Payer APIs. | SLA clocks are computed server-side at submission (72h/7d, configurable per payer type, since scope is never hard-coded). The deny transition returns HTTP 422 without a reason code plus reason text. PA records carry channel provenance for metrics capture. API alignment path follows the Da Vinci CRD / DTR / PAS pattern (FHIR facade on the roadmap). | Enforced in code |
| CA SB 1120 "Physicians Make Decisions Act" + NAIC AI Model Bulletin (~25 states adopted) |
AI may not autonomously deny, delay, or modify care on medical-necessity grounds; a licensed physician with relevant clinical expertise must make the determination; plans must disclose and audit AI use. The NAIC bulletin adds a written AI-systems program with model validation and vendor oversight. | Enforced server-side in the state machine: the deny transition requires the pa.decide permission and a physician credential (MD:*) — an RN attempting a denial is refused by the server whatever the client sends. AI output is written as advisory rows that structurally cannot touch case state, and every advisory is logged with model and version for audit. | Enforced in code |
| 42 CFR Part 2 Substance-use-disorder records |
Heightened confidentiality and consent handling for SUD treatment records, requiring segmentation from the general record. | Segmentation hooks are a tracked design item on the production path; the current demo carries no SUD data (all records synthetic). We would rather say so than imply coverage we have not built. | Planned |
| SOC 2 (CC-series) Trust Services Criteria |
Independent attestation over security, availability, and related common criteria — the entry ticket for US enterprise procurement. | SOC 2-aligned controls: access control with least privilege, change-tracked configuration, structured logging, backup and restore testing, incident-handling runbooks on the deployment checklist. Formal Type II attestation is on the roadmap and would accompany any production engagement; we do not claim it today. | Aligned controls |
Wording note: "designed to align" means the control objectives shaped the architecture and the relevant mechanics exist in code; it does not assert regulatory compliance status or a third-party attestation, neither of which apply to a demo environment holding no PHI.
Six domains, every item below verifiable against the running system or the deployment configuration. Items we have deliberately deferred are listed later in shared responsibility & roadmap — not silently omitted here.
Recent litigation over algorithmic utilization management has established that when a determination is challenged, the algorithm, its inputs and its audit trail all become discoverable. mdvin is built with that day in mind. Every prior-authorization decision stores the policy package version it was evaluated against, the five-state outcome of each criterion, any AI advisory with its model version, the reviewer's identity and credential, and timestamps for every transition — all bound into the hash-chained audit trail. A historical decision can be replayed exactly as it happened. The answer to a challenge is therefore a complete record of what happened rather than an assurance that the software behaved, which is one always can.
AI in utilization management is now constrained by state statute — California's SB 1120 requires that a licensed physician with relevant clinical expertise, not an algorithm, makes medical-necessity determinations, and the NAIC model bulletin (adopted in roughly 25 states) requires a governed, auditable AI program. Our answer to that is architectural. The seven rules below are properties of how the system is built, and they cover every surface that could influence care: the review advisory, the documentation readiness check, the Ask mdvin assistant, and — added 2026 — the risk-scoring engine and the next-best-action engine. Those last two are deterministic rule engines, not models. We say so plainly because the distinction cuts both ways: it is what makes every score explainable, and it means nothing here should be described as a prediction.
Advisories are generated only from the tenant's own policy packages and the case record in front of the reviewer — and never from open-ended generation.
Every recommendation cites the criterion and the evidence item it rests on, rendered visually distinct from deterministic rule results.
Each advisory row records model and version in the audit trail — which gives the registry that state AI-use audits now expect.
Advisory rows have no write path to case state. A compromised prompt cannot deny care, because no code path connects AI output to the deny transition.
The assistant runs as the person asking, not as the system. Every query filters to their tenant and every question is checked against their own permissions, so it refuses exactly where the API refuses and names the permission that is missing. It cannot become a side channel around access control.
Language-model phrasing is off by default. When enabled it receives the finished conclusion and its facts, never the record, and it is refused outright unless the deployment is marked synthetic-only. Every number in its output must already appear in its input, or the rephrasing is discarded and the computed sentence kept. Answers a model touched are labelled, and the audit row records which.
Any score that influences care displays the engine and version that produced it, and that name must refer to something that ran. Where no engine has scored a member, the screen says so in those words rather than showing a version string. Scores are written to a history table, so "which engine, which version, on what inputs, when" has an answer for any past decision, and the version is bumped whenever a weight changes so an old score still means what it meant. A displayed model version is a disclosure claim, and an unsupported one is the kind of detail that surfaces in discovery rather than in a demo.
Try it live: sign in as the UM Nurse demo user, attempt a denial and the server will refuse it, then repeat as the Medical Director with a specific reason. The guard sits in the API itself.
The demo environment operates under a strict synthetic-data policy: every patient, member ID, coverage, and clinical value is fictional and generated for demonstration. There is no PHI in the system, and the handling rules below are enforced as though there were.
A trust page that lists only finished work is a marketing page. This section covers the other half: the controls a production, PHI-bearing deployment requires and this demo environment deliberately defers. Each one is tracked and belongs to the production path.
If you believe you have found a vulnerability in mdvin or this demo environment, we want to hear about it. Report it privately and include the URL, steps to reproduce and the correlation ID from the response header if you have one. We will acknowledge receipt, investigate, and keep you informed through remediation.
security@bvlogic.example (placeholder address for the demo environment)
Please avoid testing that degrades the service for other demo users, and remember that the environment holds synthetic data only, so there is no PHI to find. We do not run a paid bug-bounty program at this time and make no reward commitments. We do commit to taking every credible report seriously and to crediting researchers who would like to be named.