Healthcare SaaS · Patient support AI
Healthcare platform intercepted 23 PHI disclosures before patient inbox delivery
Published May 10, 2026
Outcome
23 PHI disclosures intercepted · BAA in place · zero HIPAA incidents
The problem
The customer ran an AI-powered patient support bot that answered queries about appointments, prescriptions, and care plans. During a routine compliance review, the security team discovered that the model occasionally echoed back SSNs, DOBs, and partial MRN numbers extracted from the patient record context window — exactly the kind of disclosure that triggers HIPAA §164.514 notification requirements.
The risk
A single unprotected PHI disclosure to the wrong patient inbox constitutes a HIPAA reportable breach. At $100–$50,000 per violation under HHS Office for Civil Rights enforcement, and with a patient population of 200,000+, the risk exposure was material.
Implementation
Signed a BAA with DataVibe. Deployed the gate at the patient message delivery layer: every bot reply is routed through POST /v1/gate/outbound before the sendgrid send call. The workspace policy uses the healthcare-safeguards bundle: PHI regex (SSN pattern, MRN pattern, DOB combos), a personal_data_reference denylist, and a HIPAA_DIAGNOSIS WARN rule. All BLOCKED and QUEUED decisions are written to the tamper-evident audit chain and exported weekly to the compliance officer.
What changed
- 23 PHI disclosure incidents blocked in the first 30 days.
- Zero HIPAA reportable incidents since deployment.
- Audit log exported to compliance weekly — 100% traceability on every bot reply.
- HITL escalation path: high-severity PHI intercepts route to the patient services lead within 4 hours.
Patient support bot — before and after DataVibe
// Before: bot reply sent directly to patient inbox
await sendgrid.send({
to: patient.email,
subject: "Re: Your appointment inquiry",
html: botGeneratedReply, // ← PHI may be present
});
// After: intercept before dispatch
import { DataVibeClient } from "@datavibe.cc/sdk";
const dv = new DataVibeClient({ apiKey: process.env.DATAVIBE_API_KEY });
const result = await dv.intercept({
recipient: patient.email,
subject: "Re: Your appointment inquiry",
body_html: botGeneratedReply,
source_model: "claude-3-haiku",
metadata: { patient_id: patient.id, bot_session: sessionId },
});
if (result.status === "BLOCKED") {
// PHI detected — never sent. Log and escalate.
await escalateToClinicalOps(patient.id, result.policy_violations);
return;
}
if (result.status === "QUEUED") {
// WARN rule fired (e.g. diagnosis language) — human reviews within 4h
await notifyPatientServicesLead(result.review_url!);
return;
}
// SENT — all controls passed, patient message delivered