Skip to main content

Overview

CL-24 is the clinical compliance layer for telehealth. It sits next to (not on top of) PM-13, which still owns the vendor session, the durable join URL, and the platform credentials. CL-24 adds:
  • Per-patient telehealth consent with annual renewal, two consent types, and audit-immutable revocation.
  • A pre-session safety checklist that can either warn or block the start of a session.
  • Connectivity issue logging mid-session for QA and payer audits.
  • A jurisdiction-mismatch banner when the patient state and provider state diverge.
  • A clean link from the progress note (CL-04) back to the CL-24 session record.
You will see CL-24 surface in three places:
  • The TelehealthConsentBadge on the patient chart sidebar and on the PM-13 appointment form.
  • A TelehealthSafetyChecklistSheet that opens when you start a telehealth session.
  • New Sessions and Compliance pages under /cl/telehealth/....
CL-24 never publishes telehealth billing modifiers. PM-07 continues to read modality, patient location, and provider location from the finalized progress note (CL-04). CL-24 only writes the per-session compliance record.

Telehealth consent is captured per patient, not per session. Two consent types exist:

Inheritance rule (canonical)

The single CL-24 rule for telehealth-consent inheritance — also enforced by useStartTelehealthSession and cl_telehealth_consent_is_valid:
  • telehealth_general satisfies an audio-only session start. A patient with valid general telehealth consent can be scheduled for audio-only without a separate audio_only row.
  • audio_only does NOT satisfy a video / general telehealth session start. A patient with only audio_only consent must be re-consented before video can be scheduled.
So audio_only is the narrower consent type; telehealth_general is the broader type that covers audio-only too.

How to capture

  1. Open the patient’s chart and look at the Telehealth Consent badge in the sidebar.
  2. Click the badge → Capture consent → select the consent type.
  3. Choose the consent method:
    • Written (paper, attach scan reference)
    • Verbal attested (clinician attests verbal consent)
    • Electronic signature (PF-33 e-signature integration if available; the dialog degrades gracefully if PF-33 is offline)
  4. Confirm the consent language version (your org’s current AZ template or US federal template is the default).
  5. Save. The dialog writes a row to cl_telehealth_consents and publishes cl_telehealth_consent_captured to PF-10 for the patient-portal receipt.
By default expires_at = consented_at + 365 days (org-configurable via telehealth_consent_validity_days).

Pre-session safety checklist

When the safety-checklist-required flag is on, the Start session button opens the TelehealthSafetyChecklistSheet before the PM-13 join URL becomes available. Three items are required; one is optional. When you submit, safety_checklist_completed_at is stamped, the database CHECK constraint chk_cl_telehealth_safety_complete verifies the three required fields are all true / non-null, and cl_telehealth_session_safety_completed is published so PM-13 knows it is safe to release the join URL. If the safety-checklist flag is set to warn-only, you’ll see an inline warning instead of a hard block, and the session can still start.

Logging connectivity issues mid-session

If the call drops, the video freezes for >30 seconds, you switch to audio-only because video failed, or any other technically-meaningful event occurs, log it from the session detail page:
  1. Open CL → Telehealth → Sessions and select the active session.
  2. Click Log connectivity issue.
  3. Select the issue type (call_drop, video_freeze, switched_to_audio, other), enter a brief note, and submit.
Each entry is appended to cl_telehealth_sessions.connectivity_issues (a JSONB array) with a UTC timestamp and the logger’s profile ID. Entries are immutable. They render on the session detail timeline and are pulled into payer-audit exports for AHCCCS CBHSG and CCBHC v2 reviews.
Do not delete a connectivity-issue entry. If something was logged in error, add a corrective entry rather than amending the prior one.

Jurisdiction mismatch banner — what to do

When the session is opened, CL-24 compares:
  • patient_state on the session (or, if blank, the patient’s chart-of-record state)
  • provider_state on the session (or, if blank, the clinician’s profile state)
  • The org’s licensed-states list
If the patient state and provider state differ, or the patient state is not in the org’s licensed-states list, the JurisdictionMismatchBanner renders at the top of the session detail page. The banner is informational. CL-24 does not auto-block on jurisdiction; the clinician’s professional judgment governs.

Linking a progress note to a CL-24 session

The CL-04 progress-note form auto-links to the CL-24 session in two ways:
  • From an active session: When you start documenting from /cl/telehealth/sessions/:sessionId, the Create progress note action carries the session_id forward. The note is saved with cl_telehealth_sessions.progress_note_id populated.
  • From a chart: In the progress-note picker, the “Link to telehealth session” dropdown lists today’s sessions for that chart. Pick one to link.
When the note is finalized, the existing clinical_note_finalized event (CL-04 → PM-07) fires with is_telehealth, telehealth_modality, patient_location, provider_location. CL-24 does not republish this — the billing pathway is unchanged.
If you forget to link the note at finalize time, an admin can backfill progress_note_id retrospectively (admin-only, with audit). See the admin guide.

Patients can revoke telehealth consent at any time.
  1. Open the patient’s chart → Telehealth Consent badge → View consent history.
  2. Locate the active consent row and click Revoke.
  3. Enter a revocation reason (free-text). Submit.
The system stamps revoked_at = now() and publishes cl_telehealth_consent_revoked (PF-10 routes notification to the clinician and to PM-13 so future join URLs are blocked for the chart).

Immutability

Once revoked_at is set, non-admin users cannot clear it. The cl_enforce_consent_revocation_immutability trigger raises an exception, even on a direct UPDATE. This is intentional: revocation is a clinical-legal event and audit immutability is a Joint Commission CAMBHC and AHCCCS requirement. If a revocation was entered in error and you need it reversed, request an admin override (see the admin guide). The admin override is logged. To re-establish consent for the same patient after a legitimate revocation, capture a new consent row. The system does not edit the revoked row — it adds a new active row alongside it.

FAQ

Q: I started a session before the safety checklist sheet appeared. What happened? A: The telehealth_block_session_without_safety_checklist flag is probably set to warn-only in your org. You’ll see an inline warning instead of a blocking sheet. Capture the checklist on the session detail page before finalizing the note. Q: The Telehealth Consent badge says “Expiring in 12 days.” Will the session be blocked? A: Not yet. The badge turns amber within 30 days of expiry and red after expiry. The consent-block flag only fires once the consent has actually expired or is revoked. Capture a renewal at the next visit. Q: PM-13 says the patient hasn’t joined yet but my session detail page says the safety checklist is done. Is something wrong? A: No. The CL-24 safety checklist is a pre-flight record. PM-13 still tracks the actual session lifecycle (scheduled → active → completed) based on join timestamps from the vendor. Q: Can I document the connectivity issue after the session ends? A: Yes, retrospectively, on the session detail page. The session does not have to be active. We recommend logging within the same business day so the entry stays accurate.

See also