Gestion d'Agenda Partagé (GAP)
3.0.0-ballot - 3.0.0-ballot

This page is part of the Guide d'implémentation FHIR - Gestion d'Agendas Partagés (v3.0.0-ballot: Release) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: GAP_FrSlot

Official URL: https://interop.esante.gouv.fr/ig/fhir/gap/StructureDefinition/gap-fr-slot Version: 3.0.0-ballot
Draft as of 2023-10-10 Computable Name: GAP_FrSlot

Usage:

Formal Views of Profile Content

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

This structure is derived from FrSlot

NameFlagsCard.TypeDescription & Constraintsdoco
.. Slot 0..*FrSlotA slot of time on a schedule that may be available for booking appointments

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Slot 0..*FrSlotA slot of time on a schedule that may be available for booking appointments
... implicitRules ?!ΣN0..1uriA set of rules under which this content was created
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... serviceCategory ΣN0..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... status ΣN1..1codebusy | free | busy-unavailable | busy-tentative | entered-in-error
Binding: SlotStatus (required): The free/busy status of the slot.

... start ΣN1..1instantDate/Time that the slot is to begin
... end ΣN1..1instantDate/Time that the slot is to conclude

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Slot.serviceCategoryexampleServiceCategory
Slot.statusrequiredSlotStatus

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSlotIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSlotIf 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-4errorSlotIf 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-5errorSlotIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSlotA 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()
ref-1errorSlot.scheduleSHALL 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
.. Slot 0..*FrSlotA slot of time on a schedule that may be available for booking appointments
... id Σ0..1idLogical id of this artifact
... meta ΣN0..1MetaMetadata about the resource
... implicitRules ?!ΣN0..1uriA set of rules under which this content was created
... text N0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier ΣN0..*IdentifierExternal 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 ΣN0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value ΣN0..1stringThe value that is unique
Example General: 123456
.... period ΣCN0..1PeriodTime period when id is/was valid for use
.... assigner ΣCN0..1Reference(Organization)Organization that issued id (may be just text)
... serviceCategory ΣN0..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... serviceType ΣN0..*CodeableConceptThe type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource
Binding: ServiceType (example)
... specialty ΣN0..*CodeableConceptThe specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: fr-practitioner-specialty (required): Additional details about where the content was created (e.g. clinical specialty).


... appointmentType ΣN0..1CodeableConceptThe style of appointment or patient that may be booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
... schedule ΣCN1..1Reference(FrSchedule)The schedule resource that this slot defines an interval of status information
... status ΣN1..1codebusy | free | busy-unavailable | busy-tentative | entered-in-error
Binding: SlotStatus (required): The free/busy status of the slot.

... start ΣN1..1instantDate/Time that the slot is to begin
... end ΣN1..1instantDate/Time that the slot is to conclude
... overbooked N0..1booleanThis slot has already been overbooked, appointments are unlikely to be accepted for this time
... comment N0..1stringComments on the slot to describe any extended information. Such as custom constraints on the slot

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Slot.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Slot.identifier.userequiredIdentifierUse
Slot.identifier.typeextensibleIdentifier Type Codes
Slot.serviceCategoryexampleServiceCategory
Slot.serviceTypeexampleServiceType
Slot.specialtyrequiredfr-practitioner-specialty (a valid code from https://mos.esante.gouv.fr/NOS/TRE_R38-SpecialiteOrdinale/FHIR/TRE-R38-SpecialiteOrdinale)
Slot.appointmentTypepreferredHl7VSAppointmentReasonCodes
Slot.statusrequiredSlotStatus

Constraints

IdGradePath(s)DetailsRequirements
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()
per-1errorSlot.identifier.periodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)
ref-1errorSlot.identifier.assigner, Slot.scheduleSHALL 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'))

This structure is derived from FrSlot

Summary

Differential View

This structure is derived from FrSlot

NameFlagsCard.TypeDescription & Constraintsdoco
.. Slot 0..*FrSlotA slot of time on a schedule that may be available for booking appointments

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Slot 0..*FrSlotA slot of time on a schedule that may be available for booking appointments
... implicitRules ?!ΣN0..1uriA set of rules under which this content was created
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... serviceCategory ΣN0..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... status ΣN1..1codebusy | free | busy-unavailable | busy-tentative | entered-in-error
Binding: SlotStatus (required): The free/busy status of the slot.

... start ΣN1..1instantDate/Time that the slot is to begin
... end ΣN1..1instantDate/Time that the slot is to conclude

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Slot.serviceCategoryexampleServiceCategory
Slot.statusrequiredSlotStatus

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSlotIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSlotIf 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-4errorSlotIf 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-5errorSlotIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSlotA 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()
ref-1errorSlot.scheduleSHALL 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
.. Slot 0..*FrSlotA slot of time on a schedule that may be available for booking appointments
... id Σ0..1idLogical id of this artifact
... meta ΣN0..1MetaMetadata about the resource
... implicitRules ?!ΣN0..1uriA set of rules under which this content was created
... text N0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier ΣN0..*IdentifierExternal 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 ΣN0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value ΣN0..1stringThe value that is unique
Example General: 123456
.... period ΣCN0..1PeriodTime period when id is/was valid for use
.... assigner ΣCN0..1Reference(Organization)Organization that issued id (may be just text)
... serviceCategory ΣN0..1CodeableConceptA broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... serviceType ΣN0..*CodeableConceptThe type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource
Binding: ServiceType (example)
... specialty ΣN0..*CodeableConceptThe specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: fr-practitioner-specialty (required): Additional details about where the content was created (e.g. clinical specialty).


... appointmentType ΣN0..1CodeableConceptThe style of appointment or patient that may be booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
... schedule ΣCN1..1Reference(FrSchedule)The schedule resource that this slot defines an interval of status information
... status ΣN1..1codebusy | free | busy-unavailable | busy-tentative | entered-in-error
Binding: SlotStatus (required): The free/busy status of the slot.

... start ΣN1..1instantDate/Time that the slot is to begin
... end ΣN1..1instantDate/Time that the slot is to conclude
... overbooked N0..1booleanThis slot has already been overbooked, appointments are unlikely to be accepted for this time
... comment N0..1stringComments on the slot to describe any extended information. Such as custom constraints on the slot

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Slot.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Slot.identifier.userequiredIdentifierUse
Slot.identifier.typeextensibleIdentifier Type Codes
Slot.serviceCategoryexampleServiceCategory
Slot.serviceTypeexampleServiceType
Slot.specialtyrequiredfr-practitioner-specialty (a valid code from https://mos.esante.gouv.fr/NOS/TRE_R38-SpecialiteOrdinale/FHIR/TRE-R38-SpecialiteOrdinale)
Slot.appointmentTypepreferredHl7VSAppointmentReasonCodes
Slot.statusrequiredSlotStatus

Constraints

IdGradePath(s)DetailsRequirements
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()
per-1errorSlot.identifier.periodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)
ref-1errorSlot.identifier.assigner, Slot.scheduleSHALL 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'))

This structure is derived from FrSlot

Summary

 

Other representations of profile: CSV, Excel, Schematron