[[TOC(heading=Moduleconfiguratie, sectionindex, compact, depth=3, allactive, Documentatie/Beheerder/Modules/)]] [[TOC(heading=Beheerder, sectionindex, compact, depth=2, allactive, indirect=Documentatie/Beheerder/TOC)]] [[TOC(heading=Documentatie, sectionindex, compact, depth=1, allactive, Documentatie/)]] = Moduleconfiguratie = Dit hoofdstuk in de beheerdershandleiding beschrijft de inrichting van modules in OpenAC. De inhoudsopgave rechts toont die modules waarvoor configuratie vereist, gewenst of mogelijk is. OpenAC is modulair opgebouwd. Een adaptatie kan een eigen selectie van kernmodules inschakelen (in gebruik hebben). Diverse modules van OpenAC hebben ''module-parameters'' die het gedrag beïnvloeden. Vanaf OpenAC v2.016 is de manier waarop modules worden aangezet, en hoe de module-parameters per module worden ingevoerd, gewijzigd. Deze pagina beschrijft de manier vanaf v2.016. == Module-Instellingen == Welke (kern)modules gebruikt worden door OpenAC wordt door een configuratiebestand `modules.ini` geregeld (en nog een klein beetje door de adaptatie-init). De (kern)modules hebben hun eigen instellingen die ook in `modules.ini` worden ingesteld (of programmatisch worden doorgegeven), nog los van instellingen die ze via het instellingenscherm kunnen hebben. Het bestand `modules.ini` heeft een ini-achtige structuur. Dat betekent dat er kopjes zijn van de vorm `[section-name]` en onder een kopje, instellingen van de vorm `key = value`. Hoewel we schrijven over `modules.ini` in deze handleiding, worden er '''drie''' bestanden geraadpleegd door OpenAC bij het opstarten: - `modules.ini` in de adaptatie-map, - `modules-`''AGB''`.ini` in de adaptatie-map; hier wordt voor ''AGB'' de gekozen AGB bij het inloggen ingevuld, - `modules-`''locatieletter''`.ini` in de adaptatie-map; hier wordt voor ''locatieletter'' de gekozen locatie (in de drop-down in het startscherm) ingevuld. Merk op dat deze gegevens vastliggen op het moment van inloggen. De drie bestanden worden in deze volgorde (algemeen, AGB, locatie) geraadpleegd, en instellingen uit de latere bestanden vervangen instellingen in eerdere bestanden. Zo is het mogelijk om bepaalde modules alleen bij bepaalde locaties aan te zetten, en dergelijke. == Modules Aanzetten == Onder het kopje `[modules]` in het configuratiebestand staat een lijst van modules die geactiveerd is in de adaptatie. Modules die niet genoemd worden, staan niet aan '''tenzij''' ze nodig zijn voor het functioneren van andere modules die wel aan staan. Zo is het niet nodig om module `d010_systeem` aan te zetten, want die is nodig voor alle andere modules. Elke module kan optreden als ''key'' onder dit kopje. Als ''value'' geef `True` of `False` op. Modules met value `False` staan uit (dat kan handig zijn als je een module wilt testen, of even niet wilt gebruiken maar de verdere instellingen wel wilt behouden). Als voorbeeld van een eenvoudige configuratie met alleen een medewerker-dossier (geen patienten): {{{ [modules] kern.s030_medewerkers = True kern.s040_dossier = False kern.f050_excel = True }}} Om modules uit te zetten zijn er diverse mogelijkheden: - verwijder de regel uit het `modules.ini` bestand, - zet een hekje (#) voor de regel zodat het commentaar wordt, - of verander de ''value'' in `False` om de module uit te zetten. == Modules Configureren == De module-parameters worden per module geconfigureerd onder een kopje dat overeenkomt met de naam van de module (bijvoorbeeld `[kern.s030_medewerkers]` voor de module-parameters voor die module). Welke parameters beschikbaar zijn hangt af van de module. Dat is makkelijk op te zoeken in het [attachment:modules.ini voorbeeldbestand], waar alle mogelijke modules en module-parameters in terug te vinden zijn. Als voorbeeld van de configuratie voor de module `d030_planning`, deze instellingen: {{{ [kern.d030_planning] planhorizon_afstand = '365d' zaterdag_overslaan = True }}} Hier zijn twee module-parameters gezet. De een is ingesteld op de string ''365d''. Nalezen van de documentatie in het voorbeeldbestand leert dat hiermee de planhorizon automatisch wordt ingesteld op 365 dagen vanaf vandaag (elke keer dat je OpenAC opstart). De andere module-parameter wordt ingesteld op `True`, waarmee aangegeven wordt dat het AC op zaterdag gesloten is (dat is overigens de default voor die parameter). De module-parameters kunnen worden teruggevonden in de broncode van OpenAC. Die broncode wordt gebruikt om het [attachment:modules.ini voorbeeld modules-configuratiebestand] te maken, waardoor dat voorbeeldbestand gevuld is met meer modules en meer instellingen dan je redelijkerwijs aan zou willen zetten. == Starten Oude-Stijl == Het `modules.ini` bestand wordt gebruikt '''naast''' de bestaande adaptatie-init. Het is dus mogelijk om ook configuratie te doen via de `start()` functie in de adaptatie, en daar modules op te starten. Het verdient de voorkeur om dat via `modules.ini` te regelen, maar dat is niet altijd mogelijk -- dan is de oude stijl nog bruikbaar. Om een module in oude stijl te starten, zijn twee stappen nodig: - de module moet worden geïmporteerd in de adaptatie-init, door bovenaan een regel op te nemen (hier om module `d010_systeem` te importeren): {{{ from kern import d010_systeem }}} - de module moet worden gestart. In de adaptatie-init is een functie `start()` gedefiniëerd. Binnen deze start-functie moet van de gewenste module de start-functie worden aangeroepen. Als de module parameters heeft, dan kunnen die (in de Python code) worden meegegeven: {{{ d010_systeem.start(voorbeeldparameter=3) }}} Let op de indentatie van beide regels code! Die in de start-functie moet 4 spaties ingesprongen staan. De twee regels Python code hier komen overeen met de `modules.ini` instellingen als volgt: {{{ [modules] kern.d010_systeem = True [kern.d010_systeem] voorbeeldparameter = 3 }}} == Voorbeeldbestand == Dit [attachment:modules.ini voorbeeldbestand] wordt gegenereerd aan de hand van de OpenAC broncode. Alle mogelijke modules staan er in onder het kopje `[modules]`. Voor elke module is er een kopje aangemaakt voor de module-parameters van die module. Alle module-parameters hebben tekst en uitleg en staan ingesteld op hun default-waarden. Het is aan te raden om configuratie te knippen-en-te-plakken van het voorbeeldbestand naar de eigen `modules.ini`. Denk er daarbij aan om de gewenste modules aan te zetten door ''module'' `= True` op te nemen onder het kopje `[modules]`.