Document toolboxDocument toolbox

RFC0039 Toestemming voor meerdere diensten van één aanbieder - v0.5

Samenvatting

Waarom is deze RFC nodig?

Met deze RFC wordt de gebruiksvriendelijkheid van de MedMij UC Verzamelen voor Personen vergroot. Deze RFC vormt één van de stappen in het vergroten van de gebruiksvriendelijkheid.

Input van deelnemers
  1. Loskoppelen van resource server (RS) en authorization server (AS) heeft impact op de markt, op gedane investeringen en op beoogde business modellen. Hier moet goed over worden nagedacht.

  2. Hoe vaak komt het voor dat een zorgaanbieder gegevensdiensten aanbiedt via verschillende DVA's? Is het daarom wel echt nodig om RS en AS los te koppelen? Rondgang in de sessie gaf het beeld dat dit toch geregeld voor zal komen.

Oplossingsrichting

Requirements:

  1. Toestaan dat één keer inloggen en één keer toestemming voor verzamelen van een set van (gegevens)diensten, die een aanbieder via eenzelfde dienstverlener aanbieder (DVA) aanbiedt, volstaat. D.w.z. voor een periode van 15 minuten, zoals gebruikelijk.
  2. Dit geldt voor alle verzamel-gegevensdiensten die een zorgaanbieder aanbiedt binnen één zelfde interfaceversie.

Voor deze RFC zijn een aantal oplossingsrichtingen overwogen:

  1. Toestemming voor lijst van gegevensdiensten;
  2. Toestemming voor toestemmingscategorie;
  3. Introductie van overkoepelende gegevensdienst(en).

Oplossingsrichting 2 is naar voren gekomen als de gewenste richting en wordt hier verder uitgewerkt.

Oplossingsrichting 2 - Toestemming voor toestemmingscategorie

Deze oplossingsrichting maakt zowel meer grofmazige als meer fijnmazige toestemmingen mogelijk, e.e.a. afhankelijk van de gekozen omvang van een toestemmingscategorie.

Onderstaande figuur toont het gehanteerde metamodel.

Een gegevensdienst bestaat uit één of meerdere systeemrollen. Binnen een systeemrol zijn één of meerdere interacties gespecificeerd, waarmee gegevens kunnen worden uitgewisseld.

Om een interactie te mogen initieren is een access_token vereist die recht geeft op het gebruik van een Gegevensdienst. Een access_token wordt pas uitgegeven:

  1. wanneer Persoon toestemming heeft gegeven voor alle toestemmingscategorieën die zijn verbonden aan de systeemrollen waaruit een Gegevensdienst bestaat, en
  2. wanneer de Aanbieder instaat voor beschikbaarheid van deze Gegevensdienst voor deze Persoon.

De toestemmingscategorie is bewust gekoppeld aan de systeemrol en niet aan de Gegevensdienst, zodat een Gegevensdienst kan bestaan uit onderdelen die in verschillende categorieën vallen, bijvoorbeeld "logistiek" en "behandeling".


Nadere uitwerking:

  • In een nieuwe lijst, de TCL, worden alle toestemmingscategorieën opgenomen, inclusief weergavenamen. De inhoud voor TCL wordt, in samenspraak met MedMij Standaarden, bepaald door de Stichting MedMij.
  • In de ZAL wordt iedere systeemrol voorzien van een id van het toestemmingscategorie waaronder de betreffende systeemrol valt (een gegevensdienst zou in theorie dan meerdere categorieën kunnen omspannen). Voor de systeemrollen binnen de gegevensdienst "verzamelen documenten" is de toestemmingscategorie namelijk afhankelijk van de categorie waaronder de zorgaanbieder valt (zie onderstaande tabel). Om deze reden moet de toestemmingscategorie worden opgenomen in de ZAL en niet in de GNL.
  • Als toestemmingscategorieën worden bij voorkeur de gegevenscategorieën gehanteerd die binnen Mitz worden gebruikt, indien noodzakelijk aangevuld met eigen categorieën, ofwel
    • <Mitz> Behandelgegevens

    • <Mitz> Medicatiegegevens

    • <Mitz> Uitslagen

  • Uitgangspunt is om de Persoon niet met meer categorieën te confronteren dan strikt noodzakelijk, waarbij ernaar wordt gestreefd om alle gegevens die een aanbieder beschikbaar stelt te kunnen verzamelen op basis van een toestemming voor slechts één toestemmingscategorie.
  • Wanneer DVP een Authorization Request samenstelt, dan bepaalt zij m.b.v. de ZAL de aanbieder-gegevensdienst-combinaties die zij wil opnemen in de scope parameter van het request. Een DVP wordt niet geconfronteerd met toestemmingscategorieën en kan de gebruikersinteractie vormgeven op basis van de eigen visie, daarbij gebruikmakend van de use cases die zijn uitgewerkt in de beschikbare gegevensdiensten/informatiestandaarden.
  • DVA bepaalt de benodigde toestemmingscategorie of -categorieën  en toont bijbehorende weergavenaam en toelichtende tekst. Hierbij worden zo mogelijk (bij vroege beschikbaarheidstoets) slechts toestemmingen gevraagd voor categorieën die daadwerkelijk beschikbaar zijn om te verzamelen.
  • DVA geeft vervolgens een access_token uit voor een scope (aanbieder-gegevensdienst-combinaties) die wordt bepaald door
    • de aanbieder-gegevensdienst-combinaties die de DVA daadwerkelijk, binnen de gebruikte interfaceversie, ondersteunt
    • de gegevensdiensten die de DVP daadwerkelijk, binnen de gebruikte interfaceversie, ondersteunt
    • bij vroege beschikbaarheidstoets: de aanbieder-gegevensdienst-combinaties die daadwerkelijk beschikbaar zijn voor verzamelen door deze Persoon
    • de set van toestemmingscategorieën waarvoor daadwerkelijk toestemming is gegeven,
  • De scope van de Token Response bevat derhalve de daadwerkelijk toegekende aanbieder-gegevensdienst-combinaties.
  • DVP kan vervolgens o.b.v. een verkregen access_token alle gegevensdiensten bij de betreffende aanbieder gebruiken, waarvoor autorisatie is gegeven. Autorisatie wordt vooralsnog slechts door een Autorisatie Server afgegeven voor aanbieder-gegevensdienst-combinaties waarvoor de betreffende DVA ook de Resource Server rol vervult.
  • DVA toetst bij ontvangst van een resource request in de Resource Server of het request past binnen één van de toegekende gegevensdiensten. Een Resource Server wordt niet geconfronteerd met toestemmingscategorieën.
  • NB. wanneer DVP vervolgens een nieuw Authorization Request laat sturen, dan zal Persoon wel weer opnieuw moeten inloggen en toestemmen.

Structuur van de TCL:

  • ToestemmingsCategorieën
    • Toestemming Categorie
      • ToestemmingsCategorieId
      • ToestemmingsCategorieWeergave
      • ToestemmingsCategorieToelichting

Gewijzigde structuur van de ZAL (slechts deels getoond):

  • Gegevensdienst
    • GegevensdienstId
    • Systeemrollen
      • Systeemrol
        • Systeemrolcode
        • ToestemmingsCategorieId

Onderstaande tabel toont de relatie tussen de huidige verzamel-gegevensdiensten, systeemrollen, de initiële toestemmingscategorieën en de toestemmingsonderdelen.

IDGegevensdienstHuidige weergavenaam in toestemmingverklaringSysteemrolToestemmingscategorieTe verzamelen bij *
24Verzamelen Laboratoriumresultaten (*) 1.1LaboratoriumresultatenLAB-1.1-LRB-FHIRUitslagenDiagnostische centra
46Verzamelen Laboratoriumresultaten 2.0LAB-2.0-LRB-FHIR
25Verzamelen Afspraken (*) 1.1AfsprakenEA-1.1-AFB-FHIR

Uitslagen (voor diagnostische centra) **

Medicatiegegevens (voor apotheken) **

Behandelgegevens (voor de overige zorgaanbieders) **

Alle zorgaanbieders
47Verzamelen Afspraken 2.0EA-2.0-AFB-FHIR
26Verzamelen Basisgegevens zorg (*) 2.1Basisgegevens zorgMM-2.1-BZB-FHIRBehandelgegevensMedisch-specialistische instellingen
48Verzamelen Basisgegevens zorg 3.0MM-3.0-BZB-FHIR
28Verzamelen Huisartsgegevens (*) 1.1HuisartsgegevensMM-1.1-HGB-FHIRBehandelgegevensHuisartspraktijken en -posten
49Verzamelen Huisartsgegevens 2.0MM-2.0-HGB-FHIR
32Verzamelen Basisgegevens GGZ (*) 1.1Basisgegevens GGZMM-1.1-GGB-FHIRBehandelgegevensGeestelijke gezondheidszorg
50Verzamelen Basisgegevens GGZ 2.0MM-2.0-GGB-FHIR
33Verzamelen Documenten (*) 1.2Documenten

MM-1.2-PLB-FHIR

MM-1.2-PDB-FHIR    

Uitslagen (voor diagnostische centra) **

Medicatiegegevens (voor apotheken) **

Behandelgegevens (voor de overige zorgaanbieders) **

Alle zorgaanbieders


51Verzamelen Documenten 3.0

MM-3.0-PLB-FHIR

MM-3.0-PDB-FHIR    

30Verzamelen Medicatieoverzichten 9.0MedicatieoverzichtenMP-9.0.7-MOB-FHIR

Medicatiegegevens (voor apotheken) **

Behandelgegevens (voor de overige zorgaanbieders) **

Alle zorgaanbieders, behalve diagnostische centra
31Verzamelen Medicatiegegevens 9.0MedicatiegegevensMP-9.0.7-MGB-FHIR
35Verzamelen Medicatiegegevens 9.AMP-9.A.1-MGB-FHIR
36Verzamelen Meetwaarden vitale functies (*) 1.2Meetwaarden vitale functiesMM-1.2-MVB-FHIR

Uitslagen (voor diagnostische centra) **

Behandelgegevens (voor de overige zorgaanbieders) **

Alle zorgaanbieders, behalve apotheken
52Verzamelen Meetwaarden vitale functies 2.0MM-2.0-MVB-FHIR
38Verzamelen Overgevoeligheden (*) 1.1OvergevoelighedenMM-1.1-AIB-FHIR

Medicatiegegevens (voor apotheken) **

Behandelgegevens (voor de overige zorgaanbieders) **

Alle zorgaanbieders, behalve diagnostische centra
54Verzamelen Overgevoeligheden 2.0MM-2.0-AIB-FHIR
42Verzamelen Medicatiegerelateerde Overgevoeligheden (*) 1.AMedicatiegerelateerde OvergevoelighedenMM-1.A-AIB-FHIRMedicatiegegevensApotheken
58Verzamelen Medicatiegerelateerde Overgevoeligheden 2.AMM-2.A-AIB-FHIR
43Verzamelen Verwijzing naar vragenlijst (*) 1.0Verwijzing naar vragenlijstVL-1.0-QLB-FHIR

Uitslagen (voor diagnostische centra) **

Medicatiegegevens (voor apotheken) **

Behandelgegevens (voor de overige zorgaanbieders) **

Alle zorgaanbieders
59Verzamelen Verwijzing naar vragenlijst 2.0VL-2.0-QLB-FHIR
61Verzamelen Basisgegevens Langdurige Zorg 3.0Basisgegevens Langdurige ZorgMM-3.0-LZB-FHIRBehandelgegevensVerpleegzorg


*) De kolom "Te verzamelen bij" is gevuld a.d.h.v. de categorieën van zorgaanbieders die binnen Mitz worden onderkend:

  1. Huisartspraktijken en -posten: huisartsenpraktijk, huisartsenpost, huisartsinstelling en apotheekhoudende huisarts
  2. Medisch-specialistische instellingen: ziekenhuis, zelfstandige kliniek, polikliniek (als onderdeel van ziekenhuis) en zelfstandig opererende ziekenhuisapotheek
  3. Verpleegzorg: thuiszorg en verpleeg-/verzorgingshuis
  4. Mondzorg, paramedische praktijken en JGZ: tandartspraktijk, orthodontiepraktijk, tandprothetische praktijk, mondhygiënistenpraktijk, centrum voor bijzondere tandheelkunde, optometriepraktijk, orthoptistenpraktijk, fysiotherapiepraktijk, ergotherapiepraktijk, oefentherapiepraktijk, huidtherapiepraktijk, diëtistenpraktijk, logopediepraktijk, podotherapiepraktijk, jeugdgezondheidszorg en verloskundigepraktijk
  5. Geestelijke gezondheidszorg: psychiatriepraktijk, psychologiepraktijk, psychotherapiepraktijk en geestelijke gezondheidszorg
  6. Apotheken: (openbare) apotheek
  7. Diagnostische centra: radiotherapeutisch centrum, laboratorium, echocentrum, diagnostisch centrum en bevolkingsonderzoek kanker

**) De toestemmingscategorie waaronder de betreffende gegevensdienst valt is afhankelijk van het type zorgaanbieder die de gegevensdienst aanbiedt. Het zorgaanbiedertype dient door de DVA te worden geadministreerd in de RnA.

Aanpassing van

TCL (nieuwe lijst), ZAL, authorization flow, toestemmingsverklaring, UC(I) Verzamelen

Aangezien deze RFC een nieuwe MedMij lijst introduceert is ervoor gekozen om middels deze RFC direct ook een herstructurering door te voeren op de wijze waarop de omgang met de verschillende lijsten in het afsprakenstelsel is beschreven. Inhoudelijk wijzigt hierdoor echter niets.

Impact op rollen

DVP, DVA

Impact op beheer

Ja

Ook TCL samenstellen en algemene regels voor koppelen categorieën aan gegevensdiensten/systeemrollen.

Impact op RnA

Ja, aanzienlijk:

  • Zorgaanbieders krijgen 'MITZ categorie' in RenA (1:N of N:M?), te beheren door DVZA's
  • Gegevensdiensten-systeemrol krijgen 'Toestemmingscategorie' , te beheren door Beheerorganisatie (onderdeel Catalogus?)
  • Nieuwe lijst TCL genereren
Impact op Acceptatie

Ja, vereist aanpassingen in acceptatiescripts.

Gerelateerd aan (Andere RFCs, PIM issues)

AF-1127

Eigenaar
Implementatietermijn

1.5.0

Motivatie verkorte RFC procedure (patch)


Goedkeuring

BeoordelaarDatumToelichtingBeoordelaarDatumToelichting
Productmanager Stichting MedMij

Productmanager Beheerorganisatie

Leadarchitect Stichting MedMij

Leadarchitect Beheerorganisatie

Ontwerpteam




Deelnemersraad

Eigenaarsraad

Principe's

Principe
Principe

1 Het MedMij-netwerk is zoveel mogelijk gegevensneutraal

Positief

11 Stelselfuncties worden vanaf de start ingevuld

Positief

2 Dienstverleners zijn transparant over de (gegevens)diensten 

Positief

12 Het afsprakenstelsel is een groeimodel

Positief

Dienstverleners concurreren op de functionaliteiten

Positief

13 Ontwikkeling geschiedt in een half-open proces met verschillende stakeholders

Positief

Dienstverleners zijn aanspreekbaar door de gebruiker

Positief

14 Uitwisseling is een keuze

Positief

De persoon wisselt gegevens uit met de aanbieder

Positief

15 Het MedMij-netwerk is gebruiksrechten-neutraal

Positief

MedMij spreekt alleen af wat nodig is

Positief

16 De burger regisseert zijn gezondheidsinformatie als uitgever

Positief

De persoon en de aanbieder kiezen hun eigen dienstverlener

Positief

17 Aan de persoonlijke gezondheidsomgeving zelf worden eisen gesteld

Positief

De dienstverleners zijn deelnemers van het afsprakenstelsel

Positief

18 Afspraken worden aantoonbaar nageleefd en gehandhaafd

Positief

10 Alleen de dienstverleners oefenen macht uit over persoonsgegevens bij de uitwisseling

Positief

19 Het afsprakenstelsel snijdt het gebruik van normen en standaarden op eigen maat

Positief

Uitwerking

Processen en Informatie - Lijsten

In het MedMij Afsprakenstelsel worden, ten behoeven van de hoofdfunctie Coördinatie, verschillende lijsten gebruikt voor de interoperabiliteit en het vertrouwen tussen het Persoonsdomein en het Zorgaanbiedersdomein. MedMij Beheer beheert en publiceert de volgende lijsten:

lijst

afkortingwordt opgehaald en gebruikt doorinformatie-inhoud
UitgeverBron/Lezer
ZorgaanbiederslijstZALX
Welke Zorgaanbieders welke Gegevensdiensten aanbieden, en eventueel ook Abonnementen daarop, en op welke adressen zij die laten laten ontsluiten, gegeven een zekere Interfaceversie.
OAuth Client ListOCL
XDe namen van PGO's, welke Gegevensdiensten zij mogen gebruiken en naar welke adressen mogelijk Notificaties in het kader van Abonnementen op die Gegevensdiensten kunnen worden gestuurd, gegeven een zekere Interfaceversie.
GegevensdienstnamenlijstGNLXXDe gebruiksvriendelijke namen van Gegevensdiensten.
ToestemmingsCategorieënLijst TCL

Toestemmingscategorieën en gebruiksvriendelijke namen die ervoor worden gehanteerd.
WhitelistWHLXX

Welke Nodes actief mogen zijn op het MedMij-netwerk.

De MedMij Stelselnode heeft stelselnode.medmij.nl als hostname. De MedMij Stelselnode staat zelf niet op de Whitelist, maar wordt er voor de controle tegen de Whitelist wel geacht op te staan.

Zorgaanbiederslijst

10.

MedMij Beheer beheert en publiceert een Zorgaanbiederslijst, namens de deelnemende Dienstverleners zorgaanbieder. De gepubliceerde Zorgaanbiederslijst bevat steeds en slechts alle actuele entries, en beschrijft van elke Zorgaanbieder:

  • welke Gegevensdiensten deze momenteel aanbiedt via welke Bron en Lezer, en welke technische adressen daarvoor moeten worden aangesproken bij de Dienstverlener zorgaanbieder, gegeven een zekere Interfaceversie;
  • voor welke Gegevensdiensten het mogelijk is om Abonnementen aan te gaan en via welke technische adressen dit kan worden gedaan, gegeven een zekere Interfaceversie. In deze release van het MedMij Afsprakenstelsel staat de Catalogus alleen Abonnementen toe op Gegevensdiensten die zijn gebaseerd op de UC Verzamelen.
11.De Zorgaanbiederslijst voldoet aan wat over haar is bepaald in de Informatiemodellen.
12.

MedMij Beheer beheert en publiceert, in de Zorgaanbiederslijst, unieke en gebruikersvriendelijke namen van Zorgaanbieders, van het formaat <zorgaanbieder>@medmij. Daarop is naamgevingsbeleid van toepassing.

13.MedMij Beheer biedt aan Uitgever een use case (UC Opvragen ZAL) om de actuele versie van die Zorgaanbiederslijst op te vragen. Betrokken rollen gebruiken hiertoe het betreffende stroomdiagram.


OAuth Client List

14a.
MedMij Beheer beheert en publiceert een actuele OAuth Client List, namens de deelnemende Dienstverleners persoon. De gepubliceerde OAuth Client List bevat steeds en slechts alle actuele entries, en beschrijft van elke OAuth Client:
  • wat de gebruikersvriendelijke namen zijn die voor de Dienstverleners persoon worden gebruikt in de Toestemmingsverklaring , de Bevestigingsverklaring en de Notificatie van Zorggebruiker;
  • op welke Gegevensdiensten de Dienstverlener persoon het ontvangen van Notificaties, in het kader van een Abonnement, ondersteunt en op welke technische adressen deze Notificaties moeten worden afgeleverd, gegeven een zekere Interfaceversie. In deze release van het MedMij Afsprakenstelsel kunnen slechts Abonnementen worden aangegaan op Gegevensdiensten die zijn gebaseerd op de UC Verzamelen.
14b.De OAuth Client List voldoet aan wat over haar is bepaald in de Informatiemodellen.
15.MedMij Beheer biedt aan Bron een use case (UC Opvragen OCL) om de actuele versie van die OAuth Client List op te vragen. Betrokken rollen gebruiken hiertoe het betreffende stroomdiagram.

Gegevensdienstnamenlijst

16.MedMij Beheer beheert en publiceert de Gegevensdienstnamenlijst. Deze beschrijft welke gebruikersvriendelijke namen horen bij welke GegevensdienstenDe Gegevensdienstnamenlijst voldoet aan wat over haar is bepaald in de Informatiemodellen.
17.MedMij Beheer biedt aan Uitgever, Bron en Lezer een use case (UC Opvragen GNL) om de actuele versie van die Gegevensdienstnamenlijst op te vragen. Betrokken rollen gebruiken hiertoe het betreffende stroomdiagram.

Whitelist

18.

MedMij Beheer beheert en publiceert een actuele Whitelist, namens de deelnemende Dienstverleners zorgaanbieder en Dienstverleners persoon. De Whitelist beschrijft welke Nodes in MedMij-verkeer mogen deelnemenDe Whitelist voldoet aan wat over haar is bepaald in de Informatiemodellen.

 Click here to expand...
Er bestaat op deze laag geen use case voor het opvragen van de Whitelist. De Whitelist wordt alleen gebruikt op de Netwerk-laag. Op die laag is er wel een use case-implementatie voor dit doel.


Processen en Informatie - UC Verzamelen

De totale procesgang van de UC Verzamelen kent de volgende stappen:

  • De Uitgever presenteert aan de Zorggebruiker de mogelijkheid om te verzamelen.
  • De Zorggebruiker kiest expliciet de zorgaanbieder waarbij hij de informatie wenst te verzamelen en de specifieke Gegevensdienst(en). Daarvoor kunnen desgewenst de Gegevensdienstnamen worden gebruikt uit de Gegevensdienstnamenlijst. Het verzoek gaat naar de passende Bron.
  • De Bron ontvangt de Zorggebruiker.
  • De Bron laat de Zorggebruiker zich authenticeren.
  • Wanneer de Zorggebruiker de authenticatie heeft afgebroken geeft de Bron de mogelijkheid alsnog te authenticeren of de flow af te breken.
  • Dan breekt het moment aan waarop de Bron op zijn vroegst ervoor instaat dat de Zorgaanbieder voor tenminste één van de gevraagde Gegevensdiensten überhaupt gezondheidsinformatie van die Persoon beschikbaar heeft, of anders de happy flow afbreekt. Het MedMij Afsprakenstelsel adviseert de beschikbaarheidsvoorwaarde op het vroegst aangegeven moment van kracht te laten zijn. In deze release staat het MedMij Afsprakenstelsel het toe die voorwaarde op een later moment van kracht te laten zijn, maar niet later dan het laatste in het figuur aangegeven moment.
  • De Bron vraagt aan de Zorggebruiker of hij toestemming geeft tot het verstrekken van de gevraagde informatie aan de UitgeverDeze vraag staat op de pagina Toestemmingsverklaring.
  • De Bron logt die toestemming en geeft een autorisatie af aan de Uitgever.
  • Nu kan de Uitgever de Bron vragen om de gezondheidsinformatie.
  • Uiterlijk na de ontvangst van het verzoek zal de Bron ervoor instaan dat de Zorgaanbieder voor de betreffende Gegevensdienst(en) überhaupt gezondheidsinformatie van die Persoon beschikbaar heeft, of anders de happy flow afbreken.
  • Bij ontvangst slaat de Uitgever die informatie op in het persoonlijke dossier. 
  • Mocht een Gegevensdienst waartoe de Uitgever is geautoriseerd uit meerdere Transacties bestaan (zie hiervoor de Catalogus), dan bevraagt de Uitgever de Bron daarna mogelijk opnieuw voor de nog resterende Transacties, eventueel na nieuwe interactie met de Zorggebruiker. Hetzelfde geldt wanneer de Uitgever is geautoriseerd voor meerdere Gegevensdiensten van de betreffende Zorgaanbieder.
  • Bij de informatie wordt ook de meta-informatie opgeslagen die wordt bedoeld in verantwoordelijkheid 19 van de Processen- en Informatielaag.


In plaatje met de flows onderscheid maken tussen toestemming door Zorggebruiker en autorisatie door Bron. Dit staat er nu niet goed.

Processen en Informatie - UC Opvragen xxL

Verwijderen van alle UC's voor opvragen van de lijsten

Applicatie - Lijsten

10a.MedMij Registratie en elke PGO Server implementeren de use case UC Opvragen ZAL met de use case-implementatie UCI Opvragen ZAL, door middel van het bepaalde inzake het ZAL interface op GNL-, OCL- en ZAL-interface. Zij gebruiken hiertoe het betreffende stroomdiagram.
10a.PGO Server betrekt minstens elke vijftien minuten (900 seconden) de meest recente Zorgaanbiederslijst van MedMij Registratie en valideert deze tegen het bijbehorende XML-schema
10c.PGO Server valideert elke nieuw verkregen ZAL-implementatie tegen het XML-schema van de Zorgaanbiederslijst. Dit XML-schema is een technische implementatie van het MedMij-metamodel.
11a.MedMij RegistratieAuthorization Server en Notification Client implementeren de use case UC Opvragen OCL met de use case-implementatie UCI Opvragen OCL, door middel van het bepaalde inzake het OCL interface op GNL-, OCL- en ZAL-interface.  Zij gebruiken hiervoor het betreffende stroomdiagram.
10b.Authorization Server en Notification Client betrekken minstens elke vijftien minuten (900 seconden) de meest recente OAuth Client List van MedMij Registratie en valideren deze tegen het bijbehorende XML-schema.
11c.

Authorization Server en Notification Client valideren elke nieuwe verkregen OCL-implementatie tegen het XML-schema van de OAuth Client List. Dit XML-schema is een technische implementatie van het MedMij-metamodel.

12a.MedMij RegistratiePGO Server en Authorization Server implementeren de use case UC Opvragen GNL met de use case-implementatie UCI Opvragen GNL, door middel van het bepaalde inzake het GNL interface op GNL-, OCL- en ZAL-interface. Zij gebruiken hiervoor het betreffende stroomdiagram.
10c.PGO Server en Authorization Server betrekken minstens elke vijftien minuten (900 seconden) de meest recente Gegevensdienstnamenlijst van MedMij Registratie en valideren deze tegen het bijbehorende XML-schema.
12c.PGO Server en Authorization Server valideren elke nieuwe verkregen GNL-implementatie tegen het XML-schema van de GNL. Dit XML-schema is een technische implementatie van het MedMij-metamodel.
10d.PGO Server betrekt minstens elke vijftien minuten (900 seconden) de meest recente ToestemmingsCategorieënLijst van MedMij Registratie en valideert deze tegen het bijbehorende XML-schema.
10e.Alle applicatierollen die betrokken zijn bij backchannel-verkeer betrekken minstens elke vijftien minuten (900 seconden) de meest recente Whitelist van MedMij Stelselnode en valideren deze tegen het bijbehorende XML-schema.
11.Wanneer een MedMij-Lijst niet beschikbaar is, dan mag gedurende maximaal 10 uur gebruik worden gemaakt van het meest recente exemplaar van de betreffende lijst in de cache van de opvrager.

Applicatie - UCI Opvragen xxL

Verwijderen van alle UCI's voor opvragen van de lijsten

Ook verwijderen pagina: Netwerk - Use case-implementatie Opvragen WHL

Applicatie - Use case implementaties - UCI Verzamelen

De flow kent de volgende stappen:

  1. De PGO Server start de flow door in de PGO Presenter van de Zorggebruiker de mogelijkheid te presenteren om een of meerdere Gegevensdiensten bij een zekere Zorgaanbieder te verzamelen. Het gaat altijd om precies één Gegevensdienst (één scope, in OAuth-termen). Uit de Zorgaanbiederslijst weet de PGO Server welke Gegevensdiensten door een Zorgaanbieder aangeboden worden. Desgewenst worden aan de Zorggebruiker de Gegevensdienstnamen uit de Gegevensdienstnamenlijst gepresenteerd.
  2. De Zorggebruiker maakt expliciet zijn selectie en laat de OAuth User Agent een authorization request sturen naar de Authorization Server. Het adres van het authorization endpoint komt uit de ZAL. De redirect_uri geeft aan waarnaartoe de Authorization Server de OAuth User Agent verderop moet redirecten (met de authorization code).
  3. Daarop begint de Authorization Server de OAuth-flow (in zijn rol als OAuth Authorization Server) door een sessie te creëren.
  4. De Authorization Server vraagt de Zorggebruiker via zijn PGO Presenter in te loggen.
  5. Dan start de Authorization Server (nu in de rol van Authentication Client) de authenticatieflow door de OAuth User Agent naar de Authentication Server te redirecten, onder meegeven van een redirect_uri, die aangeeft waarnaartoe de Authentication Server straks de OAuth User Agent moet terugsturen, na het inloggen van de Zorggebruiker.
  6. De Authentication Server vraagt van de Zorggebruiker via zijn PGO Presenter om inloggegevens.
  7. Wanneer deze juist zijn, redirect de Authentication Server de OAuth User Agent terug naar de Authorization Server, onder meegeven van een ophaalbewijs. Wanneer het inloggen is afgebroken geeft de Authorization Server de Zorggebruiker alsnog de mogelijkheid via zijn PGO Presenter in te loggen.
  8. Met dit ophaalbewijs haalt de Authorization Server rechtstreeks bij de Authentication Server het BSN op.
  9. Dan breekt het vroegste moment aan waarop de Authorization Server ervoor instaat dat de Zorgaanbieder voor de betreffende Gegevensdienst(en) überhaupt gezondheidsinformatie van die Persoon beschikbaar heeft, of anders de happy flow afbreekt. Daarvan maakt deel uit dat de Persoon daarvoor minstens 16 jaar oud moet zijn.
  10. Indien de Zorgaanbieder kan instaan voor de beschikbaarheid van tenminste één Gegevensdienst, of wanneer géén gebruik wordt gemaakt van dit vroegste moment, dan presenteert de Authorization Server via de PGO Presenter aan Zorggebruiker de vraag of laatstgenoemde hem toestaat de gevraagde persoonlijke gezondheidsinformatie aan de PGO Server (als OAuth Client) te sturen. Onder het flow-diagram staat gespecificeerd welke informatie, waarvandaan, de OAuth Authorization Server verwerkt in de aan Zorggebruiker voor te leggen Toestemmingsverklaring.
  11. Bij akkoord logt de Authorization Server dit als toestemming, genereert een authorization code en stuurt dit als ophaalbewijs, door middel van een OAuth User Agent redirect met de in stap 1 ontvangen redirect_uri, naar de PGO Server. De Authorization Server stuurt daarbij de local state-informatie mee die hij in het authorization request van de PGO Server heeft gekregen. Laatstgenoemde herkent daaraan het verzoek waarmee hij de authorization code moet associëren.
  12. De PGO Server vat niet alleen deze authorization code op als ophaalbewijs, maar leidt er ook uit af dat de toestemming is gegeven en logt het verkrijgen van het ophaalbewijs.
  13. Met dit ophaalbewijs wendt de PGO Server zich weer tot de Authorization Server, maar nu zonder tussenkomst van de OAuth User Agent, voor een access token.
  14. Daarop genereert de Authorization Server een access token en stuurt deze naar de PGO Server.
  15. Nu is de PGO Server gereed om één of meerdere verzoeken om de gezondheidsinformatie naar de Resource Server te sturen, nadat hij de gebruiker eventueel nog nadere keuzes heeft laten maken. Het adres van de juiste resource endpoints haalt hij uit de ZAL. Hij plaatst telkens het access token in het bericht en zorgt ervoor dat in het bericht geen BSN is opgenomen.
  16. De Resource Server controleert bij ieder verzoek of het ontvangen token recht geeft op de gevraagde resources en haalt deze (al dan niet) bij achterliggende bronnen op. Dan breekt het uiterste moment aan waarop de Resource Server ervoor moet instaan dat voor de Gegevensdienst waartoe een verzoek behoort de Zorgaanbieder de gezondheidsgegevens beschikbaar heeft. Is dat zo, dan verstuurt de Resource Server deze ze in een resource response naar de PGO Server. Is dat niet zo, dan retourneert de Resource Server een passende foutmelding.
  17. De PGO Server bewaart de ontvangen gezondheidsinformatie in het persoonlijke dossier. Mocht de Gegevensdienst waartoe de Zorggebruiker heeft geautoriseerd uit meerdere Transacties bestaan (zie hiervoor de Catalogus), of mocht één Transactie volgens de betreffende Informatiestandaard uit meerdere requests bestaan, bevraagt de De PGO Server bevraagt de Resource Server daarna mogelijk opnieuw voor de nog resterende Transacties, eventueel na nieuwe interactie met de Zorggebruiker. Zolang het access token geldig is, kan dat.

In de regel worden bij een eenmalig gebruik van UCI Verzamelen het authorization interface, het token interface en het resource interface allemaal aangesproken, in die volgorde. Mocht de PGO Server echter nog beschikken over een nog niet verlopen access token voor de betreffende Zorgaanbieder-Gegevensdienst-combinatie, dan kan het onmiddellijk het resource interface aanspreken.

In plaatje met de flows onderscheid maken tussen toestemming door Zorggebruiker en autorisatie door Authorization Server. Dit staat er nu niet goed, maar werkt op verschillende plaatsen door.

Communicatie - Toestemmingsverklaring

Toestemmingsverklaring

U geeft hierbij NaamZorgaanbieder toestemming om, met NaamLeverancierPGO, NaamCategorie, NaamCategorie en NaamCategorie uit te wisselen, voor het doel deze persoons- en gezondheidsgegevens op te nemen in uw persoonlijke gezondheidsomgeving.


Toelichting op de toestemmingsverklaring

Het doel van het MedMij Afsprakenstelsel is dat eenieder die dat wil, kan beschikken over een Persoonlijke Gezondheidsomgeving (PGO) waarin - onder uw eigen regie - (persoons)gegevens en/of informatie over uw gezondheid wordt opgenomen. Om de PGO te voorzien van de door u gewenste (persoons)gegevens en/of gezondheidsinformatie zijn in het MedMij Afsprakenstelsel afspraken gemaakt over de uitwisseling van deze gegevens. Het uitwisselen van gegevens tussen de zorgaanbieder en uw PGO verloopt zodoende via partijen die voldoen aan deze MedMij-afspraken.

Op grond van de Wet geneeskundige behandelingsovereenkomst (WGBO) is de zorgaanbieder verplicht ervoor te zorgen dat ‘anderen’ dan de patiënt (lees: u) geen inlichtingen hebben over, inzage hebben in of een afschrift hebben van uw medisch dossier, tenzij u hiervoor toestemming heeft verleend.

Aangezien uw PGO (en eventuele achterliggende partij die werkt volgens de MedMij-afspraken) een zogenaamde ‘andere’ is (in de zin van de WGBO) dient u de zorgaanbieder voor deze gegevensuitwisseling toestemming te verlenen. Deze toestemming heeft specifiek betrekking op de set van (persoons) gegevens en gezondheidsinformatie die, op uw verzoek, door de zorgaanbieder - overeenkomstig de afspraken in het MedMij Afsprakenstelsel - worden uitgewisseld met uw PGO.

De omvang van de toestemming betreft de volgende categorieën:

<ToestemmingsCategorieToelichting>

<ToestemmingsCategorieToelichting>

<ToestemmingsCategorieToelichting>

In de eerste alinea van de Toestemmingverklaring kunnen mogelijk meerdere categorieën worden benoemd. Dit is slechts het geval wanneer de gevraagde Gegevensdiensten tot verschillende categorieën behoren. De een na laatste en de laatstgenoemde categorie worden hierbij samengevoegd door het voegwoord "en". Andere categorieën worden gescheiden door een komma, gevolgd door een spatie.

Ook HTML schermen aanpassen.

Applicatie - Interfaces - User interface (Autorisatieserver)

2a. De vraag die aan de Zorggebruiker gesteld moet worden in de stap "autoriseer" in UCI Verzamelen staat gespecificeerd op de pagina Toestemmingsverklaring. Daarbij geldt dat:

  • de gebruikersvriendelijke weergave van de identiteit van de Zorgaanbieder (NaamZorgaanbieder) wordt bepaald door de betreffende Dienstverlener Zorgaanbieder, in haar dienstverleningsrelatie met de betreffende Zorgaanbieder;
  • de gebruikersvriendelijke weergave van de identiteit van de Uitgever (NaamLeverancierPGO) wordt betrokken uit de OAuth Client List, op basis van de redirect_uri (van OAuth) die in stap 1 is verkregen;
  • de gebruikersvriendelijke weergave van een Toestemmingscategorie (NaamCategorie) wordt, op basis van de categorieën waaruit een gevraagde Gegevensdienst conform de Zorgaanbiederslijst bestaat, betrokken uit de ToestemmingsCategorieënLijst;
  • de gebruikersvriendelijke weergave van een Gegevensdienst (NaamGegevensdienst) wordt betrokken de Gegevensdienstnamenlijst;
  • de weer te geven tekst m.b.t. de omvang van de toestemming wordt betrokken uit de ToestemmingsCategorieënLijst.

Applicatie - Interfaces - Authorization interface

1a. De parameters in de authorization request worden als volgt gevuld:

scope

Een zorgaanbieder-gegevensdienst-combinatie bestaat uit:

  • één Zorgaanbiedernaam, ontdaan van de suffix @medmij
  • gevolgd door een tilde (~)
  • gevolgd door één GegevensdienstId van een Gegevensdienst uit de Gegevensdienstnamenlijst.

Voor "verzamelen":

  • één of meerdere, door een enkele spatie van elkaar gescheiden, zorgaanbieder-gegevensdienst-combinaties
  • waarbij de Zorgaanbiedernaam telkens dezelfde moet zijn

Voor "delen":

  • één zorgaanbieder-gegevensdienst-combinatie.

Voor "abonneren":

  • de letterlijke waarde subscribe
  • gevolgd door een tilde ~
  • gevolgd door een niet-negatief geheel getal, aangevende de gevraagde maximale duur van het Abonnement
  • gevolgd door een forward slash /
  • gevolgd door één zorgaanbieder-gegevensdienst-combinatie.

Er worden geen andere scopes of onderdelen van scopes opgenomen dan de hier genoemde.

Voorbeelden van syntactisch juiste scopes zijn:

  • eenofanderezorgaanbieder~42, voor het eenmalig afnemen van Gegevensdienst 42 bij eenofanderezorgaanbieder@medmij;
  • eenofanderezorgaanbieder~42 eenofanderezorgaanbieder~48, voor het eenmalig afnemen van Gegevensdiensten 42 en 48 bij eenofanderezorgaanbieder@medmij;
  • subscribe~180/eenofanderezorgaanbieder~42, voor het aangaan van een Abonnement op Gegevensdienst 42 bij eenofanderezorgaanbieder@medmij van maximaal 180 dagen, of het aanpassen van het Abonnement op Gegevensdienst 42 bij eenofanderezorgaanbieder@medmij naar maximaal 180 dagen vanaf vandaag;
  • subscribe~0/eenofanderezorgaanbieder~42, voor het beëindigen van het Abonnement op Gegevensdienst 42 bij eenofanderezorgaanbieder@medmij.

2b. Vervolgens verifieert de Authorization Server dat:

  • de gevraagde GegevensdienstId's voorkomen bij de betreffende client_id op de OAuth Client List;
  • zij namens deze Zorgaanbieder deze Gegevensdienst(en) ontsluit, in overeenstemming met de gepubliceerde Zorgaanbiederslijst;;
  • indien in de scope ook subscribe voorkomt:
    • bij de betreffende client_id en Gegevensdienst op de OAuth Client List ook een subscription notification endpoint en een resource notification endpoint voorkomen;
    • zij namens deze Zorgaanbieder ook Abonnementen op deze Gegevensdienst ontsluit;
    • de waarde van de duur parameter in het request de waarde heeft van 0 of een waarde groter dan 0 die kleiner of gelijk is aan de maximale duur van het Abonnement zoals de betreffende Zorgaanbieder deze aanbiedt.

Als een van deze verificaties niet slaagt dan behandelt de Authorization Server dit als uitzondering 1b volgens verantwoordelijkheid 6.

6. Uitzondering Authorization interface 3

Authorization Server stelt tijdens de afhandeling van de authorization request vast dat:

  • in geval van UCI Verzamelen: van Persoon bij Zorgaanbieder voor geen van de gevraagde Gegevensdiensten gezondheidsinformatie beschikbaar is;
  • in geval van UCI Delen: Zorgaanbieder niet ontvankelijk is voor die Gegevensdienst van Persoon;
  • in geval van UCI Abonneren: Zorgaanbieder geen Notificaties beschikbaar maakt voor Persoon op die Gegevensdienst.

Zie de toelichting op Beschikbaarheids- en ontvankelijkheidsvoorwaarde.

Applicatie - Interfaces - Token interface

2. De parameters in de access token response worden als volgt gevuld:

scope

Conform sectie 5.1 van de OAuth 2.0-specificatie.

In toevoeging daarop:

  1. Verplicht indien het authorization request verzocht om Verzamelen van meerdere Gegevensdiensten en hiervan niet alle Gegevensdiensten beschikbaar bleken voor Persoon. In dat geval is de scope-parameter gelijk aan die in de betreffende authorization request, met daaruit weggelaten de niet-beschikbare Gegevensdiensten.
  2. Verplicht indien het authorization request verzocht om een Abonnement. In dat geval is de scope-parameter gelijk aan die in de betreffende authorization request, maar met de Abonnements-einddatum gesteld op de door de Authorization Server toegekende, en dus mogelijk beperkte, waarde. De toegekende duur van het Abonnement is:
    • niet hoger dan de in de authorization request gevraagde duur van het Abonnement;
    • niet hoger dan de maximale abonnementsduur die de Zorgaanbieder in de Zorgaanbiederslijst had opgenomen bij die Gegevensdienst en die Interfaceversie;
    • bij een gevraagde beëindiging gelijk aan 0.

Applicatie - Interfaces - MedMij-Lijsten

1.De URI van de:
  • Whitelist is https://stelselnode.medmij.nl/MedMij_Whitelist.xml?api=[releasenummer]
  • Zorgaanbiederslijst is https://stelselnode.medmij.nl/MedMij_Zorgaanbiederslijst.xml?api=[releasenummer]
  • OAuthclientlist is https://stelselnode.medmij.nl/MedMij_OAuthclientlist.xml?api=[releasenummer]
  • Gegevensdienstnamenlijst is https://stelselnode.medmij.nl/MedMij_Gegevensdienstnamenlijst.xml?api=[releasenummer]
  • ToestemmingsCategorieënLijst is https://stelselnode.medmij.nl/MedMij_Toestemmingscategorieenlijst.xml?api=[releasenummer]

Lijsten t.b.v. verschillende releases van het afsprakenstelsel worden van elkaar onderscheiden door een query-parameter in de URI.

2.De in verantwoordelijkheid 1 genoemde MedMij-Lijsten zijn voor minstens 99,9% van de tijd beschikbaar voor opvraag. MedMij Beheer laat, na het niet beschikbaar raken van bedoelde aandeelmaximaal acht uren (480 minuten) verstrijken voordat het weer beschikbaar is.
3.MedMij Beheer brengt, in geval van zo'n incident, UitgeversBronnen en Lezers op de hoogte van het optreden van het incident en van de verwachte down-time. MedMij Beheer brengt partijen op de hoogte van gepland onderhoud dat leidt tot tijdelijke onbeschikbaarheid.
4.Wanneer een, in verantwoordelijkheid 1, genoemde MedMij-Lijst niet beschikbaar is, dan mag gedurende maximaal 10 uur gebruik worden gemaakt van het meest recente exemplaar van de betreffende lijst in de cache van de opvrager.
5.Alle interacties met de MedMij Registratie m.b.t. het opvragen van de MedMij-Lijsten zijn backchannel-verkeer, waarbij gebruik wordt gemaakt van de functies Versleuteling, Server Authentication en Server Authorization, volgens het bepaalde op de Netwerk-laag.

Verwijderen pagina: Netwerk - WHL-interface

Netwerk - Functie Server Authorization

Verspreiding van de Whitelist

7.

De MedMij Stelselnode biedt aan PGO Node en ZA Node een use case-implementatie (UCI Opvragen WHL) om de actuele versie van de WHL-implementatie op te vragen. Betrokken rollen gebruiken hiervoor het betreffende stroomdiagram.

8.

Het aandeel van de MedMij Stelselnode in UCI Opvragen WHL is voor minstens 99,9% van de tijd beschikbaar. MedMij Registratie laat, na het niet beschikbaar raken van het aandeel van MedMij Stelselnode in de use case, maximaal acht uren (480 minuten) verstrijken voordat het weer beschikbaar is.

9.PGO Nodes en ZA Nodes betrekken minstens elke vijftien minuten (900 seconden) de meest recente WHL-implementatie van MedMij Stelselnode.
10.

De MedMij Stelselnode heeft stelselnode.medmij.nl als hostname. De MedMij Stelselnode staat zelf niet op de Whitelist, maar wordt er voor de controle tegen de Whitelist wel geacht op te staan.

11.

PGO Nodes en ZA Nodes valideren elke nieuw verkregen Whitelist tegen het XML-schema van de Whitelist. Dit XML-schema is een technische implementatie van het MedMij-metamodelAlle hostnames op de Whitelist zijn fully-qualified domain names, conform RFC3696, sectie 2

12.Ten behoeve van de technische beveiliging van het gegevensverkeer dat zich voltrekt in het kader van UCI Opvragen WHL maken betrokken rollen gebruik van VersleutelingServer Authentication en Server Authorization, volgens het bepaalde op deze Netwerk-laag.


Gebruik van de Whitelist

13.

ZA Node, PGO Node en MedMij Stelselnode laten, elk hunnerzijds, backchannel-verkeer over het MedMij-netwerk dan en alleen dan doorgang vinden, nadat zij hebben vastgesteld dat de hostname van de andere Node, waarmee verbinding gemaakt zou worden, op de meest actuele Whitelist voorkomt. Alle hostnames op de Whitelist zijn fully-qualified domain names, conform RFC3696, sectie 2.

 Click here to expand...

In geval van frontchannel-verkeer vindt er geen Server Authorization plaats.

Risico's

Omschrijf de (privacy)risico's die kunnen ontstaan als deze RFC wordt aangenomen. In het onwaarschijnlijke geval dat deze RFC's geen risico's introduceert, geef dat dan wel aan.

Deze RFC introduceert geen nieuwe beveiligingsrisico's. De impact van een aanval op een PGO Server, waardoor access_tokens zouden kunnen worden misbruikt wordt wel groter, doordat de scope van het access_token nu meerdere gegevensdiensten kan omvatten. De scope blijft echter nog altijd beperkt tot 15 minuten toegang tot de gezondheidsgegevens van één Persoon. Om deze reden zijn geen extra maatregelen nodig.

Bijlagen

  File Modified

Microsoft Excel Spreadsheet Toestemmingscategorieen.xlsx

Aug 25, 2021 by Ron van Holland