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/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).
This CapabilityStatement documents the canonical behavior of the WOF Portal API.
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
json, xmlNote 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)
server| Conformance | Operation | Documentation |
|---|---|---|
| SHALL | $getOffersContext | Returns enriched offer context for presentation and selection. Invoked as [base]/$get-offers-context |
The summary table lists the resources that are part of this configuration, and for each resource it lists:
_include_revinclude| Resource Type | Profile | R | S | U | C | Searches | _include | _revinclude | Operations |
|---|---|---|---|---|---|---|---|---|---|
| ActivityDefinition | Supported Profiles ActivityDefinitionPortal | y | y | $get-offers-context | |||||
| HealthcareService | Supported Profiles HealthcareServicePortal | y | y | $get-offers-context | |||||
| PractitionerRole | Supported Profiles PractitionerRolePortal | y | y | service | $get-offers-context | ||||
| Patient | Supported Profiles Portal Patient http://hl7.se/fhir/ig/base/StructureDefinition/SEBasePatient | y | y | identifier | |||||
| Organization | Supported Profiles ServiceProviderPortal | y | y | _id, identifier | |||||
| Appointment | Supported Profiles Appointment Portal Available Appointment Portal | y | y | actor | $find, $book | ||||
| Location | y | physical-type |
Represents shared service concepts identified by code.
| Conformance | Operation | Documentation |
|---|---|---|
| SHALL | $get-offers-context | Returns enriched offer context for presentation and selection. |
Represents where healthcare services are performed.
| Conformance | Operation | Documentation |
|---|---|---|
| SHALL | $get-offers-context | Returns enriched offer context for presentation and selection. |
Represents practitioners acting in specific operational and financial contexts.
| Conformance | Parameter | Type | Documentation |
|---|---|---|---|
| SHALL | service | reference | Filter by PractitionerRole.service (Reference to HealthcareService). |
| Conformance | Operation | Documentation |
|---|---|---|
| SHALL | $get-offers-context | Returns enriched offer context for presentation and selection. |
Portal Patienthttp://hl7.se/fhir/ig/base/StructureDefinition/SEBasePatient
Represents patients within the WOF Portal, conforming to the PortalPatient profile.
| Conformance | Parameter | Type | Documentation |
|---|---|---|---|
| SHALL | identifier | token | Search by personal number using system|value. |
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.
| Conformance | Parameter | Type | Documentation |
|---|---|---|---|
| SHALL | _id | token | Search by Organization resource id. |
| SHALL | identifier | token | Search by organization number using system|value. |
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.
| Conformance | Parameter | Type | Documentation |
|---|---|---|---|
| SHALL | actor | reference | Filter appointments by participant actor (e.g., HealthcareService/{id}). |
Portal-scoped locations used as areas. Supported interaction: search.
| Conformance | Parameter | Type | Documentation |
|---|---|---|---|
| SHALL | physical-type | token | Filter by Location.physicalType (e.g., Area). |