An OpenEMR module that helps healthcare organizations register their installation for ONC certification compliance.
- Registration Status Verification: Automatically checks if your FHIR endpoint is listed on the OpenEMR Foundation's published Service Base URLs page
- Configuration Validation: Verifies that required OpenEMR global settings are properly configured for ONC certification
- Organization Info Management: Collects and validates organization details (name, location, NPI, FHIR endpoint)
- NPI Validation: Validates National Provider Identifier numbers using the Luhn algorithm
- FHIR Endpoint Detection: Automatically detects the FHIR API endpoint from OpenEMR configuration
- Registration Email Generation: Creates pre-filled registration emails for the OpenEMR Foundation
- Preview Mode: View the dashboard with mock data showing a "registration complete" state for UI testing
- Collapsible Dashboard: All sections are collapsible; cards auto-collapse when registration is verified
- OpenEMR 7.0.3.4 or later
- PHP 8.2 or later
cd /path/to/openemr
composer require opencoreemr/oce-module-onc-registration- Copy this module to
interface/modules/custom_modules/oce-module-onc-registration/ - Navigate to Administration > Modules > Manage Modules
- Click Register, then Install, then Enable
After enabling the module:
- Go to Administration > Globals > ONC Registration
- Configure module settings:
- Preview Mode: Enable to show mock data for UI testing
Organization details are configured in Administration > Globals > Features:
- Organization Name
- Organization Location (address)
- Organization NPI (10-digit number)
The FHIR endpoint is auto-detected from the Site Address setting.
For container deployments, configure via environment variables:
# Enable environment config mode (disables admin UI editing)
export OCE_ONC_REGISTRATION_ENV_CONFIG=1
# Module settings
export OCE_ONC_REGISTRATION_PREVIEW=true # Enable preview modeWhen OCE_ONC_REGISTRATION_ENV_CONFIG=1 is set, the admin UI displays "This module is configured via environment variables" instead of editable fields.
Access the module via Administration > ONC Registration in the OpenEMR menu.
The dashboard displays five collapsible cards:
-
Registration Status: Shows whether your installation is registered
- Verified: Your FHIR endpoint appears on the published URLs page
- Ready to Submit: All requirements met, ready to register
- Not Ready: Configuration incomplete
-
About ONC Certification: Overview of certification requirements
-
Configuration Checklist: Verifies required OpenEMR settings
- FHIR REST API enabled
- Hash algorithms set to SHA512
- Audit log encryption enabled
-
Organization Information: Your registration details with NPI validation
-
Submit Registration: Tools to send registration to OpenEMR Foundation
- One-click email generation
- Copy/paste option for manual submission
When registration is verified, all cards except Registration Status auto-collapse.
For an OpenEMR installation to use the product's ONC certification:
- Configure required global settings (shown in checklist)
- Ensure FHIR endpoint is publicly accessible via HTTPS
- Register with the OpenEMR Foundation
- Use AES-encrypted drives on end-user devices
- Use FIPS-compliant SSL/TLS ciphers
- Support NTP v4 (RFC 5905) for time synchronization
See the OpenEMR ONC Certification Requirements wiki page for full details. The module automatically detects your OpenEMR version and links to the appropriate documentation.
# Install dependencies
composer install
# Run code quality checks
composer check
# Run PHPStan at level 10
composer phpstan
# Run tests
composer test- Issues: https://github.com/opencoreemr/oce-module-onc-registration/issues
- Email: support@opencoreemr.com
GNU General Public License v3.0