0.1.0 - ci-build

WofPortalIG, published by Service Well AB. This guide is not an authorized publication; it is the continuous build for version 0.1.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

: WOF Portal Capability Statement - XML Representation

Active as of 2026-02-02

Raw xml | Download


<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: 0.1.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.</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> </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/></tr><tr><td><a href="#HealthcareService1-2">HealthcareService</a></td><td> </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/></tr><tr><td><a href="#PractitionerRole1-3">PractitionerRole</a></td><td> </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/></tr><tr><td><a href="#Patient1-4">Patient</a></td><td> </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-billing-organization-portal.html">BillingOrganizationModel</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="#Schedule1-6">Schedule</a></td><td> </td><td class="text-center"/><td class="text-center"/><td class="text-center"/><td class="text-center"/><td/><td/><td/><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: supported </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/><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></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="HealthcareService1-2" class="panel-title"><span style="float: right;">Resource Conformance: supported </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/><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></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="PractitionerRole1-3" class="panel-title"><span style="float: right;">Resource Conformance: supported </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/><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></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Patient1-4" class="panel-title"><span style="float: right;">Resource Conformance: supported </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/><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>identifier</td><td><code>token</code></td><td><div><p>Use system fro,m se base profile Http://</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: supported </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-billing-organization-portal.html">BillingOrganizationModel</a></p></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Organizations MAY conform to multiple profiles in WOF Portal.
BillingOrganization is represented as Organization constrained by the OrganizationBilling profile.
Clients MAY filter by profile when needed (e.g. using _profile), but searches by id and identifier are supported without profile constraints.</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="Schedule1-6" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>Schedule</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/schedule.html">Schedule</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/></div></div><p/><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Represents planned working time, not bookable availability.</p>
</div></blockquote></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: supported </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="0.1.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>
  </contact>
  <description
               value="&lt;p&gt;This CapabilityStatement defines the canonical domain model and API principles of the &lt;b&gt;WOF Portal&lt;/b&gt;,
owned and operated by Service Well.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;IHE Scheduling:&lt;/b&gt; This server instantiates IHE.Scheduling.server (v1.0.0).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Layering principle:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;WOF Connect&lt;/b&gt; defines vendor-facing interoperability contracts.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;WOF Portal&lt;/b&gt; builds on WOF Connect to provide a single, enriched, canonical API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Domain separation principles:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;ActivityDefinition&lt;/b&gt; represents a shared service concept and SHALL be identified by code, not by resource id.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;HealthcareService&lt;/b&gt; represents where care is performed.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;BillingOrganization&lt;/b&gt; represents financial responsibility and is independent of service location.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;PractitionerRole&lt;/b&gt; represents a practitioner acting in a specific operational and financial context.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Many-to-many relationships are intentional:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;A HealthcareService MAY be associated with multiple BillingOrganizations.&lt;/li&gt;
  &lt;li&gt;A BillingOrganization MAY provide services at multiple HealthcareServices.&lt;/li&gt;
  &lt;li&gt;A Practitioner MAY have multiple PractitionerRoles across services and billing contexts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Offer and availability principles:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Offer&lt;/b&gt; represents a computed, context-specific view combining ActivityDefinition,
      HealthcareService, and PractitionerRole.&lt;/li&gt;
  &lt;li&gt;Offer is intended for presentation and selection, not for scheduling.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Schedule&lt;/b&gt; represents planned working time and SHALL NOT be treated as bookable availability.&lt;/li&gt;
  &lt;li&gt;Actual bookability requires downstream slot or availability checks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Integration principle:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;External systems integrate with the platform by implementing &lt;b&gt;WOF Connect&lt;/b&gt;.&lt;/li&gt;
  &lt;li&gt;WOF Portal APIs MAY return enriched and aggregated views not available in WOF Connect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This CapabilityStatement documents the canonical behavior of the WOF Portal API.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Client interaction overview:&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;pre&gt;
WOF.Portal.Patient.Client.Frenda - Outbound API calls (Razor components → services)

Client → Proxy:
- GET portal/fhir/Organization
- GET portal/fhir/Organization/{id}?_summary={true|false}
- GET portal/fhir/Organization?identifier={tenantIdentifier}&amp;amp;_summary={true|false}

- GET {endpointId}/fhir/Patient

- GET portal/fhir/Appointment
- GET {endpointId}/fhir/Appointment/{id}
- GET {endpointId}/fhir/Appointment?actor=HealthcareService/{healthcareServiceId}

- GET {endpointId}/fhir/Appointment/$find
- POST {endpointId}/fhir/Appointment/$book

- GET portal/fhir/HealthcareService
- GET portal/fhir/HealthcareService/{id}

- GET portal/fhir/Location?physicalType={AreaLiteral}

- GET portal/fhir/PractitionerRole
- GET portal/fhir/PractitionerRole?service=HealthcareService/{healthcareServiceId}
- GET portal/fhir/PractitionerRole/{practitionerRoleId}

- GET portal/fhir/ActivityDefinition
- GET portal/fhir/ActivityDefinition/{id}
&lt;/pre&gt;

&lt;p&gt;This diagram is informational and documents expected client usage.
It does not expand or modify the formal FHIR conformance rules.&lt;/p&gt;"/>
  <kind value="capability"/>
  <instantiates
                value="https://profiles.ihe.net/ITI/Scheduling/CapabilityStatement/IHE.Scheduling.server|1.0.0"/>
  <fhirVersion value="4.0.1"/>
  <format value="json"/>
  <format value="xml"/>
  <rest>
    <mode value="server"/>
    <resource>
      <type value="ActivityDefinition"/>
      <documentation
                     value="Represents shared service concepts identified by code."/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
    </resource>
    <resource>
      <type value="HealthcareService"/>
      <documentation
                     value="Represents where healthcare services are performed."/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
    </resource>
    <resource>
      <type value="PractitionerRole"/>
      <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>
    </resource>
    <resource>
      <type value="Patient"/>
      <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="identifier"/>
        <type value="token"/>
        <documentation value="Use system fro,m se base profile Http://"/>
      </searchParam>
    </resource>
    <resource>
      <type value="Organization"/>
      <supportedProfile
                        value="https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/billing-organization-portal"/>
      <documentation
                     value="Organizations MAY conform to multiple profiles in WOF Portal.
BillingOrganization is represented as Organization constrained by the OrganizationBilling profile.
Clients MAY filter by profile when needed (e.g. using _profile), but searches by id and identifier are supported without profile constraints."/>
      <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="Schedule"/>
      <documentation
                     value="Represents planned working time, not bookable availability."/>
    </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."/>
    </operation>
  </rest>
</CapabilityStatement>