Koppelmij Implementation Guide
0.1.0 - ci-build
Koppelmij Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Deze walkthrough beschrijft hoe een module de gebruiker na afloop terugbrengt naar de PGO. De module voert twee verplichte stappen uit in vaste volgorde: (1) Task-status bijwerken, (2) browser redirecten naar de return_url. De flow vindt altijd plaats in hetzelfde browser-window via een HTTP 302 redirect.
PATCH /Task/{id} — dit MOET vóór de redirect plaatsvinden zodat het PGO na terugkeer de actuele status kan ophalen.return_url uit de launch-context — optioneel met status / error-parameter bij afbreken of fout.return_url uit de launch-context opgeslagen (ontvangen in de Token Exchange response in 3.6).Task.id uit de launch-context.Voordat de module de gebruiker terugstuurt, MOET de module de Task.status bijwerken naar de juiste waarde die de uitkomst van het modulegebruik weerspiegelt (bijv. completed, failed, cancelled, in-progress). Zie Wijzigen Task-status als module voor de technische details.
Dit is essentieel omdat het PGO na de redirect een GET /Task/{id} uitvoert om de actuele status op te halen. Zonder voorafgaande update ziet het PGO een verouderde status.
De module stuurt een HTTP 302 redirect naar de return_url. Het PGO kan de return_url verrijken met query-parameters zoals task_id, zodat het PGO bij terugkomst direct de juiste taak kan tonen.
HTTP/1.1 302 Found
Location: https://pgo.example.nl/launch_callback?task_id=abc
Voor taken met de status entered-in-error, failed, cancelled of rejected MAG de module de gebruiker direct terugsturen naar het PGO. De module KAN daarbij optioneel een status- en message-parameter meegeven, zodat het PGO meteen een gebruikersvriendelijke melding kan tonen zonder te wachten op de her-synchronisatie:
HTTP/1.1 302 Found
Location: https://pgo.example.nl/launch_callback?task_id=abc&status=error&message=taak-is-cancelled
Voor andere foutsituaties (bijvoorbeeld temporarily_unavailable) volstaat een error-parameter:
HTTP/1.1 302 Found
Location: https://pgo.example.nl/launch_callback?task_id=abc&error=temporarily_unavailable
DVA is leidend voor
Task.status. De query-parametersstatus/messagezijn slechts een hint voor een snelle UX-melding. Het PGO MOET na terugkeer de taak opnieuw ophalen bij de DVA en uitsluitend de daar verzamelde status overnemen.
function redirectToPgo(
returnUrl: string,
options?: { status?: string; message?: string; error?: string },
) {
const url = new URL(returnUrl);
if (options?.status) url.searchParams.set("status", options.status);
if (options?.message) url.searchParams.set("message", options.message);
if (options?.error) url.searchParams.set("error", options.error);
// Express: res.redirect(302, url.toString());
window.location.href = url.toString();
}
return_url, eventueel met task_id als query-parameter.GET /Task/{id} om de actuele status vast te stellen.status-query-parameter is alleen een UX-hint.status / message direct een gebruikersvriendelijke melding tonen, zonder te wachten op de her-synchronisatie.De return_url werkt ook voor mobiele apps: voor iOS via Universal Links en voor Android via App Links. Dit is de verantwoordelijkheid van de app-bouwers.
De sessie geldt zowel tussen persoon en aanbiedermodule als tussen aanbiedermodule en DVA. De sessieduur is gelijk aan de geldigheidsduur van het access_token; er is geen sliding window.
expires_in van het access_token: 3600 seconden (1 uur).access_token na het verstrijken van expires_in automatisch vernietigen.access_token.De sessie eindigt wanneer:
access_token is bereikt.Openstaand: locatie van return_url in de SMART-context. Het Confluence-document vermeldt dat de return_url meekomt in de launch-context (stap 3.6). De exacte positie in de token response (top-level veld vs. authorization_details) is nog af te stemmen.
Openstaand: welke error-waarden zijn gestandaardiseerd? Het voorbeeld gebruikt temporarily_unavailable; een volledige lijst van foutcodes is nog niet vastgelegd.