Guide

How to extract data from Epic for research.

Clinical Extract is one of five routes to research data in Epic. This guide compares all five in one sourced table: what each returns, who runs it, how it is scoped, how fast it is and what comes out. Pick the route that fits your question when you export data from Epic for research.

1 The five routes

Five routes for Epic data extraction.

Each route answers a different question. Bulk FHIR returns a named cohort's coded records as NDJSON through the certified API, run by your own team. EHI export returns the whole record, one patient or every patient, in Epic's published format, run by your Epic team. Clarity and Caboodle are the reporting database and the data warehouse behind it: the enterprise in tables, queried by your reporting analysts. SlicerDicer is self-service exploration: counts and patient lists against criteria, inside Epic. Cosmos is Epic's de-identified dataset, for research that needs data from many organizations and can work without identifiers.

Routes to research data in EpicA comparison table of five routes to research data in Epic, by what each returns, who runs it, how it is scoped, how fast it is and what it outputs. Bulk FHIR with Clinical Extract, highlighted: returns FHIR R4 resources for the study cohort, such as Patient, Condition, Observation, MedicationRequest, Procedure and Encounter; run by your research team in your environment through a registered backend app; scoped to one Group, the study cohort, and a _type list, then the approved variables; hours for a study cohort; outputs study.csv and data-dictionary.json, identified. EHI export: returns all electronic health information Epic holds for a patient; run by your Epic team on request; scoped to one patient, or every patient in a population export; a batch job, on request; outputs TSV files, one per table, specified on open.epic.com. Clarity and Caboodle: return reporting tables loaded from Chronicles, Clarity relational and Caboodle dimensional; run by report writers trained on the Clarity data model; scoped by whatever the SQL query selects; as of the last nightly ETL from Chronicles; outputs query results. SlicerDicer: returns patient counts and breakdowns on a SlicerDicer data model; run by clinicians and researchers in Hyperspace; scoped by the criteria you pick; interactive; outputs counts, charts and patient lists. Cosmos: returns de-identified records pooled across Epic organizations; run by researchers at organizations that contribute to Cosmos; scoped to cohorts across organizations, de-identified; interactive; outputs counts and aggregate statistics.RouteWhat it returnsWho runs itHow it is scopedHow fastOutputBulk FHIRwith ClinicalExtractFHIR R4 resources forthe study cohort:Patient, Condition,Observation,MedicationRequest,Procedure, Encounteryour research team, inyour environment,through a registeredbackend appone Group (the studycohort) and a _typelist, then theapproved variableshours for astudy cohortstudy.csv anddata-dictionary.json,identifiedEHI exportall electronic healthinformation Epic holdsfor a patientyour Epic team, onrequestone patient, or everypatient in apopulation exporta batch job, onrequestTSV files, one pertable, specified onopen.epic.comClarity /Caboodlereporting tables loadedfrom Chronicles: Clarityrelational, Caboodledimensionalreport writers trainedon the Clarity datamodelwhatever the SQL queryselectsas of the lastnightly ETLfrom Chroniclesquery resultsSlicerDicerpatient counts andbreakdowns on aSlicerDicer data modelclinicians andresearchers, inHyperspacethe criteria you pickinteractivecounts, charts andpatient listsCosmosde-identified recordspooled across Epicorganizationsresearchers atorganizations thatcontribute to Cosmoscohorts acrossorganizations,de-identifiedinteractivecounts and aggregatestatistics
Routes to research data in EpicA comparison table of five routes to research data in Epic, by what each returns, who runs it, how it is scoped, how fast it is and what it outputs. Bulk FHIR with Clinical Extract, highlighted: returns FHIR R4 resources for the study cohort, such as Patient, Condition, Observation, MedicationRequest, Procedure and Encounter; run by your research team in your environment through a registered backend app; scoped to one Group, the study cohort, and a _type list, then the approved variables; hours for a study cohort; outputs study.csv and data-dictionary.json, identified. EHI export: returns all electronic health information Epic holds for a patient; run by your Epic team on request; scoped to one patient, or every patient in a population export; a batch job, on request; outputs TSV files, one per table, specified on open.epic.com. Clarity and Caboodle: return reporting tables loaded from Chronicles, Clarity relational and Caboodle dimensional; run by report writers trained on the Clarity data model; scoped by whatever the SQL query selects; as of the last nightly ETL from Chronicles; outputs query results. SlicerDicer: returns patient counts and breakdowns on a SlicerDicer data model; run by clinicians and researchers in Hyperspace; scoped by the criteria you pick; interactive; outputs counts, charts and patient lists. Cosmos: returns de-identified records pooled across Epic organizations; run by researchers at organizations that contribute to Cosmos; scoped to cohorts across organizations, de-identified; interactive; outputs counts and aggregate statistics.Bulk FHIR with Clinical ExtractreturnsFHIR R4 resources for the studycohort: Patient, Condition,Observation, MedicationRequest,Procedure, Encounterrun byyour research team, in yourenvironment, through aregistered backend appscopeone Group (the study cohort)and a _type list, then theapproved variablesspeedhours for a study cohortoutputstudy.csv anddata-dictionary.json,identifiedEHI exportreturnsall electronic healthinformation Epic holds for apatientrun byyour Epic team, on requestscopeone patient, or every patientin a population exportspeeda batch job, on requestoutputTSV files, one per table,specified on open.epic.comClarity / Caboodlereturnsreporting tables loaded fromChronicles: Clarity relational,Caboodle dimensionalrun byreport writers trained on theClarity data modelscopewhatever the SQL query selectsspeedas of the last nightly ETL fromChroniclesoutputquery resultsSlicerDicerreturnspatient counts and breakdownson a SlicerDicer data modelrun byclinicians and researchers, inHyperspacescopethe criteria you pickspeedinteractiveoutputcounts, charts and patientlistsCosmosreturnsde-identified records pooledacross Epic organizationsrun byresearchers at organizationsthat contribute to Cosmosscopecohorts across organizations,de-identifiedspeedinteractiveoutputcounts and aggregate statistics
Figure 1. Routes to research data in Epic. Each route answers a different question. Bulk FHIR with Clinical Extract is the one that returns identified, study-scoped, analysis-ready rows for a named cohort, run by your own team.

2 EHI export

EHI export, explained.

EHI export is Epic's implementation of ONC's 45 CFR 170.315(b)(10) criterion: a certified EHR must export a single patient's, or every patient's, electronic health information in a documented format. Epic publishes the export's table documentation, your Epic team runs it, and what comes out is the record as Epic holds it: every table, every column, for a migration, a records request or an archive. An Epic EHI export is the right route when the question is "everything about this patient" or "everything, to move it"; it is the wrong shape for "these 212 patients, these 24 variables, as one CSV".

3 Bulk FHIR

Most Epic guides leave out the certified bulk export.

Ask "how to extract data from Epic" and the answers list SlicerDicer, Reporting Workbench, Clarity, Caboodle and Cosmos and stop. 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 without an analyst queue. 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 data dictionary. The Epic connection in detail shows the registration, the activation and the export in Epic's own terms; the FHIR API itself is covered in our Epic integration reference.

4 Choosing

Which route, for which question.

  1. Counts to test a hypothesis, today: SlicerDicer.
  2. A de-identified cohort across many organizations: Cosmos.
  3. The enterprise's tables for a dashboard or a recurring report: Clarity or Caboodle, through your reporting team.
  4. One patient's whole record, or every patient's, in Epic's format: EHI export.
  5. A study cohort's coded variables as one identified CSV, this week: bulk FHIR with Clinical Extract. Build the cohort first and read the count.

5 Questions

Questions about getting data out of Epic

Can you export data from Epic?

By five routes: the certified bulk FHIR API (a Group export for a cohort, which Clinical Extract runs), EHI export (the whole record in Epic’s published format), Clarity and Caboodle (the reporting databases, through your reporting team), SlicerDicer (self-service counts and lists) and Cosmos (Epic’s de-identified multi-site dataset). Figure 1 compares them.

How do I pull research data from Epic for one study?

Define the cohort and the variables the protocol approved, then run a bulk FHIR Group export for that cohort. Clinical Extract does that in your environment and returns study.csv and its data dictionary; the Epic connection in detail shows the registration and the export.

What is an EHI export?

The export ONC’s 45 CFR 170.315(b)(10) criterion requires: a patient’s, or every patient’s, electronic health information in the EHR’s published format. In Epic it is run by your Epic team and returns the whole record in Epic’s documented tables, which suits a migration, an archive or a records request.

How do I export an Epic patient list to Excel?

Reporting Workbench exports a patient list to Excel for a user with the right role. A research cohort with its variables is a bulk FHIR export: study.csv opens in Excel too, and data-dictionary.json explains each column.

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