Prestatiecode.nl
 

Datawarehouse-koppeling handleiding

Inleiding

Deze handleiding is bedoeld voor applicatiebeheerders en geldt voor versie 1 van ZD-Datawarehouse.

ZD-Datawarehouse leest een directory en alle onderliggende directories in. Alle zip-bestanden worden uitgepakt. Daarna wordt elk bestand geanalyseerd om te zien of het een zorgdeclaratie- of retourbericht is en vervolgens ingelezen en gestructureerd opgeslagen in een formaat wat door een datawarehouse kan worden geïmporteerd.

De koppeling is een (java)script zonder grafische user interface. Het script kan vanaf de command line worden gestart of met de Windows Scheduler worden ingepland.

Het script draait zelfstandig (unattended) kan dus 's nachts ingepland worden en kan onbeperkt gestart worden. Meerdere instanties kunnen tegelijk draaien.

Benodigdheden

  1. Windows 10 of nieuwer, Pro- of Home-editie voldoen beide.
  2. Bij voorkeur een functioneel account specifiek voor deze koppeling.
  3. De gebruiker die het script uitvoert heeft de volgende rechten nodig:
    1. Leesrechten op de directory waar de zorgdeclaratie- en retourberichten staan.
    2. (Optioneel) Schrijfrechten op de directory waar de zorgdeclaratie- en retourberichten staan als zip-bestanden moeten worden uitgepakt.
    3. Schrijfrechten op de directory waar de logbestanden worden weggeschreven.
    4. Schrijfrechten op de directory waar de outputbestanden worden weggeschreven.
  4. Een TCP/IP verbinding naar prestatiecode.nl:443 is toegestaan voor controle van de licentie.

Installatie

  1. Maak een directory aan bij de gebruiker onder wie het script zal draaien. Bijvoorbeeld: C:\Users\ZDWuser\ZDW\
  2. Plaats het zip-bestand zdw.zip in deze directory.
  3. Kies in het rechtermuisknopmenu van zdw.zip voor Properties > Unblock en kies OK.
  4. Pak het bestand uit in de huidige directory. Hier verschijnen nu drie bestanden en twee (lege) directories:
    • zdw.js
      Het script wat uitgevoerd wordt.
    • zdw-licentie.txt
      Het licentiebestand, bevat een unieke sleutel waarmee de licentie online opgehaald wordt.
    • zdw-params.txt
      De parameters waarmee het script uitgevoerd wordt.
    • log
      De directory waar de logbestanden opgeslagen worden. Elke keer dat het script draait worden een nieuw logbestand aangemaakt. Logbestanden worden niet automatisch opgeschoond.
    • output
      Directory met het resultaat van de laatste analyse. Een script kan zelf een subdirectory aanmaken. Bestanden in de subdirectories worden elke keer overschreven als het script draait.

Handmatig testen

  1. Open een command prompt (Windows-toets + R, type 'cmd', Enter)
  2. Ga naar de directory waar het script is uitgepakt, bijvoorbeeld: cd c:\Users\ZDWusers\ZDW
  3. Open het bestand zdw-params.txt met een tekstbewerker. Het heeft altijd de volgende vorm:

    {
      "source":        "files",
      "anonimise":     "full",
      "log":           ".\\log\\",
      "input":         "h:\\zorgadministratie\\ei-berichten\\",
      "structure":     "normalized",
      "referencedata": ".\\Referentiegegevens\\"
      "format":        "tsql",
      "output":        ".\\output\\"
    }

    Dit is een JSON object met 7 key-value paren:

    source
    De bron van de te analyseren zorgdeclaratie- en retourberichten.

    • files de daadwerkelijke bestanden worden ingelezen. Deze optie is alleen bedoeld voor productie-omgevingen.
    • fictional voor volledig fictieve, gegenereerde gegevens. Deze optie is bedoeld voor alle andere omgevingen.

    anonimise
    Bepaalt de mate waarin persoonsgegevens herleidbaar zijn.

    • full Volledig geanonimiseerd. Persoonsgegevens worden niet ingelezen. BSN's worden vervangen door een willekeurig ander ID zodat gegevens gekoppeld kunnen worden.
    • key Leesbaar met sleutel. Alle persoonsgegevens worden verwijderd. BSN's worden vervangen door een onherkenbaar ID die te ontsleutelen is met een aparte applicatie (ZD-Decryptor).
    • none Niet geanonimiseerd, alle gegevens worden overgenomen.

    log
    De directory waarin de logfile wordt weggeschreven. De naam van de logfile wordt door het script gemaakt in het formaat zdw_yyyymmddhhmiss.log. 'zdw' is een vast voorvoegsel, gevolgd door een tijdstempel met jaar, maand, dag, uren, minuten en seconden. Het logbestand bevat de decryptiesleutel, dus let op dat dit bestand niet in verkeerde handen valt.

    input
    De directory waar de zorgdeclaratie- en retourberichten staan. Heeft geen betekenis als de source op fictional staat.

    structure
    De structuur waarin de output opgeslagen wordt.

    • normalized voor losse tabellen met sleutelvelden (primary en foreign keys). Vooral geschikt import in database en (SQL)-queries.
    • aggregated voor één brede tabel met herhalende gegevens per regel. Vooral geschikt voor draaitabellen (pivot tables) in spreadsheets.

    format
    Het bestandsformaat waarin de output opgeslagen wordt.

    • csv Comma Seperated Values, vooral geschikt voor inlezen in spreadsheets.
    • tsql Transact-SQL, voor SQL-Server versie 12 en hoger. Maakt tabellen aan als deze niet bestaan, leegt tabellen als deze wel bestaan. Vult daarna de tabellen.

    output
    De directory waar de uitvoerbestanden worden opgeslagen.

  4. Dubbelklik op zdw.js om het script te starten.

    Het logbestand en de uitvoerbestanden krijgen een tijdstempel en volgnummer mee om deze uniek te maken. De applicatie of systeem wat de bestanden inleest kan het meest recente bestand bepalen door aflopend te sorteren op bestandsnaam.

    Alle uitvoer gaat naar het logbestand en de uitvoerbestanden. Op de console verschijnen alleen meldingen als het script een onverwachte fout tegenkomt.

  5. Controleer het logbestand en de uitvoerbestanden voor resultaten.

Automatisch draaien

Zodra de export handmatig getest is, kan deze eenvoudig als geplande taak worden ingepland. Hiervoor zijn diverse commerciële tools beschikbaar, maar de Windows Task Scheduler voldoet voor de meeste situaties. Hieronder staan de stappen beschreven.

  1. Open de Task Scheduler (Windows-toets + R, type 'taskschd.msc', Enter)
  2. Kies voor 'Create Basic Task...'.
  3. Vul de naam van de taak en een korte omschrijving in
  4. Kies het gewenste periode, meestal dagelijks of wekelijks.
  5. Kies een tijdstip, bij voorkeur buiten werktijden en update-momenten. Hou hierbij rekening met de draaitijd van ZD-Datawarehouse, die is goed af te lezen uit de log van de handmatige test.
  6. Kies 'Start a program'.
  7. Vul dezelfde paden en parameters in als bij de handmatige test. De licentiesleutel moet in de 'Start in' directory staan
  8. Controleer en bevestig

Decryptie

Wanneer de analyse is gedaan op een geanonimiseerde dataset en een probleem is gevonden, moet de juiste persoon in het bronsysteem (vaak het EPD) worden gevonden.

Hiervoor is de ZD-Decryptor bedoeld.

Hiermee kunt eenvoudig de orginele waarde achterhalen:

  1. Vul de Decryptie-sleutel in, uit het logbestand
  2. Vul de Versleutelde waarde in, uit het datawarehouse
  3. Druk op Ontsleutel

De originele waarde verschijnt achter Ontsleutelde waarde en er wordt gecontroleerd of deze aan de 11-proef voldoet.

Let op: de decryptie-sleutel wijzigt elke keer dat ZD-Datawarehouse draait.