| runtime | ||
| setup | ||
| src | ||
| .gitignore | ||
| cleanup-certs.sh | ||
| cleanup-databases.sh | ||
| cleanup.sh | ||
| docker-compose.yaml | ||
| geïllustreerde-geannoteerde-walkthrough-demo-PoC6.pdf | ||
| README.md | ||
DVPA demo setup
Deze demo-opstelling illustreert de werking van push-autorisatie in de context van PoC 6.
De repository bevat een Docker Compose-stack voor DVPA-r, DVPA-s, MockAIS, mCSD-sync en de bijbehorende HAPI FHIR-services.
De services hebben de volgende rol:
- DVPA-r: ontvangt PA-URL's en maakt deze doorzoekbaar.
- DVPA-s: maakt PA-URL's aan en distribueert deze naar andere partijen.
- MockAIS: vervult in deze demo de rol van informatiesysteem voor de apotheken en de huisarts.
- mCSD-sync: vervult de rol van Query en Update client voor de Generieke Functie Adressering.
- HAPI FHIR-server: vervult de rol van mock-LRZA en lokale query directories.
Meer achtergrond over de Generieke Functie Adressering staat in de VWS-documentatie: https://minvws.github.io/generiekefuncties-docs/care-services.html
In deze setup zitten drie actoren:
- Apotheek links
- Apotheek rechts
- Huisarts
Elke actor heeft een eigen stack met:
- DVPA-r
- DVPA-s
- MockAIS
- mCSD-sync
Omissies
De DVPA-r- en DVPA-s-implementaties zijn demo-implementaties voor PoC 6, dus niet geschikt voor productie. De implementaties missen nog een aantal onderdelen die voor een productie-implementatie nodig zijn, maar buiten de scope van deze demo vielen. Hieronder staan de duidelijkste omissies van de demo-implementatie.
DVPA-r
- Authenticatie en validatie van partijen is vereenvoudigd, zowel bij het ontvangen als bij het doorsturen van autorisaties.
- De eigenaar van een PA-URL wordt in deze demo bepaald met een lokale adres-lookup in plaats van via volledige endpoint-, domein- en certificaatvalidatie.
- Restricties, access control op resources en endpoints, zijn beperkt uitgewerkt. Patiëntrestricties controleren op BSN, documenttyperestricties doen een eenvoudige match en authenticatierestricties gebruiken alleen een key fingerprint.
- Binding hoort aan DVPA-s-zijde te worden afgedwongen. In deze demo voert DVPA-r nog een voorlopige controle uit voordat een actie wordt doorgestuurd.
- Pushback-types en sommige detailvalidaties zijn niet volledig geïmplementeerd.
DVPA-s
- Authenticatie en validatie van clientcertificaten en tokens is nog niet productiegeschikt uitgewerkt.
- Policy checks zijn een mock en staan acties toe zonder volledige autorisatiebeslissing.
- Binding op PA-URL's is nog niet afgedwongen zoals in een productie-implementatie nodig is.
- Het aanmaken van AFA-URL's gebruikt in sommige gevallen nog fallback-eigenaarsgegevens wanneer de oorspronkelijke autorisatie geen target bevat.
Starten
Zorg dat Docker draait en start daarna de demo:
docker compose up -d --build
De setup-container maakt automatisch de benodigde demo-certificaten en trust-anchor aan als die nog ontbreken. De overige services wachten hierop voordat ze starten.
Controleer de status eventueel met:
docker compose ps
MockAIS
Na het starten zijn de MockAIS-schermen bereikbaar op:
- Apotheek links: http://127.0.0.1:9081
- Apotheek rechts: http://127.0.0.1:9082
- Huisarts: http://127.0.0.1:9083
Gebruik deze schermen om patiënten te zoeken, dossiers te bekijken, onboarding te controleren en dossiers of lokalisatiestructuren te delen.
Apotheek rechts heeft in deze demo geen lokale patiëntdossiers. Deze actor is vooral bedoeld als ontvangende partij.
Weggooien en opschonen
Alle gegenereerde certificaten en database-state verwijderen kan met:
./cleanup.sh
Alleen certificaten en trust-anchor verwijderen:
./cleanup-certs.sh
Alleen database-state verwijderen:
./cleanup-databases.sh
Na opschonen kun je de stack opnieuw starten met:
docker compose up -d --build
Walkthrough
De demo-flow wordt stap voor stap beschreven in de walkthrough-PDF:
geïllustreerde-geannoteerde-walkthrough-demo-PoC6.pdf
Gebruik deze PDF als leidraad om het systeem te testen of te reviewen.