| 102 | | |
| 103 | | Dit script test de communicatie met de Grouper van DBC Onderhoud en maakt onderdeel uit van de test-fase van de aansluiting op de Grouper. Daarnaast kan het helpen bij het debuggen van communicatieproblemen met de Grouper. De informatie die geldt voor gewone [wiki:Documentatie/Beheerder/Scripts scripts] (manier van opstarten, parameters en configuratieinstellingen) geldt ook voor dit script. |
| 104 | | |
| 105 | | Het script neemt een of meer namen van test-stappen aan en voert die test-stappen uit. De speciale naam ''alle'' zorgt ervoor dat alle zinvolle teststappen uitgevoerd worden, een achter de ander. Het is mogelijk om alleen sommige stappen uit te voeren door (bijvoorbeeld) ''key test0'' als argumenten mee te geven. |
| 106 | | |
| 107 | | De verschillende test-stappen worden hieronder beschreven. |
| 108 | | |
| 109 | | - ''cert'' Controleer of het server-certificaat voor de Grouper correct is geinstalleerd. |
| 110 | | - ''https'' Gebruik een standaard HTTPS verbinding, met de proxy-instellingen van OpenAC, om een verbinding met de Grouper te maken en de webpagina op te vragen. |
| 111 | | - ''openssl'' Gebruik OpenSSL om, buiten OpenAC om en zonder de proxy instellingen te gebruiken, een verbinding met de Grouper te maken. |
| 112 | | - ''key'' Vraag de hash-code sleutel aan de Grouper. Dit vereist wel dat er communicatie mogelijk is en dat de certificaten goed zijn geinstalleerd. |
| 113 | | - ''test0'' Teststap 0 uit de formele test-procedure voor aansluiting op de Grouper. Hiermee wordt nogmaals het HL7-versie3 protocol getest en de beschikbaarheid van de Grouper. |
| 114 | | - ''test0.5'' Dient een enkel financieel traject (subtraject) in bij de Grouper en leidt een product af. |
| 115 | | - ''test1'' Teststap 1 uit de formele test-proceudre voor aansluiting op de Grouper. Er worden standaard-voorbeeld casussen aan de Grouper aangeboden. Deze testen of de gegevens (URA, UZI) in OpenAC goed zijn ingevuld, of de communicatie goed verloopt en of de Grouper reageert zoals verwacht. Voor uitleg over het interpreteren van de uitvoering van de test, [#GrouperTestFase1 zie hieronder]. Deze stap is nodig voor het ondertekenen van de testverklaring voor DBC-Onderhoud. |
| 116 | | - ''test2'' Ketentest waarbij test-producten worden aangemaakt, gebundeld en aangeboden door |
| 117 | | |
| 118 | | === Tests Algemeen === |
| 119 | | |
| 120 | | De tests zijn afkomstig uit het document van DBC-Onderhoud "[http://www.dbconderhoud.nl/index.php?option=com_docman&task=doc_download&gid=3304&Itemid=32 testprocedure technische aansluiting]" (links op de DBC-O site worden vaak veranderd, dit hoeft niet meer de actuele versie te zijn). De casussen zelf zijn te vinden in een document "Casussen Grouper". De tekst van de casussen zoals verspreid in november 2011 is te vinden in de broncode van de tests voor de Grouper in OpenAC, in {{{kern/e080_grouper/unittests.py}}}. |
| 121 | | |
| 122 | | De uitvoer van de tests van de grouper komen te staan in het log bestand {{{ping-grouper.log}}}, bij de andere logfiles in de OpenAC configuratiemap. |
| 123 | | |
| 124 | | === Grouper Test Fase 0 === |
| 125 | | |
| 126 | | Deze fase test of de verbinding via Internet met de Grouper tot stand kan komen. Als er problemen met de certificaten van de Grouper zijn, zal je dat hier ontdekken. Indien de instructies hierboven over het certificaat aanvragen zijn opgevolgd, ziet de uitvoer van {{{Python25\python.exe script.py test0}}} er ongeveer zo uit: |
| 127 | | |
| | 105 | In geval dat je kiest voor een test met "OHW trajecten bundelen" dan krijg je teksten in tabblad "Meldingen" zoals hieronder weergegeven. |
| 141 | | === Grouper Test Fase 1 === |
| 142 | | |
| 143 | | Het eigenlijke aanbieden van subtrajecten aan de grouper kan met ''test1'' van het ''ping-grouper'' script. Voer het zo uit in de installatiedirectory van OpenAC v2: |
| 144 | | |
| 145 | | {{{ |
| 146 | | Python25\python.exe script.py ping-grouper test1 |
| 147 | | }}} |
| 148 | | |
| 149 | | Dit script gaat proberen om de formele test-set van DBC-O aan te bieden aan de grouper. ''Voordat'' je de test uitvoert, controleer de volgende zaken: |
| 150 | | - switch ''test_grouper'' moet '''uit''' staan, |
| 151 | | - switch ''gebruik_acc_grouper'' moet '''aan''' staan, |
| 152 | | - switch ''debug_grouper'' mag aan of uit; als het aan staat zal je veel bestanden met XML krijgen die betrekking hebben op de communicatie met de grouper. |
| 153 | | - je hebt je URA en UZI nummers ingevuld in de codetabel ''agb_locatie'' (ga naar startscherm, codetabellen, kies onder d010_systeem de tabel AGB locatie en vul ze daar in). |
| 154 | | - de tests ''key'' en ''cert'' en ''test0'' gaan goed. |
| 155 | | |
| 156 | | Na het uitvoeren van het script heb je in je log-directory (waarschijnlijk is dat {{{.openac}}}) een bestand {{{grouper-fase1.log}}}. Hierin staat wat de test uitvoert. In de bovenste paar regels staat informatie over de gebruikte instellingen: |
| 157 | | |
| 158 | | {{{ |
| 159 | | Start DOT-Grouper test fase1 |
| 160 | | DOT-Grouper test op basis van DBC-Onderhoud document |
| 161 | | 'Testprocedure voor technische aansluiting op de grouper |
| 162 | | voor zorginstellingen en ICT-leveranciers' v20110401. |
| 163 | | Centrum AGB 19009332, URA None, UZI None Test Nee |
| 164 | | Centrumdata is onvolledig (UZI en URA nummers verplicht). |
| 165 | | }}} |
| 166 | | |
| 167 | | Hier zien we alvast een waarschuwing dat de gegevens niet volledig zijn (''Centrumdata is onvolledig''). Vul in dat geval de data in. |
| 168 | | |
| 169 | | De log file vervolgt met een heleboel test-gevallen met allemaal dezelfde structuur: |
| 170 | | |
| 171 | | {{{ |
| 172 | | Start test test_NN_achternaam |
| 173 | | <extra uitvoer> |
| 174 | | * Casus <toestand> |
| 175 | | }}} |
| 176 | | |
| 177 | | Veel van de casussen zijn niet van toepassing op Audiologie en zeggen ook waarom dat is. De resterende casussen 1 en 8 (die twee zijn wel van toepassing) moeten {{{* Casus OK}}} zeggen. |
| 178 | | |
| 179 | | Casus 2 is niet van toepassing en ziet er zo uit: |
| 180 | | {{{ |
| 181 | | Start test test_02_pietersen |
| 182 | | * Casus niet van toepassing (geen IC) |
| 183 | | }}} |
| 184 | | |
| 185 | | Casus 1 is wel van toepassing en kan zoiets produceren: |
| 186 | | {{{ |
| 187 | | Start test test_01_jansen |
| 188 | | Traject wordt afgesloten als 08 |
| 189 | | ** Afsluiting resultaat |
| 190 | | Zorgproduct 991900013 |
| 191 | | Grouper Hash <random> |
| 192 | | Product is 11/11/12 991900013 |
| 193 | | * Casus OK. |
| 194 | | }}} |
| 195 | | Hier zien we het begin van de casus, wat tussendoor informatie en een bevestiging dat de casus goed is verlopen. Hiermee zien we dat het mogelijk is om een 11/11/12 (AP101) aan de grouper aan te bieden. Daarmee weten we dat communicatie met de grouper en het ophalen van gegroupeerde producten werkt! |
| 196 | | |
| 197 | | Sommige tests controleren op verwachte fouten; dan geeft de grouper een melding terug en die zou je te zien moeten krijgen. In de logfile {{{grouper-fase1.log}}} staat niet de hele melding, maar alleen de controle dat de melding wordt gevonden: |
| 198 | | {{{ |
| 199 | | Start test test_10_vriens |
| 200 | | Verwachte foutmelding 'DBC004' gevonden. |
| 201 | | Verwachte foutmelding 'heeft geen valide datum' gevonden. |
| 202 | | * Casus OK. |
| 203 | | }}} |
| 204 | | |
| 205 | | Als je wilt weten hoe dat in het "echt" er uit ziet voor de gebruiker, dan kan je in {{{sessie.log}}} kijken. Zoek naar DBC004 en daar heb je een aantal regels met WARNING en de grouper foutmeldingen. Binnen OpenAC zouden deze regels als rode waarschuwingen verschijnen in het meldingen-paneel. (Merk op dat dit om dingen gaat als "je hebt nul juli ingevuld als begindatum", OpenAC houdt dat zelf al tegen dus de fout-casussen zijn niet heel relevant). |
| 206 | | |
| 207 | | Caussen 12 (de Wit) t/m 34 (van Dalen) zijn allemaal fout-casussen die niet zijn geimplementeerd. Die geven geen verdere meldingen. |
| 208 | | |
| 209 | | Als de switch ''debug_grouper'' aanstaat, of wanneer er fouten optreden in de communicatie met de grouper, dan worden de berichten die gestuurd zijn en die ontvangen worden opgeslagen onder de ''bestanden_dir'' van OpenAC (dit kan je terugvinden in het instellingenscherm). Er wordt een directory {{{grouper/}}} aangemaakt en '''daar''' onder weer een directory met de datum. Elk bericht wordt als ''sent'' of ''recv'' (ontvangen) opgeslagen, met een volgnummer. |
| 210 | | |
| 211 | | Deze bestanden worden vooralsnog niet opgeruimd. |
| 212 | | |
| 213 | | === Test Fase 1.5 === |
| 214 | | |
| 215 | | Om te experimenteren met "echte" data kan de teststap ''test1.5'' uitgevoerd worden. Dit neemt een patient en biedt de subtrajecten van de patient aan aan de Grouper om te kijken wat de Grouper er van maakt. Hiermee valt te vergelijken wat de Grouper maakt en wat OpenAC van het product vindt. |
| 216 | | |
| 217 | | Zet na ''test1.5'' in het commando een '''volledig''' patientnummer (inclusief centrumprefix). De subtrajecten van die patient die aangeboden ''mogen'' worden aan de Grouper, worden verstuurd. Er worden '''geen wijzigingen''' in het dossier doorgevoerd. |
| 218 | | |
| 219 | | {{{ |
| 220 | | Python25\python.exe script.py test1.5 VTL-J9991234 |
| 221 | | }}} |
| 222 | | |
| 223 | | |
| 224 | | === Test Fase 2 === |
| 225 | | |
| 226 | | Als je ''test2'' draait, dan probeert het test-script ook dingen te bundelen en een VEKTIS bestand te schrijven en een DIS bestand aan te maken. In de log-file staan de locaties waar deze bestanden terecht komen (merk op! dat is, tenzij je ''bestanden_dir'' en dergelijke hebt aangepast, misschien op dezelfde network share als OpenAC v1 dingen doet, en je zou dus OpenAC v1 in de weg kunnen zitten hiermee). |
| | 118 | Notabene: in verleden bestond ping-grouper.py. Dit script was beschikbaar in oudere versie van OpenAC en is per 15 december 2017 uitgefaseerd. |