Skip to main content

Core EHR Definition — Module Bundling & Licensing

Scope: Defines which modules are always-on (Core EHR) vs optional licensed add-ons.
Authority: Normative for module activation and licensing behavior.


1. Principle

  • The product is modular, but a deployable EHR ships with a Core EHR baseline that is always enabled.
  • Optional modules are additive — enabled/disabled per license assigned to HierarchyNodes.
  • Even Core modules support RBAC/ABAC, auditing, and tenant/facility configuration.

2. Core EHR Baseline (Always-On)

2.1 Core Clinical Workflow

ModuleServiceSpec
Patient Registrationregistrationspecs/modules/registration/SPEC.md
Schedulingschedulingspecs/modules/scheduling/SPEC.md
Provider Directoryprovider-directoryspecs/modules/provider-directory/SPEC.md
Facility Managementfacilityspecs/modules/facility-management/SPEC.md
Patient Chartpatient-chart-servicespecs/modules/patient-chart/SPEC.md
Clinical Notesclinical-notesspecs/modules/clinical-notes/SPEC.md
Orders / CPOEordersspecs/modules/orders-cpoe/SPEC.md
Resultsresultsspecs/modules/results/SPEC.md
Medication Managementmedicationspecs/modules/medication-management/SPEC.md
Allergiesallergiesspecs/modules/allergies/SPEC.md
Vitalsvitalsspecs/modules/vitals/SPEC.md
Problem Listproblem-listspecs/modules/problem-list/SPEC.md

2.2 Core Platform Foundation

ModuleServiceSpec
IAMiamspecs/modules/iam/SPEC.md
Access Policyaccess-policyspecs/modules/access-policy/SPEC.md
Tenant Managementtenantspecs/modules/tenant/SPEC.md
Hierarchyhierarchyspecs/modules/hierarchy/SPEC.md
Licensinglicensingspecs/modules/licensing/SPEC.md
Auditauditspecs/modules/audit/SPEC.md
Terminologyterminologyspecs/modules/terminology/SPEC.md
Platform Adminplatform-adminspecs/modules/platform-admin/SPEC.md

3. Optional Licensed Add-Ons

CategoryModuleServiceModule Code
DiagnosticLaboratory / LISlaboratory-lisdiag.laboratory
DiagnosticRadiology / PACSradiology-pacsdiag.radiology
EngagementPatient Portalpatient-portal-apiengage.patient-portal
EngagementMessagingmessagingengage.messaging
FinancialBillingbillingbilling.rcm
FinancialInsuranceinsurancebilling.insurance
FinancialClaimsclaimsbilling.claims
ClinicalImmunizationsimmunizationsclinical.immunizations
ClinicalCare Planscare-plans-serviceclinical.care-plans

4. Module Dependencies

  • Patient Portal ← Scheduling (appointment requests), Messaging (patient communications)
  • Messaging can operate standalone for provider-to-provider; patient messaging requires Patient Portal
  • Laboratory/LIS ← Orders/CPOE (work items); → Results (lab observations/reports)
  • Radiology/PACS ← Orders/CPOE (imaging orders); → Results + Patient Chart (reports/links)
  • Billing/Insurance/Claims ← Registration (encounters), Orders (charges)

5. Licensing Behavior

  • Managed by Licensing Service — licenses assigned to HierarchyNodes (not flat tenants).
  • Core modules seeded as always-on on root node at tenant activation.
  • Add-ons require explicit inherit-down or exact license assignment.
  • Runtime: GET /internal/licensing/effective?nodeId=X — services return MODULE_NOT_ACTIVE (422) for unlicensed access.
  • UI hides nav entries for unlicensed modules.
  • Deactivation rules: preserve data per retention policy; block deactivation that would break safety workflows.

6. Product baseline

The shipped repository (default branch) defines the current product. Capability gaps versus module specs are tracked in SERVICE_BASELINE_AUDIT_TRACKER.md and per-module TRACEABILITY_MATRIX.md — not in a separate phased roadmap document.