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-medicationrequest | Version: 0.1.0 | |||
| Active as of 2026-08-16 | Computable Name: AUCoreMedicationRequest | |||
Covers the SHALL-level AU Core MedicationRequest (2.0.0) requirements: read, search by _id, authoredon, intent, status and patient, a search demonstrating the _include=MedicationRequest:medication inclusion mechanism, must-support element presence, and profile conformance validation. Mirrors the SHALL subset of au-fhir-core-inferno's MedicationRequestGroup (medication_request_read_test, medication_request__id_search_test, medication_request_authoredon_search_test, medication_request_intent_search_test, medication_request_status_search_test, medication_request_patient_search_test, medication_request_patient_include_medication_test, medication_request_must_support_test, medication_request_validation_test) — the SHOULD/MAY-level combinatorial search tests (chained patient.identifier searches, multi-param AND/OR combinations, the further patient+intent+authoredon/status _include variants) are not replicated here; see fhirfrog/au-core-compiler#6 for the general scope rationale established for Patient, applied here for #14. Known engine limitation, documented here rather than as a new issue: fhir-frog's AssertionEvaluator validateProfileId assertion validates whichever resource came back from the last operation directly; it cannot reach into a specific entry of a returned Bundle to separately validate an included resource (e.g. the Medication pulled in via _include) against its own profile as a sub-check. Consequently the IncludeMedication test below only demonstrates the retrieval mechanism — asserting via FHIRPath that the Bundle contains both a MedicationRequest and a Medication entry — and does not attempt to validateProfileId the included Medication against au-core-medication. MedicationRequest's own profile conformance is instead exercised separately in the ProfileValidation test via a plain read followed by validateProfileId, which the engine handles correctly. A second, unrelated engine quirk found during validation against a live HAPI server: HAPI's FHIRPathEngine (ca.uhn.fhir newFhirPath(), used by fhir-frog's assertion evaluator) does not resolve the suffixed choice-type accessor form (e.g. medicationReference) as a property name on a resource instance — only the base choice name (medication) or an explicit .ofType(Reference)/as Reference filter on it work. The MustSupport test below therefore asserts MedicationRequest.medication.ofType(Reference).exists() rather than MedicationRequest.medicationReference.exists() to check the specific slice actually populated by the fixture.
url: TestScript AU Core MedicationRequest — SHALL-level conformance
version: 0.1.0
name: AUCoreMedicationRequest
title: AU Core MedicationRequest — SHALL-level conformance
status: Active
date: 2026-08-16 05:55:37+0000
publisher: FHIR Frog
contact: FHIR Frog: https://gitlab.com/fhirfrog
description:
Covers the SHALL-level AU Core MedicationRequest (2.0.0) requirements: read, search by _id, authoredon, intent, status and patient, a search demonstrating the _include=MedicationRequest:medication inclusion mechanism, must-support element presence, and profile conformance validation. Mirrors the SHALL subset of au-fhir-core-inferno's MedicationRequestGroup (medication_request_read_test, medication_request__id_search_test, medication_request_authoredon_search_test, medication_request_intent_search_test, medication_request_status_search_test, medication_request_patient_search_test, medication_request_patient_include_medication_test, medication_request_must_support_test, medication_request_validation_test) — the SHOULD/MAY-level combinatorial search tests (chained patient.identifier searches, multi-param AND/OR combinations, the further patient+intent+authoredon/status _include variants) are not replicated here; see fhirfrog/au-core-compiler#6 for the general scope rationale established for Patient, applied here for #14. Known engine limitation, documented here rather than as a new issue: fhir-frog's AssertionEvaluator validateProfileId assertion validates whichever resource came back from the last operation directly; it cannot reach into a specific entry of a returned Bundle to separately validate an included resource (e.g. the Medication pulled in via _include) against its own profile as a sub-check. Consequently the IncludeMedication test below only demonstrates the retrieval mechanism — asserting via FHIRPath that the Bundle contains both a MedicationRequest and a Medication entry — and does not attempt to validateProfileId the included Medication against au-core-medication. MedicationRequest's own profile conformance is instead exercised separately in the ProfileValidation test via a plain read followed by validateProfileId, which the engine handles correctly. A second, unrelated engine quirk found during validation against a live HAPI server: HAPI's FHIRPathEngine (ca.uhn.fhir newFhirPath(), used by fhir-frog's assertion evaluator) does not resolve the suffixed choice-type accessor form (e.g. medicationReference) as a property name on a resource instance — only the base choice name (medication) or an explicit .ofType(Reference)/as Reference filter on it work. The MustSupport test below therefore asserts MedicationRequest.medication.ofType(Reference).exists() rather than MedicationRequest.medicationReference.exists() to check the specific slice actually populated by the fixture.
fixture
id
patient-fixtureautocreate: true
autodelete: true
resource:
au-core-patient-conformant
fixture
id
medication-fixtureautocreate: true
autodelete: true
resource:
au-core-medicationrequest-medication
fixture
id
medicationrequest-fixtureautocreate: true
autodelete: true
resource:
au-core-medicationrequest-conformant
variable
name: patientId
path: Patient.id
sourceId: patient-fixture
variable
name: medicationRequestId
path: MedicationRequest.id
sourceId: medicationrequest-fixture
test
name: Read
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: read (Read) MedicationRequest true /${medicationRequestId} action
Asserts
Response WarningOnly okay false
test
name: SearchById
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) MedicationRequest true ?_id=${medicationRequestId} action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(MedicationRequest).exists() false
test
name: SearchByAuthoredOn
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) MedicationRequest true ?authoredon=2024-03-15 action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(MedicationRequest).exists() false
test
name: SearchByIntent
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) MedicationRequest true ?intent=order action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(MedicationRequest).exists() false
test
name: SearchByStatus
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) MedicationRequest true ?status=active action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(MedicationRequest).exists() false
test
name: SearchByPatient
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) MedicationRequest true ?patient=${patientId} action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(MedicationRequest).exists() false
test
name: SearchWithIncludeMedication
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: search (Search) MedicationRequest true ?patient=${patientId}&_include=MedicationRequest:medication action
Asserts
Response WarningOnly okay false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(MedicationRequest).exists() false action
Asserts
Expression WarningOnly Bundle.entry.resource.ofType(Medication).exists() false
test
name: MustSupport
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: read (Read) MedicationRequest true /${medicationRequestId} action
Asserts
Expression WarningOnly MedicationRequest.status.exists() false action
Asserts
Expression WarningOnly MedicationRequest.intent.exists() false action
Asserts
Expression WarningOnly MedicationRequest.medication.exists() false action
Asserts
Expression WarningOnly MedicationRequest.medication.ofType(Reference).exists() false action
Asserts
Expression WarningOnly MedicationRequest.subject.exists() false action
Asserts
Expression WarningOnly MedicationRequest.encounter.exists() false action
Asserts
Expression WarningOnly MedicationRequest.authoredOn.exists() false action
Asserts
Expression WarningOnly MedicationRequest.requester.exists() false action
Asserts
Expression WarningOnly MedicationRequest.reasonCode.exists() false action
Asserts
Expression WarningOnly MedicationRequest.reasonReference.exists() false action
Asserts
Expression WarningOnly MedicationRequest.dosageInstruction.exists() false action
Asserts
Expression WarningOnly MedicationRequest.dosageInstruction.text.exists() false
test
name: ProfileValidation
action
Operations
Type Resource EncodeRequestUrl Params Test script operation code: read (Read) MedicationRequest true /${medicationRequestId} action
Asserts
ValidateProfileId WarningOnly http://hl7.org.au/fhir/core/StructureDefinition/au-core-medicationrequest false