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.

Contract ID: CL-10-RH-program-id
Last Updated: 2026-02-19
Related: CL-10-outcomes-tracking-measurement-INTEGRATION.md
This document specifies the cross-core data reference between CL (consumer) and RH (publisher) for program-scoped outcomes. Tables and columns involved: cl_program_outcomes.program_id and rh_programs(id).

Publisher (RH)

ItemValue
Owning coreRH (Recovery Housing)
Tablerh_programs
Columnid (UUID, primary key)
ContractRH owns rh_programs; id is stable. Any change to id type or removal of the table requires a coordinated migration with CL (consumer of cl_program_outcomes.program_id).
CompatibilityRH must not drop or rename rh_programs.id without notifying CL and providing migration path (e.g. backfill or nullable program_id during transition).

Consumer (CL)

ItemValue
Owning coreCL (Clinical & EHR)
Tablecl_program_outcomes
Columnprogram_id (UUID, foreign key to rh_programs(id))
ContractCL stores program-level outcome aggregates; program_id references rh_programs(id) for program context.
CompatibilityCL depends on rh_programs(id) existing and remaining a UUID PK. If RH deprecates a program, CL may set program_id to NULL (if column is made nullable) or retain for historical reporting per product policy.

Migration and compatibility rules

  • RH: Before changing rh_programs schema (e.g. id or table removal), update this contract and coordinate with CL; document migration steps (e.g. CL migration to nullable program_id, backfill, or soft-delete in RH).
  • CL: Before changing cl_program_outcomes.program_id (e.g. making nullable, dropping FK), update this contract and CL-10 integration doc; consider impact on existing program dashboards and reporting.

References