ITB - Online appointment booking service, published by Service Well AB. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/servicewell/servicewell.fhir.wof-portal/ and changes regularly. See the Directory of published versions
| Official URL: https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/get-offers-context | Version: 1.0.0 | |||
| Active as of 2026-04-20 | Computable Name: GetOffersContext | |||
$get-offers-context is a read-oriented FHIR operation designed to let a frontend quickly populate booking content so a patient can choose what to book and with whom/where — without needing multiple round-trips.
It may include ActivityDefinitionPortal, HealthcareServicePortal, PractitionerRolePortal and OfferPortal.
It MUST NOT include Schedule, Slot, or bookable time slots.
This operation returns a profiled Bundle that may include:
ActivityDefinitionPortal (what is being offered)HealthcareServicePortal (where / which clinic service offers it)PractitionerRolePortal (who can perform it)The response is intentionally shaped for fast content rendering, not for scheduling.
NOTE
- Operation name:
getOffersContext- Operation usage:
$get-offers-context
$getOffersContext does not answer:
In other words:
Those concerns belong to downstream availability/slot endpoints.
Non-goals / exclusions
The operation can be exposed at (at least) the following levels:
System:
GET /fhir/$get-offers-context
ActivityDefinition scope:
GET /fhir/ActivityDefinition/{id}/$get-offers-context
HealthcareService scope:
GET /fhir/HealthcareService/{id}/$get-offers-context
PractitionerRole scope:
GET /fhir/PractitionerRole/{id}/$get-offers-context
The server may return different subsets depending on the endpoint and/or query parameters, but the response is always a Bundle.
Resource type
resources (depending on inputs) The response Bundle MAY include any combination of:
ActivityDefinitionPortalHealthcareServicePortalPractitionerRolePortalOfferPortal (custom resource/profile)OfferPortal resource (custom, profiled)OfferPortal is the compact “join object” used by clients to connect:
ActivityDefinitionPortal)HealthcareServicePortal)PractitionerRolePortal)An Offer contains:
healthcareService — Reference(HealthcareServicePortal) (with display populated when possible)practitionerRole — Reference(PractitionerRolePortal) (with display populated when possible)activityDefinition — Reference(ActivityDefinitionPortal) (with display populated when possible)Offer may also include presentation-focused settings needed for booking content, e.g.:
Note: duration and price are intended for booking/marketing presentation. They are not required to be machine-parseable.
We use a profiled Bundle so that:
$get-offers-context for a scope (e.g. an ActivityDefinition).ActivityDefinition by idHealthcareService by idPractitionerRole by idOffer listURL: [base]/$get-offers-context
URL: [base]/ActivityDefinition/[id]/$get-offers-context
URL: [base]/HealthcareService/[id]/$get-offers-context
URL: [base]/PractitionerRole/[id]/$get-offers-context
| Use | Name | Scope | Cardinality | Type | Binding | Documentation |
| IN | includeActivityDefinitionPortal | 0..1 | boolean | If true, the response Bundle SHALL include ActivityDefinitionPortal resources. If omitted or false, ActivityDefinitionPortal resources are not included. | ||
| IN | includeHealthcareServicePortal | 0..1 | boolean | If true, the response Bundle SHALL include HealthcareServicePortal resources. If omitted or false, HealthcareServicePortal resources are not included. | ||
| IN | includePractitionerRolePortal | 0..1 | boolean | If true, the response Bundle SHALL include PractitionerRolePortal resources. If omitted or false, PractitionerRolePortal resources are not included. | ||
| OUT | return | 1..1 | Bundle (Bundle (Offers Context) — WOF Portal) | A profiled Bundle containing offers context resources. |