ITB - Online appointment booking service
1.0.0 - Initial Release

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

Artifacts Summary

This page provides a list of the FHIR artifacts defined as part of this implementation guide.

Behavior: Capability Statements

The following artifacts define the specific capabilities that different types of systems are expected to have in order to comply with this implementation guide. Systems conforming to this implementation guide are expected to declare conformance to one or more of the following capability statements.

WOF Portal Capability Statement

This CapabilityStatement defines the canonical domain model and API principles of the WOF Portal owned and operated by Service Well AB.

Behavior: Operation Definitions

These are custom operations that can be supported by and/or invoked by systems conforming to this implementation guide.

$getOffersContext — Booking Content Context

$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)
  • Offer resources (a lightweight “relation + settings” object)

The response is intentionally shaped for fast content rendering, not for scheduling.

Book / Modify / Cancel Appointment

Creates, modifies, or cancels an Appointment based on the supplied Appointment resource.

This operation corresponds to the IHE ITI Scheduling $book operation and:

  • CREATES a new Appointment when a new, schedulable Appointment is supplied
  • MODIFIES an existing Appointment when an updated Appointment is supplied
  • CANCELS an existing Appointment when a cancellation Appointment is supplied

On success, the operation returns the finalized Appointment in an IHE Scheduled Availability Bundle.

Find Appointments (Available Slots)

Finds available appointment opportunities (slots) and returns them as proposed Appointments.

This operation corresponds to the IHE ITI Scheduling $find operation and returns a Bundle of Appointment resources conforming to the IHE Scheduled Availability Bundle profile.

Structures: Logical Models

These define data models that represent the domain covered by this implementation guide in more business-friendly terms than the underlying FHIR resources.

BillingOrganization

BillingOrganization represents the business entity used when creating an appointment.

Different source systems may call this concept different things, such as Business Unit, Clinic, or similar, but within WOF Portal this concept is normalized as BillingOrganization.

It answers the question: "Which business entity is financially and administratively responsible when an appointment is created?"

This is a logical model and not an API resource in WOF Portal. The portal uses identifier-based traceability to billing organizations in source systems instead of exposing BillingOrganization as a standalone FHIR resource.

This logical model is referenced from PractitionerRolePortal using organization.identifier and organization.display.

Practitioner

Practitioner represents the person who performs care within an offer or appointment context.

It answers the question: "Which individual person performs the service?"

This is a logical model and not an API resource in WOF Portal. The portal uses identifier-based traceability to practitioners in source systems instead of exposing Practitioner as a standalone FHIR resource.

This logical model is referenced from PractitionerRolePortal using practitioner.identifier and practitioner.display.

Structures: Abstract Profiles

These are profiles on resources or data types that describe patterns used by other profiles, but cannot be instantiated directly. I.e. instances can conform to profiles based on these abstract profiles but do not declare conformance to the abstract profiles themselves.

Wof Base ActivityDefinition

Base profile of wof ActivityDefinition

Wof Base Appointment

Base profile of wof Appointment. Inherits IHE Scheduling Appointment.

Wof Base HealthcareService

Base profile of wof HealthcareService

Wof Base Patient

Base profile of wof Patient

Wof Base PractitionerRole

Base profile of wof PractitionerRole

Structures: Resource Profiles

These define constraints on FHIR resources for systems conforming to this implementation guide.

ActivityDefinitionPortal

ActivityDefinition represents what can be offered and booked as a service.

It answers the question: “What service is the patient booking?”

Actor-specific obligations

  • WofPortalClient only needs to populate code.coding.code when submitting a known service type code.
  • WofPortalServer populates the full representation, including meta, presentation fields, kind, and the complete code structure.

This profile intentionally constrains base FHIR to define a stable and testable API contract for WOF Portal.

Appointment Portal

The public API model for 'Portal Appointment
Appointment representation of a booked visit. Inherits IHE Scheduling Appointment.

This profile is to be used in a patient context and where the appointment status is anything other than '#proposed'.

Available Appointment Portal

The public API model for 'Available Appointments'
Appointment representation of an available appointment. Inherits IHE Scheduling Appointment.

Bundle (Offers Context) — WOF Portal

Response Bundle for $getOffersContext. Contains a subset of ActivityDefinitionPortal, HealthcareServicePortal, PractitionerRolePortal and OfferPortal. Intended for fast content rendering. Does not include scheduling or bookable time slots (no Schedule, no Slot).

HealthcareServiceLocation

HealthcareServiceLocation represents the contained location instance used by HealthcareServicePortal.

It answers the question: "Where should the patient go to receive care for this healthcare service?"

This profile is intended to be used as the contained Location instance referenced by a HealthcareServicePortal resource. It carries the address for where care is delivered for that healthcare service and may reference a parent LocationArea that groups healthcare services.

This profile intentionally constrains base FHIR to define a stable and testable API contract for WOF Portal.

HealthcareServicePortal

HealthcareServicePortal represents the place and operational context where care is performed.

It answers the question: “Where can the patient receive a service?”

The profile is used to present bookable care locations in the portal, including the responsible organization, contact information, location references, and portal-specific clinic information.

Portal-specific presentation details are grouped in the clinicInfo extension, while booking-related attachment payloads are grouped in the attachments extension.

This profile intentionally constrains base FHIR to define a stable and testable API contract for WOF Portal.

Location Area

LocationArea represents a parent area that groups related healthcare services and care delivery locations.

It answers the question: "Which larger area or grouping does this healthcare service location belong to?"

This profile is used as the parent Location for contained HealthcareServiceLocation instances and other service locations that should be grouped under a shared area in the portal.

This profile intentionally constrains base FHIR to define a stable and testable API contract for WOF Portal.

OfferPortal

OfferPortal represents a bookable offering in a specific context.

It answers the question: “Which service can be booked, by whom, and where — and what are the booking-facing settings in that context?”

Portal Find Appointment response

A bundle containing available appointments based on search parameters. Returned as the result of the '$find' operation and Appointment search.

Portal Patient

Representation of a patient in Wof-portal public API system.

PractitionerRolePortal

PractitionerRolePortal represents a practitioner acting in a specific operational and financial context.

It answers the question: “In which role, at which service location, and under which financial responsibility does this practitioner perform services?”

ServiceProviderPortal

ServiceProvider represents the top-level owning organization within the platform.

It answers the question: “Which organization owns the configuration, endpoints, and service structure for a customer?”

Structures: Extension Definitions

These define constraints on FHIR data types for systems conforming to this implementation guide.

ActivityDefinitionReference

A reference to an ActivityDefinition that describes the type of activity or service associated with an Appointment.
This extension allows linking an Appointment to a formal definition of the activity being performed, enabling structured representation of the intended service or procedure.

Appointment Update - Reschedule & Cancellation

Information about web rescheduling and whether the appointment can be rescheduled or cancelled at the current time.

Binary Reference

Reference to a contained Binary resource.

Booking Rules

Container extension for booking rules that govern cancellation, rescheduling, age limits, and minimum advance booking time.

This extension is designed to be reusable across multiple WOF Portal resources, including healthcare services and organization-level configurations such as service providers.

Campaigns

Container extension for repeated campaign identifiers.

Clinic Info

Container extension for clinic information shown in the portal.

Organization Settings

Container extension for organization-level portal settings configured in backoffice.

These settings control what portal information and UI elements should be shown for resources owned by the organization, such as healthcare services presented in the portal.

Portal Consent To Marketing

Patient consent to marketing communication.

PractitionerRole Description

Description of the practitioner role.

Service Characteristics

Composite extension structuring key characteristics for HealthcareService and Appointment. Contains three main areas:

  • 'scheduling' (booking rules and availability),
  • 'workflow' (API and resource functionality),
  • 'security' (security requirements, e.g., login).

Enables standardized and machine-readable communication of clinic booking policies, API capabilities, and security level.

Sort Key

Sort order key for Location.

WofBase List Reference

Points to a contained List resource that defines related items.

Terminology: Value Sets

These define sets of codes used by systems conforming to this implementation guide.

Allowed Personal Number Identifier Systems

ValueSet containing allowed identifier.system values for national personal numbers.

Organizational Banner Text Positions

Organizational settings for banner text positions.

Organizational Clinic Image Rules

Organizational settings for clinic image display rules.

Organizational Practitioner Avatar Rules

Organizational settings for practitioner avatar display rules.

Organizational Price Display Rules

Organizational settings for price display rules.

Physical Type Wof VS

Value set for physical types in WOF.

WOF Connect Service Types

Full ValueSet for WOF Connect service types used across PMS adapters.

WOF-Base Booking Confirmation Characteristic

WOF-Base ValueSet for booking confirmation Characteristic for the source PMS system - used in HealthcareService.characteristic

WOF-Base ScheduleCharacteristic

WOF-Base ValueSet for schedule Characteristic for the source PMS system - used in HealthcareService.characteristic

Terminology: Code Systems

These define new code systems used by systems conforming to this implementation guide.

Organizational Settings

Code system for organization-level display settings and grouped rule options.

WOF Connect Service Types

Service types used across PMS adapters.

WOF Personal Number Identifier Systems

Allowed identifier.system values for national personal numbers used in WOF Connect.

WOF-Base Characteristic

WOF-Base CodeSystem for Characteristic for the source PMS system - used in WOF-Base HealthcareService.characteristic

Terminology: Naming Systems

These define identifier and/or code system identities used by systems conforming to this implementation guide.

EndpointIdentifierSystemForAppointment

Root identifier namespace for Appointment source-system primary keys per endpoint.
Pattern: https://canonical.fhir.link/servicewell/wof-portal/identifier-system/endpoint-identifier-system-for-appointment/{endpointId}

EndpointIdentifierSystemForBillingOrganization

Root identifier namespace for billing-organization source-system primary keys per endpoint.
Pattern: https://canonical.fhir.link/servicewell/wof-portal/identifier-system/endpoint-identifier-system-for-billingorganization/{endpointId}

EndpointIdentifierSystemForPatient

Root identifier namespace for Patient source-system primary keys per endpoint.
Pattern: https://canonical.fhir.link/servicewell/wof-portal/identifier-system/endpoint-identifier-system-for-patient/{endpointId}

EndpointIdentifierSystemForPractitioner

Root identifier namespace for Practitioner source-system primary keys per endpoint.
Pattern: https://canonical.fhir.link/servicewell/wof-portal/identifier-system/endpoint-identifier-system-for-practitioner/{endpointId}

WofPortalIdentifierSystemRoot

Root identifier namespace for all identifier systems defined within Service Well WOF Portal.

Example: Example Instances

These are example instances that show what data produced and consumed by systems conforming with this implementation guide might look like.

ActivityDefinition Search Response

API response returning a searchset Bundle of ActivityDefinition resources.

FindAppointments Response

API response for the $find-appointments operation returning a Bundle of available appointment slots.

GetOfferingsResponse — only references

Example of the GetOfferingsResponseBundle without entries for referenced resources

GetOffersContext Response

API response for $getOffersContext on a ActivityDefinition returning offering references without included resources.

GetOffersContext Response — with included resources

API response for $getOffersContext on a ActivityDefinition returning offerings with included HealthcareService, ActivityDefinition, and PractitionerRole resources.

HealthcareService Response

API response containing a single HealthcareServicePortal instance with clinic info, booking rules, and contained Location.

Organization Search Response

API response returning a searchset Bundle of Organization resources.

PractitionerRole Response

API response of a single PractitionerRolePortal instance with contained Binary avatar.