By EHR
MEDITECH bulk FHIR export for research on Expanse.
Clinical Extract connects to MEDITECH Expanse as a read-only backend app registered through MEDITECH Greenfield and exports the study cohort’s Group through Expanse’s certified US Core FHIR R4 API. You receive the approved variables as study.csv, with a data dictionary.
1 Works with MEDITECH
MEDITECH Expanse support.
Expanse’s certified API (ONC §170.315(g)(10)) exports a Group of patients through HL7 FHIR Bulk Data Access, authorized with SMART Backend Services. Clinical Extract reads the token endpoint from your service base’s SMART configuration, requests a token with read scopes, kicks off the Group export, polls the status and downloads the files, all in your environment.
MEDITECH data extraction uses the same Group export for every protocol: a new cohort and a new variable list, on the connection your organization already enabled.
- The study cohort as NDJSON, flattened to CSV
- Patient, Encounter, Condition, Observation, MedicationRequest and Procedure files land in your study folder. Clinical Extract turns the approved variables into study.csv and records each column’s source in data-dictionary.json.
- 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 Expanse with graded results, or build the cohort from coded criteria and read the feasibility count before the export.
2 Connecting
Registering through Greenfield and enabling Expanse.
The MEDITECH setup runs once, through Greenfield and your Expanse.
- Register. Through MEDITECH Greenfield (greenfield.meditech.com), Clinical Extract is a backend app on Expanse’s certified US Core FHIR R4 API, with a signed-JWT client authentication (RS384) and its public key served as a JWKS. Its scopes are one
system/<Resource>.readscope per exported type plussystem/Group.read, and a client ID is issued. - Activate. Your organization enables the app on your Expanse, gives Clinical Extract the service base URL (the certified endpoint your organization publishes) and names the study Group.
- Export. Clinical Extract reads
token_endpointfrom{service-base}/.well-known/smart-configuration, signs a JWT with the private key that stays in your environment, gets a token with read scopes only, and runs the Group export.
We build interfaces and integrations for MEDITECH as well.
3 Export time
Export time on Expanse.
An Expanse export for a 212-patient study reads only that cohort’s records and finishes in hours. Clinical Extract follows Retry-After while it polls the status URL, then downloads the files the manifest lists and writes the CSV and its dictionary.
Every header of the kickoff, status and manifest exchange is in our guide to bulk FHIR export.
4 Facts
MEDITECH connection facts.
| Endpoint | Your Expanse service base URL, the certified US Core FHIR R4 endpoint your organization publishes; the token endpoint read from {service-base}/.well-known/smart-configuration |
|---|---|
| Registration | MEDITECH Greenfield (greenfield.meditech.com): a backend app on Expanse’s (g)(10) API, 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 token_endpoint the SMART configuration names for an access token with one system/<Resource>.read scope per exported type plus system/Group.read |
| Export type | Group export: GET {service-base}/Group/{group-id}/$export with _type; 202 Accepted with a Content-Location status URL |
| Status and files | 202 with Retry-After while the export runs; 200 with the JSON manifest; NDJSON files fetched with the bearer token, one resource per line |
| 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 and the manifest kept beside them in your study folder |
The table scrolls sideways.
Sources: MEDITECH Greenfield, US Core FHIR R4, HL7 Bulk Data Access.
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 manifest counts and the row shown come from it.
GET {service-base}/Group/{group-id}/$export
?_type=Patient,Encounter,Condition,Observation,MedicationRequest,Procedure
Accept: application/fhir+json
Prefer: respond-async
Authorization: Bearer {access token}
202 Accepted
Content-Location: {status-url} { "transactionTime": "2026-09-28T14:02:11Z", "request": "{service-base}/Group/{group-id}/$export?_type=Patient,Encounter,Condition,Observation,MedicationRequest,Procedure", "requiresAccessToken": true, "output": [ { "type": "Patient", "url": "{file-url-1}", "count": 212 }, { "type": "Encounter", "url": "{file-url-2}", "count": 3120 }, { "type": "Condition", "url": "{file-url-3}", "count": 1684 }, { "type": "Observation", "url": "{file-url-4}", "count": 48310 }, { "type": "MedicationRequest", "url": "{file-url-5}", "count": 3905 }, { "type": "Procedure", "url": "{file-url-6}", "count": 912 } ], "error": [] }
{"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"}]}} 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 { "er_status": { "description": "Estrogen receptor status (LOINC 16112-5)", "fhirSource": "Observation.valueCodeableConcept", "example": "Positive" } }
6 Questions
Questions about MEDITECH
Does MEDITECH support bulk FHIR export?
MEDITECH Expanse is certified to ONC §170.315(g)(10), and its US Core FHIR R4 API exposes the Group export with backend-services authorization. Clinical Extract runs it as a backend app registered through Greenfield.
What is the service base URL?
The certified FHIR R4 endpoint your organization publishes for its Expanse. Clinical Extract reads the token endpoint from that base’s SMART configuration, so the only address you hand over is the base itself.
What does our organization set up?
The backend app on your Expanse, one time. After that, each study needs only its Group ID.
Which files does a MEDITECH export produce?
study.csv and data-dictionary.json for the analysts, with the NDJSON files and the manifest from Expanse kept in the same study folder.
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.