AU Core Implementation Guide
1.0.0-ci-build - CI Build Australia flag

AU Core Implementation Guide, published by HL7 Australia. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ci-build built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7au/au-fhir-core/ and changes regularly. See the Directory of published versions

Resource Profile: AU Core Organization

Official URL: http://hl7.org.au/fhir/core/StructureDefinition/au-core-organization Version: 1.0.0-ci-build
Standards status: Draft Maturity Level: 1 Computable Name: AUCoreOrganization

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License. HL7 Australia© 2022+; Licensed Under Creative Commons No Rights Reserved.

This profile sets minimum expectations for a Organization resource to record, search, and fetch information about an organisation. It is based on the AU Base Organization profile and identifies the additional mandatory core elements, extensions, vocabularies and value sets that SHALL be present in the Organization when conforming to this profile. It provides the floor for standards development for specific uses cases in an Australian context.

See Comparison with other national and international IGs for a comparison between AU Core profiles and profiles in other implementation guides.

Usage scenarios

The following are supported usage scenarios for this profile:

  • Query for basic information for an organisation by name or identifier
  • Recording or updating basic information for an organisation
  • Read information about an organisation referenced by another resource

Profile specific implementation guidance

  • See guidance on the construction of an identifier on the relevant Identifier profile page and the section on Business Identifiers in AU Base.
  • When constructing an address:
    • an international address can be represented using the core Address data type
    • an Australian address SHOULD be represented using the Australian Address data type profile

Usage:

Changes since version 1.0.0-ballot:

  • No changes
  • Formal Views of Profile Content

    Description of Profiles, Differentials, Snapshots and how the different presentations work.

    This structure is derived from AUBaseOrganisation

    NameFlagsCard.TypeDescription & Constraintsdoco
    .. Organization 0..* AUBaseOrganisation An organisation in an Australian healthcare context
    ... Slices for identifier SOC 0..* Identifier, AUHPIO, AUPAIOIdentifier, AUCSPRegistrationNumber, AUAustralianBusinessNumber, AUAustralianCompanyNumber, AUAustralianRegisteredBodyNumber, AUNATAAccreditationNumber, AUPharmacyApprovalNumber Identifies this organization across multiple systems
    Slice: Unordered, Open by pattern:system
    au-core-org-01: A National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:hpio SO 0..1 AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:abn SO 0..* AUAustralianBusinessNumber Australian Business Number (ABN)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... type SO 0..* CodeableConcept Kind of organization
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... name SO 1..1 string Name used for the organization
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... address SO 0..* Address, AustralianAddress An address expressed using postal conventions (as opposed to GPS or other location definition formats)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester

    doco Documentation for this format

    Constraints

    IdGradePath(s)DetailsRequirements
    au-core-org-01errorOrganization.identifierA National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    : type.coding.where(code='NOI').exists() implies ((system='http://ns.electronichealth.net.au/id/hi/hpio/1.0') or (system='http://ns.electronichealth.net.au/id/pcehr/paio/1.0'))
    NameFlagsCard.TypeDescription & Constraintsdoco
    .. Organization C 0..* AUBaseOrganisation An organisation in an Australian healthcare context
    org-1: The organization SHALL at least have a name or an identifier, and possibly more than one
    ... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
    ... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
    ... Slices for identifier SOC 0..* Identifier, AUHPIO, AUPAIOIdentifier, AUCSPRegistrationNumber, AUAustralianBusinessNumber, AUAustralianCompanyNumber, AUAustralianRegisteredBodyNumber, AUNATAAccreditationNumber, AUPharmacyApprovalNumber Identifies this organization across multiple systems
    Slice: Unordered, Open by pattern:system
    au-core-org-01: A National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:hpio SOC 0..1 AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
    inv-hpio-0: HPI-O shall be 16 digits
    inv-hpio-1: HPI-O prefix shall be 800362
    inv-hpio-2: HPI-O shall pass the Luhn algorithm check
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:abn SOC 0..* AUAustralianBusinessNumber Australian Business Number (ABN)
    inv-abn-0: ABN shall be 11 digits
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... type SOΣ 0..* CodeableConcept Kind of organization
    Binding: Healthcare Organisation Role Type . (preferred)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... name SOΣC 1..1 string Name used for the organization
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... telecom SOC 0..* ContactPoint A contact detail for the organization
    org-3: The telecom of an organization can never be of use 'home'
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... address SOC 0..* Address, AustralianAddress An address expressed using postal conventions (as opposed to GPS or other location definition formats)
    org-2: An address of an organization can never be of use 'home'
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester

    doco Documentation for this format

    Terminology Bindings

    PathConformanceValueSetURI
    Organization.typepreferredHealthcareOrganisationRoleType .
    https://healthterminologies.gov.au/fhir/ValueSet/healthcare-organisation-role-type-1

    Constraints

    IdGradePath(s)DetailsRequirements
    au-core-org-01errorOrganization.identifierA National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    : type.coding.where(code='NOI').exists() implies ((system='http://ns.electronichealth.net.au/id/hi/hpio/1.0') or (system='http://ns.electronichealth.net.au/id/pcehr/paio/1.0'))
    dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
    : contained.contained.empty()
    dom-3errorOrganizationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
    dom-4errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
    dom-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
    : contained.meta.security.empty()
    dom-6best practiceOrganizationA resource should have narrative for robust management
    : text.`div`.exists()
    ele-1error**ALL** elementsAll FHIR elements must have a @value or children
    : hasValue() or (children().count() > id.count())
    ext-1error**ALL** extensionsMust have either extensions or value[x], not both
    : extension.exists() != value.exists()
    inv-abn-0errorOrganization.identifier:abnABN shall be 11 digits
    : value.matches('^([0-9]{11})$')
    inv-hpio-0errorOrganization.identifier:hpioHPI-O shall be 16 digits
    : value.matches('^([0-9]{16})$')
    inv-hpio-1errorOrganization.identifier:hpioHPI-O prefix shall be 800362
    : value.startsWith('800362')
    inv-hpio-2errorOrganization.identifier:hpioHPI-O shall pass the Luhn algorithm check
    : (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger())+(select(value.substring(10,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(11,1).toInteger())+(select(value.substring(12,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(13,1).toInteger())+(select(value.substring(14,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(15,1).toInteger()))mod 10=0)
    org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
    : (identifier.count() + name.count()) > 0
    org-2errorOrganization.addressAn address of an organization can never be of use 'home'
    : where(use = 'home').empty()
    org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
    : where(use = 'home').empty()
    NameFlagsCard.TypeDescription & Constraintsdoco
    .. Organization C 0..* AUBaseOrganisation An organisation in an Australian healthcare context
    org-1: The organization SHALL at least have a name or an identifier, and possibly more than one
    ... id Σ 0..1 id Logical id of this artifact
    ... meta Σ 0..1 Meta Metadata about the resource
    ... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
    ... text 0..1 Narrative Text summary of the resource, for human interpretation
    ... contained 0..* Resource Contained, inline Resources
    ... extension 0..* Extension Additional content defined by implementations
    ... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
    ... Slices for identifier SOC 0..* Identifier, AUHPIO, AUPAIOIdentifier, AUCSPRegistrationNumber, AUAustralianBusinessNumber, AUAustralianCompanyNumber, AUAustralianRegisteredBodyNumber, AUNATAAccreditationNumber, AUPharmacyApprovalNumber Identifies this organization across multiple systems
    Slice: Unordered, Open by pattern:system
    au-core-org-01: A National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:hpio SOC 0..1 AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
    inv-hpio-0: HPI-O shall be 16 digits
    inv-hpio-1: HPI-O prefix shall be 800362
    inv-hpio-2: HPI-O shall pass the Luhn algorithm check
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:abn SOC 0..* AUAustralianBusinessNumber Australian Business Number (ABN)
    inv-abn-0: ABN shall be 11 digits
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... active ?!Σ 0..1 boolean Whether the organization's record is still in active use
    ... type SOΣ 0..* CodeableConcept Kind of organization
    Binding: Healthcare Organisation Role Type . (preferred)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... name SOΣC 1..1 string Name used for the organization
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... alias 0..* string A list of alternate names that the organization is known as, or was known as in the past
    ... telecom SOC 0..* ContactPoint A contact detail for the organization
    org-3: The telecom of an organization can never be of use 'home'
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... address SOC 0..* Address, AustralianAddress An address expressed using postal conventions (as opposed to GPS or other location definition formats)
    org-2: An address of an organization can never be of use 'home'
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... partOf Σ 0..1 Reference(Organization) The organization of which this organization forms a part
    ... contact 0..* BackboneElement Contact for the organization for a certain purpose
    .... id 0..1 string Unique id for inter-element referencing
    .... extension 0..* Extension Additional content defined by implementations
    .... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
    .... purpose 0..1 CodeableConcept The type of contact
    Binding: Contact Purpose (extensible)
    .... name 0..1 HumanName A name associated with the contact
    .... telecom 0..* ContactPoint Contact details (telephone, email, etc.) for a contact
    .... address 0..1 Address Visiting or postal addresses for the contact
    ... endpoint 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the organization

    doco Documentation for this format

    Terminology Bindings

    PathConformanceValueSetURI
    Organization.languagepreferredCommonLanguages
    Additional Bindings Purpose
    AllLanguages Max Binding
    http://hl7.org/fhir/ValueSet/languages
    from the FHIR Standard
    Organization.typepreferredHealthcareOrganisationRoleType .
    https://healthterminologies.gov.au/fhir/ValueSet/healthcare-organisation-role-type-1
    Organization.contact.purposeextensibleContactPurpose
    http://terminology.hl7.org.au/ValueSet/contact-purpose

    Constraints

    IdGradePath(s)DetailsRequirements
    au-core-org-01errorOrganization.identifierA National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    : type.coding.where(code='NOI').exists() implies ((system='http://ns.electronichealth.net.au/id/hi/hpio/1.0') or (system='http://ns.electronichealth.net.au/id/pcehr/paio/1.0'))
    dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
    : contained.contained.empty()
    dom-3errorOrganizationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
    dom-4errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
    dom-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
    : contained.meta.security.empty()
    dom-6best practiceOrganizationA resource should have narrative for robust management
    : text.`div`.exists()
    ele-1error**ALL** elementsAll FHIR elements must have a @value or children
    : hasValue() or (children().count() > id.count())
    ext-1error**ALL** extensionsMust have either extensions or value[x], not both
    : extension.exists() != value.exists()
    inv-abn-0errorOrganization.identifier:abnABN shall be 11 digits
    : value.matches('^([0-9]{11})$')
    inv-hpio-0errorOrganization.identifier:hpioHPI-O shall be 16 digits
    : value.matches('^([0-9]{16})$')
    inv-hpio-1errorOrganization.identifier:hpioHPI-O prefix shall be 800362
    : value.startsWith('800362')
    inv-hpio-2errorOrganization.identifier:hpioHPI-O shall pass the Luhn algorithm check
    : (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger())+(select(value.substring(10,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(11,1).toInteger())+(select(value.substring(12,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(13,1).toInteger())+(select(value.substring(14,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(15,1).toInteger()))mod 10=0)
    org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
    : (identifier.count() + name.count()) > 0
    org-2errorOrganization.addressAn address of an organization can never be of use 'home'
    : where(use = 'home').empty()
    org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
    : where(use = 'home').empty()

    This structure is derived from AUBaseOrganisation

    Summary

    Mandatory: 1 element
    Must-Support: 7 elements

    Structures

    This structure refers to these other structures:

    Slices

    This structure defines the following Slices:

    • The element 1 is sliced based on the value of Organization.identifier

    Maturity: 1

    Differential View

    This structure is derived from AUBaseOrganisation

    NameFlagsCard.TypeDescription & Constraintsdoco
    .. Organization 0..* AUBaseOrganisation An organisation in an Australian healthcare context
    ... Slices for identifier SOC 0..* Identifier, AUHPIO, AUPAIOIdentifier, AUCSPRegistrationNumber, AUAustralianBusinessNumber, AUAustralianCompanyNumber, AUAustralianRegisteredBodyNumber, AUNATAAccreditationNumber, AUPharmacyApprovalNumber Identifies this organization across multiple systems
    Slice: Unordered, Open by pattern:system
    au-core-org-01: A National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:hpio SO 0..1 AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:abn SO 0..* AUAustralianBusinessNumber Australian Business Number (ABN)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... type SO 0..* CodeableConcept Kind of organization
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... name SO 1..1 string Name used for the organization
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... address SO 0..* Address, AustralianAddress An address expressed using postal conventions (as opposed to GPS or other location definition formats)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester

    doco Documentation for this format

    Constraints

    IdGradePath(s)DetailsRequirements
    au-core-org-01errorOrganization.identifierA National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    : type.coding.where(code='NOI').exists() implies ((system='http://ns.electronichealth.net.au/id/hi/hpio/1.0') or (system='http://ns.electronichealth.net.au/id/pcehr/paio/1.0'))

    Key Elements View

    NameFlagsCard.TypeDescription & Constraintsdoco
    .. Organization C 0..* AUBaseOrganisation An organisation in an Australian healthcare context
    org-1: The organization SHALL at least have a name or an identifier, and possibly more than one
    ... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
    ... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
    ... Slices for identifier SOC 0..* Identifier, AUHPIO, AUPAIOIdentifier, AUCSPRegistrationNumber, AUAustralianBusinessNumber, AUAustralianCompanyNumber, AUAustralianRegisteredBodyNumber, AUNATAAccreditationNumber, AUPharmacyApprovalNumber Identifies this organization across multiple systems
    Slice: Unordered, Open by pattern:system
    au-core-org-01: A National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:hpio SOC 0..1 AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
    inv-hpio-0: HPI-O shall be 16 digits
    inv-hpio-1: HPI-O prefix shall be 800362
    inv-hpio-2: HPI-O shall pass the Luhn algorithm check
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:abn SOC 0..* AUAustralianBusinessNumber Australian Business Number (ABN)
    inv-abn-0: ABN shall be 11 digits
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... type SOΣ 0..* CodeableConcept Kind of organization
    Binding: Healthcare Organisation Role Type . (preferred)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... name SOΣC 1..1 string Name used for the organization
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... telecom SOC 0..* ContactPoint A contact detail for the organization
    org-3: The telecom of an organization can never be of use 'home'
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... address SOC 0..* Address, AustralianAddress An address expressed using postal conventions (as opposed to GPS or other location definition formats)
    org-2: An address of an organization can never be of use 'home'
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester

    doco Documentation for this format

    Terminology Bindings

    PathConformanceValueSetURI
    Organization.typepreferredHealthcareOrganisationRoleType .
    https://healthterminologies.gov.au/fhir/ValueSet/healthcare-organisation-role-type-1

    Constraints

    IdGradePath(s)DetailsRequirements
    au-core-org-01errorOrganization.identifierA National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    : type.coding.where(code='NOI').exists() implies ((system='http://ns.electronichealth.net.au/id/hi/hpio/1.0') or (system='http://ns.electronichealth.net.au/id/pcehr/paio/1.0'))
    dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
    : contained.contained.empty()
    dom-3errorOrganizationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
    dom-4errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
    dom-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
    : contained.meta.security.empty()
    dom-6best practiceOrganizationA resource should have narrative for robust management
    : text.`div`.exists()
    ele-1error**ALL** elementsAll FHIR elements must have a @value or children
    : hasValue() or (children().count() > id.count())
    ext-1error**ALL** extensionsMust have either extensions or value[x], not both
    : extension.exists() != value.exists()
    inv-abn-0errorOrganization.identifier:abnABN shall be 11 digits
    : value.matches('^([0-9]{11})$')
    inv-hpio-0errorOrganization.identifier:hpioHPI-O shall be 16 digits
    : value.matches('^([0-9]{16})$')
    inv-hpio-1errorOrganization.identifier:hpioHPI-O prefix shall be 800362
    : value.startsWith('800362')
    inv-hpio-2errorOrganization.identifier:hpioHPI-O shall pass the Luhn algorithm check
    : (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger())+(select(value.substring(10,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(11,1).toInteger())+(select(value.substring(12,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(13,1).toInteger())+(select(value.substring(14,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(15,1).toInteger()))mod 10=0)
    org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
    : (identifier.count() + name.count()) > 0
    org-2errorOrganization.addressAn address of an organization can never be of use 'home'
    : where(use = 'home').empty()
    org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
    : where(use = 'home').empty()

    Snapshot View

    NameFlagsCard.TypeDescription & Constraintsdoco
    .. Organization C 0..* AUBaseOrganisation An organisation in an Australian healthcare context
    org-1: The organization SHALL at least have a name or an identifier, and possibly more than one
    ... id Σ 0..1 id Logical id of this artifact
    ... meta Σ 0..1 Meta Metadata about the resource
    ... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
    ... text 0..1 Narrative Text summary of the resource, for human interpretation
    ... contained 0..* Resource Contained, inline Resources
    ... extension 0..* Extension Additional content defined by implementations
    ... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
    ... Slices for identifier SOC 0..* Identifier, AUHPIO, AUPAIOIdentifier, AUCSPRegistrationNumber, AUAustralianBusinessNumber, AUAustralianCompanyNumber, AUAustralianRegisteredBodyNumber, AUNATAAccreditationNumber, AUPharmacyApprovalNumber Identifies this organization across multiple systems
    Slice: Unordered, Open by pattern:system
    au-core-org-01: A National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:hpio SOC 0..1 AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
    inv-hpio-0: HPI-O shall be 16 digits
    inv-hpio-1: HPI-O prefix shall be 800362
    inv-hpio-2: HPI-O shall pass the Luhn algorithm check
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    .... identifier:abn SOC 0..* AUAustralianBusinessNumber Australian Business Number (ABN)
    inv-abn-0: ABN shall be 11 digits
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... active ?!Σ 0..1 boolean Whether the organization's record is still in active use
    ... type SOΣ 0..* CodeableConcept Kind of organization
    Binding: Healthcare Organisation Role Type . (preferred)
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... name SOΣC 1..1 string Name used for the organization
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... alias 0..* string A list of alternate names that the organization is known as, or was known as in the past
    ... telecom SOC 0..* ContactPoint A contact detail for the organization
    org-3: The telecom of an organization can never be of use 'home'
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... address SOC 0..* Address, AustralianAddress An address expressed using postal conventions (as opposed to GPS or other location definition formats)
    org-2: An address of an organization can never be of use 'home'
    ObligationsActor
    SHALL:populate-if-known AU Core Responder
    SHALL:no-error AU Core Requester
    ... partOf Σ 0..1 Reference(Organization) The organization of which this organization forms a part
    ... contact 0..* BackboneElement Contact for the organization for a certain purpose
    .... id 0..1 string Unique id for inter-element referencing
    .... extension 0..* Extension Additional content defined by implementations
    .... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
    .... purpose 0..1 CodeableConcept The type of contact
    Binding: Contact Purpose (extensible)
    .... name 0..1 HumanName A name associated with the contact
    .... telecom 0..* ContactPoint Contact details (telephone, email, etc.) for a contact
    .... address 0..1 Address Visiting or postal addresses for the contact
    ... endpoint 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the organization

    doco Documentation for this format

    Terminology Bindings

    PathConformanceValueSetURI
    Organization.languagepreferredCommonLanguages
    Additional Bindings Purpose
    AllLanguages Max Binding
    http://hl7.org/fhir/ValueSet/languages
    from the FHIR Standard
    Organization.typepreferredHealthcareOrganisationRoleType .
    https://healthterminologies.gov.au/fhir/ValueSet/healthcare-organisation-role-type-1
    Organization.contact.purposeextensibleContactPurpose
    http://terminology.hl7.org.au/ValueSet/contact-purpose

    Constraints

    IdGradePath(s)DetailsRequirements
    au-core-org-01errorOrganization.identifierA National Organisation Identifier (type=NOI) shall be an HPI-O or PAI-O
    : type.coding.where(code='NOI').exists() implies ((system='http://ns.electronichealth.net.au/id/hi/hpio/1.0') or (system='http://ns.electronichealth.net.au/id/pcehr/paio/1.0'))
    dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
    : contained.contained.empty()
    dom-3errorOrganizationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
    dom-4errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
    dom-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
    : contained.meta.security.empty()
    dom-6best practiceOrganizationA resource should have narrative for robust management
    : text.`div`.exists()
    ele-1error**ALL** elementsAll FHIR elements must have a @value or children
    : hasValue() or (children().count() > id.count())
    ext-1error**ALL** extensionsMust have either extensions or value[x], not both
    : extension.exists() != value.exists()
    inv-abn-0errorOrganization.identifier:abnABN shall be 11 digits
    : value.matches('^([0-9]{11})$')
    inv-hpio-0errorOrganization.identifier:hpioHPI-O shall be 16 digits
    : value.matches('^([0-9]{16})$')
    inv-hpio-1errorOrganization.identifier:hpioHPI-O prefix shall be 800362
    : value.startsWith('800362')
    inv-hpio-2errorOrganization.identifier:hpioHPI-O shall pass the Luhn algorithm check
    : (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger())+(select(value.substring(10,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(11,1).toInteger())+(select(value.substring(12,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(13,1).toInteger())+(select(value.substring(14,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(15,1).toInteger()))mod 10=0)
    org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
    : (identifier.count() + name.count()) > 0
    org-2errorOrganization.addressAn address of an organization can never be of use 'home'
    : where(use = 'home').empty()
    org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
    : where(use = 'home').empty()

    This structure is derived from AUBaseOrganisation

    Summary

    Mandatory: 1 element
    Must-Support: 7 elements

    Structures

    This structure refers to these other structures:

    Slices

    This structure defines the following Slices:

    • The element 1 is sliced based on the value of Organization.identifier

    Maturity: 1

     

    Other representations of profile: CSV, Excel, Schematron

    Notes:

    Below is an overview of the mandatory and optional search parameters and combined search parameters. See the AU Core CapabilityStatements for a complete list of supported RESTful interactions for this IG.

    FHIR search operations are described here and the syntax used to describe AU Core interactions is defined here.

    Any search parameter defined in FHIR may be ‘allowed’ by the system unless explicitly marked as “SHALL NOT”. A few items are marked as MAY in this implementation guide to highlight their potential relevance.

    Parameter(s) Conformance Type(s) Requirements (when used alone or in combination)
    identifier SHALL token The requester SHALL provide both the system and code values. The responder SHALL support both.

    The requester SHOULD support search using HPI-O and ABN identifiers as defined in the profile. The responder SHOULD support search using the using HPI-O and ABN identifiers as defined in the profile.
    name SHALL string
    address SHOULD string
    _id SHOULD token

    Mandatory Search Parameters

    The following search parameters SHALL be supported:

    1. SHALL support searching using the identifier search parameter:

      GET [base]/Organization?identifier={system|}[code]

      Example:

      1. GET [base]/Organization?identifier=http://ns.electronichealth.net.au/id/hi/hpio/1.0|8003621566684455
      2. GET [base]/Organization?identifier=http://hl7.org.au/id/abn|23964200000

      Implementation Notes: Fetches a bundle containing any Organization resources matching the identifier (how to search by token)

    2. SHALL support searching based on text name using the name search parameter:

      GET [base]/Organization?name=[string]

      Example:

      1. GET [base]/Organization?name=Hospital

      Implementation Notes: Fetches a bundle of all Organization resources matching the name (how to search by string)

    Optional Search Parameters:

    The following search parameters SHOULD be supported:

    1. SHOULD support searching based on text address using the address search parameter:

      GET [base]/Organization?address=[string]

      Example:

      1. GET [base]/Organization?address=QLD

      Implementation Notes: Fetches a bundle of all Organization resources matching the address (how to search by string)

    2. SHOULD support searching using the _id search parameter:

      GET [base]/Organization?_id=[id]

      Example:

      1. GET [base]/Organization?_id=5678

      Implementation Notes: Fetches a bundle with the requested Organization, instead of just the resource itself, and allows for the inclusion of additional search parameters such as _include, _revinclude, or _lastUpdated (how to search by id of the resource)