EMStool LLC — Cadence MIH Scheduling Platform

PHI Field Inventory & Data Flow

Policy #: HIPAA-SEC-016 Effective Date: July 16, 2026 Version: 1.0 Next Review: July 16, 2027

1. Purpose

This document identifies exactly which database tables in Cadence contain PHI, which contain PHI-adjacent metadata, and which contain none — and traces how PHI actually moves through the system end to end. It is the field-level companion to the Risk Analysis's asset-level description (Asset 1), suitable as a BAA attachment or auditor exhibit.

Classification is based on the actual database schema (migrations/*.sql in the versioned git repo) as of 2026-07-16, not a design document — this reflects what the system actually stores today.

2. PHI Field Inventory

2.1 Direct PHI — contains one or more of HIPAA's 18 identifiers tied to an individual

TablePHI FieldsCategory
patientsfirst_name, last_name, dob, phone, street_address, city, state, zipcode, gender, race, ethnicityDemographics
appointmentspatient_id (FK), appt_time/date, appt_type, status, close_notesVisit/encounter data
patient_notespatient_id (FK), content (longtext), note_type, contact_datetimeClinical/contact narrative
patient_flag_assignments, patient_history, patient_review_alertspatient_id (FK) plus flag/history detailCare coordination metadata
charts147 columns — demographics (duplicated from patients at time of chart creation), dispatch/response times, chief complaint, allergies, medical history, current medications, narrative, disposition, billing (payer/policy/HCPCS/ICD-10), crew, consent/signatureFull clinical record (PCR)
chart_vitals, chart_medications, chart_procedures, chart_interventions, chart_documents, chart_images, chart_destination, chart_denialschart_id (FK) plus clinical detail specific to each (vitals readings, medication doses, procedure notes, uploaded images/documents)Chart extensions — inherit PHI via chart_id
chart_billing_ext, chart_crew_extchart_id (FK) plus HCPCS/ICD-10 codes, insurance details, crew certification numbersBilling/crew extension of a PHI-bearing chart
note_imagesImages attached to a patient_notes entry — may include clinical photos or ID documentsClinical images
video_consult_logpatient_id, recipients (phone/email), consent_confirmed_at, durationTelehealth contact record

2.2 Indirect / Metadata — references PHI-bearing records without itself containing clinical content

TableWhat it containsCategory
audit_logWho accessed/changed which resource_id (patient/chart/etc.) and when — required by HIPAA §164.312(b), not itself a PHI recordAccess audit trail
pcr_audit_scores, pcr_audit_sessionsQA review scoring of a chart — references chart_id, contains review commentary that may quote chart contentChart QA metadata
sms_log, appt_notificationsDelivery records for SMS/notifications about appointments — phone numbers and appointment references, not clinical contentCommunication metadata
backup_logBackup job metadata (size, row counts, timestamp) — never the data itselfOperational metadata

2.3 No PHI — reference data, workforce accounts, or operational/inventory tracking

TablesWhy
medical_conditions, medications_ref, procedure_types, procedure_categories, procedure_supply_rules, service_types, appt_typesReference/lookup vocabularies (lists of condition names, medication names, procedure codes) — not tied to any individual patient
sched_users, user_permissions, password_history, login_otp, login_otp_attempts, active_sessions, api_keys, permission_elevation_requests, tracked_devicesWorkforce (EMStool/client staff) account and auth data — not patient PHI, though still sensitive and separately access-controlled
companies, company_lobs, company_importers, company_user_accessClient organization structure/configuration, not patient data
inventory_items, inventory_bins, inventory_transactions, unit_inventory, unit_settings, narcotics_items, narcotics_transactions, narcotics_unit_stock, narcotics_count_schedule, device_inspections, facilitiesEquipment, supply, and controlled-substance inventory tracking — facility/unit-level, not patient-linked
eod_reportsCrew shift-level notes (mileage, safety/event narrative) — not linked to any specific patient record
calendar_todos, day_labels, calendar_shares, recur_series, uhu_targets, page_visits, sys_notifications, idempotency_log, video_call_typesScheduling metadata, utilization targets, and system/operational bookkeeping

3. Data Flow

How PHI actually moves through the system, end to end:

Client browser
TLS 1.3
Cloudflare Tunnel
no decrypt at this hop
Cadence app (PHP)
SWAG container
MariaDB
InnoDB encrypted at rest
MariaDB
GPG-encrypted dump
Backup destination
client's choice — B2 or local
MariaDB
Export (CSV/XML/print)
SHA-256 hashed, audit-logged
Requesting user's browser
download/print only, no third party

Two narrow paths leave the deployment boundary to a third party, neither carrying clinical content:

See the Vendor Security Register (HIPAA-SEC-012) for the full vendor list and each one's data exposure.

4. Review Cadence

This inventory should be re-derived from the actual schema (not carried forward from memory) whenever a migration adds a new table or column that could plausibly hold patient-identifiable data, and reviewed in full annually alongside the other HIPAA policy documents.