By EHR
NextGen bulk FHIR export for research.
Clinical Extract connects to NextGen Enterprise as a read-only backend app onboarded with NextGen Healthcare and exports the study cohort’s Group through the certified FHIR R4 API. Your organization grants the access itself, and each study returns study.csv and a data dictionary.
1 Works with NextGen
NextGen Enterprise support.
NextGen Enterprise’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 handles the token request with its application credentials, the Group kickoff, the status poll and the file downloads, read-only, in your environment. Your organization grants the app access itself, self-service, in the NextGen API Client Portal.
NextGen data extraction for a registry or a study starts from a cohort you build from coded criteria or a patient list you match, and it exports only the resource types the protocol names.
- The study cohort as NDJSON, flattened to CSV
- Patient, Encounter, Condition, Observation, MedicationRequest and Procedure files land in your study folder. Clinical Extract flattens the approved variables into study.csv, and data-dictionary.json describes each column.
- 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 NextGen Enterprise with graded results, or build the cohort from coded criteria and read the feasibility count before the export.
2 Connecting
Onboarding with NextGen and granting access.
The NextGen setup runs through two portals: the Developer Portal for the app and the Client Portal for your access grant.
- Register. Clinical Extract is onboarded with NextGen Healthcare (the API Onboarding form and the API Terms of Service Agreement), and its application entry is set up in the NextGen API Developer Portal (developer.nextgen.com): a backend app with a signed-JWT client authentication (RS384), its public key served as a JWKS, and one
system/<Resource>.readscope per exported type plussystem/Group.read. The portal issues the application credentials and client ID. - Activate. Your organization grants the app access in the NextGen API Client Portal, self-service, gives Clinical Extract your NextGen Enterprise FHIR R4 endpoint, and names the study Group.
- Export. Clinical Extract signs a JWT with the private key that stays in your environment, gets a token with read scopes only at NextGen’s token endpoint, and runs the Group export.
Our NextGen integration work covers interfaces outside research.
3 Export time
Study export time on NextGen Enterprise.
A study export on NextGen Enterprise finishes in hours because it covers the cohort and the resource types the protocol names. Clinical Extract polls the status URL, downloads each NDJSON file with the bearer token and flattens the approved variables into study.csv.
Every header of the kickoff, status and manifest exchange is in our guide to bulk FHIR export.
4 Facts
NextGen connection facts.
| Endpoint | Your NextGen Enterprise FHIR R4 endpoint, the certified API, with access granted to Clinical Extract in the NextGen API Client Portal |
|---|---|
| Registration | NextGen API Developer Portal (developer.nextgen.com), after the API Onboarding form and the API Terms of Service Agreement: an application entry for a backend app, Clinical Extract’s public key as a JWKS, one system/<Resource>.read scope per exported type plus system/Group.read; OAuth2 application credentials and a client ID |
| Authentication | SMART Backend Services: a JWT signed RS384 with Clinical Extract’s private key, exchanged at NextGen’s token endpoint for an access token with one system/<Resource>.read scope per exported type plus system/Group.read |
| Export type | Group export: GET {nge-fhir-r4}/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: NextGen API, 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 manifest counts and the row shown come from it.
GET {nge-fhir-r4}/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": "{nge-fhir-r4}/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 NextGen
Does NextGen support bulk FHIR export?
NextGen Enterprise is certified to ONC §170.315(g)(10), and its FHIR R4 API exposes the Group export with backend-services authorization. Clinical Extract runs it as a backend app your organization grants access to in the API Client Portal.
Who grants the access?
Your organization does, self-service, in the NextGen API Client Portal. Clinical Extract’s application entry already exists in the API Developer Portal; you grant it access and name the study Group.
What does our organization hand over?
Your NextGen Enterprise FHIR R4 endpoint, once, and a Group ID for each study.
What does the export deliver?
study.csv, with one column per approved variable, and data-dictionary.json with each column’s description, FHIR source and an example value.
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.