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 |
{
"resourceType" : "CapabilityStatement",
"id" : "WOFPortalCapabilityStatement",
"text" : {
"status" : "extensions",
"div" : "<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>\n</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/>\u00a0\u00a0<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/>\u00a0\u00a0<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/>\u00a0\u00a0<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/>\u00a0\u00a0<a href=\"StructureDefinition-portal-patient.html\">Portal Patient</a><br/>\u00a0\u00a0<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/>\u00a0\u00a0<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/>\u00a0\u00a0<a href=\"StructureDefinition-portal-appointment.html\">Appointment Portal</a><br/>\u00a0\u00a0<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>\u00a0</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>\n</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/>\nInvoked as [base]/ActivityDefinition/[id]/$get-offers-context</p>\n</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>\n</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/>\nInvoked as [base]/HealthcareService/[id]/$get-offers-context</p>\n</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>\n</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>\n</div></td></tr></tbody></table></div><div class=\"col-lg-5\">\u00a0</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/>\nInvoked as [base]/PractitionerRole/[id]/$get-offers-context</p>\n</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>\n</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>\n</div></td></tr></tbody></table></div><div class=\"col-lg-5\">\u00a0</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>\n<p>ServiceProvider represents the top-level owning organization (tenant) within the platform.\nBillingOrganization represents financial responsibility and ownership of invoicing and reporting.</p>\n<p>Organizations are not exposed as searchable catalogs.\nThey are resolved using stable identifiers only:</p>\n<ul>\n<li>resource id</li>\n<li>organization number (identifier)</li>\n</ul>\n<p>Clients MAY filter by profile when needed (e.g. using _profile),\nbut profile-based filtering is not required for lookup by id or identifier.</p>\n</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>\n</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>\n</div></td></tr></tbody></table></div><div class=\"col-lg-5\">\u00a0</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>\n<ul>\n<li><code>PortalAppointment</code> — represents a booked appointment in a patient context.</li>\n<li><code>PortalAvailableAppointment</code> — represents an available appointment returned by <code>$find</code>.</li>\n</ul>\n<p>Supports filtering by actor (e.g., HealthcareService/{id}) and IHE Scheduling operations.</p>\n</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>\n</div></td></tr></tbody></table></div><div class=\"col-lg-5\">\u00a0</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>\n</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>\n</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>\n</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>\n</div></td></tr></tbody></table></div><div class=\"col-lg-5\">\u00a0</div></div></div></div></div></div>"
},
"url" : "https://canonical.fhir.link/servicewell/wof-portal/CapabilityStatement/WOFPortalCapabilityStatement",
"version" : "1.0.0",
"name" : "WOFPortalCapabilityStatement",
"title" : "WOF Portal Capability Statement",
"status" : "active",
"experimental" : false,
"date" : "2026-02-02T12:00:00+00:00",
"publisher" : "Service Well AB",
"contact" : [
{
"name" : "Service Well AB",
"telecom" : [
{
"system" : "url",
"value" : "https://servicewell.se"
},
{
"system" : "email",
"value" : "info@servicewell.se"
}
]
},
{
"name" : "Service well",
"telecom" : [
{
"system" : "email",
"value" : "info@servicewell.se",
"use" : "work"
}
]
}
],
"description" : "This CapabilityStatement defines the canonical domain model and API principles of the **WOF Portal** owned and operated by Service Well AB.",
"purpose" : "\n**IHE Scheduling:** This server instantiates *IHE.Scheduling.server* (v1.0.0).\n\n## Layering principle\n- **WOF Connect** defines vendor-facing interoperability contracts.\n- **WOF Portal** builds on WOF Connect to provide a single, enriched, canonical API.\n\n## Domain separation principles\n- **ActivityDefinition** represents a shared service concept and SHALL be identified by code, not by resource id.\n- **HealthcareService** represents where care is performed.\n- **BillingOrganization** represents financial responsibility and is independent of service location.\n- **PractitionerRole** represents a practitioner acting in a specific operational and financial context.\n\n## Many-to-many relationships are intentional\n- A HealthcareService MAY be associated with multiple BillingOrganizations.\n- A BillingOrganization MAY provide services at multiple HealthcareServices.\n- A Practitioner MAY have multiple PractitionerRoles across services and billing contexts.\n\n## Offer and availability principles\n- **Offer** represents a computed, context-specific view combining ActivityDefinition,\n HealthcareService, and PractitionerRole.\n- Offer is intended for presentation and selection, not for scheduling.\n- Actual bookability requires downstream slot or availability checks.\n\n## Integration principle\n- External systems integrate with the platform by implementing **WOF Connect**.\n- WOF Portal APIs MAY return enriched and aggregated views not available in WOF Connect.\n\nThis CapabilityStatement documents the canonical behavior of the WOF Portal API.\n\n## Client interaction overview\nThe following diagram illustrates outbound API calls from a patient-facing client\nto the WOF Portal Proxy. It represents actual usage patterns and supported interactions.\n\nTheres currently two domains for our dev-api: \n```\n- **api.wellonfhir.se/{{tenant}}/1.0/R4** - Swedish developmnent environment\n- **api-no.wellonfhir.se/{{tenant}}/1.0/R4** - Norwegian development environment\n```\n\n<small> tenant is a stable identifier for the organization</small>\n\nBoth Requires [authentication](./get-started.html#authentication-and-security)\n\n\nClient → WOF-PORTAL:\n\n<style>\n .mermaid {\n min-height: 640px;\n width: 100%;\n max-width: 1600px;\n margin: 0 auto;\n }\n\n .mermaid svg {\n width: 100%;\n height: auto;\n }\n</style>\n\n```mermaid\n%%{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\n participant Client as Scheduling Client\n participant Auth as Auth Endpoint\n participant Portal as WOF Portal API\n\n Note over Client,Portal: base = {{baseUrl}}/{{tenant}}/{{apiVersion}}/R4\n\n %% System token (from DemoOris.rest)\n Client ->> Auth: POST {{base}}/auth/system-token\n Note over Client,Auth: Header: X-ApiKey {{apiKey}}\n Auth -->> Client: access_token (system)\n\n %% HealthcareService\n Client ->> Portal: GET {{base}}/fhir/HealthcareService\n Client ->> Portal: GET {{base}}/fhir/HealthcareService/{{healthcareServiceId}}\n Client ->> Portal: GET {{base}}/fhir/HealthcareService/{{healthcareServiceId}}/$get-offers-context<br/>?includeActivityDefinitionPortal={{boolean}}<br/>&includePractitionerRolePortal={{boolean}}\n\n %% Root operation\n Client ->> Portal: GET {{base}}/fhir/$get-offers-context<br/>?includeActivityDefinitionPortal={{boolean}}<br/>&includeHealthcareServicePortal={{boolean}}<br/>&includePractitionerRolePortal={{boolean}}\n\n %% ActivityDefinition\n Client ->> Portal: GET {{base}}/fhir/ActivityDefinition\n Client ->> Portal: GET {{base}}/fhir/ActivityDefinition/{{activityDefinitionId}}\n Client ->> Portal: GET {{base}}/fhir/ActivityDefinition/{{activityDefinitionId}}/$get-offers-context<br/>?includeActivityDefinitionPortal={{boolean}}<br/>&includeHealthcareServicePortal={{boolean}}<br/>&includePractitionerRolePortal={{boolean}}\n Client ->> Portal: GET {{base}}/fhir/ActivityDefinition/{{activityDefinitionId}}/$get-offers-context\n\n %% PractitionerRole\n Client ->> Portal: GET {{base}}/fhir/PractitionerRole\n Client ->> Portal: GET {{base}}/fhir/PractitionerRole/{{practitionerRoleId}}\n Client ->> Portal: GET {{base}}/fhir/PractitionerRole/{{practitionerRoleId}}/$get-offers-context<br/>?includeActivityDefinitionPortal={{boolean}}<br/>&includeHealthcareServicePortal={{boolean}}<br/>&includePractitionerRolePortal={{boolean}}\n\n %% Catalog resources\n Client ->> Portal: GET {{base}}/fhir/Location\n Client ->> Portal: GET {{base}}/fhir/Organization\n\n %% IHE Scheduling find \n 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}}\n```\n\nThis diagram is informational and documents expected client usage.\nIt does not expand or modify the formal FHIR conformance rules.",
"kind" : "capability",
"instantiates" : [
🔗 "https://profiles.ihe.net/ITI/Scheduling/CapabilityStatement/IHE.Scheduling.server|1.0.0"
],
"software" : {
"name" : "WOF Portal"
},
"fhirVersion" : "4.0.1",
"format" : [
"json",
"xml"
],
"rest" : [
{
"mode" : "server",
"resource" : [
{
"type" : "ActivityDefinition",
"supportedProfile" : [
🔗 "https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/activity-definition-portal"
],
"documentation" : "Represents shared service concepts identified by code.",
"interaction" : [
{
"code" : "read"
},
{
"code" : "search-type"
}
],
"operation" : [
{
"name" : "get-offers-context",
"definition" : "https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/get-offers-context",
"documentation" : "Returns enriched offer context for presentation and selection. \n Invoked as [base]/ActivityDefinition/[id]/$get-offers-context"
}
]
},
{
"type" : "HealthcareService",
"supportedProfile" : [
🔗 "https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/healthcare-service-portal"
],
"documentation" : "Represents where healthcare services are performed.",
"interaction" : [
{
"code" : "read"
},
{
"code" : "search-type"
}
],
"operation" : [
{
"name" : "get-offers-context",
"definition" : "https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/get-offers-context",
"documentation" : "Returns enriched offer context for presentation and selection. \nInvoked as [base]/HealthcareService/[id]/$get-offers-context"
}
]
},
{
"type" : "PractitionerRole",
"supportedProfile" : [
🔗 "https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/practitioner-role-portal"
],
"documentation" : "Represents practitioners acting in specific operational and financial contexts.",
"interaction" : [
{
"code" : "read"
},
{
"code" : "search-type"
}
],
"searchParam" : [
{
"name" : "service",
"type" : "reference",
"documentation" : "Filter by PractitionerRole.service (Reference to HealthcareService)."
}
],
"operation" : [
{
"name" : "get-offers-context",
"definition" : "https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/get-offers-context",
"documentation" : "Returns enriched offer context for presentation and selection. \nInvoked as [base]/PractitionerRole/[id]/$get-offers-context"
}
]
},
{
"type" : "Patient",
"supportedProfile" : [
🔗 "https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/portal-patient",
"http://hl7.se/fhir/ig/base/StructureDefinition/SEBasePatient"
],
"documentation" : "Represents patients within the WOF Portal, conforming to the PortalPatient profile.",
"interaction" : [
{
"code" : "read"
},
{
"code" : "search-type"
}
],
"searchParam" : [
{
"name" : "identifier",
"type" : "token",
"documentation" : "Search by personal number using system|value."
}
]
},
{
"type" : "Organization",
"supportedProfile" : [
🔗 "https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/service-provider-portal"
],
"documentation" : "Organizations in WOF Portal MAY conform to multiple profiles, representing different organizational roles.\n\nServiceProvider represents the top-level owning organization (tenant) within the platform.\nBillingOrganization represents financial responsibility and ownership of invoicing and reporting.\n\nOrganizations are not exposed as searchable catalogs.\nThey are resolved using stable identifiers only:\n- resource id\n- organization number (identifier)\n\nClients MAY filter by profile when needed (e.g. using _profile),\nbut profile-based filtering is not required for lookup by id or identifier.",
"interaction" : [
{
"code" : "read"
},
{
"code" : "search-type"
}
],
"searchParam" : [
{
"name" : "_id",
"type" : "token",
"documentation" : "Search by Organization resource id."
},
{
"name" : "identifier",
"type" : "token",
"documentation" : "Search by organization number using system|value."
}
]
},
{
"type" : "Appointment",
"supportedProfile" : [
🔗 "https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/portal-appointment"🔗 ,
"https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/portal-available-appointment"
],
"documentation" : "Appointment access in WOF Portal.\n\n- `PortalAppointment` — represents a booked appointment in a patient context.\n- `PortalAvailableAppointment` — represents an available appointment returned by `$find`.\n\nSupports filtering by actor (e.g., HealthcareService/{id}) and IHE Scheduling operations.",
"interaction" : [
{
"code" : "read"
},
{
"code" : "search-type"
}
],
"searchParam" : [
{
"name" : "actor",
"type" : "reference",
"documentation" : "Filter appointments by participant actor (e.g., HealthcareService/{id})."
}
],
"operation" : [
{
"name" : "find",
"definition" : "https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/FindAppointments",
"documentation" : "Search for available appointment opportunities using $find (IHE ITI Scheduling)."
},
{
"name" : "book",
"definition" : "https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/BookAppointment",
"documentation" : "Create, modify, or cancel an appointment using $book (IHE ITI Scheduling)."
}
]
},
{
"type" : "Location",
"documentation" : "Portal-scoped locations used as areas. Supported interaction: search.",
"interaction" : [
{
"code" : "search-type"
}
],
"searchParam" : [
{
"name" : "physical-type",
"type" : "token",
"documentation" : "Filter by Location.physicalType (e.g., Area)."
}
]
}
],
"operation" : [
{
"name" : "getOffersContext",
"definition" : "https://canonical.fhir.link/servicewell/wof-portal/OperationDefinition/get-offers-context",
"documentation" : "Returns enriched offer context for presentation and selection. Invoked as [base]/$get-offers-context"
}
]
}
]
}