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
| Active as of 2026-02-02 |
<CapabilityStatement xmlns="http://hl7.org/fhir">
<id value="WOFPortalCapabilityStatement"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: CapabilityStatement WOFPortalCapabilityStatement</b></p><a name="WOFPortalCapabilityStatement"> </a><a name="hcWOFPortalCapabilityStatement"> </a><h2 id="title">WOF Portal Capability Statement</h2><ul><li>Implementation Guide Version: 1.0.0 </li><li>FHIR Version: 4.0.1 </li><li>Supported Formats: <code>json</code>, <code>xml</code></li><li>Published on: 2026-02-02 12:00:00+0000 </li><li>Published by: Service Well AB </li></ul><blockquote class="impl-note"><p><strong>Note to Implementers: FHIR Capabilities</strong></p><p>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.</p></blockquote><p>This CapabilityStatement instantiates the CapabilityStatement <a href="https://profiles.ihe.net/ITI/Scheduling/1.0.0/CapabilityStatement-IHE.Scheduling.server.html">IHE Scheduling Serverversion: 1.0.0)</a></p><h2 id="rest">FHIR RESTful Capabilities</h2><div class="panel panel-default"><div class="panel-heading"><h3 id="mode1" class="panel-title">Mode: <code>server</code></h3></div><div class="panel-body"><div class="row"><div class="col-12"><span class="lead">Summary of System-wide Operations</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Operation</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td><a href="OperationDefinition-get-offers-context.html">$getOffersContext</a></td><td><div><p>Returns enriched offer context for presentation and selection. Invoked as [base]/$get-offers-context</p>
</div></td></tr></tbody></table></div></div></div></div><h3 id="resourcesCap1">Capabilities by Resource/Profile</h3><h4 id="resourcesSummary1">Summary</h4><p>The summary table lists the resources that are part of this configuration, and for each resource it lists:</p><ul><li>The relevant profiles (if any)</li><li>The interactions supported by each resource (<b><span class="bg-info">R</span></b>ead, <b><span class="bg-info">S</span></b>earch, <b><span class="bg-info">U</span></b>pdate, and <b><span class="bg-info">C</span></b>reate, are always shown, while <b><span class="bg-info">VR</span></b>ead, <b><span class="bg-info">P</span></b>atch, <b><span class="bg-info">D</span></b>elete, <b><span class="bg-info">H</span></b>istory on <b><span class="bg-info">I</span></b>nstance, or <b><span class="bg-info">H</span></b>istory on <b><span class="bg-info">T</span></b>ype are only present if at least one of the resources has support for them.</li><li><span>The required, recommended, and some optional search parameters (if any). </span></li><li>The linked resources enabled for <code>_include</code></li><li>The other resources enabled for <code>_revinclude</code></li><li>The operations on the resource (if any)</li></ul><div class="table-responsive"><table class="table table-condensed table-hover"><thead><tr><th><b>Resource Type</b></th><th><b>Profile</b></th><th class="text-center"><b title="GET a resource (read interaction)">R</b></th><th class="text-center"><b title="GET all set of resources of the type (search interaction)">S</b></th><th class="text-center"><b title="PUT a new resource version (update interaction)">U</b></th><th class="text-center"><b title="POST a new resource (create interaction)">C</b></th><th><b title="Required and recommended search parameters">Searches</b></th><th><code><b>_include</b></code></th><th><code><b>_revinclude</b></code></th><th><b>Operations</b></th></tr></thead><tbody><tr><td><a href="#ActivityDefinition1-1">ActivityDefinition</a></td><td>Supported Profiles<br/> <a href="StructureDefinition-activity-definition-portal.html">ActivityDefinitionPortal</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center"/><td/><td/><td/><td><code>$get-offers-context</code></td></tr><tr><td><a href="#HealthcareService1-2">HealthcareService</a></td><td>Supported Profiles<br/> <a href="StructureDefinition-healthcare-service-portal.html">HealthcareServicePortal</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center"/><td/><td/><td/><td><code>$get-offers-context</code></td></tr><tr><td><a href="#PractitionerRole1-3">PractitionerRole</a></td><td>Supported Profiles<br/> <a href="StructureDefinition-practitioner-role-portal.html">PractitionerRolePortal</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center"/><td>service</td><td/><td/><td><code>$get-offers-context</code></td></tr><tr><td><a href="#Patient1-4">Patient</a></td><td>Supported Profiles<br/> <a href="StructureDefinition-portal-patient.html">Portal Patient</a><br/> <code>http://hl7.se/fhir/ig/base/StructureDefinition/SEBasePatient</code></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center"/><td>identifier</td><td/><td/><td/></tr><tr><td><a href="#Organization1-5">Organization</a></td><td>Supported Profiles<br/> <a href="StructureDefinition-service-provider-portal.html">ServiceProviderPortal</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center"/><td>_id, identifier</td><td/><td/><td/></tr><tr><td><a href="#Appointment1-6">Appointment</a></td><td>Supported Profiles<br/> <a href="StructureDefinition-portal-appointment.html">Appointment Portal</a><br/> <a href="StructureDefinition-portal-available-appointment.html">Available Appointment Portal</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center"/><td>actor</td><td/><td/><td><code>$find</code>, <code>$book</code></td></tr><tr><td><a href="#Location1-7">Location</a></td><td> </td><td class="text-center"/><td class="text-center">y</td><td class="text-center"/><td class="text-center"/><td>physical-type</td><td/><td/><td/></tr></tbody></table></div><hr/><div class="panel panel-default"><div class="panel-heading"><h4 id="ActivityDefinition1-1" class="panel-title"><span style="float: right;">Resource Conformance: unspecified </span>ActivityDefinition</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-4"><span class="lead">Core FHIR Resource</span><br/><a href="http://hl7.org/fhir/R4/activitydefinition.html">ActivityDefinition</a></div><div class="col-lg-4"><span class="lead">Reference Policy</span><br/></div><div class="col-lg-4"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>.</li></ul></div></div><p/><div class="row"><div class="col-6"><span class="lead">Supported Profiles</span><p><a href="StructureDefinition-activity-definition-portal.html">ActivityDefinitionPortal</a></p></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Represents shared service concepts identified by code.</p>
</div></blockquote></div></div><div class="row"><div class="col-12"><span class="lead">Extended Operations</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Operation</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td><a href="OperationDefinition-get-offers-context.html">$get-offers-context</a></td><td><div><p>Returns enriched offer context for presentation and selection.<br/>
Invoked as [base]/ActivityDefinition/[id]/$get-offers-context</p>
</div></td></tr></tbody></table></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="HealthcareService1-2" class="panel-title"><span style="float: right;">Resource Conformance: unspecified </span>HealthcareService</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-4"><span class="lead">Core FHIR Resource</span><br/><a href="http://hl7.org/fhir/R4/healthcareservice.html">HealthcareService</a></div><div class="col-lg-4"><span class="lead">Reference Policy</span><br/></div><div class="col-lg-4"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>.</li></ul></div></div><p/><div class="row"><div class="col-6"><span class="lead">Supported Profiles</span><p><a href="StructureDefinition-healthcare-service-portal.html">HealthcareServicePortal</a></p></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Represents where healthcare services are performed.</p>
</div></blockquote></div></div><div class="row"><div class="col-12"><span class="lead">Extended Operations</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Operation</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td><a href="OperationDefinition-get-offers-context.html">$get-offers-context</a></td><td><div><p>Returns enriched offer context for presentation and selection.<br/>
Invoked as [base]/HealthcareService/[id]/$get-offers-context</p>
</div></td></tr></tbody></table></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="PractitionerRole1-3" class="panel-title"><span style="float: right;">Resource Conformance: unspecified </span>PractitionerRole</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-4"><span class="lead">Core FHIR Resource</span><br/><a href="http://hl7.org/fhir/R4/practitionerrole.html">PractitionerRole</a></div><div class="col-lg-4"><span class="lead">Reference Policy</span><br/></div><div class="col-lg-4"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>.</li></ul></div></div><p/><div class="row"><div class="col-6"><span class="lead">Supported Profiles</span><p><a href="StructureDefinition-practitioner-role-portal.html">PractitionerRolePortal</a></p></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Represents practitioners acting in specific operational and financial contexts.</p>
</div></blockquote></div></div><div class="row"><div class="col-lg-7"><span class="lead">Search Parameters</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Parameter</th><th>Type</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>service</td><td><code>reference</code></td><td><div><p>Filter by PractitionerRole.service (Reference to HealthcareService).</p>
</div></td></tr></tbody></table></div><div class="col-lg-5"> </div></div><div class="row"><div class="col-12"><span class="lead">Extended Operations</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Operation</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td><a href="OperationDefinition-get-offers-context.html">$get-offers-context</a></td><td><div><p>Returns enriched offer context for presentation and selection.<br/>
Invoked as [base]/PractitionerRole/[id]/$get-offers-context</p>
</div></td></tr></tbody></table></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Patient1-4" class="panel-title"><span style="float: right;">Resource Conformance: unspecified </span>Patient</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-4"><span class="lead">Core FHIR Resource</span><br/><a href="http://hl7.org/fhir/R4/patient.html">Patient</a></div><div class="col-lg-4"><span class="lead">Reference Policy</span><br/></div><div class="col-lg-4"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>.</li></ul></div></div><p/><div class="row"><div class="col-6"><span class="lead">Supported Profiles</span><p><a href="StructureDefinition-portal-patient.html">Portal Patient</a><br/><code>http://hl7.se/fhir/ig/base/StructureDefinition/SEBasePatient</code></p></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Represents patients within the WOF Portal, conforming to the PortalPatient profile.</p>
</div></blockquote></div></div><div class="row"><div class="col-lg-7"><span class="lead">Search Parameters</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Parameter</th><th>Type</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>identifier</td><td><code>token</code></td><td><div><p>Search by personal number using system|value.</p>
</div></td></tr></tbody></table></div><div class="col-lg-5"> </div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Organization1-5" class="panel-title"><span style="float: right;">Resource Conformance: unspecified </span>Organization</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-4"><span class="lead">Core FHIR Resource</span><br/><a href="http://hl7.org/fhir/R4/organization.html">Organization</a></div><div class="col-lg-4"><span class="lead">Reference Policy</span><br/></div><div class="col-lg-4"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>.</li></ul></div></div><p/><div class="row"><div class="col-6"><span class="lead">Supported Profiles</span><p><a href="StructureDefinition-service-provider-portal.html">ServiceProviderPortal</a></p></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Organizations in WOF Portal MAY conform to multiple profiles, representing different organizational roles.</p>
<p>ServiceProvider represents the top-level owning organization (tenant) within the platform.
BillingOrganization represents financial responsibility and ownership of invoicing and reporting.</p>
<p>Organizations are not exposed as searchable catalogs.
They are resolved using stable identifiers only:</p>
<ul>
<li>resource id</li>
<li>organization number (identifier)</li>
</ul>
<p>Clients MAY filter by profile when needed (e.g. using _profile),
but profile-based filtering is not required for lookup by id or identifier.</p>
</div></blockquote></div></div><div class="row"><div class="col-lg-7"><span class="lead">Search Parameters</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Parameter</th><th>Type</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>_id</td><td><code>token</code></td><td><div><p>Search by Organization resource id.</p>
</div></td></tr><tr><td><b>SHALL</b></td><td>identifier</td><td><code>token</code></td><td><div><p>Search by organization number using system|value.</p>
</div></td></tr></tbody></table></div><div class="col-lg-5"> </div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Appointment1-6" class="panel-title"><span style="float: right;">Resource Conformance: unspecified </span>Appointment</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-4"><span class="lead">Core FHIR Resource</span><br/><a href="http://hl7.org/fhir/R4/appointment.html">Appointment</a></div><div class="col-lg-4"><span class="lead">Reference Policy</span><br/></div><div class="col-lg-4"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>.</li></ul></div></div><p/><div class="row"><div class="col-6"><span class="lead">Supported Profiles</span><p><a href="StructureDefinition-portal-appointment.html">Appointment Portal</a><br/><a href="StructureDefinition-portal-available-appointment.html">Available Appointment Portal</a></p></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Appointment access in WOF Portal.</p>
<ul>
<li><code>PortalAppointment</code> — represents a booked appointment in a patient context.</li>
<li><code>PortalAvailableAppointment</code> — represents an available appointment returned by <code>$find</code>.</li>
</ul>
<p>Supports filtering by actor (e.g., HealthcareService/{id}) and IHE Scheduling operations.</p>
</div></blockquote></div></div><div class="row"><div class="col-lg-7"><span class="lead">Search Parameters</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Parameter</th><th>Type</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>actor</td><td><code>reference</code></td><td><div><p>Filter appointments by participant actor (e.g., HealthcareService/{id}).</p>
</div></td></tr></tbody></table></div><div class="col-lg-5"> </div></div><div class="row"><div class="col-12"><span class="lead">Extended Operations</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Operation</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td><a href="OperationDefinition-FindAppointments.html">$find</a></td><td><div><p>Search for available appointment opportunities using $find (IHE ITI Scheduling).</p>
</div></td></tr><tr><td><b>SHALL</b></td><td><a href="OperationDefinition-BookAppointment.html">$book</a></td><td><div><p>Create, modify, or cancel an appointment using $book (IHE ITI Scheduling).</p>
</div></td></tr></tbody></table></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Location1-7" class="panel-title"><span style="float: right;">Resource Conformance: unspecified </span>Location</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-4"><span class="lead">Core FHIR Resource</span><br/><a href="http://hl7.org/fhir/R4/location.html">Location</a></div><div class="col-lg-4"><span class="lead">Reference Policy</span><br/></div><div class="col-lg-4"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>search-type</code>.</li></ul></div></div><p/><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Portal-scoped locations used as areas. Supported interaction: search.</p>
</div></blockquote></div></div><div class="row"><div class="col-lg-7"><span class="lead">Search Parameters</span><table class="table table-condensed table-hover"><thead><tr><th>Conformance</th><th>Parameter</th><th>Type</th><th>Documentation</th></tr></thead><tbody><tr><td><b>SHALL</b></td><td>physical-type</td><td><code>token</code></td><td><div><p>Filter by Location.physicalType (e.g., Area).</p>
</div></td></tr></tbody></table></div><div class="col-lg-5"> </div></div></div></div></div></div>
</text>
<url
value="https://canonical.fhir.link/servicewell/wof-portal/CapabilityStatement/WOFPortalCapabilityStatement"/>
<version value="1.0.0"/>
<name value="WOFPortalCapabilityStatement"/>
<title value="WOF Portal Capability Statement"/>
<status value="active"/>
<experimental value="false"/>
<date value="2026-02-02T12:00:00+00:00"/>
<publisher value="Service Well AB"/>
<contact>
<name value="Service Well AB"/>
<telecom>
<system value="url"/>
<value value="https://servicewell.se"/>
</telecom>
<telecom>
<system value="email"/>
<value value="info@servicewell.se"/>
</telecom>
</contact>
<contact>
<name value="Service well"/>
<telecom>
<system value="email"/>
<value value="info@servicewell.se"/>
<use value="work"/>
</telecom>
</contact>
<description
value="This CapabilityStatement defines the canonical domain model and API principles of the **WOF Portal** owned and operated by Service Well AB."/>
<purpose
value="
**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
```
<small> tenant is a stable identifier for the organization</small>
Both Requires [authentication](./get-started.html#authentication-and-security)
Client → WOF-PORTAL:
<style>
.mermaid {
min-height: 640px;
width: 100%;
max-width: 1600px;
margin: 0 auto;
}
.mermaid svg {
width: 100%;
height: auto;
}
</style>
```mermaid
%%{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."/>
<kind value="capability"/>
<instantiates
value="https://profiles.ihe.net/ITI/Scheduling/CapabilityStatement/IHE.Scheduling.server|1.0.0"/>
<software>
<name value="WOF Portal"/>
</software>
<fhirVersion value="4.0.1"/>
<format value="json"/>
<format value="xml"/>
<rest>
<mode value="server"/>
<resource>
<type value="ActivityDefinition"/>
<supportedProfile
value="https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/activity-definition-portal"/>
<documentation
value="Represents shared service concepts identified by code."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<operation>
<name value="get-offers-context"/>
<definition
value="https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/get-offers-context"/>
<documentation
value="Returns enriched offer context for presentation and selection.
Invoked as [base]/ActivityDefinition/[id]/$get-offers-context"/>
</operation>
</resource>
<resource>
<type value="HealthcareService"/>
<supportedProfile
value="https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/healthcare-service-portal"/>
<documentation
value="Represents where healthcare services are performed."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<operation>
<name value="get-offers-context"/>
<definition
value="https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/get-offers-context"/>
<documentation
value="Returns enriched offer context for presentation and selection.
Invoked as [base]/HealthcareService/[id]/$get-offers-context"/>
</operation>
</resource>
<resource>
<type value="PractitionerRole"/>
<supportedProfile
value="https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/practitioner-role-portal"/>
<documentation
value="Represents practitioners acting in specific operational and financial contexts."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<searchParam>
<name value="service"/>
<type value="reference"/>
<documentation
value="Filter by PractitionerRole.service (Reference to HealthcareService)."/>
</searchParam>
<operation>
<name value="get-offers-context"/>
<definition
value="https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/get-offers-context"/>
<documentation
value="Returns enriched offer context for presentation and selection.
Invoked as [base]/PractitionerRole/[id]/$get-offers-context"/>
</operation>
</resource>
<resource>
<type value="Patient"/>
<supportedProfile
value="https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/portal-patient"/>
<supportedProfile
value="http://hl7.se/fhir/ig/base/StructureDefinition/SEBasePatient"/>
<documentation
value="Represents patients within the WOF Portal, conforming to the PortalPatient profile."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<searchParam>
<name value="identifier"/>
<type value="token"/>
<documentation value="Search by personal number using system|value."/>
</searchParam>
</resource>
<resource>
<type value="Organization"/>
<supportedProfile
value="https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/service-provider-portal"/>
<documentation
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."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<searchParam>
<name value="_id"/>
<type value="token"/>
<documentation value="Search by Organization resource id."/>
</searchParam>
<searchParam>
<name value="identifier"/>
<type value="token"/>
<documentation
value="Search by organization number using system|value."/>
</searchParam>
</resource>
<resource>
<type value="Appointment"/>
<supportedProfile
value="https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/portal-appointment"/>
<supportedProfile
value="https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/portal-available-appointment"/>
<documentation
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."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<searchParam>
<name value="actor"/>
<type value="reference"/>
<documentation
value="Filter appointments by participant actor (e.g., HealthcareService/{id})."/>
</searchParam>
<operation>
<name value="find"/>
<definition
value="https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/FindAppointments"/>
<documentation
value="Search for available appointment opportunities using $find (IHE ITI Scheduling)."/>
</operation>
<operation>
<name value="book"/>
<definition
value="https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/BookAppointment"/>
<documentation
value="Create, modify, or cancel an appointment using $book (IHE ITI Scheduling)."/>
</operation>
</resource>
<resource>
<type value="Location"/>
<documentation
value="Portal-scoped locations used as areas. Supported interaction: search."/>
<interaction>
<code value="search-type"/>
</interaction>
<searchParam>
<name value="physical-type"/>
<type value="token"/>
<documentation value="Filter by Location.physicalType (e.g., Area)."/>
</searchParam>
</resource>
<operation>
<name value="getOffersContext"/>
<definition
value="https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/get-offers-context"/>
<documentation
value="Returns enriched offer context for presentation and selection. Invoked as [base]/$get-offers-context"/>
</operation>
</rest>
</CapabilityStatement>