wiki:Documentatie/Beheerder/Scripts

Version 9 (modified by adriaan, 14 years ago) (diff)

--

Scripts

Beheershandleiding

    OpenAC heeft, naast de gewone functionaliteit van het programma, ook scripts die ongewone acties uitvoeren of die bijzondere queries op de database loslaten. Deze scripts staan bij de OpenAC programmatuur en kunnen met de hand of als geplande taak worden uitgevoerd.

    Scripts doen speciale dingen met OpenAC. Hierdoor is het van belang om de scripts met de nodige voorzichtigheid te draaien.

    Scripts Draaien

    Voor het uitvoeren van een script zijn er drie stukken informatie nodig:

    • Waar is OpenAC geinstalleerd? Dit scrijven we verder als <OpenAC Map>. Als OpenAC op een reguliere manier is geinstalleerd zou dit C:\Program Files\OpenAC kunnen zijn.
    • Welke versie van de OpenAC runtime wordt er gebruikt? De meeste installaties hebben Python 2.5, sommige Python 2.4.
    • Welk script moet er worden uitgevoerd? Een lijst van beschikbare scripts staat op deze pagina hieronder, of kijk in <OpenAC Map>/scripts/ voor de namen van alle scripts die met OpenAC geinstalleerd zijn. Elke adaptatie kan ook zijn eigen scripts hebben, die in de adaptatiemap staan.

    Scripts worden het beste vanaf de command-line uitgevoerd. Deze is op te starten als cmd.exe. Instructies voor specifieke Windows versies staan hieronder. Als de command-line is opgestart, dan kunt u met het commando cd <OpenAC Map> naar de juiste map gaan.

    Eenmaal in de juiste map, gebruik het juiste commando van de runtime?, een spatie, script.py en de naam van het script om uit te voeren. Indien geen script wordt opgegeven klaagt het programma dat er geen script opgegeven is en doet verder niks.

    In de screenshot hieronder worden de volgende twee opdrachten uitgevoerd:

    cd "C:\Users\adriaan\AppData\OpenAC Docs\v1.222"
    Python25\python.exe script.py
    

    Het eerste commando zorgt ervoor dat het commando op de juiste plek wordt uitgevoerd (op deze machine is OpenAC op een ongewone plek geinstalleerd). De tweede voert het script uit (zonder naam van een script, dus we verwachten ook dat het klaagt).

    Command Line Starten

    Windows 7 Windows XP
    Klik op start en vul in het zoekveld cmd in en druk op enter. De command-line start op. TODO: hier screenshots maken. De command-line opstarten in Windows XP lijkt erg op het opstarten onder Windows 7.

    Parameters voor Scripts

    Na python.exe script.py volgen vier dingen:

    • de naam van het script zelf (bijvoorbeeld backup.py)
    • (optioneel) de adaptatie om te gebruiken
    • (optioneel) een mailadres waar de uitvoer van het script naartoe gestuurd wordt
    • (optioneel) een of meer parameters voor het script

    Hieronder volgen vier voorbeelden met verschillende combinaties van parameters. In alle gevallen draaien we het script svn.py (beschikbaar vanaf v1.224). We kiezen optioneel om de adaptatie op die van Nijmegen in te stellen, om de resultaten naar de helpdesk te sturen, om zowel de adaptatie als het mailadres in te stellen (en let op dat hier de volgorde belangrijk is! ) en om het script svn.py zelf een parameter te geven (nl. "info", waardoor het script iets nuttigs afdrukt).

    Python25\python.exe adaptatie:ac_nijmegen script.py 
    Python25\python.exe mailto:tickets@fenac.nl script.py
    Python25\python.exe adaptatie:ac_nijmegen mailto:tickets@fenac.nl script.py
    Python25\python.exe script.py info
    

    Instellingen voor Scripts

    Scripts gebruiken dezelfde instellingen als de laatste OpenAC-sessie. Het is dus zaak om OpenAC minimaal één keer op de reguliere manier te starten en te controleren of alle instellingen correct zijn.

    Een geplande taak aanmaken

    Controleer eerst dat het script met de hand gedraaid kan worden zoals hierboven omschreven staat. De runtime en parameters zijn hierbij in het bijzonder van belang.

    • Open "Geplande taken" vanuit het configuratiescherm. De wizard "Taak plannen" zal worden gestart.
    • Blader naar python.exe in de runtime map (Python25 of Python24) in de <OpenAC map>.
    • Geef de taak een naam.
    • Geef aan wanneer de taak moet worden uitgevoerd.
    • Voltooi de wizard. Vink op de laatste pagina moet de optie "Geavanceerde eigenschappen voor deze taak openen wanneer ik op Voltooien klik" aan. Dit is nodig om de argumenten en de werkdirectory in te stellen.
    • Vul de opdrachtregel achter "Uitvoeren" aan met script.py <naam van script> <parameters voor script>.
    • Het is belangrijk dat achter "Beginnen in" de <OpenAC Map> wordt ingevuld. Dit is de werkdirectory.

    Beschikbare Scripts

    Deze lijst met scripts omvat alleen de scripts die voor alle AC's van belang zijn. De individuele adaptaties kunnen nog meer scripts bevatten die alleen op de lokale situatie van die adaptatie of dat AC van toepassing zijn.

    Scriptnamen worden in dit lijstje zonder ".py" weergegeven. Die kan je bij de scriptnaam ook weglaten (maar niet bij script.py!).

    Backup

    De naam van dit script is backup.

    Dit script schrijft een actuele backup naar de verzameldirectory. De verzameldirectory is degene die is ingesteld bij het maken van een OpenAC backup. Om die in te stellen of te controleren, start OpenAC gewoon op als admin en kies Bestand -> Backup Maken. Het invulveld dat daar verschijnt bevat de instelling voor het maken van backups.

    Zie ook script restore om backups terug te zetten.

    DECOS Ontdubbelen

    TODO: ?

    Grouper

    De naam van dit script is ping-grouper.

    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.

    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.

    De verschillende test-stappen worden hieronder beschreven.

    • cert Controleer of het server-certificaat voor de Grouper correct is geinstalleerd.
    • 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.
    • openssl Gebruik OpenSSL om, buiten OpenAC om en zonder de proxy instellingen te gebruiken, een verbinding met de Grouper te maken.
    • key Vraag de hash-code sleutel aan de Grouper. Dit vereist wel dat er communicatie mogelijk is en dat de certificaten goed zijn geinstalleerd.
    • 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.
    • test1 Teststap 1 uit de formele test-proceudre voor aansluiting op de Grouper. NB. Nog niet geimplementeerd. Er worden standaard-voorbeeld casussen aan de Grouper aangeboden.
    • test2 Teststap 2 uit de formele test-procedure voor aansluiting op de Grouper. NB. Nog niet geimplementeerd. Er worden, op basis van eigen patient-gegevens, anonieme trajecten aan de Grouper aangeboden en vergeleken met de gegevens die OpenAC berekent.

    HL7-Server

    TODO: ?

    Leeftijdsselectie

    De naam van dit script is leeftijds-selectie.

    Dit script drukt een lijst af op het scherm van patientnummer en -naam die in een opgegeven periode binnen een bepaalde leeftijdscategorie vielen.

    Het script kan vier parameters aannemen, begin en eind van de periode en de minimum en maximum leeftijden. Het opgeven van de periode is verplicht; de leeftijden niet en die staan standaard op 40 tot 60 jaar ingesteld.

    • Om het begin van de periode aan te geven, geef parameter {{{begin:YYYY-MM-DD}} op.
    • Om het einde van de periode aan te geven, geef parameter {{{eind:YYYY-MM-DD}} op.
    • Om de minimumleeftijd op te geven, geef parameter {{{min:NN}} op.
    • Om de maximumleeftijd op te geven, geef parameter {{{max::NN}} op.

    Als voorbeeld, patienten van 6 tot en met 24 jaar op te vragen die een bezoek aan het AC brachten van 1 januari 2010 tot en met 14 februari 2010:

    Python25\python.exe script.py leeftijds-selectie begin:2010-01-01 eind:2010-02-14 min:6 max:24
    

    De uitvoer is tab-gescheiden.

    Periodieke TOREN-import

    De naam van dit script is periodiek_toren_import. Geef het script een parameter, import.

    Het script doet het volgende:

    • Alle bestanden uit de TOREN-importmap met een bepaalde bestandsextensie worden ingelezen. De TOREN-importmap en de bestandextensie kunnen worden ingesteld via Beheer->Instellingen in OpenAC.
    • Als er een structuurfout zit in het importbestand, of als de import voortijdig wordt afgebroken, dan wordt het importbestand verplaatst naar de map "mislukt". Het script "periodiek_toren_import" garandeert dat elke verrichting uit een importbestand maar één keer wordt verwerkt, dus een bestand kan zonder gevaar op dubbele verrichtingen meerdere keren worden geïmporteerd.
    • Verrichtingen die niet kunnen worden verwerkt worden weggeschreven als een kommagescheiden bestand in de map "fouten".
    • Nadat een TOREN-bestand is geïmporteerd wordt het verplaatst naar de map "behandeld".
    • Bestanden uit de map "mislukt" kunnen worden teruggezet naar de TOREN-importmap met "script.py periodiek_toren_import herstel".

    Rapportage

    De naam van dit script is rapportage.

    Maakt een rapportage aan en schrijft deze weg in de rapportagemap. Als eerste parameter wordt de naam van een rapportage (bijvoorbeeld fenac_kentallen) opgegeven. Argumenten voor de rapportage kunnen, met komma's gescheiden, na de rapportagenaam staan. Deze argumenten komen overeen met configuratiewaarden van OpenAC.

    Voorbeelden aanroep:

    • rapportage fenac_kentallen kentallen_jaar=2010
    • rapportage productie_ap factureerbaar_vanaf_datum=2010-01-01,factureerbaar_tot_datum=2010-12-31

    Als er geen rapportagenaam wordt opgegeven, dan wordt de lijst van beschikbare rapportages afgedrukt.

    Restore

    De naam van dit script is restore.

    Met dit script kan een eerder gemaakte OpenAC backup worden teruggezet, net als via het menu Beheer -> Backup Terugzetten. Het script heeft een parameter, de verzameldirectory waar de backup opgeslagen is (dat is dus waarschijnlijk een map met een naam als C:\OpenAC\backups\ac_nederland-2011-04-30-13.17\, afhankelijk van waar de backups gemaakt worden).

    Het script vraagt of de database eerst leeg gemaakt moet worden en daarna om bevestiging voordat de backup daadwerkelijk teruggezet wordt.

    SVN Cleanup

    De naam van dit script is svn_cleanup.

    Dit script kan problemen met het versiebeheer van OpenAC oplossen. Als het niet lukt om OpenAC op te starten omdat het over versiebeheerproblemen klaagt, kan dit script een oplossing bieden. Voor een meer rigoreuze oplossing zie script SVN Client.

    SVN Client

    De naam van dit script is svn. Beschikbaar vanaf v1.224.

    Dit script voert algemene versiebeheertaken uit, al dan niet met de instellingen van OpenAC. Dit script heeft een parameter nodig om aan te geven welke bewerking het uit moet voeren. Als er geen parameters meegegeven worden dan drukt het script een volledige handleiding af op het scherm.

    Sommige mogelijke parameters voor dit script:

    • cleanup voer SVN cleanup uit, net als het gelijknamige losse script, in geval van een afgebroken versiebeheer-actie.
    • config schrijf een nieuwe SVN configuratie-file net zoals OpenAC dat zou doen.
    • info geef informatie over de huidige OpenAC versie. Geef optioneel directories aan om de informatie over die directories op te vragen.
    • server geef informatie over de versie van OpenAC beschikbaar op de server van de FENAC. Hierbij worden de proxy-instellingen van OpenAC gebruikt. Zorg ervoor dat die goed ingesteld staan bij instellingen.
    • scrub is een stoomwals die over alle versiebeheer problemen heen walst door dingen lukraak weg te gooien. Als OpenAC niet wil opstarten vanwege versiebeheerproblemen en ook niet bijgewerkt kan worden en script svn_cleanup biedt geen soelaas, dan kan scrub helpen. Omdat dit een paardemiddel is moet ook nog de dag van de week (eerste twee letters) als parameter meegegeven worden, al is het maar om te voorkomen dat je dit per ongeluk draait en alle veranderingen aan sjablonen en codetabellen kwijtraakt.
    • server geef informatie over de versie van OpenAC op de server van de FENAC. Gebruikt OpenAC's SVN proxy instellingen.
    • serverc geef informatie over de versie van OpenAC beschikbaar op de server van de FENAC. Maak hierbij geen gebruik van de proxy instellingen van OpenAC. In combinatie met server is het mogelijk om hiermee netwerkproblemen veroorzaakt door proxy-instellingen uit te zoeken.
    • status laat de status van de OpenAC versie zien. Hierbij worden regels afgedrukt met een letter of symbool vooraan om aan te geven wat de status is. ? geeft een bestand aan dat onbekend is bij versiebeheer; dat zou normaal gesproken niet voor moeten komen. M geeft een bestand aan dat veranderd is in de lokale versie; die kunnen via versiebeheer ingeleverd worden. Andere letters (A en C) kunnen voorkomen maar geven een probleem met de installatie aan.
    • update werk OpenAC bij, optioneel met -r rev naar een specifieke revisie, optioneel met opgegeven directories om alleen die directories bij te werken.
    • versies vraag VERSIES.txt op bij de FENAC en geef een lijstje van beschikbare versies van OpenAC terug.

    Switches

    De naam van dit script is switches.

    OpenAC kent een groot aantal zogenaamde switches om het gedrag te beinvloeden of om problemen te helpen uitzoeken. Een switch kan aan of uit staan. Met dit script is het mogelijk om de switches van OpenAC in te stellen zonder OpenAC zelf op te starten. Dat kan nuttig zijn in het geval dat OpenAC helemaal niet meer start maar dat het probleem wel onderzoecht moet worden met bepaalde switches aan.

    Zie de instellingenpagina van de beheershandleiding voor meer informatie over de switches zelf.

    Als dit script zonder parameters wordt gedraaid, drukt het de huidige switch-instellingen af.

    Om switches te veranderen, geef de naam van een switch, een is-teken en dan aan of uit (het script accepteert ook 1, true, ja en yes voor aan en 0, false, nee en no voor uit -- als het script het niet snapt, vertelt het wel wat het wel verstaat). Het is mogelijk om meer dan een switch tegelijk in te stellen.

    Hieronder een voorbeeld om de switches op te vragen en een tweede om de switches debug_sql_read uit en skip_svn aan te zetten.

    Python25\python.exe script.py switches
    Python25\python.exe script.py switches debug_sql_read=uit skip_svn=aan
    

    UZOVI

    TODO: ?

    Verstuur DBC's

    De naam van dit script is verstuur_dbcs.

    Het script voert de acties uit het scherm DBC's versturen automatisch uit.

    Verstuur Herinneringen

    De naam van dit script is verstuur_herinneringen.

    Herinneringen kunnen per e-mail en per SMS verstuurd worden aan patienten. Als parameters kunnen locatiecodes worden meegegeven. Zonder parameters worden herinneringen voor alle locaties verstuurd.

    Attachments (2)

    Download all attachments as: .zip