# Health Connect Australia Provider Directory FHIR Implementation Guide

0.1.0-preview - Preview

Health Connect Australia Provider Directory FHIR Implementation Guide, published by Australian Digital Health Agency. This guide is not an authorized publication; it is the continuous build for version 0.1.0-preview built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/steveswinsburg/HealthConnect/ and changes regularly. See the Directory of published versions

## Data Type Profile: HC HSP-O

Official URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-hspo | Version: 0.1.0-preview
Standards status: Draft | Computable Name: HCHSPOIdentifier
Usage:Jurisdiction: Australia
Copyright/Legal: Copyright © 2025 Australian Digital Health Agency - All rights reserved. This content is licensed under a Creative Commons Attribution 4.0 International License. See https://creativecommons.org/licenses/by/4.0/.

This identifier profile defines a Healthcare Support Service Provider Organisation in an Australian context. An HSP-O is assigned under the HI Service to a service (in-home care support and personal care services) where healthcare is provided. A HSP-O can only be of 'seed' type. An Organization cannot be assigned both an HPI-O and an HSP-O; only one identifier is assigned by the HI Service.

Usages:

- Use this DataType Profile: HC Organization

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | Healthcare Support Service Provider Organisation (HSP-O) Identifier
Slices for extension |  | 1..* | Extension | Extension Slice: Unordered, Open by value:url
extension:HCOrgClassification | S | 1..1 | (Complex) | Organization classification - fixed to 'seed' for HSP-O URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification"
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0203
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: XX
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://ns.electronichealth.net.au/id/hi/hspo/1.0
value | Σ C | 1..1 | string | HSP-O Constraints: inv-hspo-0, inv-hspo-1, inv-hspo-2 Example General: 123456 Max Length:16
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
inv-hspo-0 | error | Identifier.value | HSP-O shall be 16 digits | `value.matches('^([0-9]{16})$')`
inv-hspo-1 | error | Identifier.value | HSP-O prefix shall be 800364 | `value.startsWith('800364')`
inv-hspo-2 | error | Identifier.value | HSP-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)`

This structure is derived from Identifier

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | Healthcare Support Service Provider Organisation (HSP-O) Identifier
extension |  | 1..* | Extension | Extension
Slices for extension |  |  |  | Content/Rules for all slices
extension:HCOrgClassification | S | 1..1 | (Complex) | Organization classification - fixed to 'seed' for HSP-O URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification
value[x] |  |  |  |
coding |  | 0..* | Coding | Code defined by a terminology system Fixed Value: As shown
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://ns.electronichealth.net.au/hc/CodeSystem/hc-org-classification-cs
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: seed
display |  | 1..1 | string | Representation defined by the system Fixed Value: Seed
type |  | 1..1 | CodeableConcept | Description of identifier Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0203
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: XX
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://ns.electronichealth.net.au/id/hi/hspo/1.0
value | C | 1..1 | string | HSP-O Constraints: inv-hspo-0, inv-hspo-1, inv-hspo-2 Max Length:16
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
inv-hspo-0 | error | Identifier.value | HSP-O shall be 16 digits | `value.matches('^([0-9]{16})$')`
inv-hspo-1 | error | Identifier.value | HSP-O prefix shall be 800364 | `value.startsWith('800364')`
inv-hspo-2 | error | Identifier.value | HSP-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)`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | Healthcare Support Service Provider Organisation (HSP-O) Identifier
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 1..* | Extension | Extension Slice: Unordered, Open by value:url
extension:HCOrgClassification | S | 1..1 | (Complex) | Organization classification - fixed to 'seed' for HSP-O URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification"
value[x] |  | 0..1 | CodeableConcept | Indicates whether an organisation is a seed or network Binding: HC Organization Classification ValueSet (required)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 0..* | Coding | Code defined by a terminology system Fixed Value: As shown
id |  | 0..0 | string | Unique id for inter-element referencing
extension |  | 0..0 | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://ns.electronichealth.net.au/hc/CodeSystem/hc-org-classification-cs
version |  | 0..0 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: seed
display |  | 1..1 | string | Representation defined by the system Fixed Value: Seed
userSelected |  | 0..0 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Plain text representation of the concept
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0203
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: XX
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://ns.electronichealth.net.au/id/hi/hspo/1.0
value | Σ C | 1..1 | string | HSP-O Constraints: inv-hspo-0, inv-hspo-1, inv-hspo-2 Example General: 123456 Max Length:16
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Identifier.extension:HCOrgClassification.​value[x] | Base | required | HC Organization Classification ValueSet | 📦0.1.0-preview | This IG
Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
inv-hspo-0 | error | Identifier.value | HSP-O shall be 16 digits | `value.matches('^([0-9]{16})$')`
inv-hspo-1 | error | Identifier.value | HSP-O prefix shall be 800364 | `value.startsWith('800364')`
inv-hspo-2 | error | Identifier.value | HSP-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)`

This structure is derived from Identifier

Summary

Mandatory: 5 elements
Must-Support: 1 element
Fixed: 2 elements

Extensions

This structure refers to these extensions:

- http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | Healthcare Support Service Provider Organisation (HSP-O) Identifier
Slices for extension |  | 1..* | Extension | Extension Slice: Unordered, Open by value:url
extension:HCOrgClassification | S | 1..1 | (Complex) | Organization classification - fixed to 'seed' for HSP-O URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification"
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0203
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: XX
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://ns.electronichealth.net.au/id/hi/hspo/1.0
value | Σ C | 1..1 | string | HSP-O Constraints: inv-hspo-0, inv-hspo-1, inv-hspo-2 Example General: 123456 Max Length:16
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
inv-hspo-0 | error | Identifier.value | HSP-O shall be 16 digits | `value.matches('^([0-9]{16})$')`
inv-hspo-1 | error | Identifier.value | HSP-O prefix shall be 800364 | `value.startsWith('800364')`
inv-hspo-2 | error | Identifier.value | HSP-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)`

Differential View

This structure is derived from Identifier

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | Healthcare Support Service Provider Organisation (HSP-O) Identifier
extension |  | 1..* | Extension | Extension
Slices for extension |  |  |  | Content/Rules for all slices
extension:HCOrgClassification | S | 1..1 | (Complex) | Organization classification - fixed to 'seed' for HSP-O URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification
value[x] |  |  |  |
coding |  | 0..* | Coding | Code defined by a terminology system Fixed Value: As shown
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://ns.electronichealth.net.au/hc/CodeSystem/hc-org-classification-cs
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: seed
display |  | 1..1 | string | Representation defined by the system Fixed Value: Seed
type |  | 1..1 | CodeableConcept | Description of identifier Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0203
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: XX
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://ns.electronichealth.net.au/id/hi/hspo/1.0
value | C | 1..1 | string | HSP-O Constraints: inv-hspo-0, inv-hspo-1, inv-hspo-2 Max Length:16
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
inv-hspo-0 | error | Identifier.value | HSP-O shall be 16 digits | `value.matches('^([0-9]{16})$')`
inv-hspo-1 | error | Identifier.value | HSP-O prefix shall be 800364 | `value.startsWith('800364')`
inv-hspo-2 | error | Identifier.value | HSP-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)`

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier |  | 0..* | Identifier | Healthcare Support Service Provider Organisation (HSP-O) Identifier
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 1..* | Extension | Extension Slice: Unordered, Open by value:url
extension:HCOrgClassification | S | 1..1 | (Complex) | Organization classification - fixed to 'seed' for HSP-O URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification"
value[x] |  | 0..1 | CodeableConcept | Indicates whether an organisation is a seed or network Binding: HC Organization Classification ValueSet (required)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 0..* | Coding | Code defined by a terminology system Fixed Value: As shown
id |  | 0..0 | string | Unique id for inter-element referencing
extension |  | 0..0 | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://ns.electronichealth.net.au/hc/CodeSystem/hc-org-classification-cs
version |  | 0..0 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: seed
display |  | 1..1 | string | Representation defined by the system Fixed Value: Seed
userSelected |  | 0..0 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Plain text representation of the concept
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 1..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0203
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: XX
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://ns.electronichealth.net.au/id/hi/hspo/1.0
value | Σ C | 1..1 | string | HSP-O Constraints: inv-hspo-0, inv-hspo-1, inv-hspo-2 Example General: 123456 Max Length:16
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Identifier.extension:HCOrgClassification.​value[x] | Base | required | HC Organization Classification ValueSet | 📦0.1.0-preview | This IG
Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
inv-hspo-0 | error | Identifier.value | HSP-O shall be 16 digits | `value.matches('^([0-9]{16})$')`
inv-hspo-1 | error | Identifier.value | HSP-O prefix shall be 800364 | `value.startsWith('800364')`
inv-hspo-2 | error | Identifier.value | HSP-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)`

This structure is derived from Identifier

Summary

Mandatory: 5 elements
Must-Support: 1 element
Fixed: 2 elements

Extensions

This structure refers to these extensions:

- http://ns.electronichealth.net.au/hc/StructureDefinition/hc-org-classification

Other representations of profile: CSV, Excel, Schematron