Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt

Use this file to discover all available pages before exploring further.

Module: PM (Practice Management) | Spec: PM-04 | Version: 1.0

Overview

Group Session Scheduling lets you define recurring therapy groups, schedule individual sessions, and manage patient enrollment with capacity and waitlist controls. It supports IOP (Intensive Outpatient Program) and PHP (Partial Hospitalization Program) compliance tracking per AHCCCS requirements.

Getting Started

From the sidebar, navigate to Practice Management → Group Sessions (or visit /pm/groups).

Required Permissions

ActionPermission Key
View group definitionspm.group_definitions.view
Create/edit groupspm.group_definitions.create / pm.group_definitions.edit
Delete groupspm.group_definitions.delete
View schedulepm.group_schedule.view
Create/edit occurrencespm.group_schedule.create / pm.group_schedule.edit
Cancel occurrencespm.group_schedule.delete
View enrollmentspm.group_enrollments.view
Enroll/disenroll patientspm.group_enrollments.create / pm.group_enrollments.edit
Remove enrollmentspm.group_enrollments.delete

Creating a Group Definition

  1. Click New Group on the Group Sessions list page.
  2. Fill in the required fields:
    • Group Name — Descriptive name (e.g., “Morning CBT Group”)
    • Group Type — Select from: therapy, psychoeducation, skills_training, support, iop, php, other
    • Facilitator — Primary clinician running the group
    • Max Capacity — Maximum number of enrolled patients
    • Duration (minutes) — Standard session length
  3. Optional fields:
    • Co-Facilitator — Secondary clinician
    • Location — Site/room assignment
    • Min Capacity — Minimum patients to hold the session
    • Recurrence Rule — iCal RRULE for recurring schedule generation
  4. Click Save.

Managing Schedule Occurrences

Viewing the Schedule

From a group definition’s detail page, select the Schedule tab to see all upcoming and past session occurrences.

Adding an Occurrence

  1. Click Add Session on the Schedule tab.
  2. Set the Session Date, Start Time, and End Time.
  3. Confirm or change the Facilitator (defaults to the group’s primary facilitator).
  4. Click Save. A pm_group_session_scheduled event is published.

Cancelling a Session

  1. Click the session occurrence you want to cancel.
  2. Select Cancel Session.
  3. Provide a Cancellation Reason.
  4. Confirm. Status changes to cancelled and a pm_group_session_cancelled event is published.

Managing Enrollments

Enrolling a Patient

  1. From a group definition’s detail page, select the Enrollments tab.
  2. Click Enroll Patient.
  3. Search and select the patient from the patient registry (PM-01).
  4. The system automatically checks max_capacity to determine enrollment status:
    • If the group is below max capacity, the patient is enrolled with status enrolled.
    • If the group is at capacity, the patient is automatically placed on the waitlist with an assigned position number.
  5. A toast notification confirms the enrollment outcome.

Capacity Indicator

The Enrollments tab displays a capacity bar: Enrolled / Max Capacity. When full, the bar changes color to indicate the group is at capacity.

Waitlist Management

  • Waitlisted patients appear in a separate section ordered by waitlist_position.
  • When an enrolled patient is disenrolled, the system automatically promotes the next waitlisted patient (lowest position number) to enrolled status.
  • A toast notification informs you when an auto-promotion occurs.

Disenrolling a Patient

  1. Click the enrolled patient’s row.
  2. Select Disenroll.
  3. Provide a Reason (optional).
  4. Confirm. The enrollment record is updated (not deleted) for audit trail.

IOP/PHP Compliance

For groups of type iop or php, the system evaluates AHCCCS compliance requirements:

IOP Requirements (AHCCCS)

  • 9+ hours/week of structured programming
  • 3+ days/week of sessions
  • 3+ hours/day minimum per session day

PHP Requirements (AHCCCS)

  • 20+ hours/week of structured programming
  • 5 days/week (daily sessions required)

Compliance Status

The group detail page displays a compliance badge when the group type is iop or php:
  • ✅ Compliant — All thresholds met
  • ⚠️ Non-Compliant — Lists specific gaps (e.g., “Need 3 more hours/week”)

Soft Delete and Data Retention

  • Group definitions and enrollments use soft delete (deleted_at column).
  • Deleted groups are hidden from list views but retained in the database for audit and historical reporting.
  • Clinical attendance records (CL-14) linked to schedule occurrences are not affected by group soft-deletion.

Integration with Clinical Documentation (CL-14)

  • PM-04 owns the scheduling side: group definitions, schedule, enrollments.
  • CL-14 (when implemented) owns clinical documentation: attendance, progress notes, group therapy notes.
  • CL-14 references pm_group_schedule.id via the Platform Integration Layer (no direct FK).
  • Charge capture (PM-07) is triggered by CL-14’s group_session_documented event, not by scheduling alone.

Frequently Asked Questions

Q: Can I edit a group definition after patients are enrolled? A: Yes. Changes to group name, facilitator, capacity, etc. take effect immediately. Existing enrollments are not affected. Q: What happens when I reduce max_capacity below current enrollment? A: Existing enrollments remain. No patients are automatically disenrolled. The system will show the group as over-capacity until resolved manually. Q: Can a patient be enrolled in multiple groups? A: Yes. Each enrollment is per-group. A patient can participate in multiple concurrent groups. Q: Is facilitator availability checked? A: Not in Phase 1. Facilitator availability validation requires PM-05 (Provider Schedule & Availability), which is planned for a future release. Currently, facilitator_id is a simple reference to the staff profile.