Ga naar hoofdinhoud
Versie: 0.1.0

Introductie

OKAPI

OKAPI – de Open Koppel- en Aanmeld Programmeer Interterface - is een specificatie van een standaard voor het koppelen van het informatiesysteem van een zorgaanbieder met een dienstverlener. Met deze standaard meldt het informatiesysteem een Application Programming Interface (API) aan bij de dienstverlener via een beveiligd protocol, waarna dienstverlener en het systeem van een zorgverlener onderling gegevens kunnen uitwisselen. Er is flexibiliteit zodat informatiesystemen en dienstverleners onderling geschikte API’s kunnen afspreken waarmee gegevens opgehaald en teruggestuurd kunnen worden. Dit kunnen, en zullen vaak, landelijk gestandaardiseerde APIs zijn.

De standaard stelt beveiliging, eenvoud en flexibiliteit centraal. OKAPI verzorgt een veilige verbinding tussen informatiesystemen en dienstverleners waarmee informatiesystemen onderling kunnen afspreken hoe zij gegevens kunnen uitwisselen ten behoeve van dienstverlening voor of rond de patiënt. Onderdeel hiervan is het bepalen van het beleid rond het aanmelden van patiënten bij de dienst, zoals over het vragen en registreren van toestemming alvorens gegevens mogen worden aangemeld. Idealiter kunnen straks op basis van de als onderdeel van de OKAPI standaard uitgewisselde policy gegevens, eenvoudig (gestandaardiseerde) functionaliteiten in het informatiesysteem worden geactiveerd die overeenkomen met de uitgewisselde policy, zoals voor het individueel of batch-gewijs aanmelden van patiënten en voor het registreren van uitdrukkelijke toestemming of juist het registreren van een opt-out, afhankelijk van de dienst.

OKAPI wil op deze manier een eenvoudig maar compleet instrument vormen voor het op gestandaardiseerde wijze koppelen van APIs voor specifieke diensten van verschillende dienstverleners, op basis van een heldere en uniforme structuur voor het registreren en activeren van diensten, die consistent is voor alle diensten en dienstverleners.

Waarom is het nodig?

Er wordt (landelijk) gewerkt aan gestandaardiseerde API’s voor het bevragen van gegevens, bijvoorbeeld via de FHIR standaard. Deze API’s standaardiseren echter niet het in de praktijk cruciale proces van on-boarding (dwz, aanmelding/registratie van diensten), en ook de manier van koppelen en het afspraken maken over beveiligingsprotocollen voor het kunnen bevragen van API’s wordt voor de meeste van deze API’s niet gespecificeerd. OKAPI wil dit gat vullen, door een duidelijk on-boarding (aanmeld- en registratie) protocol te definiëren voor het koppelen met een dienst(verlener), alsmede een protocol voor het aanmelden van gegevens bij die dienst zodat het mogelijk wordt de gegevens gegevens van een specifieke patiënt op te vragen vanuit de dienst.

Dit protocol is toepasbaar voor het koppelen van meerdere diensten, naast elkaar – potentiëel met meerdere API’s. Zo kan OKAPI gebruikt worden om een voor MedMIJ geschikte FHIR API te koppelen met een autorisatie server die onderdeel is van een Dienstverlener Zorgaanbieder (DVZA), zoals gedefinieerd in het MedMIJ stelsel. Alle patiënten van de zorgverlener (behalve diegenen die expliciet bezwaar hebben gemaakt) worden aangemeld bij de autorisatie server, die vervolgens de technische invulling van de DVZA implementeert, waaronder het afhandelen van de interactie met DigiD. Vervolgens kan de FHIR server bevraagd worden voor die patiënt, wanneer deze (vrij vertaald) is ‘ingelogd’ op de autorisatie server.

Voor een andere dienst kan een andere API gekoppeld worden, bijvoorbeeld omdat deze dienst bedoeld is voor onderlinge communicatie tussen huisartsen. Hier kan ook een FHIR API beschikbaar worden gesteld, maar mogelijk wijkt deze dan af van de standaard MedMIJ API – bijvoorbeeld omdat de MedMIJ API bepaalde gegevens (zoals S-regels) uit het huisartsdossier onderdrukt, welke wel nodig zijn in de context van een dienst om huisartsgegevens onderling uit te wisselen. Zoals gezegd, voor elke dienst kan het informatiesysteem hetzelfde, maar desgewenst ook een andere API aanmelden.

Hoe werkt OKAPI?

De werking van OKAPI wordt in detail beschreven in de specificatie. Op hoofdlijnen omvat de specificatie de volgende stappen:

  • On-boarding. De gebruiker (of administrator) van het informatiesysteem vult de URL in waarop de OKAPI interface van de dienstverlener te vinden is. De verbinding wordt gelegd, en de gebruiker/administrator krijgt informatie terug over de dienstverlener en de beschikbare diensten (in algemene zin).
  • Als onderdeel van de registratie, stuurt het informatiesysteem informatie op over de praktijk of instelling die probeert te verbinden. Dit kan een naam zijn, maar veelal is het noodzakelijk om een AGB-code in te voeren of minimaal een KvK-nummer. De administrator van de dienst bekijkt deze informatie om te beslissen of de aanvragende partij toegang krijgt tot de dienst.
  • Indien de aanmelding toegestaan is, activeert de beheerder van de dienst de beschikbare diensten (elke dienstverlener kan meerdere diensten bieden, voor verschillende toepassingen). Daarna genereert de beheerder een autorisatiecode die via een veilige route (bijvoorbeeld, veilige mail of aangetekende post) naar het adres van de aanvragende partij wordt gestuurd. Dit gebeurt bewust out-of-band om zekerheid te bieden dat het registrerende systeem inderdaad van de opgegeven partij is.
  • De gebruiker of beheerder van het informatiesysteem activeert de verbinding na ontvangst middels de autorisatiecode.
  • Als dit klopt kan het informatiesysteem de beschikbare diensten, alsmede de bijbehorende (per-dienst) aanmeld- en toestemmings policy (zie boven) inzien. Op basis hiervan kan de gebruiker of beheerder van het informatiesysteem de diensten in het eigen systeem activeren. (Dit is een actieve stap).
  • Na bovenstaande stappen, kan het informatiesysteem gegevens uitwisselen met de dienstverlener, over de beschikbare API(s) en beveiligingsprotocollen voor bevragen van die API(s). Het gaat hier om APIs voor het bevragen van patiëntgegevens of het opsturen van gegevens naar het informatiesysteem. Pas nadat hierover overeenstemming is, kan met aanmelden van patiënten worden begonnen.
  • Bij het aanmelden van een patiënt wordt in de regel ‘metadata’ meegegeven (zoals naam, geboortedatum, adresgegevens), alsmede (afhankelijk van het beveiligingsprotocol) een identifier en/of unieke code waarmee de gegevens van patiënt bevraagbaar zijn op de API. En soortgelijk voor de API om gegevens op te kunnen sturen vanuit de dienst naar het informatiesysteem.
  • Als de patiënten zijn aangemeld kan de dienstverlener via de afgesproken API's met de afgesproken beveiligingsprotocollen gegevens van deze patiënten ophalen of informatie over deze patiënten terugsturen.