Filtering
In het configuratiebestand kunnen filters worden geconfigureerd door het aanmaken van rules (regels: exclude of include) en verwerkingsvolgorde aangegeven worden.
Rules worden uitgevoerd na de toepassing van de mappingregels.
Het is mogelijk om een rule te maken op alle velden in het extractiebestand, in verschillende combinaties zoals bijvoorbeeld Afdeling/Kamer/Bed.
Een rij in het extractiebestand die in een eerdere rule is uitgesloten (geëxcludeerd), kan verderop in het proces niet weer geïncludeerd worden. Definieer rules dus van groot naar klein.
Een geëxcludeerde rij zal gelogd worden in de logfile. Controleer deze!
Een rule heeft het volgende formaat: { "Column_names": <kolomnamen>, "values": <waarden>, "type": "exclude/include"}
Column_names: kolomnamen die vergeleken moeten worden met values. Als het om een enkele kolom naam gaat kan deze worden genoteerd als een string ("naam"). Als het om meerdere kolomnamen gaat, noteer deze dan als ["naam1", "naam2", ….].
Values: Als het om een enkele waarde gaat, kan achter values een string worden geplaats. Als het om meerdere waarden gaat, gebruik dan de door komma’s gescheiden waardenlijst. Als bij Column_names een lijst staat met meerdere kolomnamen, moet Values evenveel waarden bevatten.
Type: Exclude/Include: een exclude of include uitvoeren indien de kolom(men) aan de opgegeven waarde (value) voldoen.
Het configuratiebestand is conform de json syntax.
Is de eigenschap rules leeg (geen regels) verwijder deze of neem deze op als:
"rules": ""
Eén rule:
"rules" : {"Column_names": <kolom namen>, "values": <waarden>, "type": "exclude/include"}
Meerdere rules:
"rules": [ {"Column_names": <kolom namen>, "values": <waarden>, "type": "exclude/include"}, {"Column_names": <kolom namen>, "values": <waarden>, "type": "exclude/include"} ]
Als er gebruik gemaakt wordt van een maatwerkquery die de correcte filtering reeds verzorgt, dan is deze filterconfiguratie uiteraard niet nodig.
Voorbeelden
Alleen records met location_code gelijk aan X:
{"Column_names": "location_code", "values": "X", "type": "include"}
Alle andere locaties worden hiermee uitgesloten, ook als we hieronder nog een rule toevoegen waarbij locatie Y wordt ge-include. Het record is dan al uitgesloten, daar gaat een extra regel niets meer aan veranderen.
Alleen records met location_code niet gelijk aan X:
{"Column_names": "location_code", "values": "X", "type": "exclude"}
Ook records met een lege location_code worden dan meegenomen, alleen records met location_code X worden uitgesloten.
Alleen records met locatie X of Y:
{"Column_names": "location_code", "values": ["X", "Y"], "type": "include"}
Sluit records met locatie X of Y uit:
{"Column_names": "location_code", "values": ["X", "Y"], "type": "exclude"}
Dit kan ook met meerdere exclude rules maar dit is een kortere notatie hiervan.
Nu komen we op voorbeelden met meerdere kolom namen. Dan moeten we een gelijk aantal waarden hebben.
Alleen records van locatie X, afdeling AD1:
{"Column_names": ["location_code", "afdeling"], "values": ["X", "AD1"], "type": "include"}
Locatie X, afdeling AD1 uitsluiten:
{"Column_names": ["location_code", "afdeling"], "values": ["X", "AD1"], "type": "exclude"}
Dus niet de hele locatie wordt uitgesloten, alleen de afdeling AD1 daarbinnen.
Â