Skip to content

Appointment Profile

Canonical../StructureDefinition/nexus-emr-core-appointment
Statusdraft · 1.26.0
BaseAppointment (constraint)
SourceFSH · JSON

Minimal Nexus EMR profile for Appointment resources, primarily for mapping status, start date (Last Visit Date), and required patient/practitioner participants. Assumes filtering for status='fulfilled' happens during data retrieval/processing. Contains embedded aliases and invariants.

Invariants

Every rule in force on a conforming instance. This profile rows are stated here; inherited rows come from the base resource and are listed so that a constraint named on an element is findable. Invariant keys elsewhere on this page link into this table.

Key Source Severity On Rule
appointment-participant-location this profile error Appointment Must have exactly one participant whose actor references a Location
participant.where(actor.reference.matches('(^
appointment-participant-patient this profile error Appointment At most one participant whose actor references a Patient
participant.where(actor.reference.matches('(^
appointment-participant-practitioner this profile error Appointment At most one participant whose actor references a provider (Practitioner or PractitionerRole)
participant.where(actor.reference.matches('(^
app-1 inherited error Appointment.participant Either the type or actor on the participant SHALL be specified
type.exists() or actor.exists()
app-2 inherited error Appointment Either start and end are specified, or neither
start.exists() = end.exists()
app-3 inherited error Appointment Only proposed or cancelled appointments can be missing start/end dates
(start.exists() and end.exists()) or (status in ('proposed'
app-4 inherited 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 inherited error Appointment If the resource is contained in another resource, it SHALL NOT contain nested Resources
contained.contained.empty()
dom-3 inherited 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
dom-4 inherited 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 inherited error Appointment If a resource is contained in another resource, it SHALL NOT have a security label
contained.meta.security.empty()
dom-6 inherited warning Appointment A resource should have narrative for robust management
text.div.exists()
ele-1 inherited error Appointment.meta All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
ext-1 inherited error Appointment.meta.extension Must have either extensions or value[x], not both
extension.exists() != value.exists()