Polaris FHIR Implementation Guide
1.10.0 - ci-build

Polaris FHIR Implementation Guide - Local Development build (v1.10.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Polaris Schedule (Minimal) Core

Official URL: https://fhir.apps.health/StructureDefinition/polaris-core-schedule Version: 1.10.0
Draft as of 2026-05-26 Computable Name: PolarisCoreSchedule

Minimal Polaris profile for Schedule resources, representing a clinic or provider's bookable calendar. Slots reference back to a Schedule via Slot.schedule. Phase 1 sources OscarPro provider templates (one Schedule per provider) but the profile supports room/equipment (Location) and service-line (HealthcareService) schedules as well.

Polaris Core Schedule Profile

Overview

The Polaris Core Schedule profile represents a bookable calendar — typically a provider's recurring availability, but also rooms, equipment, or service lines. Schedules are the container that owns Slot resources; every PolarisCoreSlot must reference exactly one Schedule via Slot.schedule (FHIR R4 base requirement).

In Phase 1, schedules are sourced from OscarPro's scheduletemplate table (one row per provider-template combination) and materialised into FHIR by the Oscar-side converter. One Schedule resource is emitted per provider per planning horizon.

Key Features

  • Flexible actor model: One profile supports provider-owned (PractitionerRole), room/equipment (Location), and service-line (HealthcareService) schedules. At least one actor type must be present.
  • Polaris ID + raw code identifiers: Same slicing pattern as every other Polaris profile — one Polaris-canonical ID plus optional source-system raw identifiers.
  • Planning horizon: Optional but RECOMMENDED — the rolling booking window the schedule supports (typically 90 days).
  • Coded services: serviceCategory and serviceType with both standard-terminology and raw-code coding slices.

Actor Cardinality

The actor element is sliced into three optional slices, with an invariant (schedule-actor-required) requiring at least one:

  • PractitionerRole 0..1 MS — provider whose calendar this is. Most common case.
  • Location 0..1 MS — for room or equipment schedules (e.g. exam room availability, MRI machine bookings).
  • HealthcareService 0..1 MS — for service-line schedules (e.g. walk-in clinic hours, telephone-triage availability) where no single provider owns the calendar.

Multiple slices may be present (e.g. provider + clinic Location), but at least one of the three must exist.

Relationship to Slot

A Schedule is the parent of one or more Slot resources. Booking workflows typically:

  1. GET Schedule?actor=PractitionerRole/<id>&active=true — discover available calendars
  2. GET Slot?schedule=Schedule/<id>&status=free&start=ge<date> — find free slots
  3. POST Appointment with .slot=[Slot/<id>] — book the slot

Slot.status transitions (free → busy-tentative → busy) are owned by the booking system, not the converter. See PolarisCoreSlot for details.

Alternatives Considered

FHIR R4 has multiple ways to model provider availability. Phase 1 chose Schedule + Slot for these reasons:

Model Why not chosen
PractitionerRole.availableTime / notAvailable Inline weekly-pattern strings; not queryable atomically. Useful for publishing hours, not for booking.
AppointmentResponse Models patient acceptance/decline of a proposed slot; tentative future scope if a formal confirmation step is needed.
Bespoke extensions Reinvents FHIR-defined search semantics.

Schedule + Slot provides concrete, queryable, atomic-state windows — the natural match for a booking UI.

Recurrence

FHIR R4 Schedule has no native recurrence element. OscarPro's recurring weekly templates are materialised into concrete daily Slot instances by the Oscar-side converter (one Slot per bookable time window per day). If a future booking UI needs to render "this slot repeats weekly," that requires an IG-level extension and is follow-up scope.

Phase 1 Source: OscarPro scheduletemplate

The Oscar-side converter (see migration spec in docs/guide/features/scheduling/converter-contracts.md) emits one Schedule per provider, deriving:

  • actor[PractitionerRole] from the template's provider_no
  • actor[Location] from the provider's primary clinic, if available
  • planningHorizon from the date range materialised at emission time
  • identifier[polarisId] as <provider_no> (or another deterministic per-provider value)

Schedules referencing rooms or service lines are not produced by the Oscar converter in Phase 1 but are supported by the profile for future converters and other source EMRs.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule C 0..* Schedule Polaris Schedule Core
Constraints: schedule-has-polaris-id, schedule-actor-required
... meta Σ 0..1 Meta Metadata about the resource
.... source SΣ 0..1 uri Identifies EMR instance & pipeline version the resource came from
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text S 0..1 Narrative Narrative
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... Slices for identifier SΣ 1..* Identifier Business identifier(s) for schedule
Slice: Unordered, Open by pattern:system
.... identifier:polarisId SΣ 1..1 Identifier Polaris Schedule ID
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Required Pattern: official
..... system Σ 1..1 uri Polaris schedule identifier system: https://fhir.apps.health/NamingSystem/<instance-id>-schedule-identifier
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The actual Polaris schedule ID value: unique in source system
Example General: 123456
.... identifier:rawCode SΣ 0..* Identifier Source EMR schedule identifier
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Required Pattern: secondary
..... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-raw-code
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
... active ?!SΣ 0..1 boolean Whether the schedule is in active use
... serviceCategory SΣ 0..* CodeableConcept Service category with raw code support
Binding: ServiceCategory (example)
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard SΣ 0..* Coding Standard service category code
...... system Σ 1..1 uri Identity of the terminology system
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:rawCode SΣ 0..* Coding Source EMR service category code
...... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicecategory-raw-code
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..1 string Representation defined by the system
... serviceType SΣ 0..* CodeableConcept Service type with raw code support
Binding: ServiceType (example)
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard SΣ 0..* Coding Standard service type code
...... system Σ 1..1 uri Identity of the terminology system
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:rawCode SΣ 0..* Coding Source EMR service type code
...... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicetype-raw-code
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..1 string Representation defined by the system
... Slices for actor SΣ 1..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Who/what the schedule belongs to
Slice: Unordered, Open by profile:resolve()
.... actor:PractitionerRole SΣ 0..1 Reference(Patient | Practitioner | Polaris PractitionerRole Core | RelatedPerson | Device | HealthcareService | Location) Provider whose calendar this is
.... actor:Location SΣ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Polaris Location Core) Location (room/equipment) whose calendar this is
.... actor:HealthcareService SΣ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Service line whose calendar this is
... planningHorizon SΣ 0..1 Period Rolling booking window this schedule supports
... comment S 0..1 string Free-text scheduling notes

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Schedule.identifier:polarisId.userequiredPattern Value: official
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Schedule.identifier:rawCode.userequiredPattern Value: secondary
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Schedule.serviceCategoryexampleServiceCategory
http://hl7.org/fhir/ValueSet/service-category
From the FHIR Standard
Schedule.serviceTypeexampleServiceType
http://hl7.org/fhir/ValueSet/service-type
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorScheduleIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorScheduleIf 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-4errorScheduleIf 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-5errorScheduleIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceScheduleA 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** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
schedule-actor-requirederrorScheduleSchedule.actor must contain at least one of PractitionerRole, Location, or HealthcareService
: actor.exists()
schedule-has-polaris-iderrorScheduleMust have at least one identifier with a canonical Polaris system URI
: identifier.exists(system.matches('^https://fhir.apps.health/NamingSystem/[A-Za-z0-9._-]+-schedule-identifier$'))

This structure is derived from Schedule

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule C 0..* Schedule Polaris Schedule Core
Constraints: schedule-has-polaris-id, schedule-actor-required
... meta
.... source S 0..1 uri Identifies EMR instance & pipeline version the resource came from
... text S 0..1 Narrative Narrative
... Slices for identifier S 1..* Identifier Business identifier(s) for schedule
Slice: Unordered, Open by pattern:system
.... identifier:polarisId S 1..1 Identifier Polaris Schedule ID
..... use 0..1 code usual | official | temp | secondary | old (If known)
Required Pattern: official
..... system 1..1 uri Polaris schedule identifier system: https://fhir.apps.health/NamingSystem/<instance-id>-schedule-identifier
..... value 1..1 string The actual Polaris schedule ID value: unique in source system
.... identifier:rawCode S 0..* Identifier Source EMR schedule identifier
..... use 0..1 code usual | official | temp | secondary | old (If known)
Required Pattern: secondary
..... system 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-raw-code
..... value 1..1 string The value that is unique
... serviceCategory S 0..* CodeableConcept Service category with raw code support
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard S 0..* Coding Standard service category code
...... system 1..1 uri Identity of the terminology system
...... code 1..1 code Symbol in syntax defined by the system
..... coding:rawCode S 0..* Coding Source EMR service category code
...... system 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicecategory-raw-code
...... code 1..1 code Symbol in syntax defined by the system
...... display 1..1 string Representation defined by the system
... serviceType S 0..* CodeableConcept Service type with raw code support
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard S 0..* Coding Standard service type code
...... system 1..1 uri Identity of the terminology system
...... code 1..1 code Symbol in syntax defined by the system
..... coding:rawCode S 0..* Coding Source EMR service type code
...... system 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicetype-raw-code
...... code 1..1 code Symbol in syntax defined by the system
...... display 1..1 string Representation defined by the system
... Slices for actor S 1..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Who/what the schedule belongs to
Slice: Unordered, Open by profile:resolve()
.... actor:PractitionerRole S 0..1 Reference(Patient | Practitioner | Polaris PractitionerRole Core | RelatedPerson | Device | HealthcareService | Location) Provider whose calendar this is
.... actor:Location S 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Polaris Location Core) Location (room/equipment) whose calendar this is
.... actor:HealthcareService S 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Service line whose calendar this is
... planningHorizon S 0..1 Period Rolling booking window this schedule supports
... comment S 0..1 string Free-text scheduling notes

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
schedule-actor-requirederrorScheduleSchedule.actor must contain at least one of PractitionerRole, Location, or HealthcareService
: actor.exists()
schedule-has-polaris-iderrorScheduleMust have at least one identifier with a canonical Polaris system URI
: identifier.exists(system.matches('^https://fhir.apps.health/NamingSystem/[A-Za-z0-9._-]+-schedule-identifier$'))
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule C 0..* Schedule Polaris Schedule Core
Constraints: schedule-has-polaris-id, schedule-actor-required
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source SΣ 0..1 uri Identifies EMR instance & pipeline version the resource came from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 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".
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text S 0..1 Narrative Narrative
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier SΣ 1..* Identifier Business identifier(s) for schedule
Slice: Unordered, Open by pattern:system
.... identifier:polarisId SΣ 1..1 Identifier Polaris Schedule ID
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Required Pattern: official
..... type Σ 0..1 CodeableConcept Description 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 Σ 1..1 uri Polaris schedule identifier system: https://fhir.apps.health/NamingSystem/<instance-id>-schedule-identifier
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The actual Polaris schedule ID value: unique in source system
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
.... identifier:rawCode SΣ 0..* Identifier Source EMR schedule identifier
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Required Pattern: secondary
..... type Σ 0..1 CodeableConcept Description 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 Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-raw-code
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... active ?!SΣ 0..1 boolean Whether the schedule is in active use
... serviceCategory SΣ 0..* CodeableConcept Service category with raw code support
Binding: ServiceCategory (example)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard SΣ 0..* Coding Standard service category code
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... coding:rawCode SΣ 0..* Coding Source EMR service category code
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicecategory-raw-code
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... serviceType SΣ 0..* CodeableConcept Service type with raw code support
Binding: ServiceType (example)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard SΣ 0..* Coding Standard service type code
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... coding:rawCode SΣ 0..* Coding Source EMR service type code
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicetype-raw-code
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... specialty Σ 0..* CodeableConcept Type of specialty needed
Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty).
... Slices for actor SΣ 1..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Who/what the schedule belongs to
Slice: Unordered, Open by profile:resolve()
.... actor:PractitionerRole SΣ 0..1 Reference(Patient | Practitioner | Polaris PractitionerRole Core | RelatedPerson | Device | HealthcareService | Location) Provider whose calendar this is
.... actor:Location SΣ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Polaris Location Core) Location (room/equipment) whose calendar this is
.... actor:HealthcareService SΣ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Service line whose calendar this is
... planningHorizon SΣ 0..1 Period Rolling booking window this schedule supports
... comment S 0..1 string Free-text scheduling notes

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Schedule.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
From the FHIR Standard
Schedule.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
From the FHIR Standard
Schedule.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Schedule.identifier:polarisId.userequiredPattern Value: official
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Schedule.identifier:polarisId.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
From the FHIR Standard
Schedule.identifier:rawCode.userequiredPattern Value: secondary
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Schedule.identifier:rawCode.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
From the FHIR Standard
Schedule.serviceCategoryexampleServiceCategory
http://hl7.org/fhir/ValueSet/service-category
From the FHIR Standard
Schedule.serviceTypeexampleServiceType
http://hl7.org/fhir/ValueSet/service-type
From the FHIR Standard
Schedule.specialtypreferredPracticeSettingCodeValueSet
http://hl7.org/fhir/ValueSet/c80-practice-codes
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorScheduleIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorScheduleIf 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-4errorScheduleIf 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-5errorScheduleIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceScheduleA 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** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
schedule-actor-requirederrorScheduleSchedule.actor must contain at least one of PractitionerRole, Location, or HealthcareService
: actor.exists()
schedule-has-polaris-iderrorScheduleMust have at least one identifier with a canonical Polaris system URI
: identifier.exists(system.matches('^https://fhir.apps.health/NamingSystem/[A-Za-z0-9._-]+-schedule-identifier$'))

This structure is derived from Schedule

Summary

Mandatory: 4 elements(12 nested mandatory elements)
Must-Support: 18 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Schedule.identifier
  • The element 1 is sliced based on the value of Schedule.serviceCategory.coding
  • The element 1 is sliced based on the value of Schedule.serviceType.coding
  • The element 1 is sliced based on the value of Schedule.actor

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule C 0..* Schedule Polaris Schedule Core
Constraints: schedule-has-polaris-id, schedule-actor-required
... meta Σ 0..1 Meta Metadata about the resource
.... source SΣ 0..1 uri Identifies EMR instance & pipeline version the resource came from
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text S 0..1 Narrative Narrative
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... Slices for identifier SΣ 1..* Identifier Business identifier(s) for schedule
Slice: Unordered, Open by pattern:system
.... identifier:polarisId SΣ 1..1 Identifier Polaris Schedule ID
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Required Pattern: official
..... system Σ 1..1 uri Polaris schedule identifier system: https://fhir.apps.health/NamingSystem/<instance-id>-schedule-identifier
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The actual Polaris schedule ID value: unique in source system
Example General: 123456
.... identifier:rawCode SΣ 0..* Identifier Source EMR schedule identifier
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Required Pattern: secondary
..... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-raw-code
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
... active ?!SΣ 0..1 boolean Whether the schedule is in active use
... serviceCategory SΣ 0..* CodeableConcept Service category with raw code support
Binding: ServiceCategory (example)
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard SΣ 0..* Coding Standard service category code
...... system Σ 1..1 uri Identity of the terminology system
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:rawCode SΣ 0..* Coding Source EMR service category code
...... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicecategory-raw-code
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..1 string Representation defined by the system
... serviceType SΣ 0..* CodeableConcept Service type with raw code support
Binding: ServiceType (example)
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard SΣ 0..* Coding Standard service type code
...... system Σ 1..1 uri Identity of the terminology system
...... code Σ 1..1 code Symbol in syntax defined by the system
..... coding:rawCode SΣ 0..* Coding Source EMR service type code
...... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicetype-raw-code
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..1 string Representation defined by the system
... Slices for actor SΣ 1..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Who/what the schedule belongs to
Slice: Unordered, Open by profile:resolve()
.... actor:PractitionerRole SΣ 0..1 Reference(Patient | Practitioner | Polaris PractitionerRole Core | RelatedPerson | Device | HealthcareService | Location) Provider whose calendar this is
.... actor:Location SΣ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Polaris Location Core) Location (room/equipment) whose calendar this is
.... actor:HealthcareService SΣ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Service line whose calendar this is
... planningHorizon SΣ 0..1 Period Rolling booking window this schedule supports
... comment S 0..1 string Free-text scheduling notes

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Schedule.identifier:polarisId.userequiredPattern Value: official
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Schedule.identifier:rawCode.userequiredPattern Value: secondary
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Schedule.serviceCategoryexampleServiceCategory
http://hl7.org/fhir/ValueSet/service-category
From the FHIR Standard
Schedule.serviceTypeexampleServiceType
http://hl7.org/fhir/ValueSet/service-type
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorScheduleIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorScheduleIf 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-4errorScheduleIf 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-5errorScheduleIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceScheduleA 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** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
schedule-actor-requirederrorScheduleSchedule.actor must contain at least one of PractitionerRole, Location, or HealthcareService
: actor.exists()
schedule-has-polaris-iderrorScheduleMust have at least one identifier with a canonical Polaris system URI
: identifier.exists(system.matches('^https://fhir.apps.health/NamingSystem/[A-Za-z0-9._-]+-schedule-identifier$'))

Differential View

This structure is derived from Schedule

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule C 0..* Schedule Polaris Schedule Core
Constraints: schedule-has-polaris-id, schedule-actor-required
... meta
.... source S 0..1 uri Identifies EMR instance & pipeline version the resource came from
... text S 0..1 Narrative Narrative
... Slices for identifier S 1..* Identifier Business identifier(s) for schedule
Slice: Unordered, Open by pattern:system
.... identifier:polarisId S 1..1 Identifier Polaris Schedule ID
..... use 0..1 code usual | official | temp | secondary | old (If known)
Required Pattern: official
..... system 1..1 uri Polaris schedule identifier system: https://fhir.apps.health/NamingSystem/<instance-id>-schedule-identifier
..... value 1..1 string The actual Polaris schedule ID value: unique in source system
.... identifier:rawCode S 0..* Identifier Source EMR schedule identifier
..... use 0..1 code usual | official | temp | secondary | old (If known)
Required Pattern: secondary
..... system 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-raw-code
..... value 1..1 string The value that is unique
... serviceCategory S 0..* CodeableConcept Service category with raw code support
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard S 0..* Coding Standard service category code
...... system 1..1 uri Identity of the terminology system
...... code 1..1 code Symbol in syntax defined by the system
..... coding:rawCode S 0..* Coding Source EMR service category code
...... system 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicecategory-raw-code
...... code 1..1 code Symbol in syntax defined by the system
...... display 1..1 string Representation defined by the system
... serviceType S 0..* CodeableConcept Service type with raw code support
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard S 0..* Coding Standard service type code
...... system 1..1 uri Identity of the terminology system
...... code 1..1 code Symbol in syntax defined by the system
..... coding:rawCode S 0..* Coding Source EMR service type code
...... system 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicetype-raw-code
...... code 1..1 code Symbol in syntax defined by the system
...... display 1..1 string Representation defined by the system
... Slices for actor S 1..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Who/what the schedule belongs to
Slice: Unordered, Open by profile:resolve()
.... actor:PractitionerRole S 0..1 Reference(Patient | Practitioner | Polaris PractitionerRole Core | RelatedPerson | Device | HealthcareService | Location) Provider whose calendar this is
.... actor:Location S 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Polaris Location Core) Location (room/equipment) whose calendar this is
.... actor:HealthcareService S 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Service line whose calendar this is
... planningHorizon S 0..1 Period Rolling booking window this schedule supports
... comment S 0..1 string Free-text scheduling notes

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
schedule-actor-requirederrorScheduleSchedule.actor must contain at least one of PractitionerRole, Location, or HealthcareService
: actor.exists()
schedule-has-polaris-iderrorScheduleMust have at least one identifier with a canonical Polaris system URI
: identifier.exists(system.matches('^https://fhir.apps.health/NamingSystem/[A-Za-z0-9._-]+-schedule-identifier$'))

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Schedule C 0..* Schedule Polaris Schedule Core
Constraints: schedule-has-polaris-id, schedule-actor-required
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source SΣ 0..1 uri Identifies EMR instance & pipeline version the resource came from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 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".
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text S 0..1 Narrative Narrative
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier SΣ 1..* Identifier Business identifier(s) for schedule
Slice: Unordered, Open by pattern:system
.... identifier:polarisId SΣ 1..1 Identifier Polaris Schedule ID
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Required Pattern: official
..... type Σ 0..1 CodeableConcept Description 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 Σ 1..1 uri Polaris schedule identifier system: https://fhir.apps.health/NamingSystem/<instance-id>-schedule-identifier
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The actual Polaris schedule ID value: unique in source system
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
.... identifier:rawCode SΣ 0..* Identifier Source EMR schedule identifier
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Required Pattern: secondary
..... type Σ 0..1 CodeableConcept Description 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 Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-raw-code
Example General: http://www.acme.com/identifiers/patient
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... active ?!SΣ 0..1 boolean Whether the schedule is in active use
... serviceCategory SΣ 0..* CodeableConcept Service category with raw code support
Binding: ServiceCategory (example)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard SΣ 0..* Coding Standard service category code
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... coding:rawCode SΣ 0..* Coding Source EMR service category code
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicecategory-raw-code
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... serviceType SΣ 0..* CodeableConcept Service type with raw code support
Binding: ServiceType (example)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by pattern:system
..... coding:standard SΣ 0..* Coding Standard service type code
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... coding:rawCode SΣ 0..* Coding Source EMR service type code
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-schedule-servicetype-raw-code
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... specialty Σ 0..* CodeableConcept Type of specialty needed
Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty).
... Slices for actor SΣ 1..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Who/what the schedule belongs to
Slice: Unordered, Open by profile:resolve()
.... actor:PractitionerRole SΣ 0..1 Reference(Patient | Practitioner | Polaris PractitionerRole Core | RelatedPerson | Device | HealthcareService | Location) Provider whose calendar this is
.... actor:Location SΣ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Polaris Location Core) Location (room/equipment) whose calendar this is
.... actor:HealthcareService SΣ 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location) Service line whose calendar this is
... planningHorizon SΣ 0..1 Period Rolling booking window this schedule supports
... comment S 0..1 string Free-text scheduling notes

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Schedule.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
From the FHIR Standard
Schedule.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
From the FHIR Standard
Schedule.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Schedule.identifier:polarisId.userequiredPattern Value: official
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Schedule.identifier:polarisId.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
From the FHIR Standard
Schedule.identifier:rawCode.userequiredPattern Value: secondary
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Schedule.identifier:rawCode.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
From the FHIR Standard
Schedule.serviceCategoryexampleServiceCategory
http://hl7.org/fhir/ValueSet/service-category
From the FHIR Standard
Schedule.serviceTypeexampleServiceType
http://hl7.org/fhir/ValueSet/service-type
From the FHIR Standard
Schedule.specialtypreferredPracticeSettingCodeValueSet
http://hl7.org/fhir/ValueSet/c80-practice-codes
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorScheduleIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorScheduleIf 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-4errorScheduleIf 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-5errorScheduleIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceScheduleA 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** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
schedule-actor-requirederrorScheduleSchedule.actor must contain at least one of PractitionerRole, Location, or HealthcareService
: actor.exists()
schedule-has-polaris-iderrorScheduleMust have at least one identifier with a canonical Polaris system URI
: identifier.exists(system.matches('^https://fhir.apps.health/NamingSystem/[A-Za-z0-9._-]+-schedule-identifier$'))

This structure is derived from Schedule

Summary

Mandatory: 4 elements(12 nested mandatory elements)
Must-Support: 18 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Schedule.identifier
  • The element 1 is sliced based on the value of Schedule.serviceCategory.coding
  • The element 1 is sliced based on the value of Schedule.serviceType.coding
  • The element 1 is sliced based on the value of Schedule.actor

 

Other representations of profile: CSV, Excel, Schematron