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

AU Core AllergyIntolerance

AU Core AllergyIntolerance — SHALL-level conformance plus chained identifier search

Covers the SHALL-level AU Core AllergyIntolerance (2.0.0) requirements: read, search by patient, must-support element presence, and profile conformance validation, plus a demonstration of the AU-specific chained patient.identifier (IHI) search that Inferno adds beyond generic us-core coverage. Also exercises the (MAY-level) standalone clinical-status search since it was explicitly called out for coverage in fhirfrog/au-core-compiler#7. Mirrors the relevant subset of au-fhir-core-inferno's AllergyIntoleranceGroup (allergy_intolerance_read_test, allergy_intolerance_patient_search_test, allergy_intolerance_clinical_status_search_test, allergy_intolerance_patient_ihi_chain_search_test, allergy_intolerance_must_support_test, allergy_intolerance_validation_test) — the SHOULD-level combined patient+clinical-status search, the Medicare/DVA chain variants (structurally identical to the IHI chain demonstrated here), the POST-search variant, and the reference-resolution test are not replicated; see fhirfrog/au-core-compiler#7 for scope rationale, following #6's precedent.

Name
AUCoreAllergyIntolerance
URL
http://fhirfrog.org/fhir/au-core-tests/TestScript/au-core-allergyintolerance
Status
active

Fixtures

  • patient-fixture: au-core-patient-conformant (created before, and removed after, the run)
  • allergyintolerance-fixture: au-core-allergyintolerance-conformant (created before, and removed after, the run)

Variables

  • ${patientId} = Patient.id of patient-fixture
  • ${allergyIntoleranceId} = AllergyIntolerance.id of allergyintolerance-fixture

Read

  1. Read AllergyIntolerance by id (${allergyIntoleranceId}) READ AllergyIntolerance/${allergyIntoleranceId}
  2. Response status is okay response = okay

SearchByPatient

  1. Search AllergyIntolerance where patient = ${patientId} SEARCH AllergyIntolerance?patient=${patientId}
  2. Response status is okay response = okay
  3. Check: Bundle.entry.resource.ofType(AllergyIntolerance).note.text.where($this.contains('Frog')).exists() expression = Bundle.entry.resource.ofType(AllergyIntolerance).note.text.where($this.contains('Frog')).exists()

SearchByClinicalStatus

  1. Search AllergyIntolerance where clinical-status = http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical|active SEARCH AllergyIntolerance?clinical-status=http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical|active
  2. Response status is okay response = okay
  3. Check: Bundle.entry.resource.ofType(AllergyIntolerance).note.text.where($this.contains('Frog')).exists() expression = Bundle.entry.resource.ofType(AllergyIntolerance).note.text.where($this.contains('Frog')).exists()

SearchByPatientIdentifierIHIChain

  1. Search AllergyIntolerance where patient.identifier = http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361 SEARCH AllergyIntolerance?patient.identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361
  2. Response status is okay response = okay
  3. Check: Bundle.entry.resource.ofType(AllergyIntolerance).note.text.where($this.contains('Frog')).exists() expression = Bundle.entry.resource.ofType(AllergyIntolerance).note.text.where($this.contains('Frog')).exists()

MustSupport

  1. Read AllergyIntolerance by id (${allergyIntoleranceId}) READ AllergyIntolerance/${allergyIntoleranceId}
  2. Check: AllergyIntolerance.clinicalStatus.exists() expression = AllergyIntolerance.clinicalStatus.exists()
  3. Check: AllergyIntolerance.verificationStatus.exists() expression = AllergyIntolerance.verificationStatus.exists()
  4. Check: AllergyIntolerance.code.exists() expression = AllergyIntolerance.code.exists()
  5. Check: AllergyIntolerance.patient.exists() expression = AllergyIntolerance.patient.exists()
  6. Check: AllergyIntolerance.onset.exists() expression = AllergyIntolerance.onset.exists()
  7. Check: AllergyIntolerance.note.exists() expression = AllergyIntolerance.note.exists()
  8. Check: AllergyIntolerance.reaction.exists() expression = AllergyIntolerance.reaction.exists()
  9. Check: AllergyIntolerance.reaction.manifestation.exists() expression = AllergyIntolerance.reaction.manifestation.exists()
  10. Check: AllergyIntolerance.reaction.severity.exists() expression = AllergyIntolerance.reaction.severity.exists()

ProfileValidation

  1. Read AllergyIntolerance by id (${allergyIntoleranceId}) READ AllergyIntolerance/${allergyIntoleranceId}
  2. Validate the response against profile http://hl7.org.au/fhir/core/StructureDefinition/au-core-allergyintolerance validateProfileId = http://hl7.org.au/fhir/core/StructureDefinition/au-core-allergyintolerance