FHIR Frog AU Core Conformance Tests
0.1.0 - draft
FHIR Frog AU Core Conformance Tests, published by FHIR Frog. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/jgsuess/au-core-tests/ and changes regularly. See the Directory of published versions
| Official URL: http://fhirfrog.org/fhir/au-core-tests/TestScript/au-core-practitionerrole | Version: 0.1.0 | |||
| Active as of 2026-08-16 | Computable Name: AUCorePractitionerRole | |||
Covers the AU Core PractitionerRole (2.0.0) requirements identified in fhirfrog/au-core-compiler#18: read, search by _id/identifier/practitioner/specialty/role/organization, the AU-specific chained-practitioner search (practitioner:Practitioner.identifier) combined with _include=PractitionerRole:practitioner, must-support element presence, and profile conformance validation. Mirrors au-fhir-core-inferno's PractitionerRoleGroup (practitioner_role_read_test, practitioner_role__id_search_test, practitioner_role_identifier_search_test, practitioner_role_identifier_medicare_search_test, practitioner_role_practitioner_search_test, practitioner_role_specialty_search_test, practitioner_role_role_search_test, practitioner_role_organization_search_test, practitioner_role_practitioner_chain_search_test, practitioner_role_practitioner_include_practitioner_test, practitioner_role_must_support_test, practitioner_role_validation_test). Issue #18's premise is that the chained-practitioner SearchParameter and the Medicare identifier search are plain query-string parameters that fhir-frog's byUrl-pass-through search executor already handles generically, so this TestScript exercises each as a single representative query rather than replicating Inferno's full SHOULD/MAY combinatorial variants (GET/POST comparison, multiple AND/OR reference forms, reference-form-only variants) — see fhirfrog/au-core-compiler#6 for the equivalent Patient-level scope rationale. The identifier fixture carries a Medicare-provider-number-typed identifier so the plain identifier search doubles as the Medicare identifier search. Per the Bundle-validation-gap caveat noted on fhirfrog/au-core-compiler#14, validateProfileId is not attempted against the _include'd search Bundle; PractitionerRole profile conformance is instead checked via a separate plain read.
url: TestScript AU Core PractitionerRole — core search & profile conformance
version: 0.1.0
name: AUCorePractitionerRole
title: AU Core PractitionerRole — core search & profile conformance
status: Active
date: 2026-08-16 05:55:37+0000
publisher: FHIR Frog
contact: FHIR Frog: https://gitlab.com/fhirfrog
description:
Covers the AU Core PractitionerRole (2.0.0) requirements identified in fhirfrog/au-core-compiler#18: read, search by _id/identifier/practitioner/specialty/role/organization, the AU-specific chained-practitioner search (practitioner:Practitioner.identifier) combined with _include=PractitionerRole:practitioner, must-support element presence, and profile conformance validation. Mirrors au-fhir-core-inferno's PractitionerRoleGroup (practitioner_role_read_test, practitioner_role__id_search_test, practitioner_role_identifier_search_test, practitioner_role_identifier_medicare_search_test, practitioner_role_practitioner_search_test, practitioner_role_specialty_search_test, practitioner_role_role_search_test, practitioner_role_organization_search_test, practitioner_role_practitioner_chain_search_test, practitioner_role_practitioner_include_practitioner_test, practitioner_role_must_support_test, practitioner_role_validation_test). Issue #18's premise is that the chained-practitioner SearchParameter and the Medicare identifier search are plain query-string parameters that fhir-frog's byUrl-pass-through search executor already handles generically, so this TestScript exercises each as a single representative query rather than replicating Inferno's full SHOULD/MAY combinatorial variants (GET/POST comparison, multiple AND/OR reference forms, reference-form-only variants) — see fhirfrog/au-core-compiler#6 for the equivalent Patient-level scope rationale. The identifier fixture carries a Medicare-provider-number-typed identifier so the plain identifier search doubles as the Medicare identifier search. Per the Bundle-validation-gap caveat noted on fhirfrog/au-core-compiler#14, validateProfileId is not attempted against the _include'd search Bundle; PractitionerRole profile conformance is instead checked via a separate plain read.
fixture
id
practitionerrole-practitioner-fixtureautocreate: true
autodelete: true
resource: AUCorePractitionerRolePractitioner
fixture
id
practitionerrole-organization-fixtureautocreate: true
autodelete: true
resource:
au-core-practitionerrole-organization
fixture
id
practitionerrole-fixtureautocreate: true
autodelete: true
resource:
au-core-practitionerrole-conformant
variable
name: practitionerRoleId
path: PractitionerRole.id
sourceId: practitionerrole-fixture
variable
name: practitionerId
path: Practitioner.id
sourceId: practitionerrole-practitioner-fixture
variable
name: organizationId
path: Organization.id
sourceId: practitionerrole-organization-fixture
test
name: Read
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: read (Read) PractitionerRole true /${practitionerRoleId} action
Asserts
Response WarningOnly okay false
test
name: SearchById
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) PractitionerRole true ?_id=${practitionerRoleId} action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(PractitionerRole).code.coding.code.where($this = '62247001').exists() false
test
name: SearchByIdentifier
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) PractitionerRole true ?identifier=http://ns.electronichealth.net.au/id/medicare-provider-number|2449001X action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(PractitionerRole).identifier.value.where($this = '2449001X').exists() false
test
name: SearchByPractitioner
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) PractitionerRole true ?practitioner=Practitioner/${practitionerId} action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(PractitionerRole).code.coding.code.where($this = '62247001').exists() false
test
name: SearchBySpecialty
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) PractitionerRole true ?specialty=http://snomed.info/sct|408443003 action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(PractitionerRole).specialty.coding.code.where($this = '408443003').exists() false
test
name: SearchByRole
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) PractitionerRole true ?role=http://snomed.info/sct|62247001 action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(PractitionerRole).code.coding.code.where($this = '62247001').exists() false
test
name: SearchByOrganization
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) PractitionerRole true ?organization=Organization/${organizationId} action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(PractitionerRole).code.coding.code.where($this = '62247001').exists() false
test
name: ChainedPractitionerIncludePractitioner
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) PractitionerRole true ?practitioner:Practitioner.identifier=http://ns.electronichealth.net.au/id/hi/hpii/1.0|8003614900041692&_include=PractitionerRole:practitioner action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(PractitionerRole).exists() false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(Practitioner).name.family.where($this.contains('Frog')).exists() false
test
name: MustSupport
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: read (Read) PractitionerRole true /${practitionerRoleId} action
Asserts
Expression WarningOnly PractitionerRole.identifier.exists() false action
Asserts
Expression WarningOnly PractitionerRole.practitioner.exists() false action
Asserts
Expression WarningOnly PractitionerRole.organization.exists() false action
Asserts
Expression WarningOnly PractitionerRole.code.exists() false action
Asserts
Expression WarningOnly PractitionerRole.specialty.exists() false action
Asserts
Expression WarningOnly PractitionerRole.telecom.exists() false action
Asserts
Expression WarningOnly PractitionerRole.telecom.system.exists() false action
Asserts
Expression WarningOnly PractitionerRole.telecom.value.exists() false
test
name: ProfileValidation
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: read (Read) PractitionerRole true /${practitionerRoleId} action
Asserts
ValidateProfileId WarningOnly http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitionerrole false