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

CapabilityStatement: WOF Portal Capability Statement

Official URL: https://canonical.fhir.link/servicewell/wof-portal/CapabilityStatement/WOFPortalCapabilityStatement Version: 1.0.0
Active as of 2026-02-02 Computable Name: WOFPortalCapabilityStatement

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

IHE Scheduling: This server instantiates IHE.Scheduling.server (v1.0.0).

Layering principle

  • WOF Connect defines vendor-facing interoperability contracts.
  • WOF Portal builds on WOF Connect to provide a single, enriched, canonical API.

Domain separation principles

  • ActivityDefinition represents a shared service concept and SHALL be identified by code, not by resource id.
  • HealthcareService represents where care is performed.
  • BillingOrganization represents financial responsibility and is independent of service location.
  • PractitionerRole represents a practitioner acting in a specific operational and financial context.

Many-to-many relationships are intentional

  • A HealthcareService MAY be associated with multiple BillingOrganizations.
  • A BillingOrganization MAY provide services at multiple HealthcareServices.
  • A Practitioner MAY have multiple PractitionerRoles across services and billing contexts.

Offer and availability principles

  • Offer represents a computed, context-specific view combining ActivityDefinition, HealthcareService, and PractitionerRole.
  • Offer is intended for presentation and selection, not for scheduling.
  • Actual bookability requires downstream slot or availability checks.

Integration principle

  • External systems integrate with the platform by implementing WOF Connect.
  • WOF Portal APIs MAY return enriched and aggregated views not available in WOF Connect.

This CapabilityStatement documents the canonical behavior of the WOF Portal API.

Client interaction overview

The following diagram illustrates outbound API calls from a patient-facing client to the WOF Portal Proxy. It represents actual usage patterns and supported interactions.

Theres currently two domains for our dev-api:

- **api.wellonfhir.se/{{tenant}}/1.0/R4**      - Swedish developmnent environment
- **api-no.wellonfhir.se/{{tenant}}/1.0/R4**   - Norwegian development environment

tenant is a stable identifier for the organization

Both Requires authentication

Client → WOF-PORTAL:

%%{init: {'theme':'neutral','securityLevel':'loose','fontFamily':'Inter, Arial, sans-serif','sequence': {'diagramMarginX': 30, 'diagramMarginY': 20, 'actorMargin': 220, 'width': 180, 'messageMargin': 32, 'mirrorActors': false, 'wrap': true}}}%%sequenceDiagram
    participant Client as Scheduling Client
    participant Auth as Auth Endpoint
    participant Portal as WOF Portal API

    Note over Client,Portal: base = {{baseUrl}}/{{tenant}}/{{apiVersion}}/R4

    %% System token (from DemoOris.rest)
    Client ->> Auth: POST {{base}}/auth/system-token
    Note over Client,Auth: Header: X-ApiKey {{apiKey}}
    Auth -->> Client: access_token (system)

    %% HealthcareService
    Client ->> Portal: GET {{base}}/fhir/HealthcareService
    Client ->> Portal: GET {{base}}/fhir/HealthcareService/{{healthcareServiceId}}
    Client ->> Portal: GET {{base}}/fhir/HealthcareService/{{healthcareServiceId}}/$get-offers-context<br/>?includeActivityDefinitionPortal={{boolean}}<br/>&includePractitionerRolePortal={{boolean}}

    %% Root operation
    Client ->> Portal: GET {{base}}/fhir/$get-offers-context<br/>?includeActivityDefinitionPortal={{boolean}}<br/>&includeHealthcareServicePortal={{boolean}}<br/>&includePractitionerRolePortal={{boolean}}

    %% ActivityDefinition
    Client ->> Portal: GET {{base}}/fhir/ActivityDefinition
    Client ->> Portal: GET {{base}}/fhir/ActivityDefinition/{{activityDefinitionId}}
    Client ->> Portal: GET {{base}}/fhir/ActivityDefinition/{{activityDefinitionId}}/$get-offers-context<br/>?includeActivityDefinitionPortal={{boolean}}<br/>&includeHealthcareServicePortal={{boolean}}<br/>&includePractitionerRolePortal={{boolean}}
    Client ->> Portal: GET {{base}}/fhir/ActivityDefinition/{{activityDefinitionId}}/$get-offers-context

    %% PractitionerRole
    Client ->> Portal: GET {{base}}/fhir/PractitionerRole
    Client ->> Portal: GET {{base}}/fhir/PractitionerRole/{{practitionerRoleId}}
    Client ->> Portal: GET {{base}}/fhir/PractitionerRole/{{practitionerRoleId}}/$get-offers-context<br/>?includeActivityDefinitionPortal={{boolean}}<br/>&includeHealthcareServicePortal={{boolean}}<br/>&includePractitionerRolePortal={{boolean}}

    %% Catalog resources
    Client ->> Portal: GET {{base}}/fhir/Location
    Client ->> Portal: GET {{base}}/fhir/Organization

    %% IHE Scheduling find 
    Client ->> Portal: GET {{base}}/fhir/Appointment/$find<br/>?start={{find_start}}&end={{find_end}}<br/>&visit-type={{visitTypeSystem}}|{{visitTypeCode}}<br/>&healthcareService=HealthcareService/{{healthcareServiceId}}<br/>&practitionerRole=PractitionerRole/{{practitionerRoleId}}

This diagram is informational and documents expected client usage. It does not expand or modify the formal FHIR conformance rules.

Raw OpenAPI-Swagger Definition file | Download

WOF Portal Capability Statement

  • Implementation Guide Version: 1.0.0
  • FHIR Version: 4.0.1
  • Supported Formats: json, xml
  • Published on: 2026-02-02 12:00:00+0000
  • Published by: Service Well AB

Note to Implementers: FHIR Capabilities

Any FHIR capability may be 'allowed' by the system unless explicitly marked as 'SHALL NOT'. A few items are marked as MAY in the Implementation Guide to highlight their potential relevance to the use case.

This CapabilityStatement instantiates the CapabilityStatement IHE Scheduling Serverversion: 1.0.0)

FHIR RESTful Capabilities

Mode: server

Summary of System-wide Operations
ConformanceOperationDocumentation
SHALL$getOffersContext

Returns enriched offer context for presentation and selection. Invoked as [base]/$get-offers-context

Capabilities by Resource/Profile

Summary

The summary table lists the resources that are part of this configuration, and for each resource it lists:

  • The relevant profiles (if any)
  • The interactions supported by each resource (Read, Search, Update, and Create, are always shown, while VRead, Patch, Delete, History on Instance, or History on Type are only present if at least one of the resources has support for them.
  • The required, recommended, and some optional search parameters (if any).
  • The linked resources enabled for _include
  • The other resources enabled for _revinclude
  • The operations on the resource (if any)
Resource TypeProfileRSUCSearches_include_revincludeOperations
ActivityDefinitionSupported Profiles
  ActivityDefinitionPortal
yy$get-offers-context
HealthcareServiceSupported Profiles
  HealthcareServicePortal
yy$get-offers-context
PractitionerRoleSupported Profiles
  PractitionerRolePortal
yyservice$get-offers-context
PatientSupported Profiles
  Portal Patient
  http://hl7.se/fhir/ig/base/StructureDefinition/SEBasePatient
yyidentifier
OrganizationSupported Profiles
  ServiceProviderPortal
yy_id, identifier
AppointmentSupported Profiles
  Appointment Portal
  Available Appointment Portal
yyactor$find, $book
Location yphysical-type

Core FHIR Resource
ActivityDefinition
Reference Policy
Interaction summary
  • Supports read, search-type.

Supported Profiles

ActivityDefinitionPortal

Documentation

Represents shared service concepts identified by code.

Extended Operations
ConformanceOperationDocumentation
SHALL$get-offers-context

Returns enriched offer context for presentation and selection.
Invoked as [base]/ActivityDefinition/[id]/$get-offers-context

Core FHIR Resource
HealthcareService
Reference Policy
Interaction summary
  • Supports read, search-type.

Supported Profiles

HealthcareServicePortal

Documentation

Represents where healthcare services are performed.

Extended Operations
ConformanceOperationDocumentation
SHALL$get-offers-context

Returns enriched offer context for presentation and selection.
Invoked as [base]/HealthcareService/[id]/$get-offers-context

Core FHIR Resource
PractitionerRole
Reference Policy
Interaction summary
  • Supports read, search-type.

Supported Profiles

PractitionerRolePortal

Documentation

Represents practitioners acting in specific operational and financial contexts.

Search Parameters
ConformanceParameterTypeDocumentation
SHALLservicereference

Filter by PractitionerRole.service (Reference to HealthcareService).

 
Extended Operations
ConformanceOperationDocumentation
SHALL$get-offers-context

Returns enriched offer context for presentation and selection.
Invoked as [base]/PractitionerRole/[id]/$get-offers-context

Core FHIR Resource
Patient
Reference Policy
Interaction summary
  • Supports read, search-type.

Supported Profiles

Portal Patient
http://hl7.se/fhir/ig/base/StructureDefinition/SEBasePatient

Documentation

Represents patients within the WOF Portal, conforming to the PortalPatient profile.

Search Parameters
ConformanceParameterTypeDocumentation
SHALLidentifiertoken

Search by personal number using system|value.

 
Core FHIR Resource
Organization
Reference Policy
Interaction summary
  • Supports read, search-type.

Supported Profiles

ServiceProviderPortal

Documentation

Organizations in WOF Portal MAY conform to multiple profiles, representing different organizational roles.

ServiceProvider represents the top-level owning organization (tenant) within the platform. BillingOrganization represents financial responsibility and ownership of invoicing and reporting.

Organizations are not exposed as searchable catalogs. They are resolved using stable identifiers only:

  • resource id
  • organization number (identifier)

Clients MAY filter by profile when needed (e.g. using _profile), but profile-based filtering is not required for lookup by id or identifier.

Search Parameters
ConformanceParameterTypeDocumentation
SHALL_idtoken

Search by Organization resource id.

SHALLidentifiertoken

Search by organization number using system|value.

 
Core FHIR Resource
Appointment
Reference Policy
Interaction summary
  • Supports read, search-type.

Documentation

Appointment access in WOF Portal.

  • PortalAppointment — represents a booked appointment in a patient context.
  • PortalAvailableAppointment — represents an available appointment returned by $find.

Supports filtering by actor (e.g., HealthcareService/{id}) and IHE Scheduling operations.

Search Parameters
ConformanceParameterTypeDocumentation
SHALLactorreference

Filter appointments by participant actor (e.g., HealthcareService/{id}).

 
Extended Operations
ConformanceOperationDocumentation
SHALL$find

Search for available appointment opportunities using $find (IHE ITI Scheduling).

SHALL$book

Create, modify, or cancel an appointment using $book (IHE ITI Scheduling).

Core FHIR Resource
Location
Reference Policy
Interaction summary
  • Supports search-type.

Documentation

Portal-scoped locations used as areas. Supported interaction: search.

Search Parameters
ConformanceParameterTypeDocumentation
SHALLphysical-typetoken

Filter by Location.physicalType (e.g., Area).