My Health Record FHIR IG
1.2.0 - active

My Health Record FHIR IG - Local Development build (v1.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Guidance

### Intent of this Implementation Guide

This implementation guide is the pooling of content used across a number of Agency FHIR projects including:

- Medical Conditions View (MCV)
- Australian Immunisation Register (AIR) information
- Australian Organ Donor Register (AODR) information
- Pharmaceutical Benefits Scheme (PBS) / Repatriation Pharmaceutical Benefits Scheme (RPBS) claims information
- Medicare Benefits Schedule (MBS) / Department of Veterans' Affairs (DVA) claims information
- MyMedicare registered practice information
- ADHA Patient Emergency Contact

### Addresses

All Australian addresses SHOULD conform to the Australian Address profile.

### References between resources

References between resources in ADHA profiles are supported as reference (literal reference), identifier (logical reference), and display (text description of target).

ADHA profiles may include constraints on elements of Reference type that limit what is considered valid. For example, the profile ADHA Record of Claim against MBS or DVA limits what is considered valid for the element `ExplanationOfBenefit.referral` by mandating `ExplanationOfBenefit.referral.reference` to enforce population of a literal reference if the referral element is provided.

References to a patient

References to a patient SHALL populate `identifier` and when applicable populate a `reference` to a Patient resource:

- `identifier` SHOULD be populated with a verified IHI
- if referencing a specific Patient resource instance `reference` SHALL be populated and it SHALL resolve

Example: Observation resource with a Reference to a Patient resource as identifier and reference

    {
      "resourceType" : "Observation",
      ...
      "subject" : {
        "reference" : "Patient/88923001",
        "identifier" : {
          "type" : {
            "coding" : [
              {
                "system" : "http://terminology.hl7.org/CodeSystem/v2-0203",
                "code" : "NI",
                "display" : "National unique individual identifier"
              }
            ],
            "text" : "IHI"
          },
          "system" : "http://ns.electronichealth.net.au/id/hi/ihi/1.0",
          "value" : "8003608000228445"
        },
      ...
    }

### Missing data

There are situations when information for a particular data element is missing and the source system does not know the reason for the absence of data. If the source system does not have data for an element with a minimum cardinality = 0 (including elements labelled MustSupport), the data element SHALL be omitted from the resource. If the data element is a Mandatory element (in other words, where the minimum cardinality is > 0), it SHALL be present even if the source system does not have data. The core specification provides guidance for what to do in this situation, which is summarised below:

1. For non-coded data elements including type Reference,
   - use the DataAbsentReason extension in the data type if the ADHA profile for that resource does not require a child element.
   - if the ADHA profile mandates a child element, such as a valid identifier or reference, then the resource must contain that element otherwise the instance will not be conformant.
   - use the code `unknown` where the value is expected to exist but is not known.

   Example: ExplanationOfBenefit resource where the patient's insurance coverage is not available

       {
         "resourceType" : "ExplanationOfBenefit",
              ...
              "outcome" : "complete",
                "insurance" : [
                  {
                    "focal" : true,
                    "coverage" : {
                      "extension" : [
                        {
                          "url" : "http://hl7.org/fhir/StructureDefinition/data-absent-reason",
                          "valueCode" : "unknown"
                        }
                      ]
                    }
                  }
                ],
                ...
            }

2. For coded data elements:
   - example, preferred, or extensible binding strengths (CodeableConcept or Coding datatypes):
     - if the source system has text but no coded data, only the text element is used.
       - for Coding datatypes, the text only data is represented as a `display` element.
     - if there is neither text or coded data:
       - the appropriate "unknown" concept code SHALL be present if the binding strength is extensible.
       - if the value set does not have an appropriate "unknown" concept code, use `unknown` from the DataAbsentReason Code System.

       Example: AllergyIntolerance resource where the manifestation is unknown

           ...
           "reaction" : [
             {
               "manifestation" : [
                 {
                   "coding" : [
                     {
                       "system" : "http://terminology.hl7.org/CodeSystem/data-absent-reason",
                       "code" : "unknown",
                       "display" : "unknown"
                     }
                   ]
                 }
               ]
             }
           ]
           ...

   - required binding strength (CodeableConcept or code datatypes):
     - the appropriate "unknown" concept code SHALL be present if available.

     - if the value set does not have the appropriate “unknown” concept code you must use a concept from the value set otherwise the instance will not be conformant.

       - For ADHA Core profiles, the following mandatory or conditionally mandatory* status elements with required binding have no appropriate "unknown" concept code:
         - `AllergyIntolerance.clinicalStatus`*
         - `Condition.clinicalStatus`*
         - `Composition.status`
         - `DiagnosticReport.status`
         - `DocumentReference.status`
         - `ExplanationOfBenefit.status`
         - `Immunization.status`
         - `List.status`

       *The clinicalStatus element is conditionally mandatory based on resource specific constraints.

### Suppressed data

In some circumstances, specific pieces of data may be hidden due to security or privacy reasons. Elements with a minimum cardinality = 0 (including elements labelled MustSupport) SHALL be omitted from the resource if they are suppressed.

For mandatory elements (minimum cardinality is > 0), the element SHALL be populated but it may exceed the data receiver’s access rights to know that the data is suppressed:

- where a receiver does not have access rights to know that data is suppressed use the code `masked` from the DataAbsentReason Code System following the section on Missing data.
- where a receiver may know that the data is suppressed use the code `unknown` from the DataAbsentReason Code System following the section on Missing data.

### Medicine information

The FHIR standard defines the following resources for exchanging medicine information:

- Medication
- MedicationAdministration
- MedicationDispense
- MedicationRequest
- MedicationStatement

ADHA Core Medication is profiled to support medicinal product identification in an Australian healthcare context. ADHA profiles of MedicationStatement (with ADHA Core Medication) are used to support summary statements of medicine use. ADHA profiles of MedicationAdministration (with ADHA Core Medication) are used to support medication chart and other administration use cases. ADHA profiles of MedicationDispense (with ADHA Core Medication) are used to support to support dispense records and ePrescribing use cases. ADHA profiles of MedicationRequest (with ADHA Core Medication) are used to support prescription, ordering, and ePrescribing use cases.

Medicinal product identification

For extemporaneous medications, the medication code is the mandatory primary mechanism to identify a medicine but contain only a text list of ingredients or it may be a code from a medicines terminology.

For non-extemporaneous medications, the medication code (or set of codes) is the mandatory primary mechanism to identify a medicine and its defining attributes (by terminology lookup) including form and strength.

Australian Medicines Terminology (AMT) is the national terminology for identification and naming of medicines in clinical systems for Australia. The AMT is published monthly to include new items on the Australian Register of Therapeutic Goods from the TGA, as well as items listed on the Pharmaceutical Benefits Scheme. The AMT is published as part of SNOMED CT-AU (Australian edition of SNOMED CT) and can be downloaded in a variety of formats from the National Clinical Terminology Service (NCTS).

In addition to the medication code, the majority of use cases support exchange of structured medicine information as separate data elements covering brand name, generic name, item form and strength, and manufacturer.

These data elements may be supported as coded, or text, and systems are likely to use a combination of coded and text elements when constructing a Medication resource. The guidance for how to support coded or text is summarised below:

1. For coded support for brand name, generic name, manufacturer, item form and strength:
   - Fully coded support is provided using code.coding with Medication Type extension in the resource (i.e. MedicationAdministration, MedicationStatement, MedicationDispense, MedicationRequest, Medication):
     - brand name = `code.coding` with Medication Type extension using `BPD` from the Medication Type code system
     - generic name = `code.coding` with Medication Type extension using `UPD` from the Medication Type code system
     - generic item form and strength = `code.coding` with Medication Type extension using `UPDSF` from the Medication Type code system
     - branded item form and strength = `code.coding` with Medication Type extension using `BPDSF` from the Medication Type code system
   - If the resource is a Medication resource:
     - form and strength are also provided in `form`, `ingredient.itemCodeableConcept` and `ingredient.strength`
     - manufacturer = `manufacturer.identifier`

   Example: Medication with coded brand name, generic name, manufacturer, item form and strength

        {
          "resourceType": "Medication",
            ...
            "code": {
              "coding": [
                {
                  "extension": [
                    {
                      "url": "http://hl7.org.au/fhir/StructureDefinition/medication-type",
                      "valueCoding": {
                        "system": "http://terminology.hl7.org.au/CodeSystem/medication-type",
                        "code": "UPD",
                        "display": "Unbranded product with no strengths or form"
                      }
                    }
                  ],
                  "system": "http://pbs.gov.au/code/item",
                  "code": "02647H",
                  "display": "BENZYLPENICILLIN"
                },
                {
                  "extension": [
                    {
                      "url": "http://hl7.org.au/fhir/StructureDefinition/medication-type",
                      "valueCoding": {
                        "system": "http://terminology.hl7.org.au/CodeSystem/medication-type",
                        "code": "BPD",
                        "display": "Branded product with no strengths or form"
                      }
                    }
                  ],
                  "system": "http://snomed.info/sct",
                  "code": "3539011000036105",
                  "display": "Benpen"
                },
                {
                  "extension": [
                    {
                      "url": "http://hl7.org.au/fhir/StructureDefinition/medication-type",
                      "valueCoding": {
                        "system": "http://terminology.hl7.org.au/CodeSystem/medication-type",
                        "code": "UPDSF",
                        "display": "Unbranded product with strengths and form"
                      }
                    }
                  ],
                  "system": "http://snomed.info/sct",
                  "code": "32753011000036104",
                  "display": "benzylpenicillin 3 g injection, 1 vial"
                },
                {
                  "extension": [
                    {
                      "url": "http://hl7.org.au/fhir/StructureDefinition/medication-type",
                      "valueCoding": {
                        "system": "http://terminology.hl7.org.au/CodeSystem/medication-type",
                        "code": "BPDSF",
                        "display": "Branded product with strengths and form"
                      }
                    }
                  ],
                  "system": "http://snomed.info/sct",
                  "code": "32328011000036106",
                  "display": "Benpen 3 g powder for injection, 1 vial"
                }
              ]
            },
            "manufacturer": {
              "identifier": {
                "system": "http://pbs.gov.au/code/manufacturer",
                "value": "CS"
              }
            },
            "form": {
              "coding": [
                {
                  "system": "http://snomed.info/sct",
                  "code": "129011000036109",
                  "display": "injection"
                }
              ],
              "text": "Injection"
            },
            "ingredient": [
              {
                "itemCodeableConcept": {
                  "coding": [
                    {
                      "system": "http://snomed.info/sct",
                      "code": "1849011000036104",
                      "display": "benzylpenicillin"
                    }
                  ]
                },
                "strength": {
                  "numerator": {
                    "value": 3,
                    "unit": "g"
                  },
                  "denominator": {
                    "value": 1,
                    "unit": "unit"
                  }
                }
              }
            ]
        }

2. For non-coded support for brand name, generic name, manufacturer, item form and strength:
   - Fully non-coded support is provided using the Medication resource
     - brand name = Medication Brand Name extension
     - generic name = Medication Generic Name extension
     - item form and strength = `code.text`
     - manufacturer = `manufacturer.display`

   Example: Medication with text only brand name, generic name, item form and strength

       {
         "resourceType": "Medication",
          ...
          "extension": [
            {
              "url": "http://hl7.org.au/fhir/StructureDefinition/medication-generic-name",
              "valueString": "Benzylpenicillin"
            },
            {
              "url": "http://hl7.org.au/fhir/StructureDefinition/medication-brand-name",
              "valueString": "Benpen"
            }
          ],
          "code": {
            "text": "Benpen 3 g powder for injection, 1 vial"
          },
          "manufacturer": {
            "display": "Seqirus"
          }
       }