Managing connections
Once you've created an EHR connection, the connection detail page is where you manage its ongoing operation — reviewing its configuration, setting up automated data synchronization, and monitoring activity to ensure everything is running smoothly. Each connection operates independently, so you can fine-tune settings per connection without affecting others.
Click any connection in the EHR Connections list to open its detail page.

Connection summary
The connection summary card shows the essential information about your connection: the EHR vendor logo, connection name, Connection Mode (such as EHR Launch, SSO, or Patient Sync), Status (Enabled or Disabled), and the Server URI (the FHIR endpoint this connection communicates with). Some connections also display a Practice ID — a vendor-specific identifier for your organization within the EHR system.
Click Edit to modify the connection's display name or toggle its enabled state. Disabling a connection stops all data flow without deleting the configuration, making it useful for temporary maintenance or troubleshooting.
The Actions dropdown in the top-right corner provides additional options. Imported Patients opens a view of all patients that have been imported through this specific connection, giving you visibility into what data has flowed from your EHR into EVAL.
Bulk import
Background Service connections include a Bulk Import card for importing large batches of patient data from your EHR. Bulk import uses the FHIR Bulk Data Export specification to efficiently transfer patient demographics and clinical data in batch operations rather than one patient at a time.
The Bulk Import card shows whether bulk import is Enabled or Disabled and lists any configured Group IDs — these are practice or patient group identifiers in your EHR that define which patients should be imported. Click Edit to configure the group IDs, or click Trigger to manually start a bulk import immediately.
Bulk imports are typically used during initial setup to populate EVAL with your existing patient population. After the initial import, ongoing synchronization is handled by the Patient Sync feature described below.
Scheduled Refresh
The Scheduled Refresh section runs the bulk import automatically each night. Click Edit, set a start hour and end hour for the refresh window (both in Coordinated Universal Time (UTC), on a 24-hour clock), and save. EVAL starts each run at a point within the window; if an import is already running when the window opens, EVAL skips that night. Confirm runs in the Activity log below.
When only one card appears
Most EHR vendors — Epic, Cerner, athena, and others — support both capabilities through one Background Service connection, so both cards appear. Some vendors (notably eClinicalWorks) split these into separate backend apps: an eClinicalWorks Bulk Import connection shows only the Bulk Import card, and a Patient Sync connection shows only the Patient Sync card. There's nothing to configure — EVAL hides the card that doesn't apply.
Patient sync
The Patient Sync card controls how EVAL keeps individual patient charts up to date with your EHR. Unlike bulk import (which transfers large batches), patient sync refreshes charts on a per-patient basis according to a configurable schedule — ensuring that actively monitored patients always have current clinical data in EVAL.
Patient sync uses a tiered refresh strategy based on how recently each patient was accessed:
Active patients (accessed within a configurable number of days) are refreshed most frequently — typically every few hours. These are patients your clinicians are actively working with, so their data needs to be as current as possible.
Recent patients (accessed within a slightly longer window) are refreshed less frequently — typically every several hours. These patients are still relevant but don't require the same immediacy as active cases.
Periodic patients (accessed within a broader window) are refreshed on a daily cycle. This keeps their records reasonably current without consuming excessive resources.
Dormant patients (not accessed for an extended period) are refreshed least often — typically every several days. Their records are maintained but at a lower priority.
Click Edit on the Patient Sync card to configure these refresh intervals, the time window during which syncs should run (specified in UTC hours), and the maximum number of patients to process per scan cycle. Click Trigger to manually start a sync cycle immediately — with an optional Force Refresh checkbox that bypasses caching to ensure a complete data update.
Activity log
Every connection has an Activity Log that records all data synchronization operations. The activity log on the main EHR page shows operations across all connections, while the log on a connection's detail page shows only that connection's activity.
Each log entry displays:
- Status — a green SUCCESS badge or red FAILURE indicator
- Operation type — Patient Sync (individual chart refresh), Bulk Import (batch data transfer), or Manual Trigger (administrator-initiated scan)
- Connection name — which connection performed the operation
- Timestamp — when the operation ran
- Resources fetched — how many FHIR resources were processed
- Duration — how long the operation took
Use the Operation and Connection dropdown filters to narrow the log to specific operation types or connections. Click Refresh to load the latest entries.
How sync works behind the scenes
Understanding the data pipeline helps you configure sync settings effectively and interpret activity log entries.
The bulk export pipeline
Bulk import uses the FHIR Bulk Data Export specification — a standardized protocol for large-scale data transfer. When triggered, EVAL initiates a Group-level $export request to your EHR, specifying which resource types to include (Patient, Condition, Medication, etc.). The EHR processes this request asynchronously, and EVAL polls for completion. Once ready, the data is delivered as NDJSON streams (one JSON record per line) that EVAL parses and maps to patient records. Subsequent imports can use incremental sync to fetch only records changed since the last import.
FHIR resource mapping
Each FHIR resource type maps to a specific area of the EVAL patient record. Patient resources become identity data (name, birth date, gender, addresses, identifiers). Condition resources become diagnoses with ICD-10 or SNOMED-CT codes. Observation resources split into labs, vitals, and imaging based on their category codes. AllergyIntolerance, MedicationStatement, and Procedure resources map to their corresponding medical data sections. Standard code systems (LOINC, SNOMED-CT, ICD-10) are preserved so clinical codes remain meaningful in EVAL.
Rate limiting
To avoid overwhelming your EHR's API, EVAL enforces per-connection rate limits using a token bucket model. Each connection has a limited number of concurrent requests it can make. If a sync job can't acquire a rate limit token within 30 seconds, it's skipped and retried on the next scan cycle. This protects your EHR's performance during large sync operations.
Troubleshooting connections
If a connection isn't working as expected, start with the activity log to identify the failure pattern. Single failures followed by successes are usually transient network issues and don't require action. Repeated failures point to a configuration problem that needs investigation.
Common issues and solutions:
- Discovery fails during connection setup — verify the Service Base URL with your EHR technical support. The URL must point to a FHIR R4 endpoint, not a general API endpoint.
- Bulk import returns zero patients — check that the configured Group IDs match valid patient groups in your EHR. Your EHR administrator can confirm the correct group identifiers.
- Patient sync shows failures for specific patients — some patients may have data quality issues in the EHR (missing required fields, invalid identifiers). These are typically EHR-side data issues rather than EVAL problems.
- All operations failing — check whether your EHR is undergoing maintenance. Also verify that your EHR subscription includes the API access required for FHIR integration.
Creating connections
Set up a new EHR connection using EVAL's guided discovery wizard, with vendor-specific configuration notes for Epic, Cerner, athena, and more.
FHIR and SMART on FHIR
Understand the FHIR and SMART on FHIR standards behind EVAL's EHR integrations, how each connection mode uses them, and what your IT team needs to configure.