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 - JSON Representation

Active as of 2026-02-02

Raw json | Download

{
  "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: 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>\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>\u00a0</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>\u00a0</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>\u00a0</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>\u00a0</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-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>\u00a0</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>\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: 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>\n</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>\n</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>\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></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>\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>Use system fro,m se base profile Http://</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: 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.\nBillingOrganization is represented as Organization constrained by the OrganizationBilling profile.\nClients MAY filter by profile when needed (e.g. using _profile), but searches by id and identifier are supported without profile constraints.</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=\"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>\n</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>\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" : "0.1.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"
        }
      ]
    }
  ],
  "description" : "<p>This CapabilityStatement defines the canonical domain model and API principles of the <b>WOF Portal</b>,\nowned and operated by Service Well.</p>\n\n<p><b>IHE Scheduling:</b> This server instantiates IHE.Scheduling.server (v1.0.0).</p>\n\n<p><b>Layering principle:</b></p>\n<ul>\n  <li><b>WOF Connect</b> defines vendor-facing interoperability contracts.</li>\n  <li><b>WOF Portal</b> builds on WOF Connect to provide a single, enriched, canonical API.</li>\n</ul>\n\n<p><b>Domain separation principles:</b></p>\n<ul>\n  <li><b>ActivityDefinition</b> represents a shared service concept and SHALL be identified by code, not by resource id.</li>\n  <li><b>HealthcareService</b> represents where care is performed.</li>\n  <li><b>BillingOrganization</b> represents financial responsibility and is independent of service location.</li>\n  <li><b>PractitionerRole</b> represents a practitioner acting in a specific operational and financial context.</li>\n</ul>\n\n<p><b>Many-to-many relationships are intentional:</b></p>\n<ul>\n  <li>A HealthcareService MAY be associated with multiple BillingOrganizations.</li>\n  <li>A BillingOrganization MAY provide services at multiple HealthcareServices.</li>\n  <li>A Practitioner MAY have multiple PractitionerRoles across services and billing contexts.</li>\n</ul>\n\n<p><b>Offer and availability principles:</b></p>\n<ul>\n  <li><b>Offer</b> represents a computed, context-specific view combining ActivityDefinition,\n      HealthcareService, and PractitionerRole.</li>\n  <li>Offer is intended for presentation and selection, not for scheduling.</li>\n  <li><b>Schedule</b> represents planned working time and SHALL NOT be treated as bookable availability.</li>\n  <li>Actual bookability requires downstream slot or availability checks.</li>\n</ul>\n\n<p><b>Integration principle:</b></p>\n<ul>\n  <li>External systems integrate with the platform by implementing <b>WOF Connect</b>.</li>\n  <li>WOF Portal APIs MAY return enriched and aggregated views not available in WOF Connect.</li>\n</ul>\n\n<p>This CapabilityStatement documents the canonical behavior of the WOF Portal API.</p>\n\n<p><b>Client interaction overview:</b></p>\n\n<p>The following diagram illustrates outbound API calls from a patient-facing client\nto the WOF Portal Proxy. It represents actual usage patterns and supported interactions.</p>\n\n<pre>\nWOF.Portal.Patient.Client.Frenda - Outbound API calls (Razor components → services)\n\nClient → Proxy:\n- GET portal/fhir/Organization\n- GET portal/fhir/Organization/{id}?_summary={true|false}\n- GET portal/fhir/Organization?identifier={tenantIdentifier}&amp;_summary={true|false}\n\n- GET {endpointId}/fhir/Patient\n\n- GET portal/fhir/Appointment\n- GET {endpointId}/fhir/Appointment/{id}\n- GET {endpointId}/fhir/Appointment?actor=HealthcareService/{healthcareServiceId}\n\n- GET {endpointId}/fhir/Appointment/$find\n- POST {endpointId}/fhir/Appointment/$book\n\n- GET portal/fhir/HealthcareService\n- GET portal/fhir/HealthcareService/{id}\n\n- GET portal/fhir/Location?physicalType={AreaLiteral}\n\n- GET portal/fhir/PractitionerRole\n- GET portal/fhir/PractitionerRole?service=HealthcareService/{healthcareServiceId}\n- GET portal/fhir/PractitionerRole/{practitionerRoleId}\n\n- GET portal/fhir/ActivityDefinition\n- GET portal/fhir/ActivityDefinition/{id}\n</pre>\n\n<p>This diagram is informational and documents expected client usage.\nIt does not expand or modify the formal FHIR conformance rules.</p>",
  "kind" : "capability",
  "instantiates" : [
    🔗 "https://profiles.ihe.net/ITI/Scheduling/CapabilityStatement/IHE.Scheduling.server|1.0.0"
  ],
  "fhirVersion" : "4.0.1",
  "format" : [
    "json",
    "xml"
  ],
  "rest" : [
    {
      "mode" : "server",
      "resource" : [
        {
          "type" : "ActivityDefinition",
          "documentation" : "Represents shared service concepts identified by code.",
          "interaction" : [
            {
              "code" : "read"
            },
            {
              "code" : "search-type"
            }
          ]
        },
        {
          "type" : "HealthcareService",
          "documentation" : "Represents where healthcare services are performed.",
          "interaction" : [
            {
              "code" : "read"
            },
            {
              "code" : "search-type"
            }
          ]
        },
        {
          "type" : "PractitionerRole",
          "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)."
            }
          ]
        },
        {
          "type" : "Patient",
          "documentation" : "Represents practitioners acting in specific operational and financial contexts.",
          "interaction" : [
            {
              "code" : "read"
            },
            {
              "code" : "search-type"
            }
          ],
          "searchParam" : [
            {
              "name" : "identifier",
              "type" : "token",
              "documentation" : "Use system fro,m se base profile Http://"
            }
          ]
        },
        {
          "type" : "Organization",
          "supportedProfile" : [
            🔗 "https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/billing-organization-portal"
          ],
          "documentation" : "Organizations MAY conform to multiple profiles in WOF Portal.\nBillingOrganization is represented as Organization constrained by the OrganizationBilling profile.\nClients MAY filter by profile when needed (e.g. using _profile), but searches by id and identifier are supported without profile constraints.",
          "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" : "Schedule",
          "documentation" : "Represents planned working time, not bookable availability."
        },
        {
          "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."
        }
      ]
    }
  ]
}