Medtech ALEX® Implementation Guide
0.0.1 - draft International flag

Medtech ALEX® Implementation Guide - Local Development build (v0.0.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Data Type Profile: HPI-O

Official URL: https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-hpio Version: 0.0.1
Active as of 2025-01-20 Computable Name: AlexHPIO

This identifier profile defines a Healthcare Provider Identifier - Organisation in an Australian context (see Australian Digital Health Agency for further information). An HPI-O is assigned under the HI Service to an organisation (such as a hospital or medical clinic) where healthcare is provided.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Identifier C 0..* AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
ele-1: All FHIR elements must have a @value or children
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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... hpioStatus 1..1 Coding IHI status
URL: https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/hpio-status
Binding: Medtech HPI-O Status ValueSet (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


ele-1: All FHIR elements must have a @value or children
... 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.


ele-1: All FHIR elements must have a @value or children
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.au/CodeSystem/v2-0203
..... code 1..1 code Symbol in syntax defined by the system
Fixed Value: NOI
... value Σ 1..1 string HPI-O
ele-1: All FHIR elements must have a @value or children
Example General: 123456
Example HPI-O: 8003621566684455
Max Length:16

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Identifier.typeextensiblePattern: NOI
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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-hpio-0errorIdentifierHPI-O shall be 16 digits
: value.matches('^([0-9]{16})$')
inv-hpio-1errorIdentifierHPI-O prefix shall be 800362
: value.startsWith('800362')
inv-hpio-2errorIdentifierHPI-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 AUHPIO

NameFlagsCard.TypeDescription & Constraintsdoco
.. Identifier 0..* AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
... extension 1..* Extension Extension
... Slices for extension Content/Rules for all slices
.... hpioStatus 1..1 Coding IHI status
URL: https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/hpio-status
Binding: Medtech HPI-O Status ValueSet (required)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Identifier C 0..* 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
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... hpioStatus 1..1 Coding IHI status
URL: https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/hpio-status
Binding: Medtech HPI-O Status ValueSet (required)
... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... 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.au/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: NOI
..... 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/hpio/1.0
... value Σ 1..1 string HPI-O
Example General: 123456
Example HPI-O: 8003621566684455
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)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Identifier.typeextensiblePattern: NOI
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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-hpio-0errorIdentifierHPI-O shall be 16 digits
: value.matches('^([0-9]{16})$')
inv-hpio-1errorIdentifierHPI-O prefix shall be 800362
: value.startsWith('800362')
inv-hpio-2errorIdentifierHPI-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 AUHPIO

Summary

Mandatory: 2 elements

Extensions

This structure refers to these extensions:

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Identifier C 0..* AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
ele-1: All FHIR elements must have a @value or children
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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... hpioStatus 1..1 Coding IHI status
URL: https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/hpio-status
Binding: Medtech HPI-O Status ValueSet (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


ele-1: All FHIR elements must have a @value or children
... 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.


ele-1: All FHIR elements must have a @value or children
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.au/CodeSystem/v2-0203
..... code 1..1 code Symbol in syntax defined by the system
Fixed Value: NOI
... value Σ 1..1 string HPI-O
ele-1: All FHIR elements must have a @value or children
Example General: 123456
Example HPI-O: 8003621566684455
Max Length:16

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Identifier.typeextensiblePattern: NOI
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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-hpio-0errorIdentifierHPI-O shall be 16 digits
: value.matches('^([0-9]{16})$')
inv-hpio-1errorIdentifierHPI-O prefix shall be 800362
: value.startsWith('800362')
inv-hpio-2errorIdentifierHPI-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 AUHPIO

NameFlagsCard.TypeDescription & Constraintsdoco
.. Identifier 0..* AUHPIO Healthcare Provider Identifier – Organisation (HPI-O)
... extension 1..* Extension Extension
... Slices for extension Content/Rules for all slices
.... hpioStatus 1..1 Coding IHI status
URL: https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/hpio-status
Binding: Medtech HPI-O Status ValueSet (required)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Identifier C 0..* 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
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... hpioStatus 1..1 Coding IHI status
URL: https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/hpio-status
Binding: Medtech HPI-O Status ValueSet (required)
... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... 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.au/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: NOI
..... 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/hpio/1.0
... value Σ 1..1 string HPI-O
Example General: 123456
Example HPI-O: 8003621566684455
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)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Identifier.typeextensiblePattern: NOI
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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-hpio-0errorIdentifierHPI-O shall be 16 digits
: value.matches('^([0-9]{16})$')
inv-hpio-1errorIdentifierHPI-O prefix shall be 800362
: value.startsWith('800362')
inv-hpio-2errorIdentifierHPI-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 AUHPIO

Summary

Mandatory: 2 elements

Extensions

This structure refers to these extensions:

 

Other representations of profile: CSV, Excel, Schematron