AU Base Implementation Guide
6.0.0-draft - Draft

Publication Build: This will be filled in by the publication tooling

## Data Type Profile: AU IHI

Official URL: http://hl7.org.au/fhir/StructureDefinition/au-ihi | Version: 6.0.0-draft
Standards status: Trial-use | Maturity Level: 2 | Computable Name: AUIHI
Copyright/Legal: HL7 Australia© 2018+; Licensed Under Creative Commons No Rights Reserved.

This identifier profile defines an Individual Healthcare Identifier in an Australian context (see Australian Digital Health Agency for further information). An IHI is assigned under the Healthcare Identifiers (HI) Service to a patient.

### Usage Notes

Profile specific implementation guidance:

- Multiple Individual Healthcare Identifiers (IHIs) can be used in where the IHI status and/or IHI record status varies (e.g. deceased, provisional) though implementers should be aware when exchanging patient information that systems may not support multiple IHIs for an individual.

Usages:

- Use this DataType Profile: AU Base Patient and AU Base RelatedPerson

Changes since version 5.0.0:

- No changes

### Formal Views of Profile Content

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

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

This structure is derived from Identifier

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier | C | 0..* | Identifier | Individual Healthcare Identifier (IHI) Constraints: inv-ihi-value-0, inv-ihi-value-1, inv-ihi-value-2
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:ihiStatus |  | 0..1 | Coding | IHI status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-status Binding: Individual Healthcare Identifier Status (required)
extension:ihiRecordStatus |  | 0..1 | Coding | IHI record status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-record-status Binding: Individual Healthcare Identifier Record Status (required)
extension:ihiVerifiedDate |  | 0..1 | dateTime | IHI Verification Date URL: http://hl7.org.au/fhir/StructureDefinition/ihi-verified-date
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: NI
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://ns.electronichealth.net.au/id/hi/ihi/1.0
value | C | 1..1 | string | IHI Example IHI: 8003608833357361 Max Length:16
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Details | Requirements
inv-ihi-value-0 | error | Identifier | IHI shall be an exactly 16 digit number : value.matches('^([0-9]{16})$') |
inv-ihi-value-1 | error | Identifier | IHI prefix is 800360 : value.startsWith('800360') |
inv-ihi-value-2 | error | Identifier | IHI 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 | C | 0..* | Identifier | Individual Healthcare Identifier (IHI) Constraints: inv-ihi-value-0, inv-ihi-value-1, inv-ihi-value-2
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:ihiStatus |  | 0..1 | Coding | IHI status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-status Binding: Individual Healthcare Identifier Status (required)
extension:ihiRecordStatus |  | 0..1 | Coding | IHI record status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-record-status Binding: Individual Healthcare Identifier Record Status (required)
extension:ihiVerifiedDate |  | 0..1 | dateTime | IHI Verification Date URL: http://hl7.org.au/fhir/StructureDefinition/ihi-verified-date
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: NI
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/ihi/1.0
value | Σ C | 1..1 | string | IHI Example General: 123456 Example IHI: 8003608833357361 Max Length:16
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
Identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Identifier.type | extensible | Pattern Value: NI `http://hl7.org/fhir/ValueSet/identifier-type` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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-ihi-value-0 | error | Identifier | IHI shall be an exactly 16 digit number : value.matches('^([0-9]{16})$') |
inv-ihi-value-1 | error | Identifier | IHI prefix is 800360 : value.startsWith('800360') |
inv-ihi-value-2 | error | Identifier | IHI 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 | C | 0..* | Identifier | Individual Healthcare Identifier (IHI) Constraints: inv-ihi-value-0, inv-ihi-value-1, inv-ihi-value-2
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:ihiStatus |  | 0..1 | Coding | IHI status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-status Binding: Individual Healthcare Identifier Status (required)
extension:ihiRecordStatus |  | 0..1 | Coding | IHI record status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-record-status Binding: Individual Healthcare Identifier Record Status (required)
extension:ihiVerifiedDate |  | 0..1 | dateTime | IHI Verification Date URL: http://hl7.org.au/fhir/StructureDefinition/ihi-verified-date
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: NI
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/ihi/1.0
value | Σ C | 1..1 | string | IHI Example General: 123456 Example IHI: 8003608833357361 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 | Conformance | ValueSet / Code | URI
Identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Identifier.type | extensible | Pattern Value: NI `http://hl7.org/fhir/ValueSet/identifier-type` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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-ihi-value-0 | error | Identifier | IHI shall be an exactly 16 digit number : value.matches('^([0-9]{16})$') |
inv-ihi-value-1 | error | Identifier | IHI prefix is 800360 : value.startsWith('800360') |
inv-ihi-value-2 | error | Identifier | IHI 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: 3 elements
Fixed: 1 element

Extensions

This structure refers to these extensions:

- http://hl7.org.au/fhir/StructureDefinition/ihi-status
- http://hl7.org.au/fhir/StructureDefinition/ihi-record-status
- http://hl7.org.au/fhir/StructureDefinition/ihi-verified-date

Maturity: 2

Differential View

This structure is derived from Identifier

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier | C | 0..* | Identifier | Individual Healthcare Identifier (IHI) Constraints: inv-ihi-value-0, inv-ihi-value-1, inv-ihi-value-2
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:ihiStatus |  | 0..1 | Coding | IHI status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-status Binding: Individual Healthcare Identifier Status (required)
extension:ihiRecordStatus |  | 0..1 | Coding | IHI record status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-record-status Binding: Individual Healthcare Identifier Record Status (required)
extension:ihiVerifiedDate |  | 0..1 | dateTime | IHI Verification Date URL: http://hl7.org.au/fhir/StructureDefinition/ihi-verified-date
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: NI
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://ns.electronichealth.net.au/id/hi/ihi/1.0
value | C | 1..1 | string | IHI Example IHI: 8003608833357361 Max Length:16
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Details | Requirements
inv-ihi-value-0 | error | Identifier | IHI shall be an exactly 16 digit number : value.matches('^([0-9]{16})$') |
inv-ihi-value-1 | error | Identifier | IHI prefix is 800360 : value.startsWith('800360') |
inv-ihi-value-2 | error | Identifier | IHI 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) |

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Identifier | C | 0..* | Identifier | Individual Healthcare Identifier (IHI) Constraints: inv-ihi-value-0, inv-ihi-value-1, inv-ihi-value-2
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:ihiStatus |  | 0..1 | Coding | IHI status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-status Binding: Individual Healthcare Identifier Status (required)
extension:ihiRecordStatus |  | 0..1 | Coding | IHI record status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-record-status Binding: Individual Healthcare Identifier Record Status (required)
extension:ihiVerifiedDate |  | 0..1 | dateTime | IHI Verification Date URL: http://hl7.org.au/fhir/StructureDefinition/ihi-verified-date
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: NI
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/ihi/1.0
value | Σ C | 1..1 | string | IHI Example General: 123456 Example IHI: 8003608833357361 Max Length:16
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
Identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Identifier.type | extensible | Pattern Value: NI `http://hl7.org/fhir/ValueSet/identifier-type` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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-ihi-value-0 | error | Identifier | IHI shall be an exactly 16 digit number : value.matches('^([0-9]{16})$') |
inv-ihi-value-1 | error | Identifier | IHI prefix is 800360 : value.startsWith('800360') |
inv-ihi-value-2 | error | Identifier | IHI 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 | C | 0..* | Identifier | Individual Healthcare Identifier (IHI) Constraints: inv-ihi-value-0, inv-ihi-value-1, inv-ihi-value-2
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:ihiStatus |  | 0..1 | Coding | IHI status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-status Binding: Individual Healthcare Identifier Status (required)
extension:ihiRecordStatus |  | 0..1 | Coding | IHI record status URL: http://hl7.org.au/fhir/StructureDefinition/ihi-record-status Binding: Individual Healthcare Identifier Record Status (required)
extension:ihiVerifiedDate |  | 0..1 | dateTime | IHI Verification Date URL: http://hl7.org.au/fhir/StructureDefinition/ihi-verified-date
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: NI
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/ihi/1.0
value | Σ C | 1..1 | string | IHI Example General: 123456 Example IHI: 8003608833357361 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 | Conformance | ValueSet / Code | URI
Identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Identifier.type | extensible | Pattern Value: NI `http://hl7.org/fhir/ValueSet/identifier-type` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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-ihi-value-0 | error | Identifier | IHI shall be an exactly 16 digit number : value.matches('^([0-9]{16})$') |
inv-ihi-value-1 | error | Identifier | IHI prefix is 800360 : value.startsWith('800360') |
inv-ihi-value-2 | error | Identifier | IHI 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: 3 elements
Fixed: 1 element

Extensions

This structure refers to these extensions:

- http://hl7.org.au/fhir/StructureDefinition/ihi-status
- http://hl7.org.au/fhir/StructureDefinition/ihi-record-status
- http://hl7.org.au/fhir/StructureDefinition/ihi-verified-date

Maturity: 2

Other representations of profile: CSV, Excel, Schematron