OZO FHIR implementation guide
0.7.7 - ci-build
OZO FHIR implementation guide - Local Development build (v0.7.7) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Contents:
This page provides a list of the FHIR artifacts defined as part of this implementation guide.
The following artifacts define the specific capabilities that different types of systems are expected to have in order to comply with this implementation guide. Systems conforming to this implementation guide are expected to declare conformance to one or more of the following capability statements.
| OZO Client CapabilityStatement |
CapabilityStatement for authenticated client access to the OZO FHIR API. Covers Practitioner, RelatedPerson, and Patient roles. All three roles have the same resource types and interactions available ??? the AAA proxy scopes access differently per role by automatically applying search filters based on the caller's credentials. See the CapabilityStatements documentation page for per-role filtering details. |
| OZO Server Base CapabilityStatement |
Base CapabilityStatement for the OZO FHIR API. Returned by the unauthenticated /metadata endpoint. Describes server identity, security requirements, and supported profiles. Authenticate to receive a role-specific CapabilityStatement with detailed interactions. |
| OZO System CapabilityStatement |
CapabilityStatement for OZO system-level access (server-to-server). Full CRUD access to all resources without access filters. Requires OzoSystemCredential via the Nuts protocol. |
These define constraints on FHIR resources for systems conforming to this implementation guide.
| OZO AuditEvent |
AuditEvent profile for OZO AAA Proxy to comply with NEN7510 standards |
| OZO CareTeam |
CareTeam profile for patient care networks in OZO. Represents a care network of healthcare professionals and informal caregivers coordinating care for a specific patient. For organizational teams (departments, shared inboxes), use OZOOrganizationalCareTeam instead. |
| OZO Communication |
Communication profile for the OZO platform. Represents messages exchanged within the care network, linking to threads via CommunicationRequest. |
| OZO CommunicationRequest |
CommunicationRequest profile for the OZO platform. Represents a message thread or conversation within the care network. Individual messages are Communication resources that reference this thread via partOf. |
| OZO Device |
Device profile for the OZO platform. Represents system components such as the AAA proxy that appear as source observers in AuditEvents. |
| OZO Organization |
Organization profile for the OZO platform. Represents healthcare organizations (hospitals, pharmacies, general practices) that employ practitioners in the care network. |
| OZO Organizational CareTeam |
CareTeam profile for organizational teams in OZO. Represents a department or organizational unit (e.g., pharmacy team, clinic team) used for team-to-team messaging via shared inbox. Not bound to a specific patient. |
| OZO Patient |
Patient profile for the OZO platform. Represents the client/patient who is the subject of care coordination between healthcare professionals and informal caregivers. |
| OZO Practitioner |
Practitioner profile for the OZO platform. Represents healthcare professionals who are part of the patient's care team. |
| OZO RelatedPerson |
RelatedPerson profile for the OZO platform. Represents informal caregivers (family members, friends) who are part of the patient's care network. |
| OZO Task |
Task profile for the OZO platform. Represents work assignments, referrals, or action items within the care network. Tasks can be linked to message threads via basedOn. |
These define constraints on FHIR data types for systems conforming to this implementation guide.
| OZO Resource Origin |
Device that originally created the resource |
| OZO Sender CareTeam |
Extension to specify a CareTeam as the sender/reply-to address for team-level messaging. This extension is needed because CommunicationRequest.sender does not allow CareTeam references in FHIR R4. |
| OZO Span ID |
W3C Trace Context span-id for distributed tracing |
| OZO Trace ID |
W3C Trace Context trace-id for distributed tracing |
These define sets of codes used by systems conforming to this implementation guide.
| OZO AuditEvent Agent Type ValueSet |
Types of agents in OZO audit events |
| OZO AuditEvent Entity Type ValueSet |
Types of entities in OZO audit events |
| OZO AuditEvent Source Type ValueSet |
Types of sources in OZO audit events |
| OZO AuditEvent Subtype ValueSet |
Subtypes of audit events for OZO |
| OZO AuditEvent Type ValueSet |
Types of audit events for OZO |
These are example instances that show what data produced and consumed by systems conforming with this implementation guide might look like.
| A-P-Otheeker | |
| Annemiek-Jansen | |
| Apotheek-de-Pil | |
| AuditEvent - Practitioner Manu Access |
Example of an AuditEvent for Practitioner accessing Communication resources |
| AuditEvent - Practitioner Mark Access |
Example of an AuditEvent for Practitioner Mark Benson accessing Communication resources |
| AuditEvent - REST Create Operation |
Example of an AuditEvent for a successful REST create operation through OZO AAA Proxy |
| AuditEvent - REST Search Operation |
Example of an AuditEvent for a REST search operation through OZO AAA Proxy |
| AuditEvent - REST Update Operation Failure |
Example of an AuditEvent for a failed REST update operation through OZO AAA Proxy |
| AuditEvent - RelatedPerson Access |
Example of an AuditEvent for RelatedPerson accessing Communication resources |
| AuditEvent - System Access |
Example of an AuditEvent for a system-to-system access through OZO AAA Proxy |
| CareTeam Clinic B - Huisarts Amsterdam |
Example of a clinic team used for team-level messaging. This CareTeam represents the clinic as a whole for shared inbox functionality. |
| CareTeam Pharmacy A - Apotheek de Pil |
Example of a pharmacy team used for team-level messaging. This CareTeam represents the pharmacy as a whole for shared inbox functionality. |
| Department-Thuiszorg | |
| H-de-Boer | |
| Huisarts-Amsterdam | |
| Jan-de-Hoop | |
| Jane-Groen | |
| Johan-van-den-Berg | |
| Kees-Groot | |
| Lars-Hendriks | |
| Manu-van-Weel | |
| Maria-Groen-de-Wit | |
| Marijke-van-der-Berg | |
| Mark-Benson | |
| Netwerk-H-de-Boer | |
| Netwerk-Jan-de-Hoop | |
| OZO AAA Proxy Device |
Device representing the OZO AAA Proxy instance. Referenced by AuditEvent.source.observer via logical identifier. |
| Pieter-de-Vries | |
| Reply from Practitioner Manu to RelatedPerson Kees |
Practitioner Manu van Weel replies to Kees Groot's initial message in the Thread-Example thread. |
| Reply-Kees-to-Netwerk | |
| Sophie-de-Boer | |
| Subscription: New Message Detection |
Subscription for detecting new Communication messages. This is the primary mechanism for new-message notification. Uses the notify-then-pull pattern: the notification payload is empty, and the subscriber must fetch the Communication resource separately. This is required in the Netherlands where healthcare data must not be pushed in notifications. |
| Subscription: Thread Lifecycle |
Subscription for detecting new threads and thread status changes. Fires when a CommunicationRequest is created or its status changes (e.g. DRAFT to ACTIVE). Uses the notify-then-pull pattern: the notification payload is empty, and the subscriber must fetch the CommunicationRequest resource separately. |
| Subscription: Unread Message Tracking |
Subscription for tracking unread message status via Task resources. Fires when a Task status changes to 'requested' (unread). Not suitable for new-message detection ??? use the Communication subscription for that. The AAA proxy automatically scopes this subscription to the current user's ownership. Uses the notify-then-pull pattern: the notification payload is empty. |
| Task: Unread indicator for Kees Groot |
Task tracking unread message status for RelatedPerson Kees Groot in the Thread-Example thread. Status is 'requested' (unread) when created by the OZO FHIR Api after a new message arrives. Changes to 'completed' when the message is read (via AuditEvent). |
| Task: Unread indicator for Manu van Weel |
Task tracking unread message status for Practitioner Manu van Weel in the Thread-Example thread. Status is 'requested' (unread) when created by the OZO FHIR Api after a new message arrives. Changes to 'completed' when the message is read. |
| Task: Unread indicator for Mark Benson |
Task tracking unread message status for Practitioner Mark Benson in the Thread-Example thread. Status is 'requested' (unread) when created by the OZO FHIR Api after a new message arrives. Changes to 'completed' when the message is read. |
| Team Messaging: Clinic Response |
First reply in the team thread. A practitioner from the clinic responds to the pharmacy's CommunicationRequest. The sender is the individual (for auditability). Thread participants are defined on CommunicationRequest.recipient. |
| Team Messaging: Pharmacy Follow-up (Different Practitioner) |
Follow-up from a different practitioner at the pharmacy. This demonstrates that multiple team members can participate in the same thread. Note that the sender is a different practitioner from the original requester. |
| Team-to-Team CommunicationRequest: Pharmacy to Clinic |
Example of a team-to-team CommunicationRequest where a pharmacy sends a message to a clinic. The senderCareTeam extension specifies the pharmacy team as the reply-to address for team-level authorization. The requester is the individual practitioner who initiated the thread for auditability. |
| Thomas-Groen | |
| Thread-Example | |
| Willem-Bakker | |
| Ziekenhuis-Amsterdam | |
| Ziekenhuis-Amsterdam-2 |