By EHR

eClinicalWorks data extraction for research.

Clinical Extract connects to eClinicalWorks as a read-only backend app for your practice. You build the study cohort or match your patient list, approve the variables, and receive study.csv and a data dictionary.

1 Works with eClinicalWorks

eClinicalWorks support for your practice.

eClinicalWorks is certified to ONC §170.315(g)(10), and Clinical Extract connects to it as a read-only backend app. You build the cohort from coded criteria (ICD-10-CM diagnoses, LOINC labs, RxNorm medications, visit dates) with a feasibility count per criterion, or pull a roster (MRN, or last name, first name and date of birth) with each row graded certain to none. You keep the approved variables, and Clinical Extract runs the study export for the cohort only and writes study.csv with data-dictionary.json.

eClinicalWorks data extraction for a registry or a study uses one connection, registered once by your practice. A new study brings a new cohort and a new variable list to the same read-only app.

The study cohort, flattened to CSV
study.csv holds the cohort’s patients as rows and the approved variables as columns, and data-dictionary.json gives each column’s description, fhirSource and an example.
Coded columns
Diagnoses, results, medications and procedures come out as ICD-10-CM, LOINC, RxNorm and SNOMED CT codes, each column traced to its FHIR element.
The oncology lens
ER, PR, HER2, PD-L1, EGFR, KRAS, BRAF, ALK, MSI and TNM clinical and pathologic arrive as named columns.
Roster pull and the cohort builder
Match a patient list against the practice with graded results, or build the cohort from coded criteria and read the feasibility count before the export.

2 Connecting

How your practice enables the connection.

The connection takes three steps, and your practice does them once.

  1. Register. With eClinicalWorks, Clinical Extract is a backend app with system access, its public key served as a JWKS. Its scopes are one system/<Resource>.read scope per exported type plus system/Group.read, and eClinicalWorks issues the client ID.
  2. Activate. Your practice enables the app and gives Clinical Extract the FHIR base URL and token URL eClinicalWorks returns for the practice.
  3. Export. Clinical Extract signs a JWT with the private key that stays in your environment, gets a token with read scopes only, and runs the study export from your practice for the cohort only.

Our developer guide for eClinicalWorks walks through each request of the bulk export.

Connecting Clinical Extract to eClinicalWorksThree numbered steps from left to right. Step 1, register, at eClinicalWorks (app registration), outside your environment: Application: backend app, system access; Client authentication: signed JWT, RS384, Clinical Extract’s public key, as a JWKS; System scopes: system/Patient.read, system/Group.read, system/Encounter.read, system/Condition.read, system/Observation.read, system/MedicationRequest.read, system/Procedure.read; Issued: client ID. An arrow carries the client ID to step 2. Step 2, activate, at Your eClinicalWorks (your practice): Application: enabled for your practice; FHIR base URL: your practice’s certified endpoint. An arrow carries the base URL to step 3. Step 3, export, from Clinical Extract in your environment: result Build the cohort (ICD-10-CM diagnoses, LOINC labs,, RxNorm medications, visit dates;, a feasibility count per criterion); result Or pull a roster (MRN, name, date of birth, sex;, each row graded certain to none); result Keep the approved variables (the columns your protocol names); result Run the study export (read-only, the cohort only), highlighted; result study.csv, data-dictionary.json (one entry per column: name,, description, fhirSource, example).1REGISTEReClinicalWorksapp registrationAPPLICATIONbackend app, system accessCLIENT AUTHENTICATIONsigned JWT, RS384Clinical Extract’s public key, asa JWKSSYSTEM SCOPESsystem/Patient.readsystem/Group.readsystem/Encounter.readsystem/Condition.readsystem/Observation.readsystem/MedicationRequest.readsystem/Procedure.readISSUEDclient ID2ACTIVATEYour eClinicalWorksyour practiceAPPLICATIONenabled for your practiceFHIR BASE URLyour practice’s certified endpoint3EXPORTClinical Extractin your environmentBuild the cohortICD-10-CM diagnoses, LOINC labs,RxNorm medications, visit dates;a feasibility count per criterionOr pull a rosterMRN, name, date of birth, sex;each row graded certain to noneKeep the approved variablesthe columns your protocol namesRun the study exportread-only, the cohort onlystudy.csv, data-dictionary.jsonone entry per column: name,description, fhirSource, exampleclient IDbase URL
Connecting Clinical Extract to eClinicalWorksThree numbered steps from left to right. Step 1, register, at eClinicalWorks (app registration), outside your environment: Application: backend app, system access; Client authentication: signed JWT, RS384, Clinical Extract’s public key, as a JWKS; System scopes: system/Patient.read, system/Group.read, system/Encounter.read, system/Condition.read, system/Observation.read, system/MedicationRequest.read, system/Procedure.read; Issued: client ID. An arrow carries the client ID to step 2. Step 2, activate, at Your eClinicalWorks (your practice): Application: enabled for your practice; FHIR base URL: your practice’s certified endpoint. An arrow carries the base URL to step 3. Step 3, export, from Clinical Extract in your environment: result Build the cohort (ICD-10-CM diagnoses, LOINC labs,, RxNorm medications, visit dates;, a feasibility count per criterion); result Or pull a roster (MRN, name, date of birth, sex;, each row graded certain to none); result Keep the approved variables (the columns your protocol names); result Run the study export (read-only, the cohort only), highlighted; result study.csv, data-dictionary.json (one entry per column: name,, description, fhirSource, example).1REGISTEReClinicalWorksapp registrationAPPLICATIONbackend app, system accessCLIENT AUTHENTICATIONsigned JWT, RS384Clinical Extract’s public key, as a JWKSSYSTEM SCOPESsystem/Patient.readsystem/Group.readsystem/Encounter.readsystem/Condition.readsystem/Observation.readsystem/MedicationRequest.readsystem/Procedure.readISSUEDclient IDclient ID2ACTIVATEYour eClinicalWorksyour practiceAPPLICATIONenabled for your practiceFHIR BASE URLyour practice’s certified endpointbase URL3EXPORTClinical Extractin your environmentBuild the cohortICD-10-CM diagnoses, LOINC labs,RxNorm medications, visit dates;a feasibility count per criterionOr pull a rosterMRN, name, date of birth, sex;each row graded certain to noneKeep the approved variablesthe columns your protocol namesRun the study exportread-only, the cohort onlystudy.csv, data-dictionary.jsonone entry per column: name,description, fhirSource, example
Figure 1. Connecting Clinical Extract to eClinicalWorks. Clinical Extract is registered once with eClinicalWorks as a backend app with read-only system scopes; your practice enables it; you then build the cohort or pull a roster, keep the approved variables and run the study export in your environment, and receive study.csv and its data dictionary. Scope lists are abridged.

3 Export time

How long an eClinicalWorks study export takes.

The export reads the cohort and the resource types the protocol names, and it finishes in hours. Clinical Extract checks the export status, downloads each file it is handed with the bearer token, and writes study.csv and data-dictionary.json into your study folder.

Every header of the kickoff, status and manifest exchange is in our guide to bulk FHIR export.

4 Facts

eClinicalWorks connection facts.

Table 1. Endpoint, registration, authentication, export type and output on eClinicalWorks. Checked September 2026.
Endpoint The FHIR R4 base URL and token URL eClinicalWorks returns for your practice at registration
Registration eClinicalWorks app registration: a backend app with system access, Clinical Extract’s public key as a JWKS, one system/<Resource>.read scope per exported type plus system/Group.read; a client ID
Authentication SMART Backend Services: a JWT signed RS384 with Clinical Extract’s private key, exchanged at the practice’s token URL for an access token with one system/<Resource>.read scope per exported type plus system/Group.read
Export type The study export: the cohort you build or the roster you match, read-only, through the practice’s certified bulk FHIR API
Output study.csv (UTF-8, one row per cohort patient, one column per approved variable) with data-dictionary.json (description, fhirSource and example per column); the NDJSON files kept beside them in your study folder

The table scrolls sideways.

Sources: eClinicalWorks FHIR documentation, HL7 Bulk Data Access, SMART Backend Services.

5 Specimens

What the exchange and the output look like.

Every value is synthetic. The cohort is a 212-patient breast cancer study with 24 approved variables; the row shown comes from it.

Listing 1. One line of Observation.ndjson: a complete FHIR resource per line, here the estrogen receptor status of patient eKx3p9Qa (LOINC 16112-5; SNOMED CT 10828004, Positive).
{"resourceType":"Observation","id":"eObs-3f9a","status":"final","category":[{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/observation-category","code":"laboratory"}]}],"code":{"coding":[{"system":"http://loinc.org","code":"16112-5","display":"Estrogen receptor [Interpretation] in Tissue"}]},"subject":{"reference":"Patient/eKx3p9Qa"},"effectiveDateTime":"2024-03-20","valueCodeableConcept":{"coding":[{"system":"http://snomed.info/sct","code":"10828004","display":"Positive"}]}}
Listing 2. study.csv, the header row and row 1 of 212: one row per patient in the cohort, one column per approved variable (10 of 24 columns shown). Values are synthetic.
patient_ref,birth_year,gender,dx_code,dx_date,stage_group,er_status,pr_status,her2_status,first_chemo
eKx3p9Qa,1961,female,C50.412,2024-03-14,IIA,Positive,Positive,Negative,paclitaxel
Listing 3. The er_status entry in data-dictionary.json: the description with its code system, the FHIR element the value came from, and an example value.
{
  "er_status": {
    "description": "Estrogen receptor status (LOINC 16112-5)",
    "fhirSource": "Observation.valueCodeableConcept",
    "example": "Positive"
  }
}

6 Questions

Questions about eClinicalWorks

Does Clinical Extract work with eClinicalWorks?

eClinicalWorks is certified to ONC §170.315(g)(10). Clinical Extract connects as a read-only backend app your practice enables once and runs the study export from your practice.

Can I pull a patient list from eClinicalWorks for a study?

Paste MRNs, or names with dates of birth. Roster pull grades every row (certain, probable, possible, multiple, none), you confirm the matches, and the confirmed rows become the cohort the export runs on.

What does my practice need to do?

Enable the app once and hand Clinical Extract the FHIR base URL and token URL eClinicalWorks returns for the practice. The same connection then serves each new study.

What does the practice receive?

study.csv, one row per patient in the cohort and one column per approved variable, plus data-dictionary.json.

Next

See Clinical Extract run on one of your studies.

Tell us which EHR you run and what the study or registry needs. We reply within one business day to set a meeting time.

Request a demo