0.1.0 - draft

NyTimelosingIG - Local Development build (v0.1.0). See the Directory of published versions

Resource Profile: hn-basis-appointment

Official URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-appointment Version: 0.1.0
Draft as of 2024-06-01 Computable Name: HnBasisAppointment

Base profile for Helsenorge Appointment information. Defined by Helsenorge based on national profile.

Usage:

Formal Views of Profile Content

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

This structure is derived from NoBasisAppointment

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C0..*NoBasisAppointmentA 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)
cancelationReason-inv: Cancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
contained-location-must-have-managingorganization: Contained location must have managing organization
... meta 0..1MetaInformation about use of metadata in FHIR resources in helsenorge:
... extension:virtualService 0..*NoBasisVirtualServiceVirtual Service
.... extension:channelType 0..1ExtensionExtension
..... value[x] 0..1CodingValuset for virtual servie.
Binding: Hn Basis VirtualServiceType Value Set (required)
... recurring S0..1booleanno-basis-recurring
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-Recurring
... consultationType S0..1Codinghn-basis-consultationType
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-consultationType
Binding: urn:oid:2.16.578.1.12.4.1.1.9505 (preferred)
... identifier 1..1IdentifierExternal Ids for this item
.... system 1..1uriThe namespace for the identifier value
.... value 1..1stringThe value that is unique
.... assigner 1..1Reference(Organization | no-basis-Organization)Organization that issued id (may be just text)
... cancelationReason 0..1CodeableConceptReason for cancelation
Binding: urn:oid:2.16.578.1.12.4.1.1.8445 (preferred)
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... serviceCategory 1..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: hn-appointment-ServiceCategory-code-vs (required)
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... serviceType
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... specialty
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... appointmentType 1..1CodeableConceptThe style of appointment or patient that has been booked in the slot (not service type)
.... coding C0..*CodingRecomended code systems for no-basis-Appointment.
inv-4: If code is used in a codable consept the system must be used
.... coding:helsenorge S0..1CodingCodes from value set
Binding: hn-appointment-AppointmentType-code-vs (required)
... reasonCode
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... description C0..1stringShown on a subject line in a meeting request, or appointment list
must-be-max-100-chars: Length MUST be <=100.
... supportingInformation 1..*Reference(Resource)Spesial instructions for use.
... patientInstruction C0..1stringDetailed information and instructions for the patient
must-be-max-500-chars: Length MUST be <= 500
... participant C1..*BackboneElementParticipants involved in appointment
appointment-participant-actor-patient-reference-identifier: When actor is a Patient logical reference MUST be used
appointment-participant-actor-patient-reference-reference: When actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
.... type
..... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... actor 1..1Reference(no-basis-Patient | no-basis-Practitioner | no-basis-PractitionerRole | no-basis-Location | no-basis-RelatedPerson | Device | no-basis-HealthcareService)When actor is a Patient logical reference MUST be used

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Appointment.extension:virtualService.extension:channelType.value[x]requiredHnBasisVirtualServiceType
Appointment.cancelationReasonpreferred

urn:oid:2.16.578.1.12.4.1.1.8445

Appointment.serviceCategoryrequiredHnAppointmentServiceCategoryVS
Appointment.appointmentType.coding:helsenorgerequiredHnAppointmentAppointmentTypeVS

Constraints

IdGradePath(s)DetailsRequirements
appointment-participant-actor-patient-reference-identifierwarningAppointment.participantWhen actor is a Patient logical reference MUST be used
: actor.type = 'Patient' implies actor.identifier.exists()
appointment-participant-actor-patient-reference-referencewarningAppointment.participantWhen actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
: (actor.type = 'Patient') implies actor.reference.exists().not()
cancelationReason-inverrorAppointmentCancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
: (status='canceled' and serviceCategory.coding.code='27') implies cancelationReason.exists()
contained-location-must-have-managingorganizationerrorAppointmentContained location must have managing organization
: Appointment.contained.where($this is Location).empty() or Appointment.contained.where($this is Location).all(managingOrganization.exists())
inv-4errorAppointment.cancelationReason.coding, Appointment.serviceCategory.coding, Appointment.serviceType.coding, Appointment.specialty.coding, Appointment.appointmentType.coding, Appointment.reasonCode.coding, Appointment.participant.type.codingIf code is used in a codable consept the system must be used
: code > '' implies (system > '' )
must-be-max-100-charserrorAppointment.descriptionLength MUST be <=100.
: $this.length() <= 100
must-be-max-500-charserrorAppointment.patientInstructionLength MUST be <= 500
: $this.length() <= 500
NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C0..*NoBasisAppointmentA 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)
cancelationReason-inv: Cancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
contained-location-must-have-managingorganization: Contained location must have managing organization
... meta Σ0..1MetaInformation about use of metadata in FHIR resources in helsenorge:
... implicitRules ?!ΣN0..1uriA set of rules under which this content was created
... virtualService S0..*(Complex)Virtual Service
URL: http://hl7.no/fhir/StructureDefinition/no-basis-virtual-service
.... extension:channelType 0..1ExtensionExtension
..... extension N0..0
..... url 1..1uri"channelType"
..... value[x] 0..1CodingValuset for virtual servie.
Binding: Hn Basis VirtualServiceType Value Set (required)
.... extension:virtualAddress N0..1ExtensionContact address/number
..... extension N0..0
..... url 1..1uri"virtualAddress"
.... extension:additionalInfo N0..*ExtensionAddress to see alternative connection details
..... extension N0..0
..... url 1..1uri"additionalInfo"
.... extension:maxParticipants N0..1ExtensionMaximum number of participants supported by the virtual service.
..... extension N0..0
..... url 1..1uri"maxParticipants"
.... extension:sessionKey N0..1ExtensionSession Key required by the virtual service
..... extension N0..0
..... url 1..1uri"sessionKey"
.... url 1..1uri"http://hl7.no/fhir/StructureDefinition/no-basis-virtual-service"
... partOf SN0..1Reference(no-basis-Appointment)no-basis-partof
URL: http://hl7.no/fhir/StructureDefinition/no-basis-partof
... recurring S0..1booleanno-basis-recurring
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-Recurring
... postponementReason 0..1Codinghn-basis-postponementreason
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-postponementreason
Binding: urn:oid:2.16.578.1.12.4.1.1.8446 (preferred): Volven


... consultationType S0..1Codinghn-basis-consultationType
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-consultationType
Binding: urn:oid:2.16.578.1.12.4.1.1.9505 (preferred)
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier Σ1..1IdentifierExternal Ids for this item
.... use ?!ΣN0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... system Σ1..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value Σ1..1stringThe value that is unique
Example General: 123456
.... assigner ΣC1..1Reference(Organization | no-basis-Organization)Organization that issued id (may be just text)
... status ?!ΣN1..1codeproposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.

... cancelationReason Σ0..1CodeableConceptReason for cancelation
Binding: urn:oid:2.16.578.1.12.4.1.1.8445 (preferred)
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... serviceCategory Σ1..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: hn-appointment-ServiceCategory-code-vs (required)
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... appointmentType Σ1..1CodeableConceptThe style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
.... Slices for coding ΣC0..*CodingRecomended code systems for no-basis-Appointment.
Slice: Unordered, Open by value:$this
inv-4: If code is used in a codable consept the system must be used
..... coding:omsorgsNiva ΣN0..1CodingVolven 8406
Binding: urn:oid:2.16.578.1.12.4.1.1.8406 (required): Volven


..... coding:kontaktType ΣN0..1CodingVolven 8432
Binding: urn:oid:2.16.578.1.12.4.1.1.8432 (required): Volven


..... coding:innbygger ΣN0..1CodingVolven 7617
Binding: urn:oid:2.16.578.1.12.4.1.1.7617 (required): Volven


..... coding:helsenorge SΣ0..1CodingCodes from value set
Binding: hn-appointment-AppointmentType-code-vs (required)
... description C0..1stringShown on a subject line in a meeting request, or appointment list
must-be-max-100-chars: Length MUST be <=100.
... supportingInformation C1..*Reference(Resource)Spesial instructions for use.
... patientInstruction C0..1stringDetailed information and instructions for the patient
must-be-max-500-chars: Length MUST be <= 500
... participant C1..*BackboneElementParticipants involved in appointment
appointment-participant-actor-patient-reference-identifier: When actor is a Patient logical reference MUST be used
appointment-participant-actor-patient-reference-reference: When actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
.... modifierExtension ?!ΣN0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... actor ΣC1..1Reference(no-basis-Patient | no-basis-Practitioner | no-basis-PractitionerRole | no-basis-Location | no-basis-RelatedPerson | Device | no-basis-HealthcareService)When actor is a Patient logical reference MUST be used
.... status ΣN1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Appointment.extension:virtualService.extension:channelType.value[x]requiredHnBasisVirtualServiceType
Appointment.identifier.userequiredIdentifierUse
Appointment.statusrequiredAppointmentStatus
Appointment.cancelationReasonpreferred

urn:oid:2.16.578.1.12.4.1.1.8445

Appointment.serviceCategoryrequiredHnAppointmentServiceCategoryVS
Appointment.appointmentTypepreferredHl7VSAppointmentReasonCodes
Appointment.appointmentType.coding:omsorgsNivarequired

urn:oid:2.16.578.1.12.4.1.1.8406

Appointment.appointmentType.coding:kontaktTyperequired

urn:oid:2.16.578.1.12.4.1.1.8432

Appointment.appointmentType.coding:innbyggerrequired

urn:oid:2.16.578.1.12.4.1.1.7617

Appointment.appointmentType.coding:helsenorgerequiredHnAppointmentAppointmentTypeVS
Appointment.participant.statusrequiredParticipationStatus

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participantEither the type or actor on the participant SHALL be specified
: type.exists() or actor.exists()
app-2errorAppointmentEither start and end are specified, or neither
: start.exists() = end.exists()
app-3errorAppointmentOnly proposed or cancelled appointments can be missing start/end dates
: (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4errorAppointmentCancelation 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')
appointment-participant-actor-patient-reference-identifierwarningAppointment.participantWhen actor is a Patient logical reference MUST be used
: actor.type = 'Patient' implies actor.identifier.exists()
appointment-participant-actor-patient-reference-referencewarningAppointment.participantWhen actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
: (actor.type = 'Patient') implies actor.reference.exists().not()
cancelationReason-inverrorAppointmentCancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
: (status='canceled' and serviceCategory.coding.code='27') implies cancelationReason.exists()
contained-location-must-have-managingorganizationerrorAppointmentContained location must have managing organization
: Appointment.contained.where($this is Location).empty() or Appointment.contained.where($this is Location).all(managingOrganization.exists())
dom-2errorAppointmentIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorAppointmentIf 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-4errorAppointmentIf 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-5errorAppointmentIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceAppointmentA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** elementsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
inv-4errorAppointment.cancelationReason.coding, Appointment.serviceCategory.coding, Appointment.appointmentType.codingIf code is used in a codable consept the system must be used
: code > '' implies (system > '' )
must-be-max-100-charserrorAppointment.descriptionLength MUST be <=100.
: $this.length() <= 100
must-be-max-500-charserrorAppointment.patientInstructionLength MUST be <= 500
: $this.length() <= 500
ref-1errorAppointment.identifier.assigner, Appointment.supportingInformation, Appointment.participant.actorSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C0..*NoBasisAppointmentA 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)
cancelationReason-inv: Cancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
contained-location-must-have-managingorganization: Contained location must have managing organization
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaInformation about use of metadata in FHIR resources in helsenorge:
... implicitRules ?!ΣN0..1uriA set of rules under which this content was created
... language N0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text N0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... virtualService S0..*(Complex)Virtual Service
URL: http://hl7.no/fhir/StructureDefinition/no-basis-virtual-service
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:channelType 0..1ExtensionExtension
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"channelType"
..... value[x] 0..1CodingValuset for virtual servie.
Binding: Hn Basis VirtualServiceType Value Set (required)
.... extension:virtualAddress N0..1ExtensionContact address/number
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"virtualAddress"
..... value[x] N0..1Value of extension
...... valueStringstring
...... valueUrlurl
...... valueContactPointContactPoint
.... extension:additionalInfo N0..*ExtensionAddress to see alternative connection details
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"additionalInfo"
..... value[x] N0..1urlValue of extension
.... extension:maxParticipants N0..1ExtensionMaximum number of participants supported by the virtual service.
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"maxParticipants"
..... value[x] N0..1positiveIntValue of extension
.... extension:sessionKey N0..1ExtensionSession Key required by the virtual service
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"sessionKey"
..... value[x] N0..1stringValue of extension
.... url 1..1uri"http://hl7.no/fhir/StructureDefinition/no-basis-virtual-service"
... group SN0..1booleanno-basis-group
URL: http://hl7.no/fhir/StructureDefinition/no-basis-group
... partOf SN0..1Reference(no-basis-Appointment)no-basis-partof
URL: http://hl7.no/fhir/StructureDefinition/no-basis-partof
... recurring S0..1booleanno-basis-recurring
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-Recurring
... postponementReason 0..1Codinghn-basis-postponementreason
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-postponementreason
Binding: urn:oid:2.16.578.1.12.4.1.1.8446 (preferred): Volven


... consultationType S0..1Codinghn-basis-consultationType
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-consultationType
Binding: urn:oid:2.16.578.1.12.4.1.1.9505 (preferred)
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier Σ1..1IdentifierExternal Ids for this item
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!ΣN0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... type ΣN0..1CodeableConceptDescription 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 Σ1..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value Σ1..1stringThe value that is unique
Example General: 123456
.... period ΣCN0..1PeriodTime period when id is/was valid for use
.... assigner ΣC1..1Reference(Organization | no-basis-Organization)Organization that issued id (may be just text)
... status ?!ΣN1..1codeproposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.

... cancelationReason Σ0..1CodeableConceptReason for cancelation
Binding: urn:oid:2.16.578.1.12.4.1.1.8445 (preferred)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... serviceCategory Σ1..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: hn-appointment-ServiceCategory-code-vs (required)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... serviceType ΣN0..*CodeableConceptThe specific service that is to be performed during this appointment
Binding: ServiceType (example)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... specialty ΣN0..*CodeableConceptThe specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: PracticeSettingCodeValueSet (preferred)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... appointmentType Σ1..1CodeableConceptThe style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding ΣC0..*CodingRecomended code systems for no-basis-Appointment.
Slice: Unordered, Open by value:$this
inv-4: If code is used in a codable consept the system must be used
..... coding:omsorgsNiva ΣN0..1CodingVolven 8406
Binding: urn:oid:2.16.578.1.12.4.1.1.8406 (required): Volven


..... coding:kontaktType ΣN0..1CodingVolven 8432
Binding: urn:oid:2.16.578.1.12.4.1.1.8432 (required): Volven


..... coding:innbygger ΣN0..1CodingVolven 7617
Binding: urn:oid:2.16.578.1.12.4.1.1.7617 (required): Volven


..... coding:helsenorge SΣ0..1CodingCodes from value set
Binding: hn-appointment-AppointmentType-code-vs (required)
.... text ΣN0..1stringPlain text representation of the concept
... reasonCode ΣN0..*CodeableConceptCoded reason this appointment is scheduled
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.


.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... reasonReference CN0..*Reference(Condition | Procedure | Observation | ImmunizationRecommendation)Reason the appointment is to take place (resource)
... priority N0..1unsignedIntUsed to make informed decisions if needing to re-prioritize
... description C0..1stringShown on a subject line in a meeting request, or appointment list
must-be-max-100-chars: Length MUST be <=100.
... supportingInformation C1..*Reference(Resource)Spesial instructions for use.
... start ΣN0..1instantWhen appointment is to take place
... end ΣN0..1instantWhen appointment is to conclude
... minutesDuration N0..1positiveIntCan be less than start/end (e.g. estimate)
... slot CN0..*Reference(Slot)The slots that this appointment is filling
... created N0..1dateTimeThe date that this appointment was initially created
... comment N0..1stringAdditional comments
... patientInstruction C0..1stringDetailed information and instructions for the patient
must-be-max-500-chars: Length MUST be <= 500
... basedOn CN0..*Reference(ServiceRequest)The service request this appointment is allocated to assess
... participant C1..*BackboneElementParticipants involved in appointment
appointment-participant-actor-patient-reference-identifier: When actor is a Patient logical reference MUST be used
appointment-participant-actor-patient-reference-reference: When actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!ΣN0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type ΣN0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
..... text ΣN0..1stringPlain text representation of the concept
.... actor ΣC1..1Reference(no-basis-Patient | no-basis-Practitioner | no-basis-PractitionerRole | no-basis-Location | no-basis-RelatedPerson | Device | no-basis-HealthcareService)When actor is a Patient logical reference MUST be used
.... required ΣN0..1coderequired | optional | information-only
Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.

.... status ΣN1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... period CN0..1PeriodParticipation period of the actor
... requestedPeriod CN0..*PeriodPotential date/time interval(s) requested to allocate the appointment within

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Appointment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Appointment.extension:virtualService.extension:channelType.value[x]requiredHnBasisVirtualServiceType
Appointment.identifier.userequiredIdentifierUse
Appointment.identifier.typeextensibleIdentifier Type Codes
Appointment.statusrequiredAppointmentStatus
Appointment.cancelationReasonpreferred

urn:oid:2.16.578.1.12.4.1.1.8445

Appointment.serviceCategoryrequiredHnAppointmentServiceCategoryVS
Appointment.serviceTypeexampleServiceType
Appointment.specialtypreferredPracticeSettingCodeValueSet
Appointment.appointmentTypepreferredHl7VSAppointmentReasonCodes
Appointment.appointmentType.coding:omsorgsNivarequired

urn:oid:2.16.578.1.12.4.1.1.8406

Appointment.appointmentType.coding:kontaktTyperequired

urn:oid:2.16.578.1.12.4.1.1.8432

Appointment.appointmentType.coding:innbyggerrequired

urn:oid:2.16.578.1.12.4.1.1.7617

Appointment.appointmentType.coding:helsenorgerequiredHnAppointmentAppointmentTypeVS
Appointment.reasonCodepreferredEncounterReasonCodes
Appointment.participant.typeextensibleParticipantType
Appointment.participant.requiredrequiredParticipantRequired
Appointment.participant.statusrequiredParticipationStatus

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participantEither the type or actor on the participant SHALL be specified
: type.exists() or actor.exists()
app-2errorAppointmentEither start and end are specified, or neither
: start.exists() = end.exists()
app-3errorAppointmentOnly proposed or cancelled appointments can be missing start/end dates
: (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4errorAppointmentCancelation 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')
appointment-participant-actor-patient-reference-identifierwarningAppointment.participantWhen actor is a Patient logical reference MUST be used
: actor.type = 'Patient' implies actor.identifier.exists()
appointment-participant-actor-patient-reference-referencewarningAppointment.participantWhen actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
: (actor.type = 'Patient') implies actor.reference.exists().not()
cancelationReason-inverrorAppointmentCancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
: (status='canceled' and serviceCategory.coding.code='27') implies cancelationReason.exists()
contained-location-must-have-managingorganizationerrorAppointmentContained location must have managing organization
: Appointment.contained.where($this is Location).empty() or Appointment.contained.where($this is Location).all(managingOrganization.exists())
dom-2errorAppointmentIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorAppointmentIf 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-4errorAppointmentIf 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-5errorAppointmentIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceAppointmentA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** elementsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
inv-4errorAppointment.cancelationReason.coding, Appointment.serviceCategory.coding, Appointment.serviceType.coding, Appointment.specialty.coding, Appointment.appointmentType.coding, Appointment.reasonCode.coding, Appointment.participant.type.codingIf code is used in a codable consept the system must be used
: code > '' implies (system > '' )
must-be-max-100-charserrorAppointment.descriptionLength MUST be <=100.
: $this.length() <= 100
must-be-max-500-charserrorAppointment.patientInstructionLength MUST be <= 500
: $this.length() <= 500
per-1errorAppointment.identifier.period, Appointment.participant.period, Appointment.requestedPeriodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)
ref-1errorAppointment.identifier.assigner, Appointment.reasonReference, Appointment.supportingInformation, Appointment.slot, Appointment.basedOn, Appointment.participant.actorSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

Differential View

This structure is derived from NoBasisAppointment

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C0..*NoBasisAppointmentA 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)
cancelationReason-inv: Cancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
contained-location-must-have-managingorganization: Contained location must have managing organization
... meta 0..1MetaInformation about use of metadata in FHIR resources in helsenorge:
... extension:virtualService 0..*NoBasisVirtualServiceVirtual Service
.... extension:channelType 0..1ExtensionExtension
..... value[x] 0..1CodingValuset for virtual servie.
Binding: Hn Basis VirtualServiceType Value Set (required)
... recurring S0..1booleanno-basis-recurring
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-Recurring
... consultationType S0..1Codinghn-basis-consultationType
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-consultationType
Binding: urn:oid:2.16.578.1.12.4.1.1.9505 (preferred)
... identifier 1..1IdentifierExternal Ids for this item
.... system 1..1uriThe namespace for the identifier value
.... value 1..1stringThe value that is unique
.... assigner 1..1Reference(Organization | no-basis-Organization)Organization that issued id (may be just text)
... cancelationReason 0..1CodeableConceptReason for cancelation
Binding: urn:oid:2.16.578.1.12.4.1.1.8445 (preferred)
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... serviceCategory 1..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: hn-appointment-ServiceCategory-code-vs (required)
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... serviceType
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... specialty
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... appointmentType 1..1CodeableConceptThe style of appointment or patient that has been booked in the slot (not service type)
.... coding C0..*CodingRecomended code systems for no-basis-Appointment.
inv-4: If code is used in a codable consept the system must be used
.... coding:helsenorge S0..1CodingCodes from value set
Binding: hn-appointment-AppointmentType-code-vs (required)
... reasonCode
.... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... description C0..1stringShown on a subject line in a meeting request, or appointment list
must-be-max-100-chars: Length MUST be <=100.
... supportingInformation 1..*Reference(Resource)Spesial instructions for use.
... patientInstruction C0..1stringDetailed information and instructions for the patient
must-be-max-500-chars: Length MUST be <= 500
... participant C1..*BackboneElementParticipants involved in appointment
appointment-participant-actor-patient-reference-identifier: When actor is a Patient logical reference MUST be used
appointment-participant-actor-patient-reference-reference: When actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
.... type
..... coding C0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... actor 1..1Reference(no-basis-Patient | no-basis-Practitioner | no-basis-PractitionerRole | no-basis-Location | no-basis-RelatedPerson | Device | no-basis-HealthcareService)When actor is a Patient logical reference MUST be used

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Appointment.extension:virtualService.extension:channelType.value[x]requiredHnBasisVirtualServiceType
Appointment.cancelationReasonpreferred

urn:oid:2.16.578.1.12.4.1.1.8445

Appointment.serviceCategoryrequiredHnAppointmentServiceCategoryVS
Appointment.appointmentType.coding:helsenorgerequiredHnAppointmentAppointmentTypeVS

Constraints

IdGradePath(s)DetailsRequirements
appointment-participant-actor-patient-reference-identifierwarningAppointment.participantWhen actor is a Patient logical reference MUST be used
: actor.type = 'Patient' implies actor.identifier.exists()
appointment-participant-actor-patient-reference-referencewarningAppointment.participantWhen actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
: (actor.type = 'Patient') implies actor.reference.exists().not()
cancelationReason-inverrorAppointmentCancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
: (status='canceled' and serviceCategory.coding.code='27') implies cancelationReason.exists()
contained-location-must-have-managingorganizationerrorAppointmentContained location must have managing organization
: Appointment.contained.where($this is Location).empty() or Appointment.contained.where($this is Location).all(managingOrganization.exists())
inv-4errorAppointment.cancelationReason.coding, Appointment.serviceCategory.coding, Appointment.serviceType.coding, Appointment.specialty.coding, Appointment.appointmentType.coding, Appointment.reasonCode.coding, Appointment.participant.type.codingIf code is used in a codable consept the system must be used
: code > '' implies (system > '' )
must-be-max-100-charserrorAppointment.descriptionLength MUST be <=100.
: $this.length() <= 100
must-be-max-500-charserrorAppointment.patientInstructionLength MUST be <= 500
: $this.length() <= 500

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C0..*NoBasisAppointmentA 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)
cancelationReason-inv: Cancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
contained-location-must-have-managingorganization: Contained location must have managing organization
... meta Σ0..1MetaInformation about use of metadata in FHIR resources in helsenorge:
... implicitRules ?!ΣN0..1uriA set of rules under which this content was created
... virtualService S0..*(Complex)Virtual Service
URL: http://hl7.no/fhir/StructureDefinition/no-basis-virtual-service
.... extension:channelType 0..1ExtensionExtension
..... extension N0..0
..... url 1..1uri"channelType"
..... value[x] 0..1CodingValuset for virtual servie.
Binding: Hn Basis VirtualServiceType Value Set (required)
.... extension:virtualAddress N0..1ExtensionContact address/number
..... extension N0..0
..... url 1..1uri"virtualAddress"
.... extension:additionalInfo N0..*ExtensionAddress to see alternative connection details
..... extension N0..0
..... url 1..1uri"additionalInfo"
.... extension:maxParticipants N0..1ExtensionMaximum number of participants supported by the virtual service.
..... extension N0..0
..... url 1..1uri"maxParticipants"
.... extension:sessionKey N0..1ExtensionSession Key required by the virtual service
..... extension N0..0
..... url 1..1uri"sessionKey"
.... url 1..1uri"http://hl7.no/fhir/StructureDefinition/no-basis-virtual-service"
... partOf SN0..1Reference(no-basis-Appointment)no-basis-partof
URL: http://hl7.no/fhir/StructureDefinition/no-basis-partof
... recurring S0..1booleanno-basis-recurring
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-Recurring
... postponementReason 0..1Codinghn-basis-postponementreason
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-postponementreason
Binding: urn:oid:2.16.578.1.12.4.1.1.8446 (preferred): Volven


... consultationType S0..1Codinghn-basis-consultationType
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-consultationType
Binding: urn:oid:2.16.578.1.12.4.1.1.9505 (preferred)
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier Σ1..1IdentifierExternal Ids for this item
.... use ?!ΣN0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... system Σ1..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value Σ1..1stringThe value that is unique
Example General: 123456
.... assigner ΣC1..1Reference(Organization | no-basis-Organization)Organization that issued id (may be just text)
... status ?!ΣN1..1codeproposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.

... cancelationReason Σ0..1CodeableConceptReason for cancelation
Binding: urn:oid:2.16.578.1.12.4.1.1.8445 (preferred)
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... serviceCategory Σ1..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: hn-appointment-ServiceCategory-code-vs (required)
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
... appointmentType Σ1..1CodeableConceptThe style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
.... Slices for coding ΣC0..*CodingRecomended code systems for no-basis-Appointment.
Slice: Unordered, Open by value:$this
inv-4: If code is used in a codable consept the system must be used
..... coding:omsorgsNiva ΣN0..1CodingVolven 8406
Binding: urn:oid:2.16.578.1.12.4.1.1.8406 (required): Volven


..... coding:kontaktType ΣN0..1CodingVolven 8432
Binding: urn:oid:2.16.578.1.12.4.1.1.8432 (required): Volven


..... coding:innbygger ΣN0..1CodingVolven 7617
Binding: urn:oid:2.16.578.1.12.4.1.1.7617 (required): Volven


..... coding:helsenorge SΣ0..1CodingCodes from value set
Binding: hn-appointment-AppointmentType-code-vs (required)
... description C0..1stringShown on a subject line in a meeting request, or appointment list
must-be-max-100-chars: Length MUST be <=100.
... supportingInformation C1..*Reference(Resource)Spesial instructions for use.
... patientInstruction C0..1stringDetailed information and instructions for the patient
must-be-max-500-chars: Length MUST be <= 500
... participant C1..*BackboneElementParticipants involved in appointment
appointment-participant-actor-patient-reference-identifier: When actor is a Patient logical reference MUST be used
appointment-participant-actor-patient-reference-reference: When actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
.... modifierExtension ?!ΣN0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... actor ΣC1..1Reference(no-basis-Patient | no-basis-Practitioner | no-basis-PractitionerRole | no-basis-Location | no-basis-RelatedPerson | Device | no-basis-HealthcareService)When actor is a Patient logical reference MUST be used
.... status ΣN1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Appointment.extension:virtualService.extension:channelType.value[x]requiredHnBasisVirtualServiceType
Appointment.identifier.userequiredIdentifierUse
Appointment.statusrequiredAppointmentStatus
Appointment.cancelationReasonpreferred

urn:oid:2.16.578.1.12.4.1.1.8445

Appointment.serviceCategoryrequiredHnAppointmentServiceCategoryVS
Appointment.appointmentTypepreferredHl7VSAppointmentReasonCodes
Appointment.appointmentType.coding:omsorgsNivarequired

urn:oid:2.16.578.1.12.4.1.1.8406

Appointment.appointmentType.coding:kontaktTyperequired

urn:oid:2.16.578.1.12.4.1.1.8432

Appointment.appointmentType.coding:innbyggerrequired

urn:oid:2.16.578.1.12.4.1.1.7617

Appointment.appointmentType.coding:helsenorgerequiredHnAppointmentAppointmentTypeVS
Appointment.participant.statusrequiredParticipationStatus

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participantEither the type or actor on the participant SHALL be specified
: type.exists() or actor.exists()
app-2errorAppointmentEither start and end are specified, or neither
: start.exists() = end.exists()
app-3errorAppointmentOnly proposed or cancelled appointments can be missing start/end dates
: (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4errorAppointmentCancelation 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')
appointment-participant-actor-patient-reference-identifierwarningAppointment.participantWhen actor is a Patient logical reference MUST be used
: actor.type = 'Patient' implies actor.identifier.exists()
appointment-participant-actor-patient-reference-referencewarningAppointment.participantWhen actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
: (actor.type = 'Patient') implies actor.reference.exists().not()
cancelationReason-inverrorAppointmentCancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
: (status='canceled' and serviceCategory.coding.code='27') implies cancelationReason.exists()
contained-location-must-have-managingorganizationerrorAppointmentContained location must have managing organization
: Appointment.contained.where($this is Location).empty() or Appointment.contained.where($this is Location).all(managingOrganization.exists())
dom-2errorAppointmentIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorAppointmentIf 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-4errorAppointmentIf 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-5errorAppointmentIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceAppointmentA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** elementsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
inv-4errorAppointment.cancelationReason.coding, Appointment.serviceCategory.coding, Appointment.appointmentType.codingIf code is used in a codable consept the system must be used
: code > '' implies (system > '' )
must-be-max-100-charserrorAppointment.descriptionLength MUST be <=100.
: $this.length() <= 100
must-be-max-500-charserrorAppointment.patientInstructionLength MUST be <= 500
: $this.length() <= 500
ref-1errorAppointment.identifier.assigner, Appointment.supportingInformation, Appointment.participant.actorSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Appointment C0..*NoBasisAppointmentA 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)
cancelationReason-inv: Cancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
contained-location-must-have-managingorganization: Contained location must have managing organization
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaInformation about use of metadata in FHIR resources in helsenorge:
... implicitRules ?!ΣN0..1uriA set of rules under which this content was created
... language N0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text N0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... virtualService S0..*(Complex)Virtual Service
URL: http://hl7.no/fhir/StructureDefinition/no-basis-virtual-service
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:channelType 0..1ExtensionExtension
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"channelType"
..... value[x] 0..1CodingValuset for virtual servie.
Binding: Hn Basis VirtualServiceType Value Set (required)
.... extension:virtualAddress N0..1ExtensionContact address/number
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"virtualAddress"
..... value[x] N0..1Value of extension
...... valueStringstring
...... valueUrlurl
...... valueContactPointContactPoint
.... extension:additionalInfo N0..*ExtensionAddress to see alternative connection details
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"additionalInfo"
..... value[x] N0..1urlValue of extension
.... extension:maxParticipants N0..1ExtensionMaximum number of participants supported by the virtual service.
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"maxParticipants"
..... value[x] N0..1positiveIntValue of extension
.... extension:sessionKey N0..1ExtensionSession Key required by the virtual service
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..0
..... url 1..1uri"sessionKey"
..... value[x] N0..1stringValue of extension
.... url 1..1uri"http://hl7.no/fhir/StructureDefinition/no-basis-virtual-service"
... group SN0..1booleanno-basis-group
URL: http://hl7.no/fhir/StructureDefinition/no-basis-group
... partOf SN0..1Reference(no-basis-Appointment)no-basis-partof
URL: http://hl7.no/fhir/StructureDefinition/no-basis-partof
... recurring S0..1booleanno-basis-recurring
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-Recurring
... postponementReason 0..1Codinghn-basis-postponementreason
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-postponementreason
Binding: urn:oid:2.16.578.1.12.4.1.1.8446 (preferred): Volven


... consultationType S0..1Codinghn-basis-consultationType
URL: http://helsenorge.no/fhir/StructureDefinition/hn-basis-consultationType
Binding: urn:oid:2.16.578.1.12.4.1.1.9505 (preferred)
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier Σ1..1IdentifierExternal Ids for this item
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!ΣN0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... type ΣN0..1CodeableConceptDescription 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 Σ1..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value Σ1..1stringThe value that is unique
Example General: 123456
.... period ΣCN0..1PeriodTime period when id is/was valid for use
.... assigner ΣC1..1Reference(Organization | no-basis-Organization)Organization that issued id (may be just text)
... status ?!ΣN1..1codeproposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.

... cancelationReason Σ0..1CodeableConceptReason for cancelation
Binding: urn:oid:2.16.578.1.12.4.1.1.8445 (preferred)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... serviceCategory Σ1..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: hn-appointment-ServiceCategory-code-vs (required)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... serviceType ΣN0..*CodeableConceptThe specific service that is to be performed during this appointment
Binding: ServiceType (example)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... specialty ΣN0..*CodeableConceptThe specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: PracticeSettingCodeValueSet (preferred)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... appointmentType Σ1..1CodeableConceptThe style of appointment or patient that has been booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding ΣC0..*CodingRecomended code systems for no-basis-Appointment.
Slice: Unordered, Open by value:$this
inv-4: If code is used in a codable consept the system must be used
..... coding:omsorgsNiva ΣN0..1CodingVolven 8406
Binding: urn:oid:2.16.578.1.12.4.1.1.8406 (required): Volven


..... coding:kontaktType ΣN0..1CodingVolven 8432
Binding: urn:oid:2.16.578.1.12.4.1.1.8432 (required): Volven


..... coding:innbygger ΣN0..1CodingVolven 7617
Binding: urn:oid:2.16.578.1.12.4.1.1.7617 (required): Volven


..... coding:helsenorge SΣ0..1CodingCodes from value set
Binding: hn-appointment-AppointmentType-code-vs (required)
.... text ΣN0..1stringPlain text representation of the concept
... reasonCode ΣN0..*CodeableConceptCoded reason this appointment is scheduled
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.


.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
.... text ΣN0..1stringPlain text representation of the concept
... reasonReference CN0..*Reference(Condition | Procedure | Observation | ImmunizationRecommendation)Reason the appointment is to take place (resource)
... priority N0..1unsignedIntUsed to make informed decisions if needing to re-prioritize
... description C0..1stringShown on a subject line in a meeting request, or appointment list
must-be-max-100-chars: Length MUST be <=100.
... supportingInformation C1..*Reference(Resource)Spesial instructions for use.
... start ΣN0..1instantWhen appointment is to take place
... end ΣN0..1instantWhen appointment is to conclude
... minutesDuration N0..1positiveIntCan be less than start/end (e.g. estimate)
... slot CN0..*Reference(Slot)The slots that this appointment is filling
... created N0..1dateTimeThe date that this appointment was initially created
... comment N0..1stringAdditional comments
... patientInstruction C0..1stringDetailed information and instructions for the patient
must-be-max-500-chars: Length MUST be <= 500
... basedOn CN0..*Reference(ServiceRequest)The service request this appointment is allocated to assess
... participant C1..*BackboneElementParticipants involved in appointment
appointment-participant-actor-patient-reference-identifier: When actor is a Patient logical reference MUST be used
appointment-participant-actor-patient-reference-reference: When actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!ΣN0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type ΣN0..*CodeableConceptRole of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.


..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding ΣC0..*CodingCode defined by a terminology system
inv-4: If code is used in a codable consept the system must be used
..... text ΣN0..1stringPlain text representation of the concept
.... actor ΣC1..1Reference(no-basis-Patient | no-basis-Practitioner | no-basis-PractitionerRole | no-basis-Location | no-basis-RelatedPerson | Device | no-basis-HealthcareService)When actor is a Patient logical reference MUST be used
.... required ΣN0..1coderequired | optional | information-only
Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.

.... status ΣN1..1codeaccepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

.... period CN0..1PeriodParticipation period of the actor
... requestedPeriod CN0..*PeriodPotential date/time interval(s) requested to allocate the appointment within

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Appointment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Appointment.extension:virtualService.extension:channelType.value[x]requiredHnBasisVirtualServiceType
Appointment.identifier.userequiredIdentifierUse
Appointment.identifier.typeextensibleIdentifier Type Codes
Appointment.statusrequiredAppointmentStatus
Appointment.cancelationReasonpreferred

urn:oid:2.16.578.1.12.4.1.1.8445

Appointment.serviceCategoryrequiredHnAppointmentServiceCategoryVS
Appointment.serviceTypeexampleServiceType
Appointment.specialtypreferredPracticeSettingCodeValueSet
Appointment.appointmentTypepreferredHl7VSAppointmentReasonCodes
Appointment.appointmentType.coding:omsorgsNivarequired

urn:oid:2.16.578.1.12.4.1.1.8406

Appointment.appointmentType.coding:kontaktTyperequired

urn:oid:2.16.578.1.12.4.1.1.8432

Appointment.appointmentType.coding:innbyggerrequired

urn:oid:2.16.578.1.12.4.1.1.7617

Appointment.appointmentType.coding:helsenorgerequiredHnAppointmentAppointmentTypeVS
Appointment.reasonCodepreferredEncounterReasonCodes
Appointment.participant.typeextensibleParticipantType
Appointment.participant.requiredrequiredParticipantRequired
Appointment.participant.statusrequiredParticipationStatus

Constraints

IdGradePath(s)DetailsRequirements
app-1errorAppointment.participantEither the type or actor on the participant SHALL be specified
: type.exists() or actor.exists()
app-2errorAppointmentEither start and end are specified, or neither
: start.exists() = end.exists()
app-3errorAppointmentOnly proposed or cancelled appointments can be missing start/end dates
: (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4errorAppointmentCancelation 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')
appointment-participant-actor-patient-reference-identifierwarningAppointment.participantWhen actor is a Patient logical reference MUST be used
: actor.type = 'Patient' implies actor.identifier.exists()
appointment-participant-actor-patient-reference-referencewarningAppointment.participantWhen actor is a Patient literal reference (relative, internal or absolute) reference MUST not be used
: (actor.type = 'Patient') implies actor.reference.exists().not()
cancelationReason-inverrorAppointmentCancelation reason MUST be set when status=cancelled and serviceCategory=27 (that is Specialist Medical)
: (status='canceled' and serviceCategory.coding.code='27') implies cancelationReason.exists()
contained-location-must-have-managingorganizationerrorAppointmentContained location must have managing organization
: Appointment.contained.where($this is Location).empty() or Appointment.contained.where($this is Location).all(managingOrganization.exists())
dom-2errorAppointmentIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorAppointmentIf 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-4errorAppointmentIf 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-5errorAppointmentIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceAppointmentA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** elementsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
inv-4errorAppointment.cancelationReason.coding, Appointment.serviceCategory.coding, Appointment.serviceType.coding, Appointment.specialty.coding, Appointment.appointmentType.coding, Appointment.reasonCode.coding, Appointment.participant.type.codingIf code is used in a codable consept the system must be used
: code > '' implies (system > '' )
must-be-max-100-charserrorAppointment.descriptionLength MUST be <=100.
: $this.length() <= 100
must-be-max-500-charserrorAppointment.patientInstructionLength MUST be <= 500
: $this.length() <= 500
per-1errorAppointment.identifier.period, Appointment.participant.period, Appointment.requestedPeriodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)
ref-1errorAppointment.identifier.assigner, Appointment.reasonReference, Appointment.supportingInformation, Appointment.slot, Appointment.basedOn, Appointment.participant.actorSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

 

Other representations of profile: CSV, Excel, Schematron