Status: ✅ Complete
Last Updated: 2026-04-03
Owner: PM (Practice Management)
Overview
PM-32 adds a structured financial counseling workflow: income collection, FPL calculation, assistance program referral tracking, and charity care determination. It reads patient data from PM-01, writes insurance policies to PM-02, feeds charity indicator data to PM-16, informs sliding fee decisions to PM-21, and optionally integrates with PM-20 GFE and PF-08 forms. All integrations are same-core data reads (PM-01, PM-02, PM-16, PM-20, PM-21) or platform layer (PF-08 form snapshot). No direct cross-core imports. No event contracts are required for MVP; PM-02 eligibility trigger is a same-core function call.Integration Points
1. PM-01 (Patient Registration)
2. PM-02 (Insurance Policy Management & Eligibility)
Stub schema (approval action):
3. PM-16 (Patient Statement Generation & Billing Communications)
4. PM-20 (Good Faith Estimate & Price Transparency)
5. PM-21 (Sliding Fee Discount Schedule Management)
6. PF-08 (Forms)
Platform Layers Used
Event Contracts
Events Consumed
pm_cost_estimate_generated (from PM-48)
- Publisher: PM-48 (Patient Cost Estimation & Financial Clearance)
- Event Name:
pm_cost_estimate_generated - Version: 1.0
- Payload Schema:
- Subscription Rules: Conditional — subscribe only when
patient_estimated_responsibilityexceeds the configured threshold (from PF-96 jurisdiction profile orpm_module_settings.financial_clearance_threshold) - Threshold Behavior:
- Read
financial_clearance_thresholdfrom jurisdiction profile (PF-96) if available - Fallback to
pm_module_settings.financial_clearance_threshold(default: $1,000) - Auto-create PM-32 referral record when threshold exceeded
- Read
- Delivery Semantics: At-least-once; idempotent via
estimate_id(check for existing referral before creating) - Retry Policy: Standard retry with exponential backoff (3 attempts)
- Idempotency Keys:
estimate_id— prevent duplicate referrals - ACL/Topic:
pm.cost_estimatestopic - Purpose: Auto-route patients to financial counseling when estimated responsibility exceeds threshold
- Status: 📝 Planned
API Contracts
No external API contracts for MVP. All data flows are internal (same-core or platform layer). Future: AHCCCS direct submission API (deferred per Out of Scope in PM-32 spec).Security
- All tables behind
pm_has_org_accessSECURITY DEFINER RLS. pm.financial_counseling.approve_charityis supervisor-level; not assigned to standard counselor role by default.- Income/financial data is PHI; no PHI written to logs; access via RLS + RBAC only.