Feature ID: CL-05Documentation Index
Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
Use this file to discover all available pages before exploring further.
Status: ✅ Implemented
Spec Reference: CL-05-medication-management-reconciliation.md
Last Updated: 2026-02-17
Last Verified: 2026-02-18
Table of Contents
- Overview
- Quick Reference
- Decision Trees
- Pattern Library
- Integration Points (from Spec)
- API / Data Contracts
- Labeled Code Examples
- Event Contracts
- Security and RLS
- Common Mistakes
- Pre-Flight Checklist
- Related Docs
Overview
CL-05 provides medication list management, medication reconciliation at transitions of care, and safety alerts (drug-drug, drug-allergy, duplicate therapy). It depends on CL-01 (patient chart); integrates with CL-06 (e-prescribing), CL-08 (clinical decision support), CL-09 (lab orders), and CL-12 (care transitions).Quick Reference
| Item | Value |
|---|---|
| Core tables | cl_medications, cl_medication_reconciliations |
| Safety dependencies | CL-08 (drug interactions), CL-09 (monitoring labs) |
| Transition triggers | Admission, transfer, discharge, LOC change |
| Controlled-substance requirement | Tamper-evident audit logging |
Decision Trees
Reconciliation trigger path
- Detect transition event (admission/transfer/discharge/LOC change).
- Create reconciliation record with
reconciliation_type. - Compare prior list vs current orders and record discrepancies.
- Resolve/acknowledge discrepancies and finalize reconciliation.
Alert handling path
- Submit active med list + allergies to CL-08 CDS service.
- Receive interaction severity result.
- If severity is critical/major, require clinician acknowledgement before save.
Pattern Library
| Pattern | Usage |
|---|---|
| Event-triggered reconciliation | Transition events create reconciliation tasks |
| Platform CDS adapter | CL-08 handles interaction logic while CL-05 owns medication state |
| Monitoring protocol automation | monitoring_protocol drives CL-09 lab workflow hooks |
Integration Points (from Spec)
| Dependency | Pattern | Purpose |
|---|---|---|
| CL-01 (Patient Chart) | Data | Medication list displays on patient chart; cl_medications.chart_id → cl_patient_charts.id |
| CL-06 (E-prescribing) | API / Data | E-prescribing creates medication records in cl_medications |
| CL-08 (Clinical decision support) | API | Interaction/monitoring alerts; drug interaction source: RxNav/NLM APIs (MVP); interface documented for future FDB swap |
| CL-09 (Lab orders) | API / Event | Lab orders triggered by monitoring protocols (monitoring_protocol JSONB) |
| CL-12 (Care coordination / transitions) | Event / API | Reconciliation triggered at admission, transfer, discharge; transition_event can reference transition |
API / Data Contracts
- Medication list:
cl_medications(organization_id, chart_id); status includes active, discontinued, on_hold, completed, entered_in_error; soft-delete viadeleted_at. RxNorm/NDC for interoperability. - Reconciliation:
cl_medication_reconciliations;reconciliation_typein (‘admission’, ‘transfer’, ‘discharge’, ‘loc_change’);discrepanciesJSONB schema per spec Errata E-4;transition_eventoptional (event ID or free text for audit). - CL-08 drug interaction: Request (medication list + allergy list); response (interactions with severity: critical, major, moderate, minor; duplicate therapy; allergy cross-reference). Data source: RxNav/NLM APIs (MVP); interface abstracted for future FDB (First Databank) swap.
- CL-09 monitoring:
cl_medications.monitoring_protocoldrives lab order triggers (lithium, clozapine, metabolic panel); schema per spec Errata E-2.
Labeled Code Examples
Example: medication reconciliation payload
Example: monitoring protocol shape
Event Contracts
- Inbound: Care transition events (from CL-12 or workflow) trigger reconciliation workflow; payload should include chart_id, transition type, and optional transition_event reference.
- Outbound:
medication_reconciliation_completed— published when a reconciliation record is finalized (status → ‘completed’). Publisher: CL-05. Subscriber: PF-10 (notifications). Payload:{ organization_id, chart_id, reconciliation_id, reconciliation_type, reconciled_by }. Seeded infw_workflow_events(category: operational). Registered inKnownEventNameinsrc/platform/events/types.ts.
Security and RLS
- RLS on
cl_medicationsandcl_medication_reconciliationsviacl_has_org_access(organization_id, auth.uid())(SECURITY DEFINER — matches CL-01 through CL-04 pattern).FORCE ROW LEVEL SECURITYenforced on both tables. No separatecl_check_medication_accessfunction (removed — violated platform RLS pattern by querying RLS-protected tables and hardcoding roles). - All UPDATE policies include WITH CHECK (constitution §5.2.4).
- Controlled substances (schedule II–V, is_controlled): tamper-evident audit logging required (user_id, timestamp, action, reason).
- Drug interaction and allergy data are PHI; audit logging required.
Common Mistakes
| Mistake | Impact | Fix |
|---|---|---|
Missing request_trace_id in eligibility-style external checks | Poor auditability | Persist trace IDs for external calls |
| Not filtering soft-deleted rows | Stale/incorrect med display | Always enforce deleted_at IS NULL in active views |
| Skipping controlled-substance audit fields | Compliance exposure | Require actor, timestamp, reason for controlled-substance updates |
Pre-Flight Checklist
- Validate RLS helper usage on medication and reconciliation tables.
- Confirm reconciliation flow covers all transition types.
- Validate CDS integration fallback behavior for upstream outages.
- Confirm controlled-substance audit logging for creates/updates/discontinues.
- Validate monitoring protocol → lab order trigger mapping.
Related Docs
- CROSS_CORE_INTEGRATIONS.md
- CL-PM-REFERRALS.md (medication reconciliation at referral transitions)
- EVENT_CONTRACTS.md
- API_CONTRACTS.md