[[TOC(heading=Spooler OpenAC 3)]] [[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/)]] = Spooler OpenAC 3 = De ingebouwde spoolmodule biedt functionaliteit om bestanden automatisch aan een (onderdeel van een) OpenAC dossier te koppelen. Het is mogelijk om meerdere spoolfolders te configureren, elk met eigen regels voor het verwerken van bestanden die erin worden geplaatst. == Configuratie == De spoolmodule wordt geconfigureerd in appsettings.json onder de sectie "Spooler": {{{#!json "Spooler": { "Handlers": [ { "Name": "DefaultSpoolHandler", "Patterns": ["(?ACH-[A-Z]{1}\\d{5,6}).pdf"] } ], "Folders": [ { "Path": "D:\\openac_data\\spooler", "Handlers": ["DefaultSpoolHandler"] } ] }, }}} De Spooler-sectie bestaat uit twee lijsten: "Handlers" en "Folders". Elke handler heeft twee eigenschappen: "Name" en "Patterns". "Name" moet overeenkomen met de naam van één van de in OpenAC ingebouwde spoolhandlers. "Patterns" is een lijst met reguliere expressies die patronen beschrijft van bestandsnamen die de handler moet verwerken. == Handlers == Om te bepalen wat er met bestanden in de spoolmappen moet gebeuren past OpenAC een aantal regels toe. De implementatie van een set van deze regels heet een spoolDeze regels kunnen worden geconfigureerd met spool handlers. Een spool handler dient te worden geregistreerd in de finish() functie van de adaptatie en verwerkt bestanden op basis van de opgegeven reguliere expressie. Er zijn een tweetal voorgedefinieerde spoolhandlers: !SpoolHandlerOpKey en !SpoolHandlerOpDatum === !SpoolHandlerOpKey === Bestanden worden geselecteerd op basis van patiëntnummer en/of nummer van het zorgtraject. Voorbeeld: {{{ def finish(): from kern.f050_spool import handler f050_spool.add_handler( "s010.tabelscherm_patient", handler.SpoolHandlerOpKey("verwijsbrief-(?P\w{4}-\d{2}-\d{4})-(?P\w{4}-\w{1}\d{7}).pdf")) }}} Deze regel matcht bestand "verwijsbrief-ABCD-16-1234-ABCD-A1234567.pdf" en koppelt deze aan zorgtraject ABCD-A1234567 van patiënt ABCD-A1234567. Het is ook mogelijk om bestanden rechtstreeks te koppelen aan de patiënt: {{{ def finish(): from kern.f050_spool import handler f050_spool.add_handler( "s010.tabelscherm_patient", handler.SpoolHandlerOpKey("verwijsbrief-(?P\w{4}-\d{2}-\d{4}).pdf")) }}} In dat geval is alleen het patiëntnummer nodig in de bestandsnaam: "verwijsbrief-ABCD-16-1234.pdf" === !SpoolHandlerOpDatum === Bestanden worden geselecteerd op basis van patiëntnummer, datum en type. Voorbeeld: {{{ def finish(): f050_spool.add_handler( "s010.tabelscherm_patient", handler.SpoolHandlerOpDatum( "bera-(?P\d{5})-(?P\d{4}-\d{2}-\d{2}).pdf", "meting")) }}} Deze regel matcht bestand "bera-12345-2016-04-29.pdf" en koppelt deze aan de meting van 29 april 2016 van patiënt -12345. === Thema's koppelen === Het is mogelijk om automatisch thema's te koppelen aan bestanden die door een handler worden gematcht door een lijst met thema's mee te geven aan de constructor van een spoolhandler: {{{ def finish(): f050_spool.add_handler( "s010.tabelscherm_patient", handler.SpoolHandlerOpDatum( "bera-(?P\d{5})-(?P\d{4}-\d{2}-\d{2}).pdf", "meting", themas=["audiologie", "psychologie"])) }}} In bovenstaand voorbeeld krijgen door deze handler gematchte bestanden automatisch de thema's "audiologie" en "psychologie". "audiologie" en "psychologie" moeten als bestandthema bestaan in OpenAC. === Eigen handlers === Het is ook mogelijk om eigen handlers te ontwikkelen afgeleid van de basisklasse !SpoolHandlerRE waarvan ook !SpoolHandlerOpKey en !SpoolHandlerOpDatum van afgeleid zijn. === Handmatig spoolen ===#handmatig (vanaf v2.016) #9910 Je gebruik maken van de context functie bij het registreren van een spool handler. Als je het dossierscherm opent dan verwerkt de spoolfunctie alleen handlers die zijn geregistreerd met context "s010.tabelscherm_patient". Als het je het medewerkerscherm opent alleen handlers die zijn geregistreerd met context "s010.tabelscherm_medewerker" etc. Als je handlers registreert met een contextnaam die OpenAC niet kent, bijvoorbeeld "s010.handmatig", dan worden deze handlers niet automatisch aangeroepen. Dan kun je de optie "check spoolfolders" in het bestandsmenu gebruiken om bestanden in de spooldirectory's te verwerken. [[Image(check_spool.png)]]