Health NZ | Te Whatu Ora FHIR Screening Implementation Guide
1.0.1 - normative+trial-use New Zealand flag

Health NZ | Te Whatu Ora FHIR Screening Implementation Guide - Local Development build (v1.0.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

API consumption sequence diagrams

FHIR screening summary API typical operation

Cervical screening summary API - typical sequenceHNZ digital services hub /connector planeHNZ FHIR APIshealth practitioner (screening)health practitioner (screening)NZ health app/PMSNZ health app/PMSAPI authn. serverAPI authn. serverAPI gatewayAPI gatewayScreening FHIR APIScreening FHIR APIHNZ FHIR APIHNZ FHIR APINational Health Index /Health Provider IndexNational Health Index /Health Provider IndexAPI consumer OAUTH authentication at PMS initialisation[01]OAUTH2.0 Client Credentials Flow(client creds, scopes, audiences)[02]OAUTH token"scope": [   "system/DocumentReference.rs",  "system/Patient.r" ]"aud": "https://fhir-ig.digital.health.nz/screening/StructureDefinition/nz-screening-summary"normal API usage[03]enter patient name, NHI[04]NHI search[05]present NHI matches[06]request screening summaries for selected NHI and programme typeApp/PMS supplies metadata inRequest-Context:  "userIdentifier" - userId as known to PMS/app  "purposeOfUse":"SCREENING"  "useFullName" - user's name  "hpiFacility" - facility identifier for the user's location from Health Provider Index  "registrationAuthorityNumber" - The practitioner number and Registration Authority that issued it  "hpiPractitioner" (if available) - practitioner's Common Person Number (CPN) from Health Provider Index[07]GET/DocumentReference?{search-params}[08]validate OAUTH token(issuer,sig)[09]GET /DocumentReference?<params>breakalt[Bad/missing access OAUTH token (issuer, scope, audience, expiry)][10]HTTP 401 error: Unauthorizedalt[Bad/missingRequest-Contextcustom header][11]HTTP 400 error: Bad Request[12]Search for Terms Acceptance Forms by Facility+ Practitioner GET /QuestionnaireResponse?subject=X&source=Y[13]MATCHES[14]Confirm Practitioner and Facility TermsAcceptancealt[normal report generation][15]get data from backend APIs[16]generate screening summary content as HTMLand PDF[17]include participant data as Patient instance[18]200 OK, FHIR searchset BundleIn normal search response is a FHIR searchset Bundle. EachBundle entry comprises aDocumentReference (mode:#match)containingthe formatted screening summary, AND aPatient (mode:#include) instance for the patient demographic detail[No screening summary is available][19]200 OK, Bundle of mode: #outcomeWhen screening history not available for specified subject, the Bundle contains oneor moreOperationOutcomes (mode: #outcome) describing the reason(s).[technical error][20]HTTP 4xx|5xx error codeIn technical error scenarios, the responseis just a FHIROperationOutcome[21]process results and display to user[22]present screening summary / search result


User/practitioner special data access terms acceptance sequence

Cervical screening API data access - Practitioner terms acceptance form flowHNZ FHIR APIshealth practitioner (screening)health practitioner (screening)NZ health app/PMSNZ health app/PMSScreening FHIR APIScreening FHIR APIHealth Provider IndexHealth Provider IndexHNZ FHIR APIHNZ FHIR APIHNZ Application Form APIHNZ Application Form APIAPI first time use by new practitioner/user[01]request screening summary for a patient[02]Get screening summaries by NHI  GET /DocumentReference?<params>[03]search Terms Acceptance by facility  GET /QuestionnaireResponse?subject=<hpiFacility>[04]MATCH[05]search Terms Acceptance by practitioner  GET /QuestionnaireResponse?subject=<hpiPractitioner>[06]NO MATCHalt[The practitioner user has not previously accepted the Terms of Access][07]Searches for Practitioner and Facility[08]HPI detailsbreak[HPI identifier validation failures]alt[Practitioner Id not valid][09]HTTP 400 Bad Requestalt[HPI Facility Id not valid][10]HTTP 400 Bad Request[11]Generate Terms Acceptance Form  POST /v1/auth/{formName}/generate-questionnaire-linkA Terms Acceptance form is prepopulated with practitioner,facility and organisation details as sent by the PMS.[12]Prepare Form[13]Prepopulated Form Url (aka 'magic link')[14]Prepare OperationOutcome 403 responsecontaining 'magic link'[15]HTTP 403 Forbidden error + 'magic link'On receipt of a 403 response, the App/PMS must check for magic linkin the FHIROperationOutcome.diagnosticsproperty.[16]Display form in browser using magic link[17]Read special terms of access; complete form;submit to accept[18]Record practitioner's acceptance of terms[19]Practitioner terms acceptance completeAPI request processing can now proceed - see Typical Operation diagram Now that terms acceptance has been recored, the practitioner/user can retry their request for screening summaries in the PMS.