NZ Shared Digital Health Record API
1.1.6 - release
NZ Shared Digital Health Record API, published by Health New Zealand. This guide is not an authorized publication; it is the continuous build for version 1.1.6 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/tewhatuora/fhir-sdhr/ and changes regularly. See the Directory of published versions
Draft: This page is subject to change and will be updated as the access workflow and associated assurance requirements are confirmed.
To allow SEHR systems and other clinical portal applications to retrieve patient health information from SDHR and make it available to healthcare professionals involved in providing care.
| Actor | Role |
|---|---|
| Healthcare professional | Uses information in the context of providing care to a specific patient. |
| SEHR system | Identifies the patient, supplies the required access context, requests information, and presents the response. |
| SDHR | Applies applicable controls, audits access, and returns information the requester is authorised to access. |
| Source systems | Originate information made available through SDHR. |
This use case currently or progressively applies to:
The corresponding FHIR representations are described in data models and FHIR artifacts.
All requests for SDHR information must include sufficient context to support audit, monitoring, privacy investigation, appropriate-use review, and assurance activities.
At a minimum, requests are expected to provide:
Requests that do not include valid request context may be rejected and no information may be returned.
The detailed structure, validation rules, and technical implementation of request context are described in the Authentication and Request Context documentation and API Capability Statement.
$participation-status operation.$participation-status operation with the patient's NHI to check global participation.hnzParticipationIndicator is true, the SEHR uses a supported search or read interaction to request relevant information from SDHR. If it is false, the SEHR stops the information workflow and does not present SDHR clinical information.hnzParticipationIndicator to determine whether to continue.Bundle; a successful read returns the requested resource.$participation-status request returns a FHIR Parameters resource containing only hnzParticipationIndicator. A patient with no recorded global preference returns true.hnzParticipationIndicator is false, the SEHR must treat the patient as globally opted out and indicate this to the end user.In some circumstances SDHR may return responses indicating that information cannot be returned or that information has been intentionally omitted due to participation, privacy, confidentiality, or operational controls.
Accessing systems should identify these responses and communicate them clearly to users in a clinically safe manner.
Examples include:
| Scenario | Meaning |
|---|---|
| Patient does not participate in SDHR | The patient has chosen not to participate in the Shared Digital Health Record service. |
| Information withheld at source | Information may have been withheld by the source system according to patient preferences or source-system rules. |
| Information type not shared | The patient has chosen not to share a particular type of information. |
| Deceased patient | A read or search rejected by a global opt-out with reason patient-deceased returns HTTP 403 and code sdhr-participation-status-denied-deceased. See the deceased global-denial example. |
| Temporary record lock | Information is temporarily unavailable while background processing is occurring. |
| Technical access limits | The request could not be completed because a technical usage limit was reached. |
Implementers should use the coded response supplied by SDHR when determining how to handle these situations rather than relying solely on displayed message text.
The detailed response structures and operation outcomes are described in the API documentation.
For deceased global denial, the response message is "Patient data is unavailable in the Shared Digital Health Record as they are deceased." This reflects the recorded global opt-out reason, not a new deceased-status lookup. See global participation denial API behaviour.
Access to SDHR information must be attributable to an authenticated healthcare professional or other authorised user and an authorised organisation or facility. Access must occur in the context of a specific patient. Accessing systems must provide sufficient user and request context to support audit, monitoring, privacy investigation, appropriate-use review, and assurance activities.
The access-verification workflow is draft and subject to change.
AuditEvent using an automated or manual process to determine whether the access was valid.Access verification is a required assurance activity for systems accessing SDHR information. Accessing systems are expected to periodically retrieve sampled access events, assess whether the access was appropriate, and submit verification outcomes back to SDHR.
SDHR requests a sample for each eligible system from the preceding 24-hour window. Several agent entries are provided: the application agent identifies the requesting client UUID, the separate healthworker agent identifies the clinician by HPI person identifier, and an organisation agent may also be present. The verifying system then checks the clinician identity and patient NHI to assess whether that clinician had a valid reason to access that patient’s information. Sampling runs independently of retrieval requests. Successful retrieval requests always return a searchset Bundle, including an empty Bundle when no samples are pending.
This process supports ongoing monitoring, auditing, and assurance activities.
The SEHR is also responsible for maintaining appropriate local audit and traceability where required.
See the API Capability Statement for request-context mechanics, the API documentation for access verification operations, and the compliance requirements for systems reading data.
| Interaction | Use in this workflow | API documentation |
|---|---|---|
| Global participation status | Check whether the patient is globally participating before requesting health information. | Participation status operation |
| Search and read — contributed information | Retrieve information stored in the SDHR Primary Care Collection. | Contributed resource interactions |
| Search and read — national information | Retrieve information made available from supported national health information sources. | National source resource interactions |
| Request context | Attribute access to the user, organisation, facility, and patient context. | Authentication and request context |
| Access verification | Review sampled access events and submit verification decisions. | Access verification operations |
| Filtered and empty results | Handle confidentiality filtering without inferring that no clinical information exists. | Confidential record API behaviour |
| Errors | Handle authentication, validation, access, and request errors. | Authentication and request-context error example |