Appointment Created By Extension¶
| Canonical | ../StructureDefinition/nexus-emr-appointment-created-by-extension |
|---|---|
| Status | draft (experimental) · 1.26.0 |
| Base | Extension (constraint) |
| Context | Appointment (element) |
| Source | FSH · JSON |
The agent that created the appointment record (createdBy): authoring practitioner/user (Practitioner, or PractitionerRole where the role binding matters), system/integration (Device), self-booking Patient, RelatedPerson, or Organization. Distinct from participants (attendance) and from the native Appointment.created dateTime (when). Reference target mirrors Composition.author.
FSH
The authored source of truth: extensions/AppointmentCreatedByExtension.fsh (edit on GitHub). One FSH file may define several related artifacts.
// AppointmentCreatedByExtension.fsh
// Authoring/creating agent of an appointment (createdBy): the practitioner (user),
// system/device, self-booking patient, related person, or organization that created
// the appointment record.
//
// Why an extension: R4 Appointment has no author/creator element (nor does R5).
// Appointment.participant models ATTENDANCE / involvement in the visit, not record
// authorship -- the creator is frequently not an attendee (e.g. front-desk staff
// booking on a provider's behalf), and the participant invariants cap the provider
// participant at <=1. The "when" is carried natively by Appointment.created; this
// extension carries only the "who".
//
// Reference target mirrors Composition.author so the model covers user-created
// (Practitioner -- the primary provider identity; PractitionerRole where the role
// binding matters), self-booked (Patient, online booking), system/integration-created
// (Device), RelatedPerson, and Organization cases -- not just EMR users.
Extension: AppointmentCreatedByExtension
Id: nexus-emr-appointment-created-by-extension
Title: "Appointment Created By Extension"
Description: "The agent that created the appointment record (createdBy): authoring practitioner/user (Practitioner, or PractitionerRole where the role binding matters), system/integration (Device), self-booking Patient, RelatedPerson, or Organization. Distinct from participants (attendance) and from the native Appointment.created dateTime (when). Reference target mirrors Composition.author."
* ^url = "../StructureDefinition/nexus-emr-appointment-created-by-extension"
* ^status = #draft
* ^experimental = true
* ^date = "2026-07-30"
* ^publisher = "WELLSTAR Technologies Corp."
* ^contact.name = "Nexus EMR FHIR Implementation Guide"
* ^contact.telecom.system = #url
* ^contact.telecom.value = ".."
* ^jurisdiction = urn:iso:std:iso:3166#CA "Canada"
* ^context[0].type = #element
* ^context[0].expression = "Appointment"
* . ^short = "Who/what created the appointment (createdBy)"
* . ^definition = """
The agent responsible for creating the appointment record -- typically the EMR user
(Practitioner) who booked it, but also a self-booking Patient (online booking), a
system/integration (Device), a RelatedPerson, or an Organization. This is the record's
author, NOT a participant in the visit: the creator is frequently not an attendee (e.g.
front-desk staff booking on a provider's behalf). The time of creation is carried
natively by Appointment.created.
Semantically equivalent to Provenance.agent with type = author (agent.who), plus
Provenance.recorded for the timestamp (carried natively by Appointment.created). This
extension is the lightweight inline form for the common create case; full audit history
(edits, later agents) remains the domain of Provenance. R4/R5/R6 Appointment define no
native author element, so there is no standard element to use instead.
"""
* extension 0..0
* url 1..1
* value[x] 1..1 MS
* value[x] only Reference(NexusEmrCorePractitioner or NexusEmrCorePractitionerRole or Device or Patient or RelatedPerson or Organization)
* valueReference ^short = "Authoring agent -- user (Practitioner, or PractitionerRole where the role binding matters), system (Device), self-booking Patient, RelatedPerson, or Organization"