Health New Zealand Te Whatu Ora Shared Care FHIR API
0.4.5 - release

Health New Zealand Te Whatu Ora Shared Care FHIR API - Local Development build (v0.4.5) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Resource Profile: Dunedin Hospital Outpatient Appointment Profile

Official URL: https://fhir-ig.digital.health.nz/shared-care/StructureDefinition/DHOAppointment | Version: 0.0.1
Draft as of 2026-03-03 | Computable Name: DHOAppointment

This profile derives from the Appointment Resource with localisations using international and NZ standards including the FHIR NZ Base IG, for use in the NZ context.

This profile is used to represent outpatient appointments in Dunedin.

Usages:

- Refer to this Profile: Dunedin Hospital Outpatient Encounter, Dunedin Hospital Outpatient Encounter Create and Dunedin Hospital Outpatient Encounter Update
- Examples for this Profile: Appointment/DHOClinicAppointmentExample and Appointment/DHOUnstructuredAppointmentExample
- CapabilityStatements using this Profile: Shared Care FHIR Server Capability Statement

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
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) Constraints: app-2, app-3, app-4
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External (provider) and Health NZ business identifiers
use | ?!S Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | S Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | The value that is unique Example General: 123456
status | ?!Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required): The free/busy status of an appointment.
participant | C | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | Σ | 0..1 | Reference(NZ Patient | Practitioner resource for use in NZ | PractitionerRole resource for use in NZ | HealthcareService resource for use in NZ | Location resource for use in NZ | RelatedPerson | Device) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Appointment.identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Appointment.status | required | AppointmentStatus `http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1` From the FHIR Standard
Appointment.participant.status | required | ParticipationStatus `http://hl7.org/fhir/ValueSet/participationstatus|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
app-1 | error | Appointment.participant | Either the type or actor on the participant SHALL be specified : type.exists() or actor.exists() |
app-2 | error | Appointment | Either start and end are specified, or neither : start.exists() = end.exists() |
app-3 | error | Appointment | Only proposed or cancelled appointments can be missing start/end dates : (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist')) |
app-4 | error | Appointment | Cancelation reason is only used for appointments that have been cancelled, or no-show : Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled') |
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Appointment | If 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-4 | error | Appointment | If 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-5 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Appointment | A resource should have narrative for robust management : text.`div`.exists() |
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() |

This structure is derived from Appointment

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment |  | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
meta |  |  |  |
source |  | 1..1 | uri | HPI Facility ID from where the record is sourced
Slices for tag |  | 1..* | Coding | Correlation-id where the record is sourced Slice: Unordered, Open by value:system
tag:correlationId |  | 1..1 | Coding | Tags applied to this resource
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: https://hub.services.digital.health.nz/ns/correlation-id
code |  | 1..1 | code | Symbol in syntax defined by the system
identifier |  | 0..* | Identifier | External (provider) and Health NZ business identifiers
id |  | 0..0 |  |
use | S | 0..1 | code | usual | official | temp | secondary | old (If known)
system | S | 0..1 | uri | The namespace for the identifier value
value | S | 1..1 | string | The value that is unique
period |  | 0..0 |  |
participant |  |  |  |
actor |  | 0..1 | Reference(NZ Patient | Practitioner resource for use in NZ | PractitionerRole resource for use in NZ | HealthcareService resource for use in NZ | Location resource for use in NZ | RelatedPerson | Device) | Person, Location/HealthcareService or Device
status | S | 1..1 | code | accepted | declined | tentative | needs-action
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) Constraints: app-2, app-3, app-4
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
versionId | Σ | 0..1 | id | Version specific identifier
lastUpdated | Σ | 0..1 | instant | When the resource version last changed
source | Σ | 1..1 | uri | HPI Facility ID from where the record is sourced
profile | Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
Slices for tag | Σ | 1..* | Coding | Correlation-id where the record is sourced Slice: Unordered, Open by value:system Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
tag:correlationId | Σ | 1..1 | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: https://hub.services.digital.health.nz/ns/correlation-id
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 1..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External (provider) and Health NZ business identifiers
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!S Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..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.
system | S Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | The value that is unique Example General: 123456
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
status | ?!Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required): The free/busy status of an appointment.
cancelationReason | Σ | 0..1 | CodeableConcept | The coded reason for the appointment being cancelled Binding: AppointmentCancellationReason (example)
serviceCategory | Σ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: ServiceCategory (example)
serviceType | Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: ServiceType (example)
specialty | Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred)
appointmentType | Σ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred)
reasonCode | Σ | 0..* | CodeableConcept | Coded reason this appointment is scheduled Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
reasonReference |  | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource)
priority |  | 0..1 | unsignedInt | Used to make informed decisions if needing to re-prioritize
description |  | 0..1 | string | Shown on a subject line in a meeting request, or appointment list
supportingInformation |  | 0..* | Reference(Resource) | Additional information to support the appointment
start | Σ | 0..1 | instant | When appointment is to take place
end | Σ | 0..1 | instant | When appointment is to conclude
minutesDuration |  | 0..1 | positiveInt | Can be less than start/end (e.g. estimate)
slot |  | 0..* | Reference(Slot) | The slots that this appointment is filling
created |  | 0..1 | dateTime | The date that this appointment was initially created
comment |  | 0..1 | string | Additional comments
patientInstruction |  | 0..1 | string | Detailed information and instructions for the patient
basedOn |  | 0..* | Reference(ServiceRequest) | The service request this appointment is allocated to assess
participant | C | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1
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
type | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter.
actor | Σ | 0..1 | Reference(NZ Patient | Practitioner resource for use in NZ | PractitionerRole resource for use in NZ | HealthcareService resource for use in NZ | Location resource for use in NZ | RelatedPerson | Device) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
requestedPeriod |  | 0..* | Period | Potential date/time interval(s) requested to allocate the appointment within
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Appointment.meta.security | extensible | All Security Labels `http://hl7.org/fhir/ValueSet/security-labels` From the FHIR Standard
Appointment.meta.tag | example | CommonTags `http://hl7.org/fhir/ValueSet/common-tags` From the FHIR Standard
Appointment.meta.tag:correlationId | example | CommonTags `http://hl7.org/fhir/ValueSet/common-tags` From the FHIR Standard
Appointment.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
Appointment.identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Appointment.identifier.type | extensible | Identifier Type Codes `http://hl7.org/fhir/ValueSet/identifier-type` From the FHIR Standard
Appointment.status | required | AppointmentStatus `http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1` From the FHIR Standard
Appointment.cancelationReason | example | AppointmentCancellationReason `http://hl7.org/fhir/ValueSet/appointment-cancellation-reason` From the FHIR Standard
Appointment.serviceCategory | example | ServiceCategory `http://hl7.org/fhir/ValueSet/service-category` From the FHIR Standard
Appointment.serviceType | example | ServiceType `http://hl7.org/fhir/ValueSet/service-type` From the FHIR Standard
Appointment.specialty | preferred | PracticeSettingCodeValueSet `http://hl7.org/fhir/ValueSet/c80-practice-codes` From the FHIR Standard
Appointment.appointmentType | preferred | Hl7VSAppointmentReasonCodes `http://terminology.hl7.org/ValueSet/v2-0276`
Appointment.reasonCode | preferred | EncounterReasonCodes `http://hl7.org/fhir/ValueSet/encounter-reason` From the FHIR Standard
Appointment.participant.type | extensible | ParticipantType `http://hl7.org/fhir/ValueSet/encounter-participant-type` From the FHIR Standard
Appointment.participant.required | required | ParticipantRequired `http://hl7.org/fhir/ValueSet/participantrequired|4.0.1` From the FHIR Standard
Appointment.participant.status | required | ParticipationStatus `http://hl7.org/fhir/ValueSet/participationstatus|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
app-1 | error | Appointment.participant | Either the type or actor on the participant SHALL be specified : type.exists() or actor.exists() |
app-2 | error | Appointment | Either start and end are specified, or neither : start.exists() = end.exists() |
app-3 | error | Appointment | Only proposed or cancelled appointments can be missing start/end dates : (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist')) |
app-4 | error | Appointment | Cancelation reason is only used for appointments that have been cancelled, or no-show : Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled') |
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Appointment | If 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-4 | error | Appointment | If 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-5 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Appointment | A resource should have narrative for robust management : text.`div`.exists() |
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() |

This structure is derived from Appointment

Summary

Mandatory: 0 element(6 nested mandatory elements)
Must-Support: 4 elements
Fixed: 1 element
Prohibited: 2 elements

Structures

This structure refers to these other structures:

- NZ Patient (http://hl7.org.nz/fhir/StructureDefinition/NzPatient)
- Practitioner resource for use in NZ (http://hl7.org.nz/fhir/StructureDefinition/NzPractitioner)
- PractitionerRole resource for use in NZ (http://hl7.org.nz/fhir/StructureDefinition/NzPractitionerRole)
- HealthcareService resource for use in NZ (http://hl7.org.nz/fhir/StructureDefinition/NzHealthcareService)
- Location resource for use in NZ (http://hl7.org.nz/fhir/StructureDefinition/NzLocation)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Appointment.meta.tag

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) Constraints: app-2, app-3, app-4
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External (provider) and Health NZ business identifiers
use | ?!S Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | S Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | The value that is unique Example General: 123456
status | ?!Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required): The free/busy status of an appointment.
participant | C | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | Σ | 0..1 | Reference(NZ Patient | Practitioner resource for use in NZ | PractitionerRole resource for use in NZ | HealthcareService resource for use in NZ | Location resource for use in NZ | RelatedPerson | Device) | Person, Location/HealthcareService or Device
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Appointment.identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Appointment.status | required | AppointmentStatus `http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1` From the FHIR Standard
Appointment.participant.status | required | ParticipationStatus `http://hl7.org/fhir/ValueSet/participationstatus|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
app-1 | error | Appointment.participant | Either the type or actor on the participant SHALL be specified : type.exists() or actor.exists() |
app-2 | error | Appointment | Either start and end are specified, or neither : start.exists() = end.exists() |
app-3 | error | Appointment | Only proposed or cancelled appointments can be missing start/end dates : (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist')) |
app-4 | error | Appointment | Cancelation reason is only used for appointments that have been cancelled, or no-show : Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled') |
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Appointment | If 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-4 | error | Appointment | If 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-5 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Appointment | A resource should have narrative for robust management : text.`div`.exists() |
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() |

Differential View

This structure is derived from Appointment

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment |  | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
meta |  |  |  |
source |  | 1..1 | uri | HPI Facility ID from where the record is sourced
Slices for tag |  | 1..* | Coding | Correlation-id where the record is sourced Slice: Unordered, Open by value:system
tag:correlationId |  | 1..1 | Coding | Tags applied to this resource
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: https://hub.services.digital.health.nz/ns/correlation-id
code |  | 1..1 | code | Symbol in syntax defined by the system
identifier |  | 0..* | Identifier | External (provider) and Health NZ business identifiers
id |  | 0..0 |  |
use | S | 0..1 | code | usual | official | temp | secondary | old (If known)
system | S | 0..1 | uri | The namespace for the identifier value
value | S | 1..1 | string | The value that is unique
period |  | 0..0 |  |
participant |  |  |  |
actor |  | 0..1 | Reference(NZ Patient | Practitioner resource for use in NZ | PractitionerRole resource for use in NZ | HealthcareService resource for use in NZ | Location resource for use in NZ | RelatedPerson | Device) | Person, Location/HealthcareService or Device
status | S | 1..1 | code | accepted | declined | tentative | needs-action
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Appointment | C | 0..* | Appointment | A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) Constraints: app-2, app-3, app-4
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
versionId | Σ | 0..1 | id | Version specific identifier
lastUpdated | Σ | 0..1 | instant | When the resource version last changed
source | Σ | 1..1 | uri | HPI Facility ID from where the record is sourced
profile | Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
Slices for tag | Σ | 1..* | Coding | Correlation-id where the record is sourced Slice: Unordered, Open by value:system Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
tag:correlationId | Σ | 1..1 | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: https://hub.services.digital.health.nz/ns/correlation-id
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 1..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External (provider) and Health NZ business identifiers
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!S Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..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.
system | S Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | The value that is unique Example General: 123456
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
status | ?!Σ | 1..1 | code | proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist Binding: AppointmentStatus (required): The free/busy status of an appointment.
cancelationReason | Σ | 0..1 | CodeableConcept | The coded reason for the appointment being cancelled Binding: AppointmentCancellationReason (example)
serviceCategory | Σ | 0..* | CodeableConcept | A broad categorization of the service that is to be performed during this appointment Binding: ServiceCategory (example)
serviceType | Σ | 0..* | CodeableConcept | The specific service that is to be performed during this appointment Binding: ServiceType (example)
specialty | Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Binding: PracticeSettingCodeValueSet (preferred)
appointmentType | Σ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) Binding: hl7VS-appointmentReasonCodes (preferred)
reasonCode | Σ | 0..* | CodeableConcept | Coded reason this appointment is scheduled Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
reasonReference |  | 0..* | Reference(Condition | Procedure | Observation | ImmunizationRecommendation) | Reason the appointment is to take place (resource)
priority |  | 0..1 | unsignedInt | Used to make informed decisions if needing to re-prioritize
description |  | 0..1 | string | Shown on a subject line in a meeting request, or appointment list
supportingInformation |  | 0..* | Reference(Resource) | Additional information to support the appointment
start | Σ | 0..1 | instant | When appointment is to take place
end | Σ | 0..1 | instant | When appointment is to conclude
minutesDuration |  | 0..1 | positiveInt | Can be less than start/end (e.g. estimate)
slot |  | 0..* | Reference(Slot) | The slots that this appointment is filling
created |  | 0..1 | dateTime | The date that this appointment was initially created
comment |  | 0..1 | string | Additional comments
patientInstruction |  | 0..1 | string | Detailed information and instructions for the patient
basedOn |  | 0..* | Reference(ServiceRequest) | The service request this appointment is allocated to assess
participant | C | 1..* | BackboneElement | Participants involved in appointment Constraints: app-1
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
type | Σ | 0..* | CodeableConcept | Role of participant in the appointment Binding: ParticipantType (extensible): Role of participant in encounter.
actor | Σ | 0..1 | Reference(NZ Patient | Practitioner resource for use in NZ | PractitionerRole resource for use in NZ | HealthcareService resource for use in NZ | Location resource for use in NZ | RelatedPerson | Device) | Person, Location/HealthcareService or Device
required | Σ | 0..1 | code | required | optional | information-only Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
status | S Σ | 1..1 | code | accepted | declined | tentative | needs-action Binding: ParticipationStatus (required): The Participation status of an appointment.
period |  | 0..1 | Period | Participation period of the actor
requestedPeriod |  | 0..* | Period | Potential date/time interval(s) requested to allocate the appointment within
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Appointment.meta.security | extensible | All Security Labels `http://hl7.org/fhir/ValueSet/security-labels` From the FHIR Standard
Appointment.meta.tag | example | CommonTags `http://hl7.org/fhir/ValueSet/common-tags` From the FHIR Standard
Appointment.meta.tag:correlationId | example | CommonTags `http://hl7.org/fhir/ValueSet/common-tags` From the FHIR Standard
Appointment.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
Appointment.identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Appointment.identifier.type | extensible | Identifier Type Codes `http://hl7.org/fhir/ValueSet/identifier-type` From the FHIR Standard
Appointment.status | required | AppointmentStatus `http://hl7.org/fhir/ValueSet/appointmentstatus|4.0.1` From the FHIR Standard
Appointment.cancelationReason | example | AppointmentCancellationReason `http://hl7.org/fhir/ValueSet/appointment-cancellation-reason` From the FHIR Standard
Appointment.serviceCategory | example | ServiceCategory `http://hl7.org/fhir/ValueSet/service-category` From the FHIR Standard
Appointment.serviceType | example | ServiceType `http://hl7.org/fhir/ValueSet/service-type` From the FHIR Standard
Appointment.specialty | preferred | PracticeSettingCodeValueSet `http://hl7.org/fhir/ValueSet/c80-practice-codes` From the FHIR Standard
Appointment.appointmentType | preferred | Hl7VSAppointmentReasonCodes `http://terminology.hl7.org/ValueSet/v2-0276`
Appointment.reasonCode | preferred | EncounterReasonCodes `http://hl7.org/fhir/ValueSet/encounter-reason` From the FHIR Standard
Appointment.participant.type | extensible | ParticipantType `http://hl7.org/fhir/ValueSet/encounter-participant-type` From the FHIR Standard
Appointment.participant.required | required | ParticipantRequired `http://hl7.org/fhir/ValueSet/participantrequired|4.0.1` From the FHIR Standard
Appointment.participant.status | required | ParticipationStatus `http://hl7.org/fhir/ValueSet/participationstatus|4.0.1` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
app-1 | error | Appointment.participant | Either the type or actor on the participant SHALL be specified : type.exists() or actor.exists() |
app-2 | error | Appointment | Either start and end are specified, or neither : start.exists() = end.exists() |
app-3 | error | Appointment | Only proposed or cancelled appointments can be missing start/end dates : (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist')) |
app-4 | error | Appointment | Cancelation reason is only used for appointments that have been cancelled, or no-show : Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled') |
dom-2 | error | Appointment | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Appointment | If 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-4 | error | Appointment | If 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-5 | error | Appointment | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Appointment | A resource should have narrative for robust management : text.`div`.exists() |
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() |

This structure is derived from Appointment

Summary

Mandatory: 0 element(6 nested mandatory elements)
Must-Support: 4 elements
Fixed: 1 element
Prohibited: 2 elements

Structures

This structure refers to these other structures:

- NZ Patient (http://hl7.org.nz/fhir/StructureDefinition/NzPatient)
- Practitioner resource for use in NZ (http://hl7.org.nz/fhir/StructureDefinition/NzPractitioner)
- PractitionerRole resource for use in NZ (http://hl7.org.nz/fhir/StructureDefinition/NzPractitionerRole)
- HealthcareService resource for use in NZ (http://hl7.org.nz/fhir/StructureDefinition/NzHealthcareService)
- Location resource for use in NZ (http://hl7.org.nz/fhir/StructureDefinition/NzLocation)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Appointment.meta.tag

Other representations of profile: CSV, Excel, Schematron