Bijlage testscripts (v0.5)
Algemeen
Voor het testen van systeemrollen is ConformanceLab als kwalificatiesimulator beschikbaar. Uitleg over het aansluiten op Conformancelab is via de algemene kwalificatiepagina te vinden. Het testen van infrastructurele eisen (acceptatietest) maakt geen onderdeel uit van deze test, maar is wel een voorwaarde om tot succesvolle uitwisseling te komen. Voorbeeld daarvan is het uitvragen van ZAL. Interoplab Test Manager laat dit deelnemers tijdens ontwikkelfase vooraf testen.
Doelgroep
Doelgroep van dit testscript is de PGO-deelnemer die zich voorbereid op MedMij-kwalificatie en Interoplab dat een testomgeving inregelt op Conformancelab.
Voorwaarden en uitgangspunten
Je hebt als kandidaat-deelnemer voldoende kennis en begrip van de algemene voorwaarden en procedurele eisen. Pas de generieke uitgangspunten voor de kwalificatie toe voor de systeemrol waarop je in dit script kwalificeert. Houd tijdens het testen de bevindingen bij van de uitgevoerde tests. Analyseer de bevindingen, corrigeer fouten waar nodig en test opnieuw.
Testinformatie
In deze tests wordt gevalideerd of de PGO-overstapfunctionaliteit over koppelvlak werkt. PGO’s implementeren software en workflow waarmee zij een medisch levensloopdossier overbrengen tussen bron en doel. Transport langs FHIR STU3 met DocumentResource en tenminste twee documenten: een portabiliteitsrapport en een gegenereerd PDF/A-bestand. Authenticatie langs de bekende workflow voor MedMij-aanbieders, waarbij 2FA toegepast en DigiD niet beschikbaar is.
PGO kwalificeren voor beide rollen
Gebruiker initieert de overdracht vanaf een doel-PGO en kiest daarbij een bron-PGO uit de ZAL. Bijzonder is dat deelnemende PGO’s de rollen voor verzamelen en sturen beide inrichten. Daarbij is er een requirement in beide rollen om uitgesteld uitvragen (async-pattern, wachtrij) te ondersteunen.
Workflow
Beschreven in het technisch ontwerp, een snel overzicht van de workflows waarop het testscript teststappen beschrijft. Pre-proces op kwalificatie en aanbieden in ZAL is out of scope.
Systeemcomponenten onder test (SUT)
Tests zijn opgedeeld in workflow voor lokalisatie, autorisatie, gegevens verzamelen en bewaren langs een use-case waarin de gebruiker het doel-PGO autoriseert om te verzamelen bij bron-PGO. Testscript test het geheel van overdracht langs interfaces op de systeemcomponenten registerstelselnodeclient, authorisatieserver en -client, resourceserver en -client.
Bijzonder hier is de plaatsing van autorisatie- en resourceservers bij een PGO, waar dit tot nu toe bij een DVA getest werd. Praktisch volgen tests voor PGO-koppelvlak dezelfde flow als bij het sturen en verzamelen op gegevensdiensten met DVA’s, met aanvullende vereisten aan het leveren van een gegenereerd PDF-document en XML-portabilteitsrapport t.b.v. de use case Overstapservice.
Wij valideren:
Doel-PGO dat in staat is de ZAL te bevragen (acceptatietests).
Bron-PGO auth-server dat in staat is gebruiker te laten authenticeren en autorisatie afgeeft.
Doel-PGO auth-client dat in staat is bij Auth Server autorisatiecode in te wisselen voor token.
Doel-PGO FHIR-client dat in staat is gegevens te verzamelen over documentcollectie.
Bron-PGO FHIR-resourceserver dat in staat is informatie over collectie terug te sturen.
Doel-PGO downloadclient dat in staat is documenten te downloaden, incl. async-pattern.
Bron-PGO resourceserver dat in staat is PDF-documenten te maken en te sturen, incl async.
Bron-PGO dat in staat is overgebrachte documenten te tonen (kwalificatietests).
Testdata
De overdraagbare informatie bestaat uit een FHIR-bundel met DocumentReference, waarin verwezen naar één XML-bestand (portabiliteitsrapport) en tenminste één PDF-bestand. Hoewel de inhoud van deze twee documenten kan variëren naar de verzamelde informatie in een dossier, overwegen wij met deelnemers in fase ‘geïsoleerd testen en ontwikkelen’ de documenten in te vullen met gegevens uit Verzamelen Basisgegevensset zorg 3.0 (BgZ). Voor testteam zijn usecases en een dataset beschikbaar gemaakt gelijk naar kwalificatie van deze gegevensdienst 48.
NB: Op verzoek van de deelnemende PGO’s bespreken wij op dit moment een scope tot BgZ-data. Het is echter niet de bedoeling om PGO’s die voor koppelvlak kwalificeren ook een kwalificatie voor BgZ op te leggen. In de praktijk is het echter lastig om testdata uit te wisselen en weer te geven in een document zonder dat een PGO daarvoor is gekwalificeerd. In theorie moet het mogelijk worden zonder aanvullende kwalificatie te kwalificeren voor overdracht op het koppelvlak. Dit werken wij uit.
Zie bijlage bij dit document of pagina bijlage voorbeeldtestdata voor importbestanden.
Usecase 1. Overstapservice PGO-leverancier
PGO-koppelvlak is bedoeld om dataportabiliteit mogelijk te maken tussen PGO's. In usecase Overstapservice wisselen twee PGO-leveranciers documenten uit over de beschikbare interfaces. Op verzoek van een patiëntgebruiker worden XML-portabiliteitsrapport en PDF/A verzameld. De documenten worden gegenereerd door bron-PGO en opgenomen in het dossier door doel-PGO.
In overleg met testteam is de usecase op het uitwisselen langs koppelvlak gesplitst over twee systeemrollen DVP en DVP als aanbieder (ADP) in Verzamelen en Beschikbaarstellen.
Usecase 1.1 Overstapservice: verzamelen documenten over PGO-koppelvlak
De volgende teststappen beschrijven acties en verwachte request-respons vanuit doel-PGO. Testscript test hier de werking van een doel-PGO tegen het testsysteem.
Testcase XXX_Helleman
Persoon 1 | |
---|---|
Achternaam | XXX_Helleman |
Voornaam | Johan |
Voorletter(s) | J |
Geslacht | Man |
Adresgegevens | Knolweg 1000, 9999 XA, Stitswerd |
Land | Nederland |
Geboortedatum | 25-07-1964 |
Testscript lokalisatie
We willen dat een doel-PGO in staat is ZAL uit te vragen. Patiëntgebruiker daaruit een PGO-aanbieder te selecteren. In de aanbiederslijst is tenminste één bron-PGO opgenomen.
Stap | Beschrijving | Verwacht functioneel resultaat | Technisch testresultaat | Opmerkingen |
---|---|---|---|---|
1.1 L-1 | Doel-PGO haalt regelmatig ZAL op van MedMij Register | Laatste versie zorgaanbiederslijst is beschikbaar bij doel-PGO. | Stelselnode ontvangt een ZAL-request op Stelselnode. | Stelselnode stuurt een respons waarin tenminste één aanbieder van het type APD. |
Testscript autorisatie
Stap | Beschrijving | Verwacht functioneel resultaat | Technisch testresultaat | Opmerkingen |
---|---|---|---|---|
1.1 A-1 | Gebruiker logt in op doel-PGO. | Gebruiker is ingelogd. | ||
1.1 A-2 | Gebruiker opent pagina Overstapservice. | Lijst met tenminste één bron-PGO. | Doel-PGO filtert de ZAL-lijst op type ADP geeft entry ‘De Oude PGO’ terug. | |
1.1 A-3 | Gebruiker selecteert bron-PGO en start importproces. | Gebruiker ziet het inlogscherm van bron-PGO. | Bron-PGO ontvangt een authorization-request met redirect_uri. | Doel-PGO stuurt gebruiker met |
1.1 A-4 | Gebruiker logt in op bron-PGO en een pagina met toestemmingsverklaring toont. | Inlog succesvol, gebruiker wordt doorgestuurd naar de toestemmingspagina. | Bron-PGO registreert dat de gebruiker inlogt of annuleert. | |
1.1 A-5 | Gebruiker geeft toestemming voor gegevensuitwisseling. | Autorisatie- en importproces start, bevestiging wordt getoond. | Bron-PGO registreert dat de gebruiker toestemt of annuleert. | |
1.1 A-6 | Gebruiker keert terug naar doel-PGO met auth-code. | Doel-PGO ontvangt autorisatiecode voor toegang | Bron-PGO stuurt gebruiker met | |
1.1 A-7 | Doel-PGO start token exchange. | Doel-PGO ontvangt toegangstoken | Bron-PGO ontvangt op TokenEndpoint een token exchange-request met code. |
Testscript gegevens verzamelen
Stap | Beschrijving | Verwacht functioneel resultaat | Technisch testresultaat | Opmerkingen |
---|---|---|---|---|
1.1 V-1 | Doel-PGO start het importeren gegevens voor verwerken met een verzamelenverzoek op DocumentReference. | Bundel met twee entries van het resourcetype DocumentReference. | Doel-PGO ontvangt een DocumentReference-request op ResourceEndpoint met selectie op code voor dataportabiliteit. | Doel-PGO ontvangt een FHIR-bundel terug met twee entries. Zie testdata voor bundel met:
|
1.1 V-2 | Doel-PGO haalt documenten op uit DocumentReference.content.attachment verwijst en geeft daarbij aan dat het Async Request Pattern ondersteunt. | Bericht in doel-PGO naar gebruiker dat documenten op achtergrond verzameld worden. | Doel-PGO stuurt een verzoek op attachment.url met header | Doel-PGO ontvangt een HTTP-status |
1.1 V-3 | Doel-PGO haalt PDF-document op na aantal seconden op locatie aangegeven in headers async-respons. | Bericht in doel-PGO naar gebruiker dat document opgehaald is. |
Testscript gegevens bewaren
Stap | Beschrijving | Verwacht functioneel resultaat | Technisch testresultaat | Opmerkingen |
---|---|---|---|---|
1.1 B-1 | Doel-PGO bewaart de documenten in het levensloopdossier van de patiëntgebruiker. Bewaren of verwerken van het XML-portabiliteitsrapport is optioneel. | Gebruiker kan documenten inzien. | ||
1.1 B-2 | Doel-PGO logt het succesvol verzamelen en bewaren van portabiliteitdocumenten. | Verzamelberichten in log. | In acceptatietest kan doel-PGO een schermafdruk tonen van log. |
Usecase 1.2 Overstapservice: beschikbaarstellen documenten over PGO-koppelvlak
De volgende teststappen beschrijven acties en verwachte request-respons vanuit bron-PGO. Testscript test hier de werking van een bron-PGO tegen het testsysteem.
Testcase XXX_Helleman
Zie Usecase 1.1 met testcase XXX_Helleman, in Beschikbaarstellen gebruiken wij dezelfde dataset. Een overzicht van de gegevens is opgenomen in BgZ-kwalificatieset en is beschikbaar als bijlage.
Testscript autorisatie
Stap | Beschrijving | Verwacht functioneel resultaat | Technisch testresultaat | Opmerkingen |
---|---|---|---|---|
1.2 A-1 | Bron-PGO ontvangt een authorization-request voor een gebruiker op AuthorizationEndpointUri (~ 302 Redirect). | Gebruiker ziet het inlogscherm van bron-PGO. | ||
1.2 A-2 | Bron-PGO accepteert annuleren of toestaan en stuurt een pagina met toestemmingsverklaring. | Inlog succesvol, gebruiker wordt doorgestuurd naar de toestemmingspagina. | ||
1.2 A-3 | Gebruiker geeft toestemming voor gegevensuitwisseling en keert terug naar doel-PGO met auth-code. Bron PGO ontvangt gebruiker op redirect uri endpoint | Gebruiker heeft toestemming gegeven | Bron-PGO ontvangt autorisatiecode voor toegang. | Bron-PGO ontvangt gebruiker na |
1.2 A-4 | Doel-PGO simuleert het inwisselen van een code voor een token met token exchange bij bron-PGO | Bron-PGO ontvangt op TokenEndpoint een request met code en stuurt JWT-token terug. |
Testscript gegevens beschikbaar stellen
Stap | Beschrijving | Verwacht functioneel resultaat | Technisch testresultaat | Opmerkingen |
---|---|---|---|---|
1.2 V-1 | Bron-PGO stuurt gegevensbundel na een verzamelenverzoek op DocumentReference. | Bron-PGO stuurt een bundel met minimaal twee entries van het resourcetype DocumentReference. | Bron-PGO ontvangt een DocumentReference-request op ResourceEndpoint met selectie op code voor dataportabiliteit.
Bron-PGO stuurt een bundel. | Minimaal verwacht, een bundel met DocumentReferences op:
|
1.2 V-2 | Bron-PGO ontvangt een verzoek en geeft Async response als de Doel PGO dit ondersteunt. | Bron-PGO ontvangt een verzoek op attachment.url met header | ||
1.2 V-3 | Bron-PGO stuurt de documenten als de Doel-PGO de aangegeven locatie in headers Async-respons benadert. | PDF-documenten zijn beschikbaar. | Bron-PGO stuurt document met een HTTP-status | |
1.2 V-4 | Simulator doel-PGO valideert documenten. | Het XML-portabiliteitsrapport is XML en PDF-document is PDF/A. | Zie ook voorbeeld Conformance.java in bijlagen voorbeeldmateriaal. |
Bijlage foutscenario’s en verwachte foutafhandeling
Overgenomen uit voorgaande versies testscenario’s en testscript,
mogelijk niet relevant voor Interoplab.
# | Foutscenario | Verwachte foutmelding
|
1 | De gebruiker probeert in te loggen op doel PGO met foutieve inloggegevens | Foutmelding: "Ongeldige gebruikersnaam of wachtwoord" |
2 | De gebruiker maakt een selectie uit de ZAL-lijst maar bevestigt deze niet | Gebruiker blijft op de importpagina |
3 | De gebruiker probeert in te loggen op bron PGO met foutieve gegevens | Foutmelding: "Ongeldige gebruikersnaam of wachtwoord" |
4 | De gebruiker annuleert het inloggen bij bron PGO | Gebruiker keert terug naar vorige pagina in doel PGO |
5 | Gebruiker klikt op "Annuleren" | Gebruiker keert terug, geen gegevens geïmporteerd |
6 | Gebruiker keert terug met foutmelding/error | Gebruiker krijgt foutmelding; importproces wordt beëindigd |
7 | Code wordt ingewisseld, maar tokenverzoek faalt (bv. timeout) | Foutmelding: "Autorisatie mislukt, probeer later opnieuw |
8 | Bundel bevat géén documenten | Foutmelding: “Geen gegevens beschikbaar“ |
9 | Inline PDF is niet geldig, publiceert geen PDF/A-conformance in metadata | Foutmelding: "Kan inline state niet ophalen, probeer het later opnieuw", |
10 | Server retourneert fout (404 bij documentlijst) | Foutmelding: "Kan documentlijst niet ophalen, probeer het later opnieuw" |