Patient health information is the most sensitive data we'll ever touch. Denticode treats it that way - from row-level isolation in the database to a signed BAA in every contract.
Every account ships under a signed Business Associate Agreement. Every byte at rest is encrypted (AES-256). Every byte in transit is TLS 1.3.
AES-256-GCM
TLS 1.3
90 days
No practice can ever see another practice's data. Postgres row-level security is enforced on every query, every join, every report.
{`CREATE POLICY practice_isolation
ON visit_notes
USING (practice_id =
current_setting('app.practice_id')::uuid);`}
Who read, who edited, who exported - captured to an immutable log with second-level timestamps and IP attribution. Export to CSV, Splunk, or your SIEM.
all
7 years
CSV · webhook
Patient identifiers stay inside Denticode. Anything that leaves our walls for inference is de-identified and runs under enterprise zero-retention contracts - never logged, never fine-tuned on, never cached past the request.
0 days
enforced
pre-flight
Searchable, exportable, immutable. Built into every workspace.
Default roles for the obvious cases - clinician, hygienist, assistant, billing, front office - plus a builder for whatever else your practice needs.
Compose a role from 38 atomic permissions. Save it, scope it to locations, hand it to whoever the room needs.
Three US primary regions on the coasts and central. Two mid-west backup nodes link the primaries in a pulsating mesh. EU primary and backup live in Ireland for Enterprise customers. PHI never leaves your continent.
Three US primary regions (East, West, Central) with two Mid-West backup nodes meshed in for redundancy. Inference routes only to US endpoints - never overseas. EU primary + backup in Ireland, available on Enterprise.
Set retention windows once, per data class. Soft-delete with a 30-day undo. Hard-delete with a one-click purge that we co-sign.
The trust center has our policies, sub-processor list, BAA template, and security questionnaire.