HL7® FHIR® New Zealand Base Implementation Guide
3.1.0 - Draft

HL7® FHIR® New Zealand Base Implementation Guide, published by HL7 New Zealand. This guide is not an authorized publication; it is the continuous build for version 3.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/daniel-thomson/nzbase/ and changes regularly. See the Directory of published versions

## Data Type Profile: NzContactPoint - Detailed Descriptions

Active as of 2026-05-21

Definitions for the NzContactPoint data type profile.

- Key Elements Table
- Differential Elements Table
- Snapshot Elements Table

Guidance on how to interpret the contents of this table can be foundhere

0. ContactPoint
Definition | Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
Short | Details of a Technology mediated contact point (phone, fax, email, etc.)
Control | 0..* This element is affected by the following invariants: ele-1
Is Modifier | false
Invariants | cpt-2: A system is required if a value is provided. (`value.empty() or system.exists()`) ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) cpt-2: A system is required if a value is provided. (value.empty() or system.exists())
2. ContactPoint.extension:cp-purpose
Slice Name | cp-purpose
Definition | A specific purpose for which this ContactPoint dataType would be used. An example would be to indicate that this ContactPoint is used for video conferencing.
Short | The business reason this ContactPoint is being used
Control | 0..1
Type | Extension(A specific purpose for which this ContactPoint dataType would be used) (Extension Type: CodeableConcept)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
4. ContactPoint.use
Definition | Identifies the purpose for the contact point.
Short | home | work | temp | old | mobile - purpose of this contact point
Comments | Applications can assume that a contact is current unless it explicitly says that it is temporary or old.
Control | 0..1
Binding | The codes SHALL be taken from ContactPointUse http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1 (required to `http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1` ) Use of contact point.
Type | code
Is Modifier | true because This is labeled as "Is Modifier" because applications should not mistake a temporary or old contact etc.for a current/permanent one
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Requirements | Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose.
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))

Guidance on how to interpret the contents of this table can be foundhere

0. ContactPoint
2. ContactPoint.extension:cp-purpose
Slice Name | cp-purpose
Short | The business reason this ContactPoint is being used
Control | 0..1
Type | Extension(A specific purpose for which this ContactPoint dataType would be used) (Extension Type: CodeableConcept)

Guidance on how to interpret the contents of this table can be foundhere

0. ContactPoint
Definition | Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.
Short | Details of a Technology mediated contact point (phone, fax, email, etc.)
Control | 0..* This element is affected by the following invariants: ele-1
Is Modifier | false
Invariants | cpt-2: A system is required if a value is provided. (`value.empty() or system.exists()`) ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
2. ContactPoint.id
Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Short | Unique id for inter-element referencing
Control | 0..1
Type | string
Is Modifier | false
XML Format | In the XML format, this property is represented as an attribute.
Summary | false
4. ContactPoint.extension
Definition | May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Short | Additional content defined by implementations
Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Control | 0..*
Type | Extension
Is Modifier | false
Summary | false
Alternate Names | extensions, user content
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
Slicing | This element introduces a set of slices on `ContactPoint.extension`. The slices areUnordered and Open, and can be differentiated using the following discriminators: value @ url
6. ContactPoint.extension:cp-purpose
Slice Name | cp-purpose
Definition | A specific purpose for which this ContactPoint dataType would be used. An example would be to indicate that this ContactPoint is used for video conferencing.
Short | The business reason this ContactPoint is being used
Control | 0..1
Type | Extension(A specific purpose for which this ContactPoint dataType would be used) (Extension Type: CodeableConcept)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
8. ContactPoint.system
Definition | Telecommunications form for contact point - what communications system is required to make use of the contact.
Short | phone | fax | email | pager | url | sms | other
Control | 0..1 This element is affected by the following invariants: cpt-2
Binding | The codes SHALL be taken from ContactPointSystem (required to `http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1` ) Telecommunications form for contact point.
Type | code
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
10. ContactPoint.value
Definition | The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).
Short | The actual contact point details
Comments | Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value.
Control | 0..1
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Requirements | Need to support legacy numbers that are not in a tightly controlled format.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
12. ContactPoint.use
Definition | Identifies the purpose for the contact point.
Short | home | work | temp | old | mobile - purpose of this contact point
Comments | Applications can assume that a contact is current unless it explicitly says that it is temporary or old.
Control | 0..1
Binding | The codes SHALL be taken from ContactPointUse (required to `http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1` ) Use of contact point.
Type | code
Is Modifier | true because This is labeled as "Is Modifier" because applications should not mistake a temporary or old contact etc.for a current/permanent one
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Requirements | Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose.
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
14. ContactPoint.rank
Definition | Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.
Short | Specify preferred order of use (1 = highest)
Comments | Note that rank does not necessarily follow the order in which the contacts are represented in the instance.
Control | 0..1
Type | positiveInt
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
16. ContactPoint.period
Definition | Time period when the contact point was/is in use.
Short | Time period when the contact point was/is in use
Control | 0..1
Type | Period
Is Modifier | false
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)