A tamper-evident record of every action taken in your clinic.

app.chartling.io C Chartling GETTING STARTED Quick start PATIENTS & CLIENTS Patients Clients CLINICAL Visits & SOAP AI scribe Medications & Rx Controlled subs. Lab orders Discharge & comms AI FEATURES Clinic Copilot Clinical support SCHEDULING Appointments BILLING Invoicing & pmts SERVICE MODULES Boarding Daycare Grooming Training TEAM & SETTINGS Team & permissions Clinic settings SMS & reminders Audit log Docs โ€บ Chartling โ€บ Audit log Audit log EVENT USER DATE / TIME HASH soap.sign Luna R. โ€” wellness exam Dr. Chen Jun 23, 14:32 a3f8b2โ€ฆ rx.controlled.dispense Tramadol 50 mg ร— 14 โ€” DEA log Dr. Park Jun 23, 14:28 c91d4eโ€ฆ invoice.finalize INV-0249 โ€” Luna Rodriguez Dr. Chen Jun 23, 14:31 f2a117โ€ฆ Hash chain verified โ€” tamper-evident log ยท 21 CFR Part 1304

Chartling maintains a continuous audit log of all significant actions. Every entry is linked to a specific user, timestamped to the second, and chained to the previous entry using a cryptographic hash. The chain makes it impossible to insert, delete, or modify historical entries without breaking the audit trail โ€” which is immediately visible in the log viewer.

What's logged

CategoryEvents logged
ClinicalSOAP note created, signed, cosigned; medications prescribed, dispensed, witnessed
Controlled substancesEvery dispense, witness, and reconciliation with full details
BillingInvoices created, updated, voided; payments collected, refunded
Patient recordsPatient created, edited, status changed (active โ†’ inactive โ†’ deceased)
Client recordsClient created, edited, portal access granted or revoked
TeamUsers invited, activated, deactivated; permission packs changed
SettingsClinic settings changed; module configurations updated
AuthenticationSuccessful logins; failed login attempts; password resets
Data exportExports initiated, download links generated

How the hash chain works

Each audit log entry includes two hash fields:

This creates a chain: any modification to an earlier entry changes its hash, which breaks the chain at that point and all subsequent entries. The log viewer shows the chain status โ€” green for valid, red for any detected break. A broken chain is immediate evidence that the record has been altered.

Hash computation happens at the database level via a trigger, not in application code. This means the chain is enforced even if the application layer is bypassed.

Viewing the log

The audit log is accessible to users with the Admin permission pack. Go to Settings โ†’ Audit log. The log can be:

Each entry shows the actor (who), action (what), target (which record), timestamp, and whether the hash chain is intact.

Exporting the log

From the audit log view, click Export to download a filtered or full export as CSV or PDF. Exports include the hash values so chain integrity can be independently verified. Exports are themselves logged โ€” if someone exports the audit log, that action appears in the log.

Entries cannot be deleted

Audit log entries are write-once. No user โ€” including Admins โ€” can delete or edit audit log entries through the Chartling interface. The only way to invalidate the chain is direct database modification, which is logged at the Supabase infrastructure level.

FAQ

Who can access the audit log?

Only users with the Admin permission pack can view the full audit log. Practice managers can view a filtered version scoped to clinical and billing events for their own patients. Staff members cannot see their own entries or other users' actions.

How long are audit logs retained?

Audit logs are retained indefinitely while your clinic is active on Chartling. If you close your account, you'll receive a full audit log export. The log is included in your data export package โ€” see Data export.

Does the audit log satisfy DEA or state board requirements?

The audit log, combined with the controlled substance log, provides a strong foundation for DEA and state board compliance. However, specific regulatory requirements vary by state and jurisdiction โ€” consult your state veterinary board or a compliance advisor to confirm that Chartling's records satisfy your specific obligations.

What does a broken hash chain mean in practice?

A broken chain means one or more historical entries have been modified after they were written. This should never happen under normal operation. If you see a broken chain in production, contact support@chartling.io immediately โ€” our team can investigate at the database infrastructure level.

Something missing? We're always improving these docs.

Contact support Open app