Guide d’Implémentation FHIR – Pré-admission Hospitalière en Ligne
1.0.0-ballot - ballot France (la)

This page is part of the Guide d'Implémentation FHIR – Pré-admission Hospitalière en Ligne (v1.0.0-ballot: draft Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. No current official version has been published yet. For a full list of available versions, see the Directory of published versions

Resource Profile: Fr Preadmission Appointment Profile

Official URL: https://hl7.fr/ig/fhir/preadmission/StructureDefinition/preadmission-appointment-fr Version: 1.0.0-ballot
Active as of 2026-10-21 Computable Name: PreadmissionAppointmentFr

Profil Appointment pour un rendez-vous de préadmission

Introduction

Dans le cadre de la préadmission hospitalière, la prise de rendez-vous est une étape essentielle qui initie le processus administratif. Elle permet de planifier une consultation ou un séjour hospitalier et de collecter les informations nécessaires à la préparation de l’admission.
Les rendez-vous sont modélisés dans FHIR à l’aide de la ressource Appointment, enrichie d’extensions spécifiques pour répondre aux besoins du processus de préadmission.


Rôle de la ressource Appointment

La ressource Appointment joue un rôle central dans la gestion des rendez-vous liés à la préadmission. Elle permet de :

  • Planifier une consultation ou un séjour hospitalier.
  • Associer des questionnaires médicaux remplis par le patient.
  • Référencer les consentements recueillis lors de la prise de rendez-vous.
  • Coordonner les échanges entre les différents systèmes impliqués (portail patient, SIH, etc.).

Spécificités du profil PreadmissionAppointmentFr

Le profil PreadmissionAppointmentFr apporte des contraintes spécifiques pour répondre aux besoins de la préadmission.

Contraintes principales

  • Participant : Le participant principal doit être un patient, référencé via participant.actor avec une ressource Patient.
  • Lien avec les questionnaires : Les questionnaires de pré-admission sont associés au rendez-vous via QuestionnaireResponse.subject=Appointment/{id}.
    Les réponses peuvent être récupérées via une recherche par patient : GET /QuestionnaireResponse?patient=Patient/{id}

Ressource FHIR : Appointment

La ressource Appointment contient les informations nécessaires à la planification d’un rendez-vous. Elle inclut des métadonnées essentielles telles que la date, l’heure, les participants, et les raisons du rendez-vous.

Contraintes principales

  • Statut du rendez-vous : Défini via Appointment.status (par exemple, booked, cancelled).
  • Description : Permet de préciser la nature du rendez-vous (par exemple, “IRM cérébrale”).
  • Participants : Inclut le patient et les professionnels de santé impliqués.
  • Raisons du rendez-vous : Spécifiées via Appointment.reasonCode.

Lien avec le patient

  • Lien avec le patient : Chaque rendez-vous est directement lié à une ressource Patient via participant.actor.

Lien avec les questionnaires

Les questionnaires de pré-admission sont associés au rendez-vous via
QuestionnaireResponse.subject = Appointment/{id}.

  • Questionnaire
    Définit la structure (questions, règles, etc.).
    Le champ subjectType: ["Appointment"] est obligatoire.

  • QuestionnaireResponse

    • Référence le questionnaire via
      questionnaire: "Questionnaire/preadmission-rdv"
    • Lie les réponses au rendez-vous via
      subject = Appointment/{id}

Recherche des réponses pour un RDV

GET /QuestionnaireResponse?subject=Appointment/1234&status=completed

Schéma des relations

Questionnaire/preadmission-rdv └─ subjectType: [“Appointment”] │ └─ questionnaire (référence) │ QuestionnaireResponse/resp-001 └─ subject: Appointment/1234 ← Lien direct RDV ↔ réponses

Récupération des ressources liées à un rendez-vous

Dans le cadre de la préadmission, plusieurs ressources sont liées au patient associé au rendez-vous. Voici comment les récupérer :

Récupérer les Coverage (couvertures sociales)

Il n’existe pas de lien direct entre Appointment et Coverage dans FHIR. La méthode recommandée est :

Approche en 2 étapes :

# 1. Récupérer l'Appointment pour obtenir le patient
GET /Appointment/appt-irm-001

# 2. Extraire le patient.id depuis participant[].actor et chercher les Coverage
GET /Coverage?patient=Patient/patient-001

Cette requête retourne l’Appointment ainsi que toutes les Coverage du patient dans un seul Bundle.

Récupérer les QuestionnaireResponse

Par subject (Appointment) :

GET /QuestionnaireResponse?subject=Appointment/appt-irm-001

Par patient :

GET /QuestionnaireResponse?patient=Patient/patient-001

Par patient :

GET /Consent?patient=Patient/patient-001

Récupérer l’Encounter de préadmission

Par appointment :

GET /Encounter?appointment=Appointment/appt-irm-001

Par patient :

GET /Encounter?patient=Patient/patient-001

Récupérer les DocumentReference

Via l’Encounter (si déjà connu) :

GET /DocumentReference?encounter=Encounter/encounter-irm-001

Via le patient :

GET /DocumentReference?patient=Patient/patient-001

Bonnes pratiques

  • Planification précise : Assurez-vous que les dates et heures des rendez-vous sont correctement définies pour éviter les conflits.
  • Traçabilité des consentements : Associez systématiquement les consentements recueillis au rendez-vous pour garantir une traçabilité complète.
  • Validation des questionnaires : Vérifiez que les questionnaires sont remplis avant la date du rendez-vous.
  • Contexte : un commentaire peutr être ajouté dans Appointment.comment pour préciser le contexte de la venue à venir (Par exemple: ALD, accident du travail, etc.).

Conclusion

La ressource Appointment, enrichie d’extensions spécifiques, joue un rôle clé dans la gestion des rendez-vous liés à la préadmission hospitalière. Elle garantit une organisation structurée et conforme des informations, tout en facilitant leur traitement par les systèmes administratifs et médicaux.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Appointment C 0..* FRCoreAppointmentProfile 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
Appointment.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Appointment.Slices for extension Content/Rules for all slices
Appointment.Slices for extension.extension:appointmentOperator 0..1 Reference(FR Core Organization Profile(2.2.0) | FR Core Practitioner Profile(2.2.0) | FR Core Patient Profile(2.2.0) | RelatedPerson) FR Core Appointment Operator Extension
URL: https://hl7.fr/ig/fhir/core/StructureDefinition/fr-core-appointment-operator
Constraints: ext-1
Appointment.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
Appointment.status This element is a modifier element. This element is included in summaries. 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.
Appointment.participant C 1..* BackboneElement Participants involved in appointment
Constraints: app-1
Appointment.participant.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
Appointment.participant.actor This element is included in summaries. 0..1 Reference(FR Core Patient Profile | FR Core Patient INS Profile | FR Core Practitioner Profile | FR Core Healthcare Service Profile) Person, Location/HealthcareService or Device
Appointment.participant.status This element is included in summaries. 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.status Base required AppointmentStatus 📍4.0.1 FHIR Std.
Appointment.participant.​status Base required ParticipationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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 Appointment.implicitRules, Appointment.extension:appointmentOperator, Appointment.modifierExtension, Appointment.status, Appointment.participant, Appointment.participant.modifierExtension, Appointment.participant.actor, Appointment.participant.status All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Appointment.extension:appointmentOperator, Appointment.modifierExtension, Appointment.participant.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from FRCoreAppointmentProfile

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Appointment 0..* FRCoreAppointmentProfile 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)
Appointment.participant
Appointment.participant.actor 0..1 Reference(FR Core Patient Profile | FR Core Patient INS Profile | FR Core Practitioner Profile | FR Core Healthcare Service Profile) Person, Location/HealthcareService or Device

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Appointment C 0..* FRCoreAppointmentProfile 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
Appointment.id This element is included in summaries. 0..1 id Logical id of this artifact
Appointment.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Appointment.meta.id 0..1 string Unique id for inter-element referencing
Appointment.meta.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
Appointment.meta.versionId This element is included in summaries. 0..1 id Version specific identifier
Appointment.meta.lastUpdated This element is included in summaries. 0..1 instant When the resource version last changed
Appointment.meta.source This element is included in summaries. 0..1 uri Identifies where the resource comes from
Appointment.meta.Slices for profile This element is included in summaries. 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
Slice: Unordered, Open by value:$this
Appointment.meta.Slices for profile.profile:fr-canonical This element is included in summaries. 0..1 canonical(StructureDefinition) Profiles this resource claims to conform to

Required Pattern: https://hl7.fr/ig/fhir/core/StructureDefinition/fr-core-appointment|2.2.0 (extensions allowed)
Appointment.meta.security This element is included in summaries. 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
Appointment.meta.tag This element is included in summaries. 0..* 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".
Appointment.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Appointment.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Appointment.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
Appointment.contained 0..* Resource Contained, inline Resources
Appointment.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
Appointment.Slices for extension.extension:appointmentOperator 0..1 Reference(FR Core Organization Profile(2.2.0) | FR Core Practitioner Profile(2.2.0) | FR Core Patient Profile(2.2.0) | RelatedPerson) FR Core Appointment Operator Extension
URL: https://hl7.fr/ig/fhir/core/StructureDefinition/fr-core-appointment-operator
Constraints: ext-1
Appointment.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
Appointment.identifier This element is included in summaries. 0..* Identifier External Ids for this item
Appointment.status This element is a modifier element. This element is included in summaries. 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.
Appointment.cancelationReason This element is included in summaries. 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
Appointment.serviceCategory This element is included in summaries. 0..* CodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
Appointment.serviceType This element is included in summaries. 0..* CodeableConcept The specific service that is to be performed during this appointment
Binding: ServiceType (example)
Appointment.specialty This element is included in summaries. 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: FRCoreValueSetPractitionerSpecialty (2.2.0) (required)
Appointment.appointmentType This element is included in summaries. 0..1 CodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
Binding: Hl7VSAppointmentReasonCodes (3.0.0) (preferred)
Appointment.reasonCode This element is included in summaries. 0..* CodeableConcept Coded reason this appointment is scheduled
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
Appointment.reasonReference 0..* Reference(Condition | Procedure | Observation | ImmunizationRecommendation) Reason the appointment is to take place (resource)
Appointment.priority 0..1 unsignedInt Used to make informed decisions if needing to re-prioritize
Appointment.description 0..1 string Shown on a subject line in a meeting request, or appointment list
Appointment.supportingInformation 0..* Reference(Resource) Additional information to support the appointment
Appointment.start This element is included in summaries. 0..1 instant When appointment is to take place
Appointment.end This element is included in summaries. 0..1 instant When appointment is to conclude
Appointment.minutesDuration 0..1 positiveInt Can be less than start/end (e.g. estimate)
Appointment.slot 0..* Reference(FR Core Slot Profile(2.2.0)) The slots that this appointment is filling
Appointment.created 0..1 dateTime The date that this appointment was initially created
Appointment.comment 0..1 string Additional comments
Appointment.patientInstruction 0..1 string Detailed information and instructions for the patient
Appointment.basedOn 0..* Reference(ServiceRequest) The service request this appointment is allocated to assess
Appointment.participant C 1..* BackboneElement Participants involved in appointment
Constraints: app-1
Appointment.participant.id 0..1 string Unique id for inter-element referencing
Appointment.participant.extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
Appointment.participant.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
Appointment.participant.type This element is included in summaries. 0..* CodeableConcept Role of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.
Appointment.participant.actor This element is included in summaries. 0..1 Reference(FR Core Patient Profile | FR Core Patient INS Profile | FR Core Practitioner Profile | FR Core Healthcare Service Profile) Person, Location/HealthcareService or Device
Appointment.participant.required This element is included in summaries. 0..1 code required | optional | information-only
Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
Appointment.participant.status This element is included in summaries. 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.
Appointment.participant.period 0..1 Period Participation period of the actor
Appointment.requestedPeriod 0..* Period Potential date/time interval(s) requested to allocate the appointment within

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.meta.security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
Appointment.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Appointment.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Appointment.status Base required AppointmentStatus 📍4.0.1 FHIR Std.
Appointment.cancelationReason Base example Appointment cancellation reason 📍4.0.1 FHIR Std.
Appointment.serviceCategory Base example Service category 📍4.0.1 FHIR Std.
Appointment.serviceType Base example Service type 📍4.0.1 FHIR Std.
Appointment.specialty Base required FR Core ValueSet Practitioner specialty 📍2.2.0 Guide d'implémentation FR Core v2.2
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📍3.0.0 THO v7.4
Appointment.reasonCode Base preferred Encounter Reason Codes 📍4.0.1 FHIR Std.
Appointment.participant.​type Base extensible Participant type 📍4.0.1 FHIR Std.
Appointment.participant.​required Base required ParticipantRequired 📍4.0.1 FHIR Std.
Appointment.participant.​status Base required ParticipationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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 Appointment.meta, Appointment.meta.extension, Appointment.meta.versionId, Appointment.meta.lastUpdated, Appointment.meta.source, Appointment.meta.profile, Appointment.meta.profile:fr-canonical, Appointment.meta.security, Appointment.meta.tag, Appointment.implicitRules, Appointment.language, Appointment.text, Appointment.extension, Appointment.extension:appointmentOperator, Appointment.modifierExtension, Appointment.identifier, Appointment.status, Appointment.cancelationReason, Appointment.serviceCategory, Appointment.serviceType, Appointment.specialty, Appointment.appointmentType, Appointment.reasonCode, Appointment.reasonReference, Appointment.priority, Appointment.description, Appointment.supportingInformation, Appointment.start, Appointment.end, Appointment.minutesDuration, Appointment.slot, Appointment.created, Appointment.comment, Appointment.patientInstruction, Appointment.basedOn, Appointment.participant, Appointment.participant.extension, Appointment.participant.modifierExtension, Appointment.participant.type, Appointment.participant.actor, Appointment.participant.required, Appointment.participant.status, Appointment.participant.period, Appointment.requestedPeriod All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Appointment.meta.extension, Appointment.extension, Appointment.extension:appointmentOperator, Appointment.modifierExtension, Appointment.participant.extension, Appointment.participant.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Appointment C 0..* FRCoreAppointmentProfile 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
Appointment.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Appointment.Slices for extension Content/Rules for all slices
Appointment.Slices for extension.extension:appointmentOperator 0..1 Reference(FR Core Organization Profile(2.2.0) | FR Core Practitioner Profile(2.2.0) | FR Core Patient Profile(2.2.0) | RelatedPerson) FR Core Appointment Operator Extension
URL: https://hl7.fr/ig/fhir/core/StructureDefinition/fr-core-appointment-operator
Constraints: ext-1
Appointment.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
Appointment.status This element is a modifier element. This element is included in summaries. 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.
Appointment.participant C 1..* BackboneElement Participants involved in appointment
Constraints: app-1
Appointment.participant.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
Appointment.participant.actor This element is included in summaries. 0..1 Reference(FR Core Patient Profile | FR Core Patient INS Profile | FR Core Practitioner Profile | FR Core Healthcare Service Profile) Person, Location/HealthcareService or Device
Appointment.participant.status This element is included in summaries. 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.status Base required AppointmentStatus 📍4.0.1 FHIR Std.
Appointment.participant.​status Base required ParticipationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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 Appointment.implicitRules, Appointment.extension:appointmentOperator, Appointment.modifierExtension, Appointment.status, Appointment.participant, Appointment.participant.modifierExtension, Appointment.participant.actor, Appointment.participant.status All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Appointment.extension:appointmentOperator, Appointment.modifierExtension, Appointment.participant.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from FRCoreAppointmentProfile

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Appointment 0..* FRCoreAppointmentProfile 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)
Appointment.participant
Appointment.participant.actor 0..1 Reference(FR Core Patient Profile | FR Core Patient INS Profile | FR Core Practitioner Profile | FR Core Healthcare Service Profile) Person, Location/HealthcareService or Device

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Appointment C 0..* FRCoreAppointmentProfile 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
Appointment.id This element is included in summaries. 0..1 id Logical id of this artifact
Appointment.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Appointment.meta.id 0..1 string Unique id for inter-element referencing
Appointment.meta.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
Appointment.meta.versionId This element is included in summaries. 0..1 id Version specific identifier
Appointment.meta.lastUpdated This element is included in summaries. 0..1 instant When the resource version last changed
Appointment.meta.source This element is included in summaries. 0..1 uri Identifies where the resource comes from
Appointment.meta.Slices for profile This element is included in summaries. 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
Slice: Unordered, Open by value:$this
Appointment.meta.Slices for profile.profile:fr-canonical This element is included in summaries. 0..1 canonical(StructureDefinition) Profiles this resource claims to conform to

Required Pattern: https://hl7.fr/ig/fhir/core/StructureDefinition/fr-core-appointment|2.2.0 (extensions allowed)
Appointment.meta.security This element is included in summaries. 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
Appointment.meta.tag This element is included in summaries. 0..* 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".
Appointment.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Appointment.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Appointment.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
Appointment.contained 0..* Resource Contained, inline Resources
Appointment.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
Appointment.Slices for extension.extension:appointmentOperator 0..1 Reference(FR Core Organization Profile(2.2.0) | FR Core Practitioner Profile(2.2.0) | FR Core Patient Profile(2.2.0) | RelatedPerson) FR Core Appointment Operator Extension
URL: https://hl7.fr/ig/fhir/core/StructureDefinition/fr-core-appointment-operator
Constraints: ext-1
Appointment.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
Appointment.identifier This element is included in summaries. 0..* Identifier External Ids for this item
Appointment.status This element is a modifier element. This element is included in summaries. 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.
Appointment.cancelationReason This element is included in summaries. 0..1 CodeableConcept The coded reason for the appointment being cancelled
Binding: AppointmentCancellationReason (example)
Appointment.serviceCategory This element is included in summaries. 0..* CodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
Appointment.serviceType This element is included in summaries. 0..* CodeableConcept The specific service that is to be performed during this appointment
Binding: ServiceType (example)
Appointment.specialty This element is included in summaries. 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: FRCoreValueSetPractitionerSpecialty (2.2.0) (required)
Appointment.appointmentType This element is included in summaries. 0..1 CodeableConcept The style of appointment or patient that has been booked in the slot (not service type)
Binding: Hl7VSAppointmentReasonCodes (3.0.0) (preferred)
Appointment.reasonCode This element is included in summaries. 0..* CodeableConcept Coded reason this appointment is scheduled
Binding: EncounterReasonCodes (preferred): The Reason for the appointment to take place.
Appointment.reasonReference 0..* Reference(Condition | Procedure | Observation | ImmunizationRecommendation) Reason the appointment is to take place (resource)
Appointment.priority 0..1 unsignedInt Used to make informed decisions if needing to re-prioritize
Appointment.description 0..1 string Shown on a subject line in a meeting request, or appointment list
Appointment.supportingInformation 0..* Reference(Resource) Additional information to support the appointment
Appointment.start This element is included in summaries. 0..1 instant When appointment is to take place
Appointment.end This element is included in summaries. 0..1 instant When appointment is to conclude
Appointment.minutesDuration 0..1 positiveInt Can be less than start/end (e.g. estimate)
Appointment.slot 0..* Reference(FR Core Slot Profile(2.2.0)) The slots that this appointment is filling
Appointment.created 0..1 dateTime The date that this appointment was initially created
Appointment.comment 0..1 string Additional comments
Appointment.patientInstruction 0..1 string Detailed information and instructions for the patient
Appointment.basedOn 0..* Reference(ServiceRequest) The service request this appointment is allocated to assess
Appointment.participant C 1..* BackboneElement Participants involved in appointment
Constraints: app-1
Appointment.participant.id 0..1 string Unique id for inter-element referencing
Appointment.participant.extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
Appointment.participant.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
Appointment.participant.type This element is included in summaries. 0..* CodeableConcept Role of participant in the appointment
Binding: ParticipantType (extensible): Role of participant in encounter.
Appointment.participant.actor This element is included in summaries. 0..1 Reference(FR Core Patient Profile | FR Core Patient INS Profile | FR Core Practitioner Profile | FR Core Healthcare Service Profile) Person, Location/HealthcareService or Device
Appointment.participant.required This element is included in summaries. 0..1 code required | optional | information-only
Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
Appointment.participant.status This element is included in summaries. 1..1 code accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.
Appointment.participant.period 0..1 Period Participation period of the actor
Appointment.requestedPeriod 0..* Period Potential date/time interval(s) requested to allocate the appointment within

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.meta.security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
Appointment.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Appointment.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Appointment.status Base required AppointmentStatus 📍4.0.1 FHIR Std.
Appointment.cancelationReason Base example Appointment cancellation reason 📍4.0.1 FHIR Std.
Appointment.serviceCategory Base example Service category 📍4.0.1 FHIR Std.
Appointment.serviceType Base example Service type 📍4.0.1 FHIR Std.
Appointment.specialty Base required FR Core ValueSet Practitioner specialty 📍2.2.0 Guide d'implémentation FR Core v2.2
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📍3.0.0 THO v7.4
Appointment.reasonCode Base preferred Encounter Reason Codes 📍4.0.1 FHIR Std.
Appointment.participant.​type Base extensible Participant type 📍4.0.1 FHIR Std.
Appointment.participant.​required Base required ParticipantRequired 📍4.0.1 FHIR Std.
Appointment.participant.​status Base required ParticipationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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 Appointment.meta, Appointment.meta.extension, Appointment.meta.versionId, Appointment.meta.lastUpdated, Appointment.meta.source, Appointment.meta.profile, Appointment.meta.profile:fr-canonical, Appointment.meta.security, Appointment.meta.tag, Appointment.implicitRules, Appointment.language, Appointment.text, Appointment.extension, Appointment.extension:appointmentOperator, Appointment.modifierExtension, Appointment.identifier, Appointment.status, Appointment.cancelationReason, Appointment.serviceCategory, Appointment.serviceType, Appointment.specialty, Appointment.appointmentType, Appointment.reasonCode, Appointment.reasonReference, Appointment.priority, Appointment.description, Appointment.supportingInformation, Appointment.start, Appointment.end, Appointment.minutesDuration, Appointment.slot, Appointment.created, Appointment.comment, Appointment.patientInstruction, Appointment.basedOn, Appointment.participant, Appointment.participant.extension, Appointment.participant.modifierExtension, Appointment.participant.type, Appointment.participant.actor, Appointment.participant.required, Appointment.participant.status, Appointment.participant.period, Appointment.requestedPeriod All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Appointment.meta.extension, Appointment.extension, Appointment.extension:appointmentOperator, Appointment.modifierExtension, Appointment.participant.extension, Appointment.participant.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron