Functioneel ontwerp (v0.5)
PGO-koppelvlak is bedoeld om dataportabiliteit mogelijk te maken tussen PGO’s. De volgende requirements en user stories zijn vastgesteld om dit mogelijk te maken.
Zie waarom en voor wie doen we dit voor de uitgebreide scope en doelstelling van het project. Uitwisseling over het koppelvlak is zinvol wanneer een PGO zowel de rollen van beschikbaarstellend als raadplegend implementeert (bron en doel). Alle PGO’s in de aanbesteding moeten daarom aan het eind van het proces verplicht kunnen ontvangen en delen.
Requirements
Functionele requirements
ID | Aspect | Als…. | Wil ik ….. | Zodat ….. | Afspraak |
PGOK-FR001 | Authenticatie en Autorisatie | Gebruiker | mij kunnen authenticeren via een door MedMij goedgekeurde methode | mijn gegevens veilig zijn en alleen ik toegang heb | |
PGOK-FR002 | Authenticatie en Autorisatie | Gebruiker | dat alleen ik als eigenaar van het dossier toestemming kan geven voor de overdracht | mijn medische gegevens niet zonder mijn goedkeuring gedeeld worden.
| (jur.avg.201) |
PGOK-FR011 | Toestemming en Logging | Gebruiker | expliciet toestemming geven voor de gehele overdracht
| ik volledige controle heb over mijn gegevens.
| (jur.avg.201) |
PGOK-FR012 | Toestemming en Logging | Gebruiker | dat mijn toestemming eenmalig is voor de specifieke transactie en niet hergebruikt kan worden
| ik niet ongewenst gegevens deel.
| |
PGOK-FR013 | Toestemming en Logging | MedMij | dat toestemming wordt gelogd inclusief tijdstip en details
| de transactie auditbaar en compliant is met de wetgeving en NEN7510/7513.
| |
PGOK-FR021 | Gegevensformaat en Interoperabiliteit | DVP | het dossier uitwisselen in een door MedMij gespecificeerd formaat
| het interoperabel is met andere PGO’s.
| |
PGOK-FR022 | Gegevensformaat en Interoperabiliteit | Gebruiker | dat mijn gegevens volledig en correct worden overgezet
| ik geen informatie verlies
| |
PGOK-FR023 | Gegevensformaat en Interoperabiliteit | MedMij | dat de bron-DVP gekwalificeerd is als aanbieder voor de betreffende gegevensdienst
| alleen vertrouwde partijen gegevens verwerken
| |
PGOK-FR024 | Gegevensformaat en Interoperabiliteit | MedMij | dat de bron-DVP geregistreerd is in de ZAL
| de gegevensuitwisseling betrouwbaar en gecontroleerd is.
| |
PGOK-FR031 | Informatiebeveiliging | Gebruiker | dat de overdracht plaatsvindt via een beveiligd kanaal (TLS 1.2 of hoger)
| mijn gegevens niet kunnen worden onderschept
| |
PGOK-FR032 | Informatiebeveiliging | MedMij | dat data in transit en data-at-rest versleuteld zijn volgens MedMij-normen
| de privacy en veiligheid gewaarborgd blijft
| |
PGOK-FR041 | Dataminimalisatie | Gebruiker | dat alleen de door mij geselecteerde gegevens worden overgedragen
| ik controle houd over wat er gedeeld wordt
| |
PGOK-FR042 | Dataminimalisatie | DVP | geen onnodige gegevens meesturen
| de overdracht voldoet aan het principe van dataminimalisatie (conform AVG).
| |
PGOK-FR051 | Bevestiging en Fallback-mogelijkheid | Gebruiker | een bevestiging na een succesvolle overdracht
| ik weet dat mijn gegevens correct zijn overgezet.
| |
PGOK-FR052 | Bevestiging en Fallback-mogelijkheid | Gebruiker | een herstelmechanisme bij falen
| ik een nieuwe poging kan doen of instructies krijg bij een foutmelding
|
Non-functionele requirements
ID | Aspect | Als…. | Wil ik ….. | Zodat ….. | Afspraak |
PGOK-NFR001 | Veiligheid | MedMij | dat de overdracht voldoet aan de AVG en NEN 7510-standaarden | de privacy en veiligheid gewaarborgd zijn | |
PGOK-NFR002 | Veiligheid | MedMij | dat authenticatie- en encryptiemethoden regelmatig worden geüpdatet | de beveiliging up-to-date blijft | |
PGOK-NFR011 | Betrouwbaarheid | Gebruiker | dat de overdracht geen gegevensverlies veroorzaakt | mijn medische informatie volledig blijft | |
PGOK-NFR012 | Betrouwbaarheid | MedMij | dat eventuele fouten worden gelogd en beheerd via een incidentmanagementproces | problemen snel worden opgelost | |
PGOK-NFR021 | Prestaties | Gebruiker | dat de overdracht binnen een redelijke tijd wordt voltooid en als het langer duurt ik bericht krijg | ik niet onnodig hoef te wachten | Richtlijnen: vooraf informeren over wachttijd als uitwisselen verwacht langer neemt dan 10s; actief informeren en notificeren als wachttijd langer dan 30s; nooit langer dan 15 minuten. |
PGOK-NFR022 | Prestaties | Gebruiker | dat de service een uptime van 99,9% garandeert | de beschikbaarheid gewaarborgd is | |
PGOK-NFR031 | Auditability & Logging | MedMij | dat alle transacties gelogd worden voor auditdoeleinden | naleving gecontroleerd kan worden | |
PGOK-NFR032 | Auditability & Logging | MedMij | dat logs minimaal 5 jaar worden bewaard conform MedMij-richtlijnen | historische gegevens beschikbaar blijven voor audits | |
PGOK-NFR041 | Gebruiksvriendelijkheid | Gebruiker | dat de overdracht eenvoudig uit te voeren is via een intuïtieve gebruikersinterface | zonder moeite mijn gegevens kan overzetten | |
PGOK-NFR042 | Gebruiksvriendelijkheid | Gebruiker | duidelijke feedback krijgen over de status van de overdracht | ik weet wat de voortgang is. | |
PGOK-NFR050 | Portabiliteit | Gebruiker | dat documenten een toekomstbestendig formaat (PDF/A) volgen zonder licentiebeperkingen (lettertypen, huisstijl) | ik documenten in mijn dossier altijd mag inzien, kopiëren, downloaden, meenemen en delen. |
Use cases
Overstapservice PGO-leverancier
Overstapservice met het verzamelen en beschikbaarstellen van documenten over PGO-koppelvlak. Doel-PGO haalt een dossier (PDF/A) en portabiliteitsrapport (XML) op bij bron-PGO volgens MedMij-richtlijnen. Bijbehorende testcase met gebruiker XXX_Helleman.
Stap 1: Initiëren van de aanvraag in doel-PGO
De gebruiker logt in op doel-PGO met 2-factor en kiest de optie "Dossier ophalen bij een andere PGO".
Doel-PGO toont een lijst van gekwalificeerde PGO’s.
De gebruiker selecteert bron-PGO als bron.
Stap 2: Authenticatie en toestemming
Doel-PGO stuurt de gebruiker door naar bron-PGO voor authenticatie met de inlogmethode van bron.
De gebruiker logt in op beschikbaarstellend bron-PGO en krijgt een algemeen toestemmingsverzoek te zien waarin staat dat doel-PGO gegevens wil ophalen. Er is geen optie voor langdurige toestemming.
De gebruiker geeft expliciet toestemming, waarna de gebruiker terugkeert naar doel-PGO met een code. Doel-PGO wisselt de code in voor een token en heeft daarmee toestemming gekregen om een lijst van documenten op te halen met tenminste één PDF/A-document langs gegevensdienst 51.
Stap 3: Genereren van een accesstoken
Bron-PGO controleert of het opgevraagde dossier voor ingelogde gebruiker beschikbaar is.
Bron-PGO genereert een unieke, tijdelijke auth-code met beperkte geldigheidsduur (bijv. 15 minuten).
Bron-PGO stuurt de gebruiker met een redirect terug naar het return-url van Doel-PGO. Op het terugkeeradres is als query-parameter de code opgenomen of een een foutmelding.
Doel-PGO gebruikt de code om bij het token-endpoint van bron-PGO in te wisselen. Het token-endpoint is beschikbaar in MedMij-register zorgaanbiederlijst.
Bron-PGO deelt een accesstoken met doel-PGO.
Beide PGO’s loggen de transactie inclusief tijdstip, IP-adres en de gevraagde bestanden in een auditlog.
Stap 4: Ophalen van het bestand door doel-PGO
Doel-PGO gebruikt het accesstoken om toegang te verkrijgen tot medische patiëntinformatie in het dossier. Het dossier is versleuteld in opslag. In deze uitwisseling gaat het om het opvragen van een of meerdere documenten in het dossier of een document dat gegenereerd wordt op basis van informatie in het dossier. De informatie is steeds versleuteld in opslag en tijdens transport bij bron en doel.
Bron-PGO valideert de accesstoken, geneert optioneel een document en een gevraagde documentenlijst en het documentbestand versleuteld naar doel-PGO via een beveiligde verbinding.
Doel-PGO controleert de integriteit van het bestand via een hashcontrole indien aangeboden.
Als de controle slaagt, wordt het bestand opgeslagen in de omgeving van doel-PGO.
Stap 5: Bevestiging en afronding
De gebruiker krijgt een melding dat het dossier is overgenomen of een foutmelding als dit niet lukte.
De gebruiker kan het bestand in doel-PGO openen en eventueel delen met een zorgverlener.