FHIR Artifacts > Structure Definition: Appointment Profile

Structure Definition: Appointment Profile

Canonical URL:http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Appointment

Simplifier project page: Appointment

Derived from: Appointment (CA:eReC)

Base FHIR from: Appointment (R4)

Formal Views of Profile Content

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

Differential View

idΣ0..1string
id0..1string
extensionI0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionI0..*Extension
statusS1..1codeBinding
divS I1..1xhtml
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
statusS Σ ?!1..1codeBinding
cancelationReasonΣ0..1CodeableConcept
serviceCategoryΣ0..*CodeableConcept
serviceTypeΣ0..*CodeableConcept
specialtyΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textS Σ0..1string
reasonCodeΣ0..*CodeableConceptBinding
reasonReferenceI0..*Reference(Condition | Procedure | Observation | ImmunizationRecommendation)
priority0..1unsignedInt
descriptionS0..1string
supportingInformationI0..*Reference(Resource)
startS Σ0..1instant
endS Σ0..1instant
minutesDurationS0..1positiveInt
slotI0..*Reference(Slot)
createdS0..1dateTime
commentS0..1string
patientInstructionS0..1string
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeS Σ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
requiredS Σ0..1codeBinding
statusS Σ1..1codeBinding
id0..1string
extensionI0..*Extension
startS Σ I0..1dateTime
endS Σ I0..1dateTime
id0..1string
extensionI0..*Extension
startS Σ I0..1dateTime
endS Σ I0..1dateTime

Hybrid View

idΣ0..1string
id0..1string
extensionI0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionI0..*Extension
statusS1..1codeBinding
divS I1..1xhtml
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
statusS Σ ?!1..1codeBinding
cancelationReasonΣ0..1CodeableConcept
serviceCategoryΣ0..*CodeableConcept
serviceTypeΣ0..*CodeableConcept
specialtyΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textS Σ0..1string
reasonCodeΣ0..*CodeableConceptBinding
reasonReferenceI0..*Reference(Condition | Procedure | Observation | ImmunizationRecommendation)
priority0..1unsignedInt
descriptionS0..1string
supportingInformationI0..*Reference(Resource)
startS Σ0..1instant
endS Σ0..1instant
minutesDurationS0..1positiveInt
slotI0..*Reference(Slot)
createdS0..1dateTime
commentS0..1string
patientInstructionS0..1string
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeS Σ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
requiredS Σ0..1codeBinding
statusS Σ1..1codeBinding
id0..1string
extensionI0..*Extension
startS Σ I0..1dateTime
endS Σ I0..1dateTime
id0..1string
extensionI0..*Extension
startS Σ I0..1dateTime
endS Σ I0..1dateTime

Snapshot View

idΣ0..1string
id0..1string
extensionI0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionI0..*Extension
statusS1..1codeBinding
divS I1..1xhtml
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
statusS Σ ?!1..1codeBinding
cancelationReasonΣ0..1CodeableConcept
serviceCategoryΣ0..*CodeableConcept
serviceTypeΣ0..*CodeableConcept
specialtyΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textS Σ0..1string
reasonCodeΣ0..*CodeableConceptBinding
reasonReferenceI0..*Reference(Condition | Procedure | Observation | ImmunizationRecommendation)
priority0..1unsignedInt
descriptionS0..1string
supportingInformationI0..*Reference(Resource)
startS Σ0..1instant
endS Σ0..1instant
minutesDurationS0..1positiveInt
slotI0..*Reference(Slot)
createdS0..1dateTime
commentS0..1string
patientInstructionS0..1string
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeS Σ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
requiredS Σ0..1codeBinding
statusS Σ1..1codeBinding
id0..1string
extensionI0..*Extension
startS Σ I0..1dateTime
endS Σ I0..1dateTime
id0..1string
extensionI0..*Extension
startS Σ I0..1dateTime
endS Σ I0..1dateTime

Table View

Appointment..
Appointment.meta1..
Appointment.meta.profile1..
Appointment.text..
Appointment.text.status..
Appointment.text.div..
Appointment.appointmentType..
Appointment.appointmentType.coding..
Appointment.appointmentType.coding.system..
Appointment.appointmentType.coding.code..
Appointment.appointmentType.coding.display..
Appointment.appointmentType.text..
Appointment.end..
Appointment.minutesDuration..
Appointment.patientInstruction..
Appointment.basedOnReference(EReferralServiceRequest)..
Appointment.basedOn.reference1..
Appointment.participant..
Appointment.participant.actorReference(EReferralPractitionerRole | EReferralLocation | EReferralPatient)..
Appointment.participant.required..
Appointment.participant.status..
Appointment.participant.period..
Appointment.participant.period.start..
Appointment.participant.period.end..
Appointment.requestedPeriod..
Appointment.requestedPeriod.start..
Appointment.requestedPeriod.end..

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "ca-on-eReferral-profile-Appointment",
    "url": "http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Appointment",
    "version": "1.0.0",
    "name": "EReferralAppointment",
    "title": "Appointment",
    "status": "draft",
    "description": "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).",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Appointment",
    "baseDefinition": "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Appointment",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Appointment.meta",
                "path": "Appointment.meta",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Appointment.meta.profile",
                "path": "Appointment.meta.profile",
                "comment": "#### **_` FOR eREFERRAL USAGE: The meta.profile = http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Appointment|1.0.0 `_**\n\nIt is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time.  The list of profile URLs is a set.",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Appointment.text",
                "path": "Appointment.text"
            },
            {
                "id": "Appointment.text.status",
                "path": "Appointment.text.status",
                "mustSupport": true
            },
            {
                "id": "Appointment.text.div",
                "path": "Appointment.text.div",
                "mustSupport": true
            },
            {
                "id": "Appointment.appointmentType",
                "path": "Appointment.appointmentType",
                "mustSupport": true
            },
            {
                "id": "Appointment.appointmentType.coding",
                "path": "Appointment.appointmentType.coding",
                "mustSupport": true
            },
            {
                "id": "Appointment.appointmentType.coding.system",
                "path": "Appointment.appointmentType.coding.system",
                "mustSupport": true
            },
            {
                "id": "Appointment.appointmentType.coding.code",
                "path": "Appointment.appointmentType.coding.code",
                "mustSupport": true
            },
            {
                "id": "Appointment.appointmentType.coding.display",
                "path": "Appointment.appointmentType.coding.display",
                "mustSupport": true
            },
            {
                "id": "Appointment.appointmentType.text",
                "path": "Appointment.appointmentType.text",
                "mustSupport": true
            },
            {
                "id": "Appointment.end",
                "path": "Appointment.end",
                "mustSupport": true
            },
            {
                "id": "Appointment.minutesDuration",
                "path": "Appointment.minutesDuration",
                "mustSupport": true
            },
            {
                "id": "Appointment.patientInstruction",
                "path": "Appointment.patientInstruction",
                "mustSupport": true
            },
            {
                "id": "Appointment.basedOn",
                "path": "Appointment.basedOn",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-ServiceRequest"
                        ]
                    }
                ]
            },
            {
                "id": "Appointment.basedOn.reference",
                "path": "Appointment.basedOn.reference",
                "min": 1
            },
            {
                "id": "Appointment.participant.actor",
                "path": "Appointment.participant.actor",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-PractitionerRole",
                            "http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Location",
                            "http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Patient"
                        ]
                    }
                ]
            },
            {
                "id": "Appointment.participant.required",
                "path": "Appointment.participant.required",
                "mustSupport": true
            },
            {
                "id": "Appointment.participant.status",
                "path": "Appointment.participant.status",
                "mustSupport": true
            },
            {
                "id": "Appointment.participant.period",
                "path": "Appointment.participant.period",
                "mustSupport": true
            },
            {
                "id": "Appointment.participant.period.start",
                "path": "Appointment.participant.period.start",
                "mustSupport": true
            },
            {
                "id": "Appointment.participant.period.end",
                "path": "Appointment.participant.period.end",
                "mustSupport": true
            },
            {
                "id": "Appointment.requestedPeriod",
                "path": "Appointment.requestedPeriod",
                "mustSupport": true
            },
            {
                "id": "Appointment.requestedPeriod.start",
                "path": "Appointment.requestedPeriod.start",
                "mustSupport": true
            },
            {
                "id": "Appointment.requestedPeriod.end",
                "path": "Appointment.requestedPeriod.end",
                "mustSupport": true
            }
        ]
    }
}

Usage

The Appointment resource is used to represent a meeting planned in response to a ServiceRequest. References to other resources are used to convey the details of the appointment including ServiceRequest the appointment is based on (Appointment.basedOn) and participants (Appointment.participant.actor) in the appointment such as a Patient, PractitionerRole or HealthcareService.

Notes

.id

  • used to uniquely identify the resource
  • if a persistent identity for the resource is not available to use when constructing a message Bundle for transmission via Direct Messaging, a UUID SHOULD be used in this element (with a corresponding value in Bundle.entry.fullUrl)

.meta.profile

  • used to declare conformance to this profile
  • populate with a fixed value: http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Appointment|1.0.0

.text

  • used to provide human readable human readable that can be pasted into other systems with complete information about the appointment
  • where populated:
    • .text.div SHALL include a full text summary of the appointment
    • .text.status, populate with the fixed code "generated"

.status

  • typically populated with "booked" (or "cancelled" if unbooked)

.appointmentType

  • typically populated with "INTAKE" or "ASSESSMENT" for a referral appointment

.description

  • title of the appointment (e.g. the Subject on an appointemnt in MS Outlook)

.start

  • populate with the appointment start time
  • format: YYYY-MM-DDThh:mm:ss.sss+zz:zz (e.g. 2015-02-07T13:28:17.239+02:00 or 2017-01-01T00:00:00Z).

.end

  • populate with the appointment end time
  • format: YYYY-MM-DDThh:mm:ss.sss+zz:zz (e.g. 2015-02-07T13:28:17.239+02:00 or 2017-01-01T00:00:00Z).

.minutesDuration

  • duration of appointment in minutes
  • populate with a positive integer

.created

  • populate with the date that this appointment was initially created (NOT the time of the appointment itself)

.comment

  • additional comments and details about the appointment (i.e. the Body of an appointment in MS Outlook)

.patientInstruction

  • detailed information and instructions for the patient

.basedOn

  • associates the Appointment with the ServiceRequest being performed
  • SHALL be populated with a reference to the ServiceRequest being performed
  • if the Appointment is being transmitted via messaging, the referenced ServiceRequest resource SHALL be included in the message as a Bundle.entry

.participant

  • repeating element identifies one or more participants in the appointment where

    • .participant.type is a value from ParticipantType(extensible)
    • .participant.actor a reference to one of:
      • the Patient being seen > SHALL be the same as the ServiceRequest.subject
      • the HealthcareService providing the appointment > SHALL be same as the ServiceRequest.performer if both are present
      • the PractitionerRole seeing the patient
      • the Location of the appointment
    • .participant.status is expected to be "accepted" for a booked appointment
  • Note:

    • if an Appointment is being transmitted via messaging, referenced Patient, PractitionerRole and Location resources SHALL be included in the message as a Bundle.entry
    • HealthcareService SHOULD typically be an external reference