Status: ✅ Complete
Last Updated: 2026-02-22
Overview
PM-13 adds telehealth session lifecycle management linked to PM-03 appointments. Sessions are created via an edge function, modality-driven modifiers integrate with PM-07 charge capture, and POS codes follow AHCCCS/CMS rules.Tables
RLS: Both tables use
pm_has_org_access() for SELECT/INSERT/UPDATE, pf_is_org_admin() for DELETE. FORCE ROW LEVEL SECURITY enabled. All UPDATE policies include WITH CHECK.
Edge Function
telehealth-create-session
- Auth:
validateAuth()+verifyOrgAccess()viapf_user_role_assignments - Reads
pm_telehealth_configurationfor platform resolution - Inserts
pm_telehealth_sessionswith stub session URL (MVP) - Returns session URL, status, modality, platform
Domain Events
PM-07 Integration (Billing Modifiers)
modifier-logic.ts updated with telehealthModality on EncounterContext:
A legacy in-memory
isAudioOnly boolean on EncounterContext is preserved as a runtime fallback for backward compatibility; new code passes telehealthModality. (There is no is_audio_only database column — telehealth_modality is the only persisted modality field.)
Permissions
Module Settings
Added topm_module_settings:
telehealth_require_consent_every_encounter(BOOLEAN, default TRUE)telehealth_recording_retention_days(INTEGER, default 90)telehealth_default_platform(TEXT, default ‘stub’)
Navigation
Telehealth added underpm-scheduling group at /pm/telehealth with Video icon, gated by pm.telehealth_sessions.view.
Files
New
supabase/migrations/20260222..._pm_13_telehealth.sqlsupabase/functions/telehealth-create-session/index.tssrc/cores/pm/hooks/useTelehealthSessions.tssrc/cores/pm/hooks/useTelehealthConfiguration.tssrc/cores/pm/pages/TelehealthSessionListPage.tsxsrc/cores/pm/pages/TelehealthConfigurationPage.tsxtests/unit/pm/modifier-logic-telehealth.test.tstests/rls/pm/pm-telehealth.test.tsdocs/pm/telehealth-user-guide.mddocs/pm/telehealth-admin-guide.md
Modified
src/cores/pm/utils/modifier-logic.ts(telehealthModality + helpers)src/platform/permissions/constants.ts(3 permission keys)src/platform/modules/module-registry/pm-module.ts(nav item)src/routes/pm.tsx(route registration)
Future Work
- PM-15: Clearinghouse submission of telehealth claims with modifier/POS
- Video Platform: Replace stub adapter with Zoom/Doxy.me BAA-compliant integration
- PM-12: Patient portal join link for self-service session access
- CL-16: FHIR Encounter resource with telehealth extension