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
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.
practitionerrole-practitioner-fixture: au-core-practitionerrole-practitioner (created before, and removed after, the run)practitionerrole-organization-fixture: au-core-practitionerrole-organization (created before, and removed after, the run)practitionerrole-fixture: au-core-practitionerrole-conformant (created before, and removed after, the run)${practitionerRoleId} = PractitionerRole.id of practitionerrole-fixture${practitionerId} = Practitioner.id of practitionerrole-practitioner-fixture${organizationId} = Organization.id of practitionerrole-organization-fixtureREAD PractitionerRole/${practitionerRoleId}
response = okay
SEARCH PractitionerRole?_id=${practitionerRoleId}
response = okay
expression = Bundle.entry.resource.ofType(PractitionerRole).code.coding.code.where($this = '62247001').exists()
SEARCH PractitionerRole?identifier=http://ns.electronichealth.net.au/id/medicare-provider-number|2449001X
response = okay
expression = Bundle.entry.resource.ofType(PractitionerRole).identifier.value.where($this = '2449001X').exists()
SEARCH PractitionerRole?practitioner=Practitioner/${practitionerId}
response = okay
expression = Bundle.entry.resource.ofType(PractitionerRole).code.coding.code.where($this = '62247001').exists()
SEARCH PractitionerRole?specialty=http://snomed.info/sct|408443003
response = okay
expression = Bundle.entry.resource.ofType(PractitionerRole).specialty.coding.code.where($this = '408443003').exists()
SEARCH PractitionerRole?role=http://snomed.info/sct|62247001
response = okay
expression = Bundle.entry.resource.ofType(PractitionerRole).code.coding.code.where($this = '62247001').exists()
SEARCH PractitionerRole?organization=Organization/${organizationId}
response = okay
expression = Bundle.entry.resource.ofType(PractitionerRole).code.coding.code.where($this = '62247001').exists()
SEARCH PractitionerRole?practitioner:Practitioner.identifier=http://ns.electronichealth.net.au/id/hi/hpii/1.0|8003614900041692&_include=PractitionerRole:practitioner
response = okay
expression = Bundle.entry.resource.ofType(PractitionerRole).exists()
expression = Bundle.entry.resource.ofType(Practitioner).name.family.where($this.contains('Frog')).exists()
READ PractitionerRole/${practitionerRoleId}
expression = PractitionerRole.identifier.exists()
expression = PractitionerRole.practitioner.exists()
expression = PractitionerRole.organization.exists()
expression = PractitionerRole.code.exists()
expression = PractitionerRole.specialty.exists()
expression = PractitionerRole.telecom.exists()
expression = PractitionerRole.telecom.system.exists()
expression = PractitionerRole.telecom.value.exists()
READ PractitionerRole/${practitionerRoleId}
validateProfileId = http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitionerrole