Skip to main content

New EMR Integration: eClinicalWorks (ECW) for Dazos (CRM)

This article provides an in-depth explanation of the eClinicalWorks (ECW) integration with Dazos CRM, designed for seamless synchronization between Electronic Medical Record (EMR) and Customer Relationship Management (CRM) systems.

Updated over 2 months ago

Overview

The goal is to automate the exchange of patient demographic data, practitioner information, and site location details, while maintaining synchronization accuracy between both platforms.


When to Use / Why It Matters

Integrating Dazos CRM with eClinicalWorks allows healthcare organizations to:

  • Streamline data flow between intake and clinical systems.

  • Reduce redundant data entry and manual processing.

  • Ensure real-time patient demographic updates.

  • Enable secure, compliant synchronization between CRM and EMR.

This integration is essential for maintaining data consistency, improving coordination between intake and clinical teams, and reducing administrative workload.


Integration Summary

Integration Direction

Description

Status

CRM → EMR (Push)

Sends patient demographic information from Dazos CRM to ECW.

✅ Active

EMR → CRM (Pull / Cron)

Retrieves patient, insurance, and encounter information from ECW into Dazos CRM.

✅ Active (Partial)

Manual Pull (On-Demand)

Admins can manually trigger synchronization.

✅ Active

Note: Currently, bidirectional synchronization is available for patient demographics, while insurance and encounter data are limited to EMR → CRM direction only.


Integration Data Flow: eClinicalWorks

Data Type

CRM → EMR

EMR → CRM

Status / Comments

Patient Demographic

✅ Supported

✅ Supported

Full bidirectional flow

Encounter

❌ Not Supported

✅ Supported

API limitation for push

Pre-Assessment

❌ Not Supported

❌ Not Supported

API unavailable

Insurance

❌ Not Supported

✅ Supported

Read-only from EMR


Not Implemented Features

Not Implemented Feature

Reason / Blocker

Sync Encounter Data (CRM → EMR upon creation/update)

API access is not available for creating or updating encounter records.

Pre-Assessment Data

No API access for creation or update operations.

Insurance Data (CRM → EMR upon creation/update)

No API access for creation or update; currently read-only from EMR to CRM.

Once eClinicalWorks provides the necessary API endpoints, these features will be prioritized for development in future integration updates.


Detailed Summary: ECW Integration in CRM Workflow

User Story

As a CRM Administrator, I want to integrate ECW with Dazos CRM so that patient data automatically synchronizes between systems. This integration will:

  • Automatically create and update Patient Demographics in both systems.

  • Trigger Verification of Benefits (VOB) or clinical workflows after updates.

  • Maintain data consistency without duplicate data entry.


How to Configure the Integration

Step 1: Access EMR Settings

  1. Log into Dazos CRM as an Administrator.

  2. Navigate to Settings → CRM Settings → Integration → EMR Settings.

  3. From the EMR list, select eClinicalWorks (ECW).

  4. Click Add Account to begin setup.


Step 2: Obtain and Enter ECW Credentials

To connect Dazos CRM to eClinicalWorks, you must have:

  • Client ID: Provided by ECW to uniquely identify your integration instance.

  • Client Secret / Token: Generated by ECW for authentication.

  • Base URL / API Endpoint: The ECW API endpoint (staging or production).

  • JWKS URL: Used for JWT token validation and must be whitelisted by ECW.

Once you have these credentials:

  1. Enter the Client ID and Client Secret in the designated CRM fields.

  2. Save the configuration.

  3. Click Test Connection — a success message should confirm connectivity.

Tip: If the test fails, verify that the JWKS URL is whitelisted on the ECW side and credentials are accurate.


Step 3: Configure Data Push (CRM → EMR)

Purpose:

To automatically send new or updated patient demographic information from Dazos CRM into eClinicalWorks.

Actions:

  1. Sync Practitioner Data - Ensure all practitioner lists are accurately transferred from the eClinicalWorks (ECW) EMR to the CRM system

  2. Sync Location Data - Synchronize all Location details from the ECW EMR to the CRM to ensure accurate data.

  3. Verify that each CRM field maps to the corresponding ECW field.

    • Example:

      • CRM Field: First Name → ECW Field: given

      • CRM Field: DOB → ECW Field: birthDate

      • CRM Field: Phone → ECW Field: telecom.value

  4. Click Save Configuration.

  5. Practitioner and location data, once synchronized, will be available for selection in a dropdown menu.


Step 4: Configure Data Pull (EMR → CRM) Verification purposes only.

Purpose:

To retrieve up-to-date patient, practitioner, and insurance data from ECW into Dazos CRM.

Actions:

  1. Enable the “Pull from EMR” option in the same EMR Settings page.

  2. Select the following modules for synchronization:

    • Patient Demographics

    • Practitioner Data

    • Locations

    • Insurance (Read-Only)

  3. Set up cron frequency (e.g., every 2 hours) for automated pulls.

  4. Optionally, perform a manual sync by clicking “Pull Now” to test connectivity.

  5. Please check and validate with a technical services representative before moving forward with the previous.

Mapping Notes:

  • Each incoming record will be linked by Unique Patient Identifier (ECW ID).

  • Practitioner and location data will populate related dropdowns in CRM.

  • Insurance data will appear in read-only mode under the patient profile.


Step 5: Map Treatment Programs and Locations

To ensure correct data association:

  1. Navigate to Integration → EMR Settings → Treatment Programs.

  2. Click Add and map each ECW treatment program to its CRM equivalent.

  3. Repeat for Locations, ensuring that CRM location names match ECW’s.

Note: Incorrect or missing mappings may cause sync failures or data mismatches.


Step 6: Verify the Integration

How to Verify:

  1. Create or update a patient record in Dazos CRM.

  2. Observe whether the record automatically appears in ECW.

  3. In CRM, check the Integration Logs when pushing a patient to ECW:

    • Successful pushes will display a “200 OK” response.

    • Failed pushes will list error details for troubleshooting.

  4. Run a manual data pull to confirm ECW → CRM functionality.

  5. Validate that demographic data, practitioner, and location details appear correctly in CRM.


Step 7: Review Example API Requests

A. CRM → ECW (POST – Create Patient)

Endpoint:

https://staging-fhir.ecwcloud.com/fhir/r4/FFBJCD

Payload Example:

 "resourceType": "Bundle",
 "type": "transaction",
 "entry": [
 {
 "resource": {
 "resourceType": "Patient",
 "meta": {
 "profile": [
 
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
 ]
 },
 "active": true,
 "name": [
 {
 "text": "DazEcccw",
 "family": "LaliTest",
 "given": [
 "DazEcccw"
 ]
 }
 ],
 "maritalStatus": {
 "coding": [
 {
 "system":
"http://terminology.hl7.org/CodeSystem/v3-MaritalStatus",
 "code": "M",
 "display": "Married"
 }
 ],
 "text": "Married"
 },
 "telecom": [
 {
 "system": "phone",
 "value": "9135552003",
 "use": "home"
 },
 {
 "system": "email",
 "value": "[email protected]",
 "use": "home"
 }
 ],
 "address": [
 {
 "use": "home",
 "line": [
 "2222 HOME STREET",
 "Gordon Street"
 ],
 "city": "LAWRENCE",
 "state": "open",
 "postalCode": "KS"
 }
 ],
 "deceasedBoolean": false,
 "identifier": [
 {
 "use": "usual",
 "system":
"urn:oid:2.16.840.1.113883.4.391.326070",
 "value": "Lt2IFR5Ah76n4d8TFP5g"
 }
 ],
 "communication": [
 {
 "language": {
 "coding": [
 {
 "system": "urn:ietf:bcp:47",
 "code": "ENG",
 "display": "English"
 }
 ],
 "text": "English"
 },
 "preferred": true
 }
 ],
 "gender": "male",
 "birthDate": "2001-05-27",
 "extension": [
 {
 "url":
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
 "extension": [
 {
 "url": "detailed",
 "valueCoding": {
 "system":
"urn:oid:2.16.840.1.113883.6.238",
 "code": "2184-0",
 "display": "Dominican"
 }
 },
 {
 "url": "ombCategory",
 "valueCoding": {
 "system":
"urn:oid:2.16.840.1.113883.6.238",
 "code": "2135-2",
 "display": "Hispanic or Latino"
 }
 },
 {
 "url": "text",
 "valueString": "Hispanic or Latino"
 }
 ]
 },
 {
 "url":
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
 "extension": [
 {
 "url": "ombCategory",
 "valueCoding": {
 "system":
"http://terminology.hl7.org/CodeSystem/v3-NullFlavor",
 "code": "ASKU",
 "display": "Declined to Specify"
 }
 },
 {
 "url": "text",
 "valueString": "Declined to Specify"
 }
 ]
 },
 {
 "url":
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex",
 "valueCode": "M"
 },
 {
 "url":
"http://eclinicalworks.com/supportingInfo/defaultFacility",
 "valueReference": {
 "reference":
"Location/Lt2IFR5Ah76n4d8TFP5gBCYrEVzcfmSY9rj1Q7MpBZg"
 }
 }
 ]
 },
 "request": {
 "method": "POST",
 "url": "Patient"
 }
 }
 ]
}

B. ECW → CRM (GET – Retrieve Patient)

Endpoint:

https://staging-fhir.ecwcloud.com/fhir/r4/FFBJCD/Location/

This request retrieves stored patient demographic data in FHIR R4 format, including name, contact, gender, and address.

 "resourceType": "Bundle",
 "type": "transaction",
 "entry": [
 {
 "resource": {
 "resourceType": "Patient",
 "meta": {
 "profile": [
 
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
 ]
 },
 "active": true,
 "name": [
 {
 "text": "DazEcccw",
 "family": "LaliTest",
 "given": [
 "DazEcccw"
 ]
 }
 ],
 "maritalStatus": {
 "coding": [
 {
 "system":
"http://terminology.hl7.org/CodeSystem/v3-MaritalStatus",
 "code": "M",
 "display": "Married"
 }
 ],
 "text": "Married"
 },
 "telecom": [
 {
 "system": "phone",
 "value": "9135552003",
 "use": "home"
 },
 {
 "system": "email",
 "value": "[email protected]",
 "use": "home"
 }
 ],
 "address": [
 {
 "use": "home",
 "line": [
 "2222 HOME STREET",
 "Gordon Street"
 ],
 "city": "LAWRENCE",
 "state": "open",
 "postalCode": "KS"
 }
 ],
 "deceasedBoolean": false,
 "identifier": [
 {
 "use": "usual",
 "system":
"urn:oid:2.16.840.1.113883.4.391.326070",
 "value": "Lt2IFR5Ah76n4d8TFP5g"
 }
 ],
 "communication": [
 {
 "language": {
 "coding": [
 {
 "system": "urn:ietf:bcp:47",
 "code": "ENG",
 "display": "English"
 }
 ],
 "text": "English"
 },
 "preferred": true
 }
 ],
 "gender": "male",
 "birthDate": "2001-05-27",
 "extension": [
 {
 "url":
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
 "extension": [
 {
 "url": "detailed",
 "valueCoding": {
 "system":
"urn:oid:2.16.840.1.113883.6.238",
 "code": "2184-0",
 "display": "Dominican"
 }
 },
 {
 "url": "ombCategory",
 "valueCoding": {
 "system":
"urn:oid:2.16.840.1.113883.6.238",
 "code": "2135-2",
 "display": "Hispanic or Latino"
 }
 },
 {
 "url": "text",
 "valueString": "Hispanic or Latino"
 }
 ]
 },
 {
 "url":
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
 "extension": [
 {
 "url": "ombCategory",
 "valueCoding": {
 "system":
"http://terminology.hl7.org/CodeSystem/v3-NullFlavor",
 "code": "ASKU",
 "display": "Declined to Specify"
 }
 },
 {
 "url": "text",
 "valueString": "Declined to Specify"
 }
 ]
 },
 {
 "url":
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex",
 "valueCode": "M"
 },
 {
 "url":
"http://eclinicalworks.com/supportingInfo/defaultFacility",
 "valueReference": {
 "reference":
"Location/Lt2IFR5Ah76n4d8TFP5gBCYrEVzcfmSY9rj1Q7MpBZg"
 }
 }
 ]
 },
 "request": {
 "method": "POST",
 "url": "Patient"
 }
 }
 
]
}

Expected Results

After successful configuration:

  • Demographic data flows bidirectionally.

  • Encounters and insurance sync automatically from ECW into CRM.

  • Practitioner and location lists stay updated in CRM.

  • Admins can perform manual syncs or view automated sync logs.

  • Integration logs show success confirmations or detailed error feedback.


Known Limitations

Feature

Direction

Current Status / Reason

Encounters

CRM → EMR

Not supported – API unavailable

Insurance

CRM → EMR

Read-only from EMR only

Pre-Assessment

Both

No API access available

Only Patient Demographics currently support bidirectional flow.
Other data types remain limited due to ECW API restrictions.


Troubleshooting Tips

Issue

Possible Cause

Recommended Action

API connection fails

Incorrect Client ID or JWKS not whitelisted

Confirm credentials with ECW

Data not syncing

Field mappings incomplete

Review mapping configuration

Partial updates

Duplicate or outdated patient IDs

Check for duplicate records

Insurance data missing

Read-only limitation

Confirm data source; manual verification required


Best Practices

  • Regularly review Integration Logs to ensure all pushes/pulls are successful.

  • Periodically validate field mappings after CRM or ECW updates.

  • Ensure only authorized admins have access to EMR credentials.

  • Maintain a test patient in ECW to validate integration after updates.

Did this answer your question?