Health Connect Australia Provider Directory FHIR Implementation Guide, published by Australian Digital Health Agency. This guide is not an authorized publication; it is the continuous build for version 0.3.0-preview built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/AuDigitalHealth/HealthConnect/ and changes regularly. See the Directory of published versions
| Page standards status: Informative |
This page describes step 1 of the Asynchronous Bulk Data Export Process Workflow - the 'kick off request' pattern - for requesting Health Connect Provider Directory resources.
Request submissions have four key components:
The client SHALL ensure that all individual export queries are structured correctly inside of a Parameters resource with a corresponding _typeFilter for each resource type.
The request SHALL include specific headers and a Parameters resource in the body.
Prefer: respond-async - indicates that the server should process the request asynchronouslyAccept: application/fhir+json - specifies the format of the optional OperationOutcome responseThe batch export request uses a FHIR Parameters resource in the request body to specify export parameters. This allows for complex parameter combinations and ensures proper encoding of multiple _typeFilter values.
The Health Connect Provider Directory supports bulk data extraction with geographical filtering using standard FHIR _typeFilter parameters:
_typeFilter=Location?address-state=[STATE]_typeFilter=Location?address-postalcode=[POSTCODE]_typeFilter=Location?near=[LAT]|[LNG]|[DISTANCE]_typeFilter=Location?address-city=[CITY]Note: Geographical filtering is applied through Location resources, with related resources (Organizations, Practitioners, etc.) included through FHIR relationship traversal.
Bulk extraction focused on retrieving organizational data using standard FHIR identifier searches:
_typeFilter=Organization?identifier=[SYSTEM]|[VALUE]:
identifier=http://ns.electronichealth.net.au/id/hi/hpio/1.0|[HPIO]identifier=http://hl7.org.au/id/abn|[ABN]identifier=http://hl7.org.au/id/acn|[ACN]_typeFilter=Organization?name=[NAME]_include and _revinclude parameters to retrieve:
Note: For complete organizational ecosystems, combine organization filtering with appropriate _include parameters in subsequent queries.
Bulk extraction focused on specific healthcare services using standard FHIR service type filtering:
_typeFilter=HealthcareService?service-type=[SYSTEM]|[CODE]_typeFilter parameters to combine service types with geographical constraints_include and _revinclude parameters to retrieve:
_type - Comma-separated list of resource types to include (Organization,Location,Practitioner,PractitionerRole,HealthcareService,Endpoint,Provenance)_since - Only resources updated since specified timestamp (ISO 8601 format)_typeFilter - Apply export criteria to specific resource types (e.g., Location?address-state=NSW)_outputFormat - Specifies the format of exported data files (default: application/fhir+ndjson)Geographical Filtering:
_typeFilter=Location?address-state=[state] for state-based filtering_typeFilter=Location?address-postalcode=[postcode] for postcode filtering_typeFilter=Location?near=[lat]|[lng]|[distance] for proximity-based filteringOrganization-Based Filtering:
_typeFilter=Organization?identifier=[system]|[value] for organization identifier filtering_typeFilter=Organization?name=[name] for organization name filteringService Type Filtering:
_typeFilter=HealthcareService?type=[code] for service type filteringThe examples below illustrate how Provider Directory bulk export requests can be constructed using a POST request along with the _type and _typeFilter parameters.
Export Provider Directory resources relevant to Cardiology Services in Balmain, including organisations, locations, services, roles and practitioners.
POST [base_url]/$export
Content-Type: application/fhir+json
Prefer: respond-async
Accept: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "_outputFormat",
"valueString": "application/fhir+ndjson"
},
{
"name": "_type",
"valueString": "Location,HealthcareService,Organization,PractitionerRole,Practitioner"
},
{
"name": "_typeFilter",
"valueString": "Location?address-city=Balmain&address-postalcode=2041&near=-33.8607|151.1803|100"
},
{
"name": "_typeFilter",
"valueString": "HealthcareService?service-type=http://snomed.info/sct|789718008&location.address-city=Balmain&location.address-postalcode=2041"
},
{
"name": "_typeFilter",
"valueString": "Organization?_has:HealthcareService:organization:service-type=http://snomed.info/sct|789718008"
},
{
"name": "_typeFilter",
"valueString": "PractitionerRole?location.address-city=Balmain&location.address-postalcode=2041"
},
{
"name": "_typeFilter",
"valueString": "Practitioner?_has:PractitionerRole:practitioner:location.address-city=Balmain"
}
]
}
Export changes since a prior export. The Bulk Data IG defines the _since parameter and uses the standard lastUpdated field on resources to find changes.
POST [base]/$export
Content-Type: application/fhir+json
Prefer: respond-async
Accept: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "_outputFormat",
"valueString": "application/fhir+ndjson"
},
{
"name": "_type",
"valueString": "Organization,Location,HealthcareService,Practitioner,PractitionerRole,Endpoint,Provenance"
},
{
"name": "_typeFilter",
"valueString": "HealthcareService?service-type=http://snomed.info/sct|789718008&location.address-city=Balmain&location.address-postalcode=2041"
},
{
"name": "_typeFilter",
"valueString": "Location?address-city=Balmain&address-postalcode=2041&near=-33.8607|151.1803|100"
},
{
"name": "_typeFilter",
"valueString": "Organization?_has:HealthcareService:organization:service-type=http://snomed.info/sct|789718008"
},
{
"name": "_typeFilter",
"valueString": "PractitionerRole?location.address-city=Balmain&location.address-postalcode=2041"
},
{
"name": "_typeFilter",
"valueString": "Practitioner?_has:PractitionerRole:practitioner:location.address-city=Balmain"
},
{
"name": "_since",
"valueInstant": "2025-02-01T00:00:00Z"
}
]
}
Request for resources within 25km of Parramatta (-33.8136,150.9996):
POST [base]/$export
Content-Type: application/fhir+json
Prefer: respond-async
Accept: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "_outputFormat",
"valueString": "application/fhir+ndjson"
},
{
"name": "_type",
"valueString": "Location"
},
{
"name": "_typeFilter",
"valueString": "Location?near=-33.8136|150.9996|25"
}
]
}
Request for organizations matching specific HPI-O identifier:
POST [base]/$export
Content-Type: application/fhir+json
Prefer: respond-async
Accept: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "_outputFormat",
"valueString": "application/fhir+ndjson"
},
{
"name": "_type",
"valueString": "Organization"
},
{
"name": "_typeFilter",
"valueString": "Organization?identifier=8003626566707032"
}
]
}
Request for organizations matching ABN:
POST [base]/$export
Content-Type: application/fhir+json
Prefer: respond-async
Accept: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "_outputFormat",
"valueString": "application/fhir+ndjson"
},
{
"name": "_type",
"valueString": "Organization"
},
{
"name": "_typeFilter",
"valueString": "Organization?identifier=41824753556"
}
]
}
The server responds with a 202 Accepted status code and a Content-Location header indicating the absolute URL to poll for status updates, using the unique job ID assigned to the batch request.
Response HTTP header example:
HTTP/1.1 202 Accepted
content-location: https://fhir-xrp.digitalhealth.gov.au/fhir/$export-poll-status?_jobId=c9b1cfe7-ce25-4269-a07c-76cc6e745fb5
Response HTTP body: absent
Once submitted successfully, there are two possible follow-up actions:
Clients can poll the status of the request using the returned _jobId=[value].
For full details, refer to the Batch Request Status page.
Clients can delete a batch request by sending a DELETE request to the URL provided in the Content-Location header.
For full details, refer to the Batch Request Delete page.