Clinical Extract
Clinical Extract is EHR data extraction software for research. It exports your study cohort through your EHR’s certified API, keeps only the variables your protocol approved, and returns one CSV with its data dictionary.
Updated
EHR data extraction for research on the certified API
Every certified EHR offers a bulk FHIR API for a group of patients. Clinical Extract runs that export for one study at a time: the study cohort’s records, the resource types the protocol names, and only the variables it approved. Structured, coded data comes back as ICD-10-CM, LOINC and RxNorm, ready for analysis.
It is EHR and EMR data extraction for registries and research teams, with no analyst queue and no warehouse build. For whole-record moves, Saga also handles EHR data migration and archiving.
One CSV and a data dictionary for every study
The NDJSON lands in a folder you control. Clinical Extract keeps the variables the protocol approved, flattens them into one analysis-ready study.csv, and writes data-dictionary.json with each column’s description, FHIR source path and an example value.
The dictionary is also the record of what left the EHR: the IRB, the honest broker and the analyst all read the same file.
| Column | Description | FHIR source | Example |
|---|---|---|---|
patient_ref | Patient resource ID on your FHIR server | Patient.id | eKx3p9Qa |
birth_year | Year of birth | Patient.birthDate | 1961 |
dx_code | Primary cancer diagnosis, ICD-10-CM | Condition.code | C50.412 |
dx_date | Date of diagnosis | Condition.onsetDateTime | 2024-03-14 |
stage_group | AJCC clinical stage group (LOINC 21908-9) | Observation.valueCodeableConcept | IIA |
er_status | Estrogen receptor status (LOINC 16112-5) | Observation.valueCodeableConcept | Positive |
her2_status | HER2 status (LOINC 48676-1) | Observation.valueCodeableConcept | Negative |
first_chemo | First chemotherapy agent ordered (RxNorm) | MedicationRequest.medicationCodeableConcept | paclitaxel |
Epic data extraction for research
Ask how to get research data out of Epic and most answers list SlicerDicer, Clarity, Caboodle and Cosmos. The certified bulk FHIR API is the route they leave out, and it is the one that returns identified, study-scoped, analysis-ready rows for a named cohort, run by your own team.
Clinical Extract runs it as a read-only Backend Systems app: your Epic team activates the app once, the cohort becomes a Group, and one export returns study.csv and its dictionary. Our Epic integration team covers the rest of the FHIR API.
| Route | What it returns | Who runs it | Fits |
|---|---|---|---|
| Bulk FHIR (Clinical Extract) | A named cohort’s coded records, one CSV per study | Your own team | A study cohort, this week |
| EHI export | The whole record in Epic’s published format | Your Epic team | One patient’s record, or everything, to move it |
| Clarity and Caboodle | The enterprise in reporting tables | Your reporting analysts | Dashboards and recurring reports |
| SlicerDicer | Counts and patient lists, inside Epic | Self-service | Testing a hypothesis today |
| Cosmos | A de-identified dataset across many organizations | Epic | Research that works without identifiers |
The tools that come with the export
Count a cohort, match a patient list, get oncology columns and read the data dictionary without filing a request with your EHR team.
-
Oncology lens
Each biomarker result and each stage comes out as a named column, ready to analyze. -
Roster pull
Paste MRNs, or names with dates of birth. Each row comes back with a match grade. -
Cohort builder
Build the cohort from coded criteria and see the feasibility count before any record is exported. -
CSV and data dictionary
Every column in study.csv has a description, its FHIR source path and an example value.
Automated chart abstraction for the coded fields
Most of an abstraction layout is coded data the EHR already holds: diagnosis codes and dates, histology, biomarkers, stage, treatment and procedures. Clinical Extract fills those from the EHR first, each with the FHIR element it came from, so the form opens filled.
The judgment calls that need a reading of the notes stay with the abstractor, who now starts there. Clinical data abstraction software can import study.csv with the dictionary as its field map, and abstraction services start from a filled case.
Patient data stays in your environment
Clinical Extract runs on your server or in your cloud tenant, next to the EHR it reads. Patient data moves on one path, from your EHR to Clinical Extract to your study folder. We deliver software releases and never receive patient data.
The token carries one read scope per resource type the study reads, so Clinical Extract cannot create or change a record. The export enforces the minimum necessary standard at three levels, shown below. Security in detail.
Who uses Clinical Extract
-
Registries
A direct EHR feed for cancer, trauma, cardiac and quality registries, with coded fields that pre-fill the abstraction. -
Research informatics
Minimum-necessary pulls for one study at a time, with a data dictionary for the IRB and the honest broker. -
Data engineering
SMART Backend Services auth, Group export, status polling, NDJSON downloads and retries, already built. -
Research sites
Trial feasibility counts and cohort identification across your EHRs before you commit to a study.
Need the data work around the export? Warehouses, OMOP and analytics on research data come from Saga’s healthcare data analytics services.
Healthcare data analyticsClinical Extract questions
Epic, Oracle Health, eClinicalWorks, athenahealth, MEDITECH, NextGen and Veradigm. Clinical Extract uses the bulk FHIR API that ONC certification criterion §170.315(g)(10) requires of every certified EHR. Your EHR team registers it once as a read-only backend app, and later studies reuse that connection.
One analysis-ready study.csv for the study cohort, with only the variables your protocol approved, and a data-dictionary.json that gives each column a description, its FHIR source path and an example value. Codes come through as recorded: ICD-10-CM, LOINC and RxNorm.
Epic has five routes: the certified bulk FHIR API, EHI export, Clarity and Caboodle, SlicerDicer and Cosmos. For a study cohort’s coded variables as one identified CSV, Clinical Extract runs the bulk FHIR route as a read-only Backend Systems app: the cohort becomes a Group and one export returns study.csv and its data dictionary. The Epic research data guide compares all five.
Clinical Extract runs on your server or in your cloud tenant, next to the EHR it reads, with read-only scopes. The NDJSON, study.csv and the data dictionary land in storage you control. We deliver software releases and never receive patient data.
Yes, for the coded fields. Diagnosis codes and dates, histology, biomarkers, stage, treatment and procedures come filled from the EHR with their FHIR source. The judgment calls that need a reading of the notes stay with the abstractor, who now starts there. See clinical data abstraction.
Hours for a study cohort. Jones et al. (JAMIA, 2024) measured certified bulk export at 502 to 2,827 resources per minute on Epic sites and above 8,000 on Cerner, so a whole-EHR export takes months. Clinical Extract requests only the study cohort and the resource types the protocol names.
Request a Clinical Extract demo
Tell us which EHR you run and one study or registry workflow. We will reply within one business day to set a time. Please leave patient information out of the form.
Guides, the EHR connection details and the output format are on clinicalextract.com.