wiki:Documentatie/Beheerder/Modules/SpoolOpenAC3

Version 4 (modified by henk, 5 years ago) (diff)

--

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":

Error: Failed to load processor json
No macro or processor named 'json' found

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 spoolhandler. Hieronder een opsomming van beschikbare spoolhandlers.

DefaultSpoolHandler

Bestanden worden geselecteerd op basis van patiëntnummer. Bestanden met alleen een patiëntnummer in de naam worden rechtstreeks aan een patiënt gekoppeld. Als de bestandsnaam behalve het patiëntnummer ook de key van een zorgtraject bevat dan koppelt OpenAC het bestand aan het betreffende zorgtraject. Voorbeelden:

PatroonToelichtingBestandsnaam
(?<patient_key>ACH-[A-Z]{1}
d{5,6}).pdf
PDF-bestanden met alleen een patiëntnummer. Patiëntnummers beginnen met "ACH-" gevolgd door één hoofdletter, 5 0f 6 cijfers en eindigend op ".pdf"ACH-G12345.pdf
verwijsbrief-(?P<patient_key>ACH-[A-Z]{1}
d{5,6})-(?P<behandeling_key>ACH-[A-Z]{1}
d{5,6}.docx
Word-bestanden met zowel een patiëntnummer als een key van een zorgtrajectverwijsbrief-ACH-G12345-ACH-H654321.docx
def finish():
    from kern.f050_spool import handler
    f050_spool.add_handler(
        "s010.tabelscherm_patient",
        handler.SpoolHandlerOpKey("verwijsbrief-(?P<patient_key>\w{4}-\d{2}-\d{4})-(?P<behandeling_key>\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<patient_key>\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<patient_key>\d{5})-(?P<datum>\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 <prefix>-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<patient_key>\d{5})-(?P<datum>\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.