Skip to content

Migrations (eCW · Kareo)

One-click migrations from eCW + Kareo

Bulk-import patients + records from eClinicalWorks or Kareo via SMART-on-FHIR Bulk Export. Find it at /admin/migrations.

Why SMART-on-FHIR Bulk Export

Bulk Export is the FHIR-standard way to extract a tenant’s full patient roster + history from any compliant EHR. eCW and Kareo both support it via the backend-services SMART OAuth flow.

Pollen8 is the client in this exchange:

  1. Register a Pollen8 tenant as a SMART backend-services app with the source EHR.
  2. Pollen8 gets a client_id + JWKS + scopes.
  3. Mint short-lived client_credentials tokens against the source EHR’s authorization server.
  4. Kick $export against Patient, Encounter, Observation, Condition, MedicationStatement, DocumentReference.
  5. Poll until the export job lands; download the NDJSON files.
  6. Ingest into Pollen8’s FHIR store — patient by patient, with conflict resolution where mismatched ids exist.

Wizard steps

/admin/migrations walks you through:

StepWhat it does
Pick sourceeCW / Kareo / other Bulk-Export-conformant FHIR server
Register appGenerate the JWKS + register with the source EHR (manual step in the source EHR’s admin)
Mint tokenExchange the registration for a client_credentials token
Kick exportPOST $export with the resource scopes you want
PollWizard auto-polls until the job is ready
IngestPollen8 walks the NDJSON output and creates / updates FHIR resources in its own store
VerifySample patients are surfaced for spot-check before flipping the cutover

Conflict resolution

If a patient with the same MRN already exists in Pollen8, the wizard surfaces the conflict — newer-wins / older-wins / manual merge. For first-time migrations this is rare; for ongoing sync (roadmap) it’d matter.

Vendor presets

The wizard ships with presets for eClinicalWorks + Kareo — base URL + token URL + JWKS endpoint pre-filled. For other EHRs that support Bulk Export, pick Custom FHIR server and fill the URLs manually.

What it doesn’t do

  • Doesn’t migrate scheduling rules — those are too vendor-specific. Re-create availability in Scheduling.
  • Doesn’t migrate billing rules / payer contracts — re-enter in Contracts.
  • Doesn’t migrate signed-off encounter PDFs as PDFs; it imports the FHIR Composition resource (the structured form) and links any attached DocumentReference resources.