OZO FHIR implementation guide
0.6.3 - ci-build
OZO FHIR implementation guide - Local Development build (v0.6.3) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Active as of 2026-03-27 |
<CapabilityStatement xmlns="http://hl7.org/fhir">
<id value="OZO-Client"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: CapabilityStatement OZO-Client</b></p><a name="OZO-Client"> </a><a name="hcOZO-Client"> </a><h2 id="title">OZO Client CapabilityStatement</h2><ul><li>Implementation Guide Version: 0.6.3 </li><li>FHIR Version: 4.0.1 </li><li>Supported Formats: <code>json</code>, <code>xml</code></li><li>Published on: 2026-03-27 </li><li>Published by: Headease </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><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><p>Client access for Practitioner, RelatedPerson, and Patient roles. The AAA proxy automatically filters all search results based on the caller's identity and CareTeam memberships. Write operations validate that the sender/requester is the authenticated user. See the CapabilityStatements documentation page for per-role scoping details.</p>
</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="#Patient1-1">Patient</a></td><td><a href="StructureDefinition-ozo-patient.html">http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOPatient</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/></tr><tr><td><a href="#Practitioner1-2">Practitioner</a></td><td><a href="StructureDefinition-ozo-practitioner.html">http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOPractitioner</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/></tr><tr><td><a href="#RelatedPerson1-3">RelatedPerson</a></td><td><a href="StructureDefinition-ozo-relatedperson.html">http://ozoverbindzorg.nl/fhir/StructureDefinition/OZORelatedPerson</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/></tr><tr><td><a href="#CareTeam1-4">CareTeam</a></td><td><a href="StructureDefinition-ozo-careteam.html">http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOCareTeam</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/></tr><tr><td><a href="#CommunicationRequest1-5">CommunicationRequest</a></td><td><a href="StructureDefinition-ozo-communicationrequest.html">http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOCommunicationRequest</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center">y</td><td/><td/><td/><td/></tr><tr><td><a href="#Communication1-6">Communication</a></td><td><a href="StructureDefinition-ozo-communication.html">http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOCommunication</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center">y</td><td/><td/><td/><td/></tr><tr><td><a href="#Task1-7">Task</a></td><td><a href="StructureDefinition-ozo-task.html">http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOTask</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/></tr><tr><td><a href="#AuditEvent1-8">AuditEvent</a></td><td><a href="StructureDefinition-ozo-auditevent.html">http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOAuditEvent</a></td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center"/><td class="text-center">y</td><td/><td/><td/><td/></tr><tr><td><a href="#Subscription1-9">Subscription</a></td><td> </td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center">y</td><td class="text-center">y</td><td/><td/><td/><td/></tr></tbody></table></div><hr/><div class="panel panel-default"><div class="panel-heading"><h4 id="Patient1-1" 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-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-ozo-patient.html">OZO Patient</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><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-12"><span class="lead">Documentation</span><blockquote><div><p>Proxy auto-scopes to patients within the caller's CareTeam context.</p>
</div></blockquote></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Practitioner1-2" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>Practitioner</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-ozo-practitioner.html">OZO Practitioner</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><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-12"><span class="lead">Documentation</span><blockquote><div><p>Proxy auto-scopes to practitioners within the caller's CareTeam context.</p>
</div></blockquote></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="RelatedPerson1-3" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>RelatedPerson</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-ozo-relatedperson.html">OZO RelatedPerson</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><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-12"><span class="lead">Documentation</span><blockquote><div><p>Proxy auto-scopes to related persons within the caller's CareTeam context.</p>
</div></blockquote></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="CareTeam1-4" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>CareTeam</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-ozo-careteam.html">OZO CareTeam</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><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-12"><span class="lead">Documentation</span><blockquote><div><p>Proxy auto-scopes to CareTeams where the caller is a participant or subject.</p>
</div></blockquote></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="CommunicationRequest1-5" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>CommunicationRequest</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-ozo-communicationrequest.html">OZO CommunicationRequest</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>, <code>create</code>.</li></ul></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Threads where the caller or their CareTeam is a recipient. Create requires requester = authenticated user.</p>
</div></blockquote></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Communication1-6" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>Communication</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-ozo-communication.html">OZO Communication</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>, <code>create</code>.</li></ul></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Messages in threads accessible to the caller. Create requires sender = authenticated user.</p>
</div></blockquote></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Task1-7" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>Task</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-ozo-task.html">OZO Task</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><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-12"><span class="lead">Documentation</span><blockquote><div><p>Tasks owned by or assigned to the caller. Used as read/unread indicator.</p>
</div></blockquote></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="AuditEvent1-8" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>AuditEvent</h4></div><div class="panel-body"><div class="container"><div class="row"><div class="col-lg-6"><span class="lead">Base System Profile</span><br/><a href="StructureDefinition-ozo-auditevent.html">OZO AuditEvent</a></div><div class="col-lg-3"><span class="lead">Profile Conformance</span><br/><b>SHALL</b></div><div class="col-lg-3"><span class="lead">Reference Policy</span><br/></div></div><p/><div class="row"><div class="col-lg-6"><span class="lead">Interaction summary</span><br/><ul><li>Supports <code>read</code>, <code>search-type</code>, <code>create</code>.</li></ul></div></div><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Audit events within the caller's access scope. Create requires agent[requestor=true].who = authenticated user.</p>
</div></blockquote></div></div></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 id="Subscription1-9" class="panel-title"><span style="float: right;">Resource Conformance: supported </span>Subscription</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/subscription.html">Subscription</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>, <code>create</code>, <code>update</code>.</li></ul></div></div><p/><p/><div class="row"><div class="col-12"><span class="lead">Documentation</span><blockquote><div><p>Subscriptions with criteria automatically rewritten by the proxy to scope to the caller's access. Uses notify-then-pull pattern (empty payload).</p>
</div></blockquote></div></div></div></div></div></div>
</text>
<url value="http://ozoverbindzorg.nl/fhir/CapabilityStatement/OZO-Client"/>
<version value="0.6.3"/>
<name value="OZOClientCapabilityStatement"/>
<title value="OZO Client CapabilityStatement"/>
<status value="active"/>
<experimental value="false"/>
<date value="2026-03-27"/>
<publisher value="Headease"/>
<contact>
<name value="Headease"/>
<telecom>
<system value="url"/>
<value value="https://headease.nl"/>
</telecom>
</contact>
<description
value="Authenticated client access to the OZO FHIR API for Practitioner, RelatedPerson, and Patient roles. All three roles share the same interactions — the AAA proxy transparently scopes access by rewriting search queries based on the caller's credentials and CareTeam memberships. Write operations validate that the sender/requester is the authenticated user."/>
<kind value="instance"/>
<fhirVersion value="4.0.1"/>
<format value="json"/>
<format value="xml"/>
<rest>
<mode value="server"/>
<documentation
value="Client access for Practitioner, RelatedPerson, and Patient roles. The AAA proxy automatically filters all search results based on the caller's identity and CareTeam memberships. Write operations validate that the sender/requester is the authenticated user. See the CapabilityStatements documentation page for per-role scoping details."/>
<resource>
<type value="Patient"/>
<profile
value="http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOPatient"/>
<documentation
value="Proxy auto-scopes to patients within the caller's CareTeam context."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
</resource>
<resource>
<type value="Practitioner"/>
<profile
value="http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOPractitioner"/>
<documentation
value="Proxy auto-scopes to practitioners within the caller's CareTeam context."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
</resource>
<resource>
<type value="RelatedPerson"/>
<profile
value="http://ozoverbindzorg.nl/fhir/StructureDefinition/OZORelatedPerson"/>
<documentation
value="Proxy auto-scopes to related persons within the caller's CareTeam context."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
</resource>
<resource>
<type value="CareTeam"/>
<profile
value="http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOCareTeam"/>
<documentation
value="Proxy auto-scopes to CareTeams where the caller is a participant or subject."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
</resource>
<resource>
<type value="CommunicationRequest"/>
<profile
value="http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOCommunicationRequest"/>
<documentation
value="Threads where the caller or their CareTeam is a recipient. Create requires requester = authenticated user."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<interaction>
<code value="create"/>
</interaction>
</resource>
<resource>
<type value="Communication"/>
<profile
value="http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOCommunication"/>
<documentation
value="Messages in threads accessible to the caller. Create requires sender = authenticated user."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<interaction>
<code value="create"/>
</interaction>
</resource>
<resource>
<type value="Task"/>
<profile
value="http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOTask"/>
<documentation
value="Tasks owned by or assigned to the caller. Used as read/unread indicator."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
</resource>
<resource>
<type value="AuditEvent"/>
<profile
value="http://ozoverbindzorg.nl/fhir/StructureDefinition/OZOAuditEvent"/>
<documentation
value="Audit events within the caller's access scope. Create requires agent[requestor=true].who = authenticated user."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<interaction>
<code value="create"/>
</interaction>
</resource>
<resource>
<type value="Subscription"/>
<documentation
value="Subscriptions with criteria automatically rewritten by the proxy to scope to the caller's access. Uses notify-then-pull pattern (empty payload)."/>
<interaction>
<code value="read"/>
</interaction>
<interaction>
<code value="search-type"/>
</interaction>
<interaction>
<code value="create"/>
</interaction>
<interaction>
<code value="update"/>
</interaction>
</resource>
</rest>
</CapabilityStatement>