Overview
The Open Dental connector polls your Open Dental MySQL database every 2 minutes and sends audit trail events to ScaleHouse for compliance monitoring.Prerequisites: Open Dental must be installed and running on a Windows computer with MySQL database access.
What Data is Collected
The connector queries the following Open Dental tables:| Table | Purpose | Frequency |
|---|---|---|
auditlog | Audit trail events | Every 2 minutes |
userod | User information | Every 2 minutes |
provider | Provider names | Every 2 minutes |
usergroupattaches | Permission groups | Every 2 minutes |
Audit Events Tracked
Authentication Events
Authentication Events
- User logins (
UserLogOnOff) - Failed login attempts
- Session timeouts
Patient Access
Patient Access
- Chart views (
ChartModuleViewed) - Family module access (
FamilyModuleViewed) - Medical info views (
MedicalInfoViewed) - Patient edits (
PatientEdit) - Patient creation (
PatientCreate)
Security Events
Security Events
- Permission changes (
SecurityAdmin) - New user creation (
AddNewUser) - SQL command execution (
CommandQuery) - Critical alert
Image Operations
Image Operations
- Image creation (
ImageCreate) - Image edits (
ImageEdit) - Image deletion (
ImageDelete)
Installation
Download Connector
Go to Audit Intelligence → Connectors in your ScaleHouse dashboard and click “Download Connector”.
Run Installer
Double-click
ScaleHouseConnector.msi and follow the installation wizard. Requires admin rights.Generate Activation Token
In the dashboard, click “Activate Connector” and copy the activation token (valid for 15 minutes).
Configure Connector
Right-click the connector icon in your system tray, click “Configure”, and paste the activation token.
Enter Database Credentials
Provide your Open Dental MySQL connection details:
- Host:
localhost(or IP address) - Database:
opendental(default name) - Username: MySQL username
- Password: MySQL password
Database Query
The connector runs this SQL query every 2 minutes:The connector uses cursor-based polling with a 2-minute overlap window to ensure no events are lost during crashes or network issues.
Compliance Mapping
Open Dental events are automatically mapped to HIPAA requirements:| Open Dental Permission | HIPAA Citation | Requirement |
|---|---|---|
UserLogOnOff | §164.312(a)(2)(i) | Unique User Identification |
PatientEdit | §164.312(a)(1) | Access Control |
SecurityAdmin | §164.308(a)(4) | Information Access Management |
CommandQuery | §164.312(b) | Audit Controls (RED FLAG) |
ImageDelete | §164.312(c) | Integrity |
EmailSend | §164.312(e) | Transmission Security |
Troubleshooting
Connector shows 'Offline' status
Connector shows 'Offline' status
Possible causes:
- Connector service stopped
- Network connection lost
- Database credentials changed
- Check if connector is running (system tray icon)
- Right-click → “Reconfigure” to update credentials
- Check Windows Event Log for errors
No events appearing in dashboard
No events appearing in dashboard
Possible causes:
- Connector not activated
- Database credentials incorrect
- Open Dental audit trail disabled
- Verify connector status is “Active” in dashboard
- Check connector logs:
C:\ProgramData\ScaleHouse\logs\ - Verify Open Dental audit trail is enabled
'Connection refused' error
'Connection refused' error
Possible causes:
- MySQL not running
- Firewall blocking connection
- Incorrect host/port
- Verify MySQL is running:
services.msc→ MySQL service - Check firewall allows localhost connections
- Verify host is
localhostor correct IP
Security
How Credentials are Stored
Open Dental database credentials are encrypted using Windows DPAPI (Data Protection API) and stored locally on the office computer. They are never sent to the cloud.
- Connector authenticates to ScaleHouse using per-connector API key
- Connector authenticates to Open Dental using local encrypted credentials
- Audit events are signed with HMAC-SHA256 before transmission
- ScaleHouse validates signature and stores events
Performance
- Polling Frequency: Every 2 minutes (configurable)
- Batch Size: Up to 100 events per request
- Network Usage: ~10-50 KB per sync (minimal)
- CPU Usage: <1% (runs in background)
- Memory Usage: ~50-100 MB
