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:
- Register a Pollen8 tenant as a SMART backend-services app with the source EHR.
- Pollen8 gets a
client_id+ JWKS + scopes. - Mint short-lived
client_credentialstokens against the source EHR’s authorization server. - Kick
$exportagainstPatient,Encounter,Observation,Condition,MedicationStatement,DocumentReference. - Poll until the export job lands; download the NDJSON files.
- Ingest into Pollen8’s FHIR store — patient by patient, with conflict resolution where mismatched ids exist.
Wizard steps
/admin/migrations walks you through:
| Step | What it does |
|---|---|
| Pick source | eCW / Kareo / other Bulk-Export-conformant FHIR server |
| Register app | Generate the JWKS + register with the source EHR (manual step in the source EHR’s admin) |
| Mint token | Exchange the registration for a client_credentials token |
| Kick export | POST $export with the resource scopes you want |
| Poll | Wizard auto-polls until the job is ready |
| Ingest | Pollen8 walks the NDJSON output and creates / updates FHIR resources in its own store |
| Verify | Sample 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
Compositionresource (the structured form) and links any attachedDocumentReferenceresources.