EVAL Health
Integrations

Managing connections

View connection details, configure bulk import and patient sync schedules, monitor activity logs, and troubleshoot EHR integration issues.

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.

Run a bulk import after first creating a Background Service connection to bring your existing patient population into EVAL. After the initial import, patient sync handles ongoing updates automatically. You can re-trigger bulk import at any time if you need to refresh a large number of records.

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.

Patient sync refresh intervals determine how frequently EVAL checks your EHR for updates — not how quickly changes appear. If a clinician opens a patient chart in EVAL, the system may also trigger an on-demand refresh regardless of the scheduled interval.

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.

If you see repeated FAILURE entries in the activity log, check your EHR connection's Server URI and credentials. Common causes include expired authentication tokens, EHR server maintenance windows, and network connectivity issues. Disabling and re-enabling the connection can sometimes resolve transient authentication problems.

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.

The activity log records the duration and resource counts for every sync operation — both successes and failures. Use these metrics to tune your patient sync intervals: if operations consistently complete quickly, you can increase the scan frequency; if they're slow, consider reducing the number of patients per scan cycle.

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.
Copyright © 2026