Health Connect Australia Provider Directory FHIR Implementation Guide - Local Development build (v26.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
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. This requirement is enforced by invariant hcpd-exp-1 in the HCPD Export Request Parameters profile.
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. The Parameters resource SHALL conform to the HCPD Export Request Parameters profile. This profile ensures consistent parameter combinations and 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:
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 filteringFor detailed descriptions of all parameters and their usage, see the HCPD Export Request Parameters profile.
The 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",
"meta": {
"profile": ["http://digitalhealth.gov.au/fhir/hcpd/StructureDefinition/hcpd-export-request-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",
"meta": {
"profile": ["http://digitalhealth.gov.au/fhir/hcpd/StructureDefinition/hcpd-export-request-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",
"meta": {
"profile": ["http://digitalhealth.gov.au/fhir/hcpd/StructureDefinition/hcpd-export-request-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",
"meta": {
"profile": ["http://digitalhealth.gov.au/fhir/hcpd/StructureDefinition/hcpd-export-request-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",
"meta": {
"profile": ["http://digitalhealth.gov.au/fhir/hcpd/StructureDefinition/hcpd-export-request-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.