|
|
## Inleiding
|
|
|
|
|
|
De Testvoorziening iStandaarden (TiS) is een ondersteunende module van Zorginstituut Nederland voor leveranciers van iWlz-, iWmo- en iJw software. De softwareleveranciers kunnen hun producten testen in de rol van een partij die deelneemt aan het iStandaarden-berichtenverkeer, en zo nodig verbeteren.
|
|
|
|
|
|
TiS ondersteunt softwareleveranciers bij de bouw van hun softwareproducten, waarmee hun klanten (gemeenten, zorgaanbieders e.d.) snel en soepel digitale berichten kunnen uitwisselen conform de iStandaarden.
|
|
|
|
|
|
TiS biedt een online-simulatieomgeving waar softwareleveranciers hun producten kunnen testen in de rol van elke partij die deelneemt aan het iStandaarden-berichtenverkeer. TiS werkt met een geautomatiseerd testproces volgens vastgestelde en ingebouwde scenario’s. Daarmee worden verzendende en ontvangende partijen gesimuleerd.
|
|
|
|
|
|
TiS is ontwikkeld samen met softwareleveranciers die actief zijn in de verschillende iStandaarden-domeinen. De service wordt voortdurend voorzien van nieuwe testscenario’s. Zo wordt TiS een volwaardig product dat softwareleveranciers structureel ondersteunt bij de bouw van hun software.
|
|
|
|
|
|
### Meer informatie
|
|
|
|
|
|
Heeft u vragen over het gebruik van de Validatiemodule? Neemt u dan contact op met:
|
|
|
|
|
|
Zorginstituut Nederland\
|
|
|
Team Informatiestandaarden\
|
|
|
(020) 797 89 48\
|
|
|
[info@istandaarden.nl](mailto:info@istandaarden.nl)\
|
|
|
[www.istandaarden.nl](https://istandaarden.nl/)
|
|
|
|
|
|
## Installatie van Testvoorziening iStandaarden (TiS)
|
|
|
|
|
|
In dit hoofstuk leest u hoe u TiS kunt installeren, wat de bedoeling is van de testvoorziening en waar u de WSDL vindt.
|
|
|
|
|
|
### Werking
|
|
|
|
|
|
TiS is bedoeld voor de ondersteuning bij de implementatie van de nieuwe releases van de iStandaarden. In aanloop naar nieuwe releases volgen nieuwe publicaties.
|
|
|
|
|
|
U biedt testberichten aan, waarop de testvoorziening een functionele reactie geeft zoals beschreven in de scenario’s. De scenario’s worden in een apart document beschreven. Voorbeelden van contextberichten zijn ook op de website te vinden. Om met TiS te kunnen communiceren zijn er ook vraag- en antwoordberichten nodig. Deze worden verderop in de handleiding besproken. Voorbeelden van deze berichten worden op de website geplaatst.
|
|
|
|
|
|
### Huidige ondersteunde berichtstandaard
|
|
|
|
|
|
Hieronder een overzicht van de versie van de ondersteunde berichtstandaard:
|
|
|
| Standaard | Versie | Opmerking |
|
|
|
|-----------|--------|-----------|
|
|
|
| iWmo | 3.0 | |
|
|
|
| iJw | 3.0 | |
|
|
|
| iWlz | 2.2 | |
|
|
|
| iWlz | 2.3 | |
|
|
|
|
|
|
### Installatie van TiS (lokaal)
|
|
|
|
|
|
TiS wordt geleverd in de vorm van een Docker-container. Dit is een relatief nieuwe manier om software te distribueren. Docker-containers zijn platformonafhankelijk, elk besturingssysteem waar Docker op kan draaien is geschikt. TiS kan zodoende dus draaien op Linux, MacOS en Windows. Voor het installeren van TiS moet Docker worden geïnstalleerd. Meer informatie over het installerer van Docker is te vinden op [https://www.docker.com/](https://www.docker.com/).
|
|
|
|
|
|
Voor de validatie van inkomende berichten is TiS afhankelijk van de Decentrale Validatie Service (DVS). Deze draait ook in een Docker-container. Informatie over het installeren van de DVS is te vinden [hier](https://repository.istandaarden.nl/modules/dvs/-/wikis/Handleiding-Decentrale-Validatie-Service)
|
|
|
|
|
|
**Let op:**
|
|
|
- TiS maakt standaard gebruik van de DVS via host.docker.internal.
|
|
|
|
|
|
Om een extern IP-adres in te stellen gebruik dan de Environment variabele DVS_HOST. In deze handleiding nemen we x.x.x.x .
|
|
|
|
|
|
- TiS maakt standaard gebruik van de DVS op poort 8080.
|
|
|
|
|
|
Om een andere poort in te stellen gebruik dan de Environment variabele DVS_PORT. In deze handleiding nemen we poort 8680.
|
|
|
|
|
|
|
|
|
Het starten van de DVS gaat dan met dit commando:
|
|
|
```
|
|
|
docker run -d -itp 8680:8080 --name dvs registry.istandaarden.nl/modules/dvs
|
|
|
```
|
|
|
|
|
|
Het het starten van TiS (ACC) kan vervolgens met dit commando:
|
|
|
```
|
|
|
docker run -d -itp 8080:8080 -e DVS_PORT=8680 -e DVS_HOST=x.x.x.x --name tis registry.istandaarden.nl/modules/tis-acc
|
|
|
```
|
|
|
|
|
|
### Endpoint
|
|
|
|
|
|
Om de webservice te benaderen, hebt u dit endpoint nodig:
|
|
|
|
|
|
[http://localhost:8080/ws/tis](http://localhost:8080/ws/tis)
|
|
|
|
|
|
## Gebruik en werking Testvoorziening iStandaarden (TiS)
|
|
|
|
|
|
In dit hoofdstuk leest u meer over de werking en het gebruik van de testvoorziening.
|
|
|
|
|
|
### De rol van TiS
|
|
|
|
|
|
De testvoorziening speelt de rol van tegenpartij. Afhankelijk van het domein en het scenario, speelt de simulatieomgeving de rol van zorgaanbieder, gemeente, zorgkantoor of SVB. In het ScenarioId wordt aangegeven welke rol TiS speelt in dat scenario. In scenario TIS-iJw30-Scenario-09_Gemeente.xml bijvoorbeeld speelt TiS de rol van gemeente.
|
|
|
|
|
|
### Casussen: volledige doorloop van processen
|
|
|
|
|
|
TiS volgt altijd een van de processen zoals beschreven in de casusbeschrijvingen. Deze casussen zijn gebaseerd op een volledige doorloop van processen zoals die in het ‘echt’ ook plaats zal vinden tussen de partijen.
|
|
|
|
|
|
### Beperkingen
|
|
|
|
|
|
In TiS is de volgorde van de berichten per scenario altijd hetzelfde tussen start en einde. De rol die de testvoorziening moet spelen en het gekozen scenario bepalen wat de volgorde van de berichten moet zijn die de gebruiker kan aanbieden en welke TiS aanmaakt.
|
|
|
|
|
|
#### Vaste volgorde
|
|
|
|
|
|
Het is met TiS 2.0 nog niet mogelijk een afwijkende berichtvolgorde te doorlopen, bijvoorbeeld een scenario om na een toewijzing \[301\] direct een factuur \[303\] te sturen en de start van zorg \[305\] over te slaan.
|
|
|
|
|
|
#### cliënt en/of 1 product per bericht
|
|
|
|
|
|
Een aangeboden bericht kan per bericht slechts één cliënt en/of één product bevatten in het geval dat een bericht meerdere cliënten zou toestaan.
|
|
|
|
|
|
### Afwijkende dagtekening
|
|
|
|
|
|
De casusbeschrijvingen zijn vaak voor scenario’s die in de toekomst spelen. De dagtekening van een bericht is standaard de systeemdatum van het moment van versturen van het bericht. Bij het testen met TiS zal de dagtekening op een datum gezet moeten worden die ligt na de toewijzingsdatum of begindatum van het geleverde product om fouten in de validatiemodule te voorkomen.
|
|
|
|
|
|
### Respons van TiS bevat ook alle voorgaande responses
|
|
|
|
|
|
U krijgt binnen dezelfde testsessie alle berichten die TiS aanmaakt binnen een testsessie krijgt u terug in de response. Naar mate u dus verder in het proces komt van een testsessie zal de response meer berichten bevatten met uiteindelijk alle berichten in de laatste stap die TiS aanmaakt binnen een sessie.
|
|
|
|
|
|
## Start: Contextbericht
|
|
|
|
|
|
Elk testscenario moet worden begonnen met een contextbericht. Dit bericht is nodig voor het door TiS kunnen aanmaken van berichten.
|
|
|
|
|
|
Zo moet TiS in de rol van gemeente een toewijzingsbericht (301) aan kunnen maken als reactie op een verzoek om toewijzingsbericht (315). Het verzoek om toewijzingsbericht bevat te weinig informatie voor TiS om een toewijzingsbericht te kunnen maken. De ontbrekende informatie haalt TiS uit het contextbericht.
|
|
|
|
|
|
Deze waarden worden dan overgenomen in de berichten die TiS aanmaakt. In de scenario’s is beschreven welke waarden gebruikt moeten worden, de andere waarden zijn vrij te kiezen door de gebruiker (met inachtneming van de condities, constraints en technische regels die gelden binnen iStandaarden.)
|
|
|
|
|
|
## Werking: Vaste volgorde van berichten
|
|
|
|
|
|
Nadat er een bericht is aangeboden aan TiS zal dit bericht worden gevalideerd. Indien het bericht in orde is bevonden komt TiS in een bepaalde toestand of state. Wanneer TiS in een bepaalde toestand komt, verwacht TiS het bericht wat TiS in de volgende toestand zet. Aanbieden van hetzelfde bericht (request nogmaals uitvoeren) of het aanbieden van een bericht van een voorgaande toestand, zal leiden tot een foutmelding. Uitzondering hierop is het aanbieden van het contextbericht. Hiermee zal een nieuwe testsessie worden geïnitieerd.
|
|
|
|
|
|
## Bericht controles
|
|
|
|
|
|
TiS voert altijd dezelfde controles uit zoals die in de Validatiemodule zijn geïmplementeerd. Dit zijn de validatie die binnen een bericht uitgevoerd kunnen worden. Daarnaast voert TiS een aantal bericht overstijgende controles uit, waarbij voorgaande berichten binnen het scenario als uitgangspunt dienen.
|
|
|
|
|
|
### Validatie binnen het bericht
|
|
|
|
|
|
Bericht wordt gevalideerd op:
|
|
|
|
|
|
* Soort en type bericht;
|
|
|
* Structuur;
|
|
|
* Aanwezigheid van verplichte velden;
|
|
|
* Correcte vulling;
|
|
|
* Technische- en bericht specifieke bedrijfsregels.
|
|
|
|
|
|
### bericht overstijgende controles
|
|
|
|
|
|
Omdat TiS de mogelijkheid heeft om ingezonden berichten binnen dezelfde sessie met elkaar te vergelijken zijn er ook bericht overstijgende controles mogelijk.
|
|
|
|
|
|
Alle bericht overstijgende regels zijn per domein terug te vinden op [https://informatiemodel.istandaarden.nl/](https://informatiemodel.istandaarden.nl/) onder “Technische Regels”.
|
|
|
|
|
|
|
|
|
|
|
|
## SOAP-envelop
|
|
|
|
|
|
TiS maakt gebruik van het SOAP-protocol. Aanroepen van de webservice dienen aan dit protocol te voldoen. Het WSDL-bestand dat bij TiS hoort, beschrijft hoe een juiste aanroep naar de webservice eruitziet.
|
|
|
|
|
|
### WSDL-bestand met voorbeeld bestanden downloaden
|
|
|
|
|
|
Bij de webservice van TiS horen een aantal bestanden: de WSDL (Web Service Description Language) en een aantal voorbeeld bestanden. Beide .zip-bestanden zijn te vinden op:
|
|
|
|
|
|
[https://www.istandaarden.nl/modules/testvoorziening-istandaarden-tis](https://www.istandaarden.nl/modules/testvoorziening-istandaarden-tis).
|
|
|
|
|
|
Daar vindt u ook de handleiding en de releasenotes bij TiS.
|
|
|
|
|
|
### StUF-envelop
|
|
|
|
|
|
Alle berichten kunnen met of zonder StUF-envelop worden verstuurd. Wanneer het scenario is gestart met een StUF envelop verwacht TiS alle berichten met een StUF envelop en zal zelf ook berichten retourneren in een StUF-envelop.
|
|
|
|
|
|
## Requests voor het gebruik van TiS
|
|
|
|
|
|
Voor de communicatie met TiS zijn 3 SOAP-berichttypen gemaakt. Er is een bericht om een scenario te starten, een bericht om een bestand aan te bieden en een bericht om antwoordberichten van TiS op te vragen.
|
|
|
|
|
|
### SOAP-request
|
|
|
|
|
|
Het onderdeel StartScenarioRequest is specifiek voor het aanbieden van het contextbericht en dient om een (nieuwe) testsessie te starten.
|
|
|
|
|
|
De body van het request bevat deze parameters:
|
|
|
| Element | Formaat | Verplicht | Beschrijving |
|
|
|
|---------|---------|-----------|--------------|
|
|
|
| ScenarioId | String | Ja | Beschrijving van de testcase. De waarde bepaalt welke rol TiS heeft en om welke wet het gaat. De waarde moet exact worden overgenomen uit de documentatie. |
|
|
|
| Context | String | Ja | Neem hier het contextbericht op. |
|
|
|
|
|
|
Een voorbeeld request is te vinden op [https://www.istandaarden.nl/modules/testvoorziening-istandaarden-tis](https://www.istandaarden.nl/modules/testvoorziening-istandaarden-tis).
|
|
|
|
|
|
TiS stuurt als response op de StartScenarioRequest een StartScenarioResponse.
|
|
|
|
|
|
De response bevat deze waarden:
|
|
|
| Element | Formaat | Verplicht | Beschrijving |
|
|
|
|---------|---------|-----------|--------------|
|
|
|
| SessionId | String | Ja | SessionId bevat in de response de sessionUUID . Deze waarde blijft gedurende het hele scenario gelijk totdat er weer opnieuw een contextbericht is aangeboden. De waarde koppelt de berichten in het vervolg van de sessie aan elkaar. |
|
|
|
| ScenarioId | String | Ja | Bevat de waarde van de gestarte testcase. |
|
|
|
|
|
|
### SOAP-request
|
|
|
|
|
|
Het onderdeel OfferFileRequest is voor het aanbieden van een bericht aan de testvoorziening.
|
|
|
|
|
|
De body van het request bevat deze parameters:
|
|
|
| Element | Formaat | Verplicht | Beschrijving |
|
|
|
|---------|---------|-----------|--------------|
|
|
|
| SessionId | String | Ja | De unieke sleutel voor een (test-)sessie. In de response van StartScenarioRequest staat in SessionId de waarde die hier moet worden meegegeven om berichten aan elkaar te relateren aan de zelfde testsessie en berichtoverstijgende controles te kunnen uitvoeren |
|
|
|
| ScenarioId | String | Ja | ID van het scenario dat doorlopen gaat worden. De waarde bepaald welke rol TiS heeft en om welk scenario het gaat. De waarde moet exact worden overgenomen uit de documentatie. |
|
|
|
| Message | String | Ja | Neem hier het bericht op dat ingestuurd moet worden aan TiS. |
|
|
|
|
|
|
Een voorbeeld van een request is te vinden op [https://www.istandaarden.nl/modules/testvoorziening-istandaarden-tis](https://www.istandaarden.nl/modules/testvoorziening-istandaarden-tis) .
|
|
|
|
|
|
Als er geen fouten zijn gecontstateerd door TiS antwoordt TiS met een OfferFileResponse. De response bevat deze waarden:
|
|
|
| Element | Formaat | Verplicht | Beschrijving |
|
|
|
|---------|---------|-----------|--------------|
|
|
|
| SessionId | String | Ja | SessionId bevat in de response de sessionUUID . Deze waarde blijft gedurende het hele scenario gelijk totdat er weer opnieuw een contextbericht is aangeboden. De waarde koppelt de berichten in het vervolg van de sessie aan elkaar. |
|
|
|
| ScenarioId | String | Ja | Bevat de waarde van de gestarte testcase. |
|
|
|
|
|
|
### SOAP Fault: foutmeldingen
|
|
|
|
|
|
In sommige situaties ontstaan foutmeldingen, die u geretourneerd krijgt als ‘SOAP Fault’. Dit kan verschillende oorzaken hebben veel voorkomende zijn:
|
|
|
|
|
|
* Het request is onjuist (vaak door typefouten).
|
|
|
* Niet alle verplichte velden zijn gevuld.
|
|
|
* Het berichttype wordt niet ondersteund.
|
|
|
* De vulling is niet conform de verwachting
|
|
|
* Meer dan 1 cliënt/adres/beschikking/toewijzing
|
|
|
|
|
|
### SOAP request:
|
|
|
|
|
|
Het SOAP-berichte RequestFileRequest is bedoeld om de berichten die TiS heeft aangemaakt (conform het scenario) op te halen.
|
|
|
|
|
|
Een voorbeeld van het request is te vinden op [https://www.istandaarden.nl/modules/testvoorziening-istandaarden-tis](https://www.istandaarden.nl/modules/testvoorziening-istandaarden-tis) . De body van het request bevat deze parameters:
|
|
|
| Element | Formaat | Verplicht | Beschrijving |
|
|
|
|---------|---------|-----------|--------------|
|
|
|
| SessionId | String | ja | Vul hier de sessionUUID in van de huidige sessie. |
|
|
|
| ScenarioId | String | ja | Beschrijving van het testscenario |
|
|
|
|
|
|
De response op de RequestFileRequest, de RequestFileResponse, geeft het opgevraagde bericht terug – en alle voorgaande antwoordberichten. Met andere woorden, het aantal berichten in de response groeit naar mate je verder bent in het scenario.
|
|
|
|
|
|
Een voorbeeld van een RequestFileResponse is te vinden in de bijlagen.
|
|
|
|
|
|
## Werking van TiS
|
|
|
|
|
|
Per scenario en per rol verschilt het verloop van het testproces. Wel zijn er een paar algemene stappen te herkennen. In dit hoofdstuk wordt stap voor stap de werking van TiS uitgelegd.
|
|
|
|
|
|
Een testsessie bij TiS begint altijd met een StartScenarioRequest. In dat bericht wordt (zoals beschreven in paragraaf 5.1) een ScenarioId en een contextbericht meegestuurd. Het contextbericht bevat de informatie die TiS nodig heeft om zijn berichten te kunnen maken. In een productie situatie zijn deze gegevens al bekend bij de partij die door TiS wordt gesimuleerd .
|
|
|
|
|
|
Per scenario is er op de website een (voorbeeld-)contextbericht te vinden. Welk contextbericht bij welk scenario hoort is te vinden op de website bij de releasegegevens van TiS.
|
|
|
|
|
|
In de casusbeschrijvingen staan de waarden waar TiS op rekent, deze mogen niet gewijzigd worden. Andere waarden zijn naar de smaak van de softwareleverancier aan te passen .
|
|
|
|
|
|
Om met TiS te kunnen communiceren is er software nodig waarmee een webservice benaderd kan worden, bijvoorbeeld SoapUI.
|
|
|
|
|
|
\*\*N.B. \*\*Het contextbericht is niet te valideren met de validatiemodule omdat het geen bericht is wat onderdeel uitmaakt van een iStandaard.
|
|
|
|
|
|
### Stappen om een scenario te Starten (StartScenarioRequest)
|
|
|
|
|
|
1. Configureer de software met behulp van de WSDL (te vinden op de website).
|
|
|
* Op de site zijn ook de berichten te vinden waarmee gecommuniceerd kan worden met TiS .
|
|
|
2. Kies van deze berichten het StartScenarioRequest.
|
|
|
* Vul het element ScenarioId met het ScenarioId van het gekozen scenario.
|
|
|
* Vul het element Context met het contextbericht dat hoort bij het gekozen scenario.
|
|
|
3. Stuur dit bericht vervolgens naar TiS.
|
|
|
* TiS stuurt als antwoord een StartScenarioResponse met daarin een SessionId en het ScenarioId. Beiden zijn nodig bij de vulling van de navolgende berichten.
|
|
|
|
|
|
Afhankelijk van het gekozen scenario gaat TiS nu bericht(en) klaarzetten of TiS wacht op bestanden die aangeboden worden door de gebruiker.
|
|
|
|
|
|
|
|
|
|
|
|
### Aanbieden van bestanden aan TiS (OfferFileRequest)
|
|
|
|
|
|
Als er een bericht van de gebruiker wordt verwacht door TiS, dan moet deze worden aangeboden met een OfferFileRequest.
|
|
|
|
|
|
1. Open het voorbeeld van een OfferFileRequest
|
|
|
* Vul de het element SessionId
|
|
|
* Vul het element ScenarioId.
|
|
|
* Vul het element Message. Hierin dient het bericht opgenomen te worden dat aangeboden moet worden.
|
|
|
2. Verstuur dit bericht. Verstuur vervolgens dit bericht naar TiS.
|
|
|
* Als antwoord stuurt TiS een OfferFileResponse met daarin het SessionId en het ScenarioId.
|
|
|
|
|
|
### Ophalen van bestanden van TiS (RequestFileRequest)
|
|
|
|
|
|
Als er bestanden van TiS verwacht worden, dan moeten deze opgehaald worden met een RequestFileRequest.
|
|
|
|
|
|
1. Open het voorbeeld van een RequestFileRequest.
|
|
|
* Vul het element SessionId.
|
|
|
* Vul het element ScenarioId.
|
|
|
2. Stuur dit bericht naar TiS.
|
|
|
* TiS zal antwoorden met een RequestFileResponse. In dit bericht staan het SessionId, het ScenarioId en Messages.
|
|
|
* In het element Messages staan een of meerdere berichten, ieder individueel bericht is te herkennen aan het element Message.
|
|
|
|
|
|
Tis stuurt altijd alle (reeds) aangemaakte berichten binnen het gevraagde scenario op. |
|
|
\ No newline at end of file |