resultaten voor '{{ lastSearched }}'

Bedoelde je soms ?

Bedoelde je soms ?

Geen resultaten gevonden.
Ons Tags: instructiehandleiding

Ons Tags: instructiehandleiding

In deze handleiding leer je meer over Ons Tags, het gebruik van sjablonen en tags, welke autorisaties er mogelijk zijn, hoe je werkt met adressen, welke vragen er door anderen zijn gesteld, de tips en tricks van onze ontwikkelaar en de vertaling van de codetabellen.

Introductie

Je gebruikt de applicatie Ons Tags om documenten te genereren met data die beschikbaar is in het Ons-systeem. Ons Tags kan op verzoek worden ingeschakeld door Support.

Waarom is Ons Tags ontwikkeld?

Vanuit Ons Administratie konden altijd al documenten worden gemaakt, waarin door middel van tags data in de documenten kon worden verwerkt. Deze tags waren op maat gemaakt en waren niet dynamisch. Als een nieuwe tag nodig was om andere data te verwerken, moest deze handmatig in de applicatie worden gebouwd. Ook was het niet mogelijk om gemakkelijk data uit andere applicaties in documenten te verwerken.

Wat is Ons Tags?

Een systeem dat data uit het Ons-systeem in documenten kan verwerken.

Hoe werkt Ons Tags?

Een document (sjabloon) met daarin tags (bijvoorbeeld ${client/voornaam}) wordt verwerkt tot een document waarin alle tags zijn vervangen door tekst uit het Ons-systeem.

De data wordt verzameld door API's aan te roepen. De API's die daarvoor aangeroepen worden, kunnen tijdens de inrichting worden ingesteld. De data die wordt opgehaald, kan worden gebruikt om nog meer API's aan te roepen om andere data te verzamelen. De data wordt vervolgens verwerkt (gefilterd en gesorteerd) en het resultaat wordt gebruikt om alle tags in het document te vervangen.

Nieuwe mogelijkheden

Ten opzichte van de tags in Ons Administratie ontstaan een aantal nieuwe mogelijkheden met Ons Tags. Hieronder volgt een kort overzicht:

  • Instelbare naamgeving van tags

  • Tags baseren op alle beschikbare informatie uit API's

  • Sorteren en filteren op informatie

  • Rechten instelbaar per template

  • Nesting

    Voorbeeld: Een overzicht van telefoonnummers van de contactpersonen van cliënten die een behandelrelatie hebben met een bepaalde medewerker.

  • Kortere tags doordat tags die binnen een lijst voorkomen niet uniek hoeven te zijn.

  • Tags en briefgeneratie zijn te gebruiken door alle applicaties binnen ONS.

  • Een test-uitvoer van templates draaien om te zien of de template correct is.

 

Ons Tags raadplegen

Je kunt de applicatie Ons Tags benaderen via Ons Administratie Beheer Instellingen Overige Instellingen Ons Tags Configuratie .

 

Codetabel downloaden

Tagresultaten kunnen codes bevatten, bijvoorbeeld M voor geslacht, waar Mannelijk bedoeld wordt. Ons Tags vertaalt deze codes zoveel mogelijk. Download de codetabel voor een overzicht van codes die door Ons Tags herkend en vertaald worden.

 

Autorisatie

Taken

Gebruiker

Taak

Beschrijving

Inrichter

Toegang tot Ons Tags beheer

Geeft toegang tot de Ons Tags-webapplicatie.

Inrichter

Wijzig sjablonen in Ons Tags

Wijzig sjablonen in Ons Tags

Inrichter

Wijzig en test tag collecties in Ons Tags

Het kunnen aanmaken van eigen tags en het testen ervan

Let op: Dit recht geeft bij het testen onbeperkt toegang tot (cliënt)data op deze omgeving. Wij raden aan dit recht enkel op testomgevingen in te richten en enkel te testen op dummydata.

Medewerker

Genereer documenten met (...) in Ons Tags

Het mogen genereren van sjablonen met het overeenkomend recht. Als voor het genereren van het sjabloon een clientId/employeeId benodigd is, dan moet deze persoon ook binnen het bereik van de medewerker liggen.


Type gebruikers

We identiferen twee type gebruikers:

Toegangsbepaling bij documentgeneratie (voor medewerkers)

Een belangrijk onderdeel van het automatisch genereren van documenten is het autoriseren van data. Ons Tags ontsluit data uit de API's van ONS via deze documenten. De toegang tot documentgeneratie wordt op meerdere vlakken bepaald:

  • Een sjabloon heeft een benodigd recht ingesteld

  • Een sjabloon bevat tags

  • Een tag kan, op basis van de inrichting, een bepaalde context (parameters) nodig hebben om uitgevoerd te worden (bijvoorbeeld een clientId)

Bij het genereren van het document wordt gekeken of:

  • de medewerker het benodigde recht heeft (Ons Autorisatie) dat ingesteld staat bij het sjabloon (Ons Tags).

  • de parameters een rechtenscope (clientId of employeeId) bevat (zit de persoon in het bereik van de medewerker (Ons Autorisatie).

Aan de benodigde parameters voor het genereren van een sjabloon is te herkennen welke contexten gecontroleerd worden. Als op basis van bovenstaande wordt bepaald dat de medewerker het document mag genereren, wordt een sjabloon gegenereerd op basis van de tags in het sjabloon en de meegegeven context.

Bij API-calls, waarbij de uitvoer (ID) van een API-call weer als invoer kan gelden voor een nieuwe API-call, zie je dat er geen parameter voor dit ID wordt weergegeven. In deze situatie wordt geen contextuele check gedaan of de cliënt/medewerker in het bereik van de medewerker zit. Dit is bijvoorbeeld het geval als je voor een cliënt een overzicht van alle behandelaren wil genereren. De medewerker die het document genereert, heeft dan wel toegang tot de cliënt nodig, maar niet tot de medewerkers.

Dit alles betekent dat de inrichter een rol heeft in de waarborging van data.

Sommige API's (zoals de LocationAssignmentAPI) kunnen daarnaast ook nog expliciete checks op het bereik van de ingelogde medewerker uitvoeren. Dit gedrag is momenteel onzichtbaar, maar kan er dus voor zorgen dat het resultaat afwijkt van de verwachting.

Toegangsbepaling bij testen en inrichting (voor inrichters)

In de webapplicatie van Ons Tags is functionaliteit ingebouwd om tags en sjablonen te testen. Hiervoor heb je de volgende rechten nodig:

  • Toegang tot Ons Tags beheer

  • Wijzig en test tags in Ons Tags

  • Geen additionele rechten voor het testen/uitvoeren van tags(-collecties) op de omgeving*

*Bij het testen van tags heeft de inrichter directe en ongelimiteerde toegang tot de API's en daarmee de cliënt-/medewerkersdata. Er vindt verder geen additionele controle plaats (bijvoorbeeld of de cliënt/medewerker in het bereik zit). Bij het testen van sjablonen vindt deze controle wel plaats, aangezien dan gebruik wordt gemaakt van de standaard documentgeneratie. Dit betekent dat de inrichter ook toegang tot de cliënt/medewerker nodig heeft voor wie het document gegenereerd wordt.

Sjablonen

Een sjabloon is een Word- of Excel-document (.docx of .xlsx) dat kan worden omgezet naar een document dat gegevens bevat uit het Ons-systeem. De data wordt neergezet op plekken in het document waar tags worden gevonden. Een tag begin met ${ (dollar, accolade open) en sluit af met } (accolade sluiten). De data die wordt neergezet op de plek van de tag, wordt bepaald bij de definitie van de tags.

Sjablonen activeren en deactiveren

Je kan sjablonen activeren en deactiveren. In Ons Tags vind je onder het tabje Sjablonen de kolom Actief, waarin je kan zien of een sjabloon actief of niet actief is. Bij het aanmaken van nieuwe sjablonen is het sjabloon standaard inactief. Je moet het sjabloon dus handmatig activeren, voordat deze voor gebruikers in Ons Administratie zichtbaar is en gebruikt kan worden. Hierdoor kan je het sjabloon eerst testen vanuit Ons Tags, nog voordat er in Ons Administratie mee gewerkt kan worden.

/topic-images/OnsTagsActief_2152.png

Je voert een test uit door op het sjabloon en vervolgens op de knop Uitvoeren te klikken. In datzelfde scherm kan je het sjabloon activeren en eventueel weer deactiveren:

  • Klik op een inactief sjabloon en vervolgens rechtsboven op Activeren om het sjabloon te activeren. Het sjabloon is dan zichtbaar en uitvoerbaar voor gebruikers in Ons Administratie.

  • Klik op een actief sjabloon en vervolgens rechtsboven op Deactiveren om het sjabloon te deactiveren. Let op: Het kan even duren voordat het sjabloon niet meer zichtbaar en uitvoerbaar is in Ons Administratie nadat je het sjabloon hebt gedeactiveerd.

/topic-images/OnsTagsDeactiveren_2153.png

Voorbeelden van sjablonen

Voorbeeld 1 - enkele tag

Cliënt:

Dhr./mw. ${client/voornaam} ${client/achternaam}


Dit levert het volgende resultaat op:

Cliënt:

Dhr./mw. Sam Smith


Voorbeeld 2 - samengestelde tag

Cliënt:

Dhr./mw. ${client/volledigeNaam/informeel}

Dhr./mw. ${client/volledigeNaam/formeel}


Dit levert het volgende resultaat op:

Cliënt:

Dhr./mw. Sam Smith

Dhr./mw. S. Smith


Herhalende tags

Een tag kan voorkomen in een meervoudige node. Als deze tags worden gespecificeerd, dan worden ze herhaald. Een brief voor een cliënt kan bijvoorbeeld meerdere diagnoses bevatten als er een meervoudige node diagnoses is. Hiervoor moet in het sjabloon een begin- en eindtag worden opgenomen met de naam van de meervoudige node. Daarbinnen worden de rest van de tags gebruikt (de naam en beschrijving van de diagnose in het voorbeeld). De begin- en eindtag staan altijd in een rij van een tabel en de inhoud van de herhalende tag staat in een losse rij, tussen de begin- en eindtag.

Voorbeeld

Contacten van client:

${client/contacten

${volledigeNaam/metAanhef} - ${organisatie}

${client/contacten}


Dit levert het volgende resultaat op:

Contacten van client:

Dhr. Sam Smith - Nedap

Dhr. Max Jones - Nedap


Tag: pak het eerste resultaat uit een lijst

Soms kan het voorkomen dat je technisch een lijst terug krijgt, maar enkel benieuwd bent naar het eerste resultaat. Bijvoorbeeld, indien je met een filter en sortering in die lijst werkt, of als je zeker weet dat er maar 1 element in die lijst voorkomt. Dan is het handig dat je in de tag kunt aangeven om het 'eerste' element uit die lijst te pakken, zonder dat je met tabellen hoeft te werken. Dit kan met behulp van een dubbele punt (:).

Voorbeeld 1: één resultaat

Stel dat een cliënt maar één huisarts heeft:

Huisarts van client:

${client/contacten/vanType[relationType=Huisarts]:volledigeNaam/metAanhef} - ${organisatie}


Ons Tags haalt hierbij alle contacten van de cliënt van het type Huisarts op en pakt daaruit de eerste, aangegeven door de dubbele punt. Dit levert als resultaat op:

Huisarts van client:

Dhr. Sam Smith - Nedap


Het is ook mogelijk dit meermaals te gebruiken in dezelfde tag, bijvoorbeeld:

Huisarts van client: ${client/contacten/vanType[relationType=Huisarts]:volledigeNaam/metAanhef}

Adres: ${client/contacten/vanType[relationType=Huisarts]:adressen:volledig}


Dit levert als resultaat op:

Huisarts van client: Dhr. Sam Smith

Adres: Parallelweg 2, 7141 DC Groenlo


Voorbeeld 2: gebruik van een filter

Bij een lijstnode kan een filter worden opgenomen dat garandeert dat er altijd maar één resultaat is. Zo kun je bijvoorbeeld adressen filteren op de laatste begindatum. Het is dan omslachtig om dat adres in een tabel met begin- en eindtags te moeten zetten. In plaats daarvan is het volgende mogelijk:

Cliënt:

Dhr./mw. ${client/volledigeNaam/informeel}, woonachtig op ${client/adressen:volledig/deel1} te ${client/adressen:woonplaats}


Dit levert het volgende resultaat op:

Cliënt:

Dhr./mw. Sam Smith, woonachtig op Dorpsstraat 12 te Ons Dorp


Parameters in tags

Wanneer voor het uitvoeren van een sjabloon parameters nodig zijn, zoals clientId of surveyName, dan vraagt Ons Tags daarom. Als een sjabloon vanuit een andere applicatie (zoals Ons Administratie) wordt uitgevoerd, dan is die applicatie verantwoordelijk voor het meegeven van deze parameters.

Het is echter ook mogelijk om parameters op te nemen in het sjabloon. Dat kan bijvoorbeeld handig zijn om een vast relatietype (bijvoorbeeld 'Huisarts') op te geven of de naam van een profielvragenlijst. Er kunnen meerdere parameters meegegeven worden als dat van toepassing is voor de API.

Voorbeeld 1: contactpersoon

Stel dat de tag client/contact wordt aangemaakt voor het ophalen van een contactpersoon aan de hand van cliënt en type contactpersoon (ClientContactRelationAPI.byClientId). We kunnen in een sjabloon nu tags opnemen waarbij we het type contactpersoon (relationType) alvast invullen. De clientId wordt aangeleverd door bijvoorbeeld Ons Administratie door het selecteren van een cliënt.

Cliënt: ${client/voornaam} ${client/achternaam}

Huisarts: ${client/contacten/vanType[relationType=Huisarts]:achternaam}, gevestigd te ${client/contacten/vanType[relationType=Huisarts]:adressen:plaats}

Tandarts: ${client/contacten/vanType[relationType=Tandarts]:achternaam}, gevestigd te ${client/contacten/vanType[relationType=Tandarts]:adressen:plaats}


Dit levert het volgende resultaat op:

Cliënt: Sam Smith

Huisarts: Appelmans, gevestigd te Appelscha

Tandarts: Bosbes, gevestigd te Bos en Lommer


Voorbeeld 2: profielvragenlijst

Stel dat de tag _answer wordt aangemaakt voor het ophalen van het antwoord op een vraag uit een profielvragenlijst (SurveyService.getSurveyAnswer). Deze API vereist drie parameters: clientId, surveyName en question. We vullen in een sjabloon surveyName en question alvast in om het antwoord op een specifieke vraag te verkrijgen. De clientId is dan weer variabel en kan bijvoorbeeld door Ons Administratie worden aangeleverd.

Aandachtspunten met betrekking tot parameters

Cliënt: ${client/voornaam} ${client/achternaam}

Algemeen: ${client/pvl/antwoord[surveyName=Oogheelkundig Onderzoek|question=Algemeen]}

Aanwezigen: ${client/pvl/antwoord[surveyName=Oogheelkundig Onderzoek|question=Aanwezigen]}

Medicatie/Allergieën: ${client/pvl/antwoord[surveyName=Oogheelkundig Onderzoek|question=Medicatie / Allergieën]}


Meerdere parameters worden dus gescheiden door een staand streepje |.

Bovenstaand voorbeeld levert het volgende resultaat op:

Cliënt: Sam Smith

Algemeen: Mevr. Smith was nerveus tijdens het onderzoek.

Aanwezigen: Cliënt, oogarts, assistent

Medicatie/Allergieën: Cliënt gebruikt geen medicatie en is allergisch voor oogdruppels.


Aandachtspunten met betrekking tot parameters

  • Het is alleen mogelijk om parameters mee te geven voor een tag op het hoogste niveau. Het is dus bijvoorbeeld niet mogelijk om door te koppelen aan een andere API en daarvoor parameters op te nemen in de tag.

  • Spaties voor en na de parameters worden verwijderd (${_answer[ surveyName = Onderzoek ]} is hetzelfde als ${_answer[surveyName=Onderzoek]}).

  • Let er in profielvragenlijsten dus op dat er geen spaties aan het begin of eind van vragenlijsten/vragen zweven.

  • Als in hetzelfde sjabloon ook tags worden gebruikt waarbij de parameters niet zijn opgegeven, dan moeten die bij het uitvoeren van de sjabloon alsnog worden meegegeven. In voorbeeld 1 kan bijvoorbeeld ook nog een ${client/contact:achternaam} worden opgenomen. Dan moet bij het uitvoeren voor die tag alsnog het relationType worden ingevuld of aangeleverd.

  • De waarde van een parameter kan elk leesteken bevatten, behalve | en ].

Aandachtspunten bij opstellen sjabloon

Er is een aantal beperkingen in het gebruik van tags:

  • De tags binnen een begin- en eindtag moeten onderdeel zijn van de meervoudige node.

  • Tags kunnen niet in headers of footers worden opgenomen.

Let er bij het aanmaken van tags in een sjabloon op dat:

  • er alleen bestaande tags worden opgenomen.

  • de karaktercombinaties ${ of } alleen aan het begin en het eind van een tag worden gebruikt. Verder mogen tags alleen uit letters, cijfers, -, _ en / bestaan.

  • er geen spaties tussen de accolades staan.

    Let op: Word voegt bij het kopiëren/plakken soms automatisch spaties toe.

Aandachtspunten Word-sjablonen

Let er bij het maken van Word-sjablonen op dat:

  • er geen gebroken tags zijn. Een Word-document is feitelijk een gezipped .xml-bestand. Teksten worden vervat in textnodes, bijvoorbeeld: <w:t>${client/voorbeeldtag}</w:t>

  • het kan voorkomen dat Word extra xml-informatie binnen de tag toevoegt. Dit ziet er zo uit: <w:t>${client/voorbe</w:t><w:t>eldtag}</w:t>

    Dit is een ongeldige tag en die komt voor wanneer je extra handelingen in Word doet tussen het uittypen van de tags. Als gebruiker zie je in Word: ${client/voorbeeldtag}

Je kunt de fout herkennen en de metadata inzien door de tekst te selecteren en opmaak te verwijderen. Je lost dit het makkelijkst op door de tag te verwijderen en opnieuw te typen. Je voorkomt het door in één keer tags te typen.

Documentformaat

Bij het genereren van een document kun je aangeven of het resultaat een Word-document (.docx) of een PDF (.pdf) is.

Aandachtspunten Excel-sjablonen

  • Herhalende tags mogen slechts eenmaal per werkblad worden gebruikt.

  • In Excel worden geneste herhalende tags op een andere manier verwerkt. Om een lijst (van bijvoorbeeld cliënten) te produceren kan op dezelfde wijze met een begin/eindtag worden gewerkt:

    ${clienten}

    ${voornaam}

    ${achternaam}

    ${clienten}


Dit levert het volgende resultaat op:

Pipo

de Clown

Mama

Loe


Als bijvoorbeeld ook de adressen per cliënt worden opgenomen, dan neemt Ons Tags deze in één cel achter elkaar op. Daarbij worden alle in de adres-tag gedefinieerde velden weergegeven:

${clienten}

${voornaam}

${achternaam}

${adressen}

${clienten}


Dit levert het volgende resultaat op:

Pipo

de Clown

Dorpsweg, 1, 1111AA, Ons Dorp

Mama

Loe

Hoogstraat, 2, 2222BB, Rotterdam; Kalverstraat, 3, 3333CC, Amsterdam


Van elk adres worden alle velden (straat, huisnummer, postcode of plaats) opgenomen. Meerdere adressen worden gescheiden met puntkomma.

 

Tags

In een sjabloon kunnen tags worden gezet die worden vervangen met data als een document wordt gegenereerd. Die data kan worden 'gevonden' door tags in te richten.

Tags worden gegenereerd door op een gestructureerde manier API's uit te vragen. In Ons Tags kun je, door tagcollecties te ontwerpen, zelf betekenis aan de tags geven. Tagcollecties bevatten structuren (nodes) die beginnen bij het aanroepen van een API en daarna de data daarvan verwerken in data- en leafnodes. Elke node verfijnt/specificeert de data.

Een data-node is een data-object dat uit een API-call/API-node komt.

Op basis van de verkregen data kan ook weer een nieuwe API aangeroepen worden, en over lijsten (arrays) kan getereerd worden.

Systeemtags

Ons Tags komt standaard met een aantal voorgedefinieerde tags, zogenaamde systeemtags. Deze tags kun je niet wijzigen of verwijderen. Ze zijn te herkennen door een slotje in de lijst met tagcollecties. Tags die je zelf maakt krijgen dit slotje niet.

/topic-images/tags-systeemtag_1666.png

Er is nog een verschil tussen systeemtags en zelfgemaakte tags. Nodes in zelfgemaakte tags beginnen altijd met een liggend streepje (_). Op deze manier voorkomen we dubbele namen als we een systeemtag toevoegen met namen die een gebruiker al gebruikt had in een zelfgemaakte tag. Dit stelt Nedap in staat om onze standaardcollectie aangeboden tags over verloop van tijd uit te breiden zonder ons druk te hoeven maken dat we potentiële ingestelde tags van klanten overschrijven. Het liggende streepje wordt automatisch toegevoegd als je een nieuwe tag maakt. Let erop dat je dit liggende streepje ook in je sjablonen gebruikt.

/topic-images/tags-zelfgemaakt_1667.png

Tagcollecties

De balk aan de linkerkant van het tabblad Tags toont een lijst met alle tagcollecties. Een tagcollectie is een verzameling van samenhangende tags die op een gestructureerde manier de Ons API uitvragen. Bovenaan staan de benodigde, niet-vooraf gedefinieerde parameters vermeld die ingevoerd moeten worden bij het uitvoeren van deze tagcollectie. Een andere naam voor tagcollectie is een tag tree.

API-nodes

API-nodes zijn nodes waarin een API-call wordt gedaan. De API's staan gedocumenteerd op ons-api.nl. Bij het maken van een nieuwe tag kun je een API kiezen die wordt aangeroepen. Als de API wordt aangeroepen, worden één of meerdere stukken data opgehaald uit het Ons-systeem.

Bij het aanroepen van een API zijn standaard één of meerdere parameters nodig (bijvoorbeeld het clientId voor welke cliënt deze informatie opgehaald wordt). Op het moment van uitvoeren van een tag (of bij documentgeneratie) moeten deze parameters mee worden gegeven. Het is ook mogelijk om in de instellingen van de API-node een vaste waarde voor deze parameter in te stellen. Als de parameter een standaard waarde heeft, hoeft deze bij uitvoer niet alsnog meegegeven te worden. De parameter verdwijnt dus ook uit het parameteroverzicht.

Uit een API-node kan worden teruggegeven:

  • een data-object

  • een lijst

  • een dynamische lijst (DynamicList)

Voor een API-node kun je ook een tag specificeren. Deze is enkel nuttig als de API-node een lijst teruggeeft. Deze tag kan dan gebruikt worden om aan te geven dat er over de lijst getereerd dient te worden (zie ook Herhalende Tags).

Lijst-nodes

Voor lijst-nodes (te herkennen aan de lijst-icoontjes) kunnen sorteringen en filters ingesteld worden.

Sortering

Voorbeeld: Bob (20 jaar), Charlie (16 jaar), Anne (20 jaar), Anne (18 jaar)

Sorteringen:

  • Leeftijd van boven naar beneden (ASC)

  • Naam van beneden naar boven (DESC)

Resultaat: Bob (20 jaar), Anne (20 jaar), Anne (18 jaar), Charlie (16 jaar)

Filters

Bij filters bestaat de keuze uit optionele filters, en niet-optionele filters. Het filteren gebeurt in twee stappen:

  • Filter de lijst met de niet-optionele filters (en-en)

  • Filter het resultaat van (1) met de optionele filters (of-of)

Voorbeeld 1

Lijst: (Anne, Bart, Bob)

Filters:

  • Begint met b -> (Bart, Bob)

  • Eerste -> (Bart)

Resultaat: Bart

Voorbeeld 2

Lijst: (Anne, Bart, Bob)

Filters:

  • Eerste -> (Anne)

  • Begint met b -> ()

Resultaat: ()

Voorbeeld 3

Lijst: (Anne, Bart, Bob)

Filters:

  • Bevat a (optioneel) -> (Anne, Bart)

  • Begint met b (optioneel) -> (Bart, Bob)

Resultaat: (Anne, Bart, Bob)

Voorbeeld 4

Lijst: (Anne, Bart, Bob)

Filters:

  • Bevat a -> (Anne, Bart)

  • Eerste (optioneel) -> (Anne)

  • Laatste (optioneel) -> (Bart)

Resultaat: (Anne, Bart)

Voorbeeld 5

Lijst: (Anne, Bart, Bob)

Filters:

  • Bevat a -> (Anne, Bart)

  • Eerste (optioneel) -> (Anne)

Resultaat: (Anne)

Dynamische lijst nodes

Een dynamische lijst node is een speciaal geval van een lijst node. Hierbij worden on the fly onderliggende tags aangemaakt bij het uitvoeren van de tag. Deze dynamische tags kunnen in een sjabloon gebruikt worden alsof het normale tags zijn. Een voorbeeld van een dynamische lijst node is te vinden onder de systeemtag client/ehr/data. Deze tag geeft alle EHR paths terug bij een cliënt/archetype. Deze EHR paths zijn zelf ook weer als tag te gebruiken in een sjabloon. Dat vereist dus wel dat de opsteller van het sjabloon weet welke paths beschikbaar zijn in het archetype. De uitvoer van zon dynamische lijst node kan er dan als volgt uitzien:

/topic-images/tags-dynamic-list-1_1668.png

In een sjabloon kan deze node dan als volgt gebruikt worden in een herhalende tag:

Uitslag looptest:

${client/ehr/data}

${/content[id0.0.100.1,1]/data[id2,1]/events[id3,1] /data[id4,1]/items[id8,1]/value[id12,1]/magnitude}

${/content[id0.0.100.1,1]/data[id2,1]/events[id3,1] /data[id4,1]/items[id8,1]/value[id12,1]/units}

${client/ehr/data}


Bij een zelfgemaakte dynamische lijst-node kunnen geen onderliggende nodes aangemaakt worden. Dat gebeurt immers automatisch bij het uitvoeren.

Leaf node

Een leaf node bevat een waarde en is doorgaans datgene dat uiteindelijk als tag in een sjabloon gebruikt wordt. Het heet een leaf node, omdat dit het uiteinde/blaadje van de boom is.

De gegeven naam van de leaf node kan als tag gebruikt worden in een sjabloon. De naam mag uit letters, cijfers, -, _ en / bestaan. Als bijvoorbeeld cliënt/voornaam als naam wordt gekozen, dan kan in een sjabloon ${client/voornaam} als tag worden gebruikt om de voornaam van de cliënt in een document te verwerken.

De waarde van een leaf node (bijv. een clientId) kan ook worden gebruikt als invoer voor een nieuwe API-call.

Parameters

Methoden die via een API worden aangeroepen, hebben meestal parameters nodig om aangeroepen te worden. Deze parameters kun je meegeven als een document wordt gegenereerd van een sjabloon met de betreffende tags.

Je kunt ook een vaste waarde voor een parameter inrichten, zodat de waarde vastligt en niet ingevuld hoeft te worden bij het genereren van het document. Bijzondere vaste waarden:

  • vandaag: te gebruiken voor datum-/tijdparameters, dan wordt de datum van de huidige dag gebruikt;

  • null: te gebruiken voor alle typen parameters, dan wordt een lege/onbekende waarde meegegeven.

Afhankelijk van welke tags in een sjabloon zijn opgenomen, worden bepaalde API-calls gedaan. Welke parameters benodigd zijn, wordt bepaald in de API-call. Welke parameters nodig zijn voor een bepaald sjabloon, kan via het testscherm worden opgevraagd.

Naast het specificeren van een parameter tijdens het aanroepen, kan een parameter ook worden gespecificeerd aan de hand van de waarde van een andere eind-node. Als de Cliënt API bijvoorbeeld wordt aangeroepen om een cliënt op te zoeken aan de hand van de bsn, dan kan er een eind-node worden gemaakt die de ID van de cliënt bevat. De waarde is van tevoren niet bekend, maar als die bekend is, dan kan de ID worden gebruikt om andere API's aan te roepen die een ID van een cliënt als parameter nodig hebben.

Testen

Als een tag is ingericht, dan kun je deze testen. Via de test kun je controleren of de nodes de goede naam hebben en of de data goed wordt opgehaald/verwerkt, zonder dat er daadwerkelijk een sjabloon ingericht moet worden. Je voert een test uit door met je muis op het blokje van de tagcollectie te gaan staan en op de knop Uitvoeren te klikken.

/topic-images/tags-uitvoeren_1669.png

Er wordt dan een scherm weergegeven waarin de benodigde parameters ingevoerd kunnen worden.

Exporteren en importeren

Je kunt zelfgemaakte tagcollecties exporteren naar een .json-bestand. Dit bestand kun je ook weer importeren in Ons Tags. Op deze manier kun je zelfgemaakte tags uitwisselen met andere gebruikers van Ons Tags, of collecties van een testomgeving overzetten naar een productieomgeving.

 

Adressen

${client/hoofdadres}

De tag ${client/hoofdadres} maakt gebruik van de API AddressAPI.mainAddressByClientId. Hierbij wordt het hoofdadres voor de cliënt opgehaald op basis van de volgende rangschikking:

AddressType.TIJDELIJK

AddressType.VERBLIJF

AddressType.GBA

AddressType.CORRESPONDENTIE

AddressType.ONBEKEND

AddressType.OVERIG

AddressType.FACTUUR_ADRES

AddressType.SLEUTEL_ADDRESS


Deze volgorde is anders dan de oude rangschikking van Ons Administratie voor de tag [client/adres].

${client/adressen/bijType}

De tag ${client/adressen/bijType} maakt gebruik van de API AddressAPI.byClientId en filtert daarbij op enkel actuele adressen (zonder einddatum).

Het is mogelijk om in het gebruik van de tag een type mee te geven, bijvoorbeeld ${client/adressen/bijType[type=1]:straat}. Hierbij wordt voor een client een actueel adres gezocht van het type GBA (zie hieronder). Daarbij pakt de tag met : het eerste resultaat en wordt de straatnaam geprint.

Waarde

Cupido-term

Vertaling

0

Unknown adress

Onbekend

1

Living address

GBA

2

Postal address

Correspondentie

3

Residence address

Verblijf

4

Temporary address

Tijdelijk

50

Key address

Sleutel

98

Other address

Overig

100

Invoice address

Factuur

null

Haalt alle adressen op ongeacht type


Adres met aangepaste rangschikking

Het is mogelijk om een adres op te halen volgens een zelf opgegeven rangschikking. Gebruik daarvoor het filter eerste match. Bij dit filter geef je een aantal zoektermen op gescheiden door komma's. Ons Tags geeft vervolgens het adres terug dat voldoet aan de eerste gevonden zoekterm.

 

Probleemoplossing

Stap 1: Test de tagcollectie in Ons Tags

  • Zijn er blokjes geel/rood?

    • Als een blokje geel is met de melding Er zijn geen parameters ingevuld met een 'parent waarde'. Deze API node kan niet correct worden gebruikt., dan moet een van de parameters de waarde parent waarde te krijgen.

    • Als een blokje rood is, dan verwijst het naar een API die niet meer bestaat.

    • Als een blokje geel is met de melding dat de API node als deprecated gemarkeerd is, dan kan die vooralsnog gebruikt worden, maar zal die in de toekomst komen te vervallen.

      • Kloppen de benodigde parameters voor het uitvoeren?

      • Komt de juiste data terug? Zo niet:

        • Klopt het clientId? Dit moet het id uit de URL zijn als je in Ons Administratie naar de cliënt toe gaat.

        • Zit er een typfout of ontbrekende spaties in een van de parameters?

Stap 2: Test het sjabloon in Ons Tags

  • Controleer of de parameters voor het uitvoeren correct zijn (doorgaans zou hier enkel een clientId en optioneel een locationId moeten staan). Wijkt dit af, dan is er iets mis met de taginrichting (stap 1) of ontbreekt het meegeven van een parameter in een gebruikte tag in het sjabloon.

  • Als je een foutmelding krijgt bij het uitvoeren, controleer of je de benodigde rechten hebt voor het uitvoeren van dit sjabloon en of de cliënt/medewerker in je bereik zit.

  • Het kan zijn dat een tag incorrect is of niet meer bestaat. Probeer het sjabloon opnieuw te uploaden om te kijken of die door de validatie komt.

Stap 3: Test het sjabloon via Ons Administratie

Als het sjabloon niet wordt weergegeven, kan dit komen door:

  • Je hebt niet de juiste rechten. Je hebt een van de rechten met Genereer documenten met [...] in Ons Tags nodig.

  • De parameters benodigd voor het uitvoeren komen niet overeen met wat Ons Administratie verwacht. Bij het kopje Brieven versturen wordt minimaal een clientId en optioneel een locationId verwacht. Dit geldt ook voor het genereren van een Ons Tags Rapportage bij een cliënt.

Als het document niet gegenereerd wordt of er een foutmelding wordt weergegeven:

  • Zorg dat enkel de informatie meegestuurd wordt die benodigd is voor documentgeneratie: een cliënt als een clientID nodig is voor de uitvoer van het sjabloon, een locatie als een locationID nodig is voor de uitvoer van het sjabloon, enz.

  • Test het sjabloon in de Ons Tags-omgeving voor dezelfde cliënt. Doe vervolgens hetzelfde voor de gebruikte tagcollecties om er achter te komen waar potentieel een fout ontstaat.

Als het document gedownload wordt en niet bij de cliëntdocumenten terechtkomt:

  • Probeer de opgegeven cliënt te verwijderen en opnieuw te selecteren in de selectiebox bij briefgeneratie.

 

Veelgestelde vragen

Waarom krijg ik een foutmelding bij het uploaden van mijn sjabloon (.docx)?

Ons Tags controleert tijdens het uploaden of de tags in het sjabloon overeenkomen met de ingerichte tags. Ons Tags doet een poging te bepalen welke tag incorrect is en vermeldt dit in de foutmelding.

Een paar vaak voorkomende oorzaken:

  • Typfouten

  • Xml-elementen: Microsoft Word voegt soms onder water xml-elementen binnen stukken tekst toe, bijvoorbeeld bij het kopiëren/plakken. Dit is helaas niet te zien op het scherm. Dit is op te lossen door tekst in Word te selecteren en op Opmaak wissen (A met een gum) in Word te klikken.

  • Bestandsformaten: Zorg dat het bestandsformaat .docx is en het bestand niet in compatibiliteitsmodus is opgeslagen.

  • Header/footer: Het komt soms voor dat er problemen ontstaan bij tags in de header/footer. Controleer of het verwijderen van de header/footer het probleem op lost.

  • Lijsttags: Zorg er in Word voor dat een lijsttag in een tabel staat en een openings- en sluitingstag heeft. Een geneste lijsttag moet in een geneste tabel in Word staan.

Waarom zie ik het sjabloon niet terug in Ons Administratie/Ons DBC?

Een sjabloon wordt enkel getoond als:

  • Ons Tags is geactiveerd op de omgeving. Die activatie bestaat uit twee stappen die door Support uitgevoerd moeten worden:

    • Ons Tags-beheer moet worden geactiveerd voor de omgeving (de webapplicatie)

    • Het vinkje Cliënt-documenten genereren met Ons Tags aanzetten moet in Ons Administratie worden ingeschakeld.

  • je de juiste rechten hebt voor het sjabloon (zie hoofdstuk Autorisatie hierboven)

  • de cliënt in jouw bereik zit

  • het sjabloon de correcte parameters heeft die nodig zijn voor het uitvoeren ervan

  • het sjabloon geen fouten bevat.

    Dit kun je testen door het sjabloon opnieuw te uploaden.

Door in Ons Tags het sjabloon uit te voeren, zie je snel welke parameters nodig zijn voor het uitvoeren van het sjabloon. De benodigde parameters zijn een samenstelling van parameters om elke tag binnen het sjabloon uit te kunnen voeren. Op de pagina van de tagcollectie is te zien welke parameters nodig zijn voor de geselecteerde tagcollectie.

  • Ons Administratie toont enkel sjablonen die een clientId (vereist) en/of een locationId (optioneel) nodig hebben.

  • Ons DBC toont enkel sjablonen die een occurenceId (vereist) en/of een clientId (optioneel) nodig hebben. Sjablonen die aanvullende parameters nodig hebben (zoals startDate), worden niet weergegeven. We raden aan om tijdens het opbouwen van het sjabloon tussendoor te testen. De voorgestelde volgorde tijdens het maken van sjablonen is als volgt:

    • Tagcollectie (bij aangepaste tags)

    • Sjabloon in Ons Tags

    • Sjabloon via Ons Administratie

Het kan voorkomen dat als je het sjabloon uploadt, deze succesvol gevalideerd is maar de tags naderhand niet meer correct zijn door een gewijzigde taginrichting. In dit geval kun je dat testen door het bestand (.docx/.xlsx) opnieuw te uploaden om het opnieuw te valideren.

Waarom worden bepaalde tags niet ingevuld bij genereren van een document/brief?

Indien bij het genereren van een document sommige tags wel worden ingevoerd, maar andere niet, kan dit meerdere oorzaken hebben. Probeer eerst de tag collectie te testen (via Ons Tags) om te kijken of het als misgaat bij het ophalen van de informatie uit de APIs, of dat het mis gaat bij briefgeneratie.

  • De informatie komt niet mee vanuit de API's.

    • Zie Waarom wordt een bepaald veld niet gevuld bij het uitvoeren van een tagcollectie? hieronder.

       

  • Er gaat iets mis tijdens het genereren van de brief bij het invullen van de informatie bij de tag.

    • De tag bestaat niet of bevat een spelfout.

    • De tag ziet er visueel goed uit, maar het Word-bestand bevat verborgen tekens binnenin de tag. Word heeft zonder dat je het door hebt xml-data in de tag geplaatst. Dit kun je oplossen door de tekst te selecteren en opmaak te verwijderen. Verwijder en typ de tag opnieuw in het Word-sjabloon. Wees vooral voorzichtig bij het kopiëren/plakken als er opmaak mee komt of er regelafbrekingen ontstaan.

Waarom wordt een bepaald veld niet gevuld bij het uitvoeren van een tagcollectie?

Het veld ontbreekt in de uitvoer.

In de uitvoer worden lijsttags enkel ingevoerd zodra er onderliggende datavelden ingesteld zijn (te herkennen aan een blauw blokje met een label-icoon). Zorg dus bij het toevoegen van een node met een lijst-icoontje dat je doorklikt tot een node met een label-icoon.

De informatie wordt niet gevuld door de API.

Niet elk object dat door een API teruggegeven wordt, bevat de volledige informatie die je initieel zou verwachten.

Als bijvoorbeeld het geretourneerde object van de call Careplan.currentCareplanByClientId geen Careplan Entries bevat, terwijl CarePlanAPI.byid deze wel bevat, dan wordt er in dat geval een lege lijst meegestuurd. Dit zie je echter pas bij het testen/uitvoeren van de tagcollectie.

Je moet in dit geval dus eerst via de eerste call het Careplan ID van het huidige Careplan van een bepaalde client moeten uitvragen om vervolgens in de tweede API-call dit ID te gebruiken om het volledige Careplan op te vragen. Mocht dit het probleem niet oplossen, dan kan het zijn dat er een fout in de API zit. Maak in dat geval een ticket via TOPdesk aan.

Hoe filter ik op meerdere niveaus?

Het is niet mogelijk om op meerdere niveaus diep te filteren. Dit betekent dat enkel binnen API-nodes op direct onderliggende velden gefilterd kan worden. Als onder een API-node eerst een grijs blokje en dan een blauw blokje ligt, is het niet mogelijk om op de waarde uit het blauwe (of grijze) blokje te filteren.

Hoe gebruik ik geneste lijsten?

Bij lijsten in lijsten moet je in Word een tabel binnen een tabel maken. Bij de instellingen van API-calls staat of er een object, waarde of een lijst wordt opgehaald.

Hoe haal ik de huisarts van een cliënt op?

Gebruik de tag ${client/contacten/bijType[type=huisarts]}. Deze geeft een lijst met alle contactpersonen van het type huisarts van de client terug.

Hoe haal ik het type van een externe zorgleverancier (bijvoorbeeld huisartsen) op?

  1. Haal een externe zorgleverancier op (bijvoorbeeld CareProviderAPI.byClientId).

  2. Pak hieruit de getOrganisationCategoryId.

  3. Start een nieuwe API-call OrganisationCategoryAPI.byId en geef de getOrganisationCategoryId mee als bovenliggende waarde.

  4. Maak een tag van de getName.

Waarom is het veld ID niet automatisch gekoppeld bij een node op basis van een cliënt-ID?

Bij het instellen van een node met daarin een nieuwe API-call op basis van opgehaalde informatie (zoals een ID), wordt dit niet automatisch voor je gekoppeld. Bij een node die op basis van een cliënt-ID het client*object opvraagt via de ClientAPI.byId, kan het voorkomen dat het veld Id niet automatisch gekoppeld wordt met het hiervoor verkregen cliënt-ID. Dit kun je oplossen door het veld id/client id op Parent Value in te stellen.

Hoe filter ik op datum?

Als bij een API een startdatum/einddatum als parameter meegegeven kan worden, dan kan een vaste datum (bijvoorbeeld 2023-01-25) worden opgegeven of een relatieve datum (bijvoorbeeld vandaag - 7 dagen).

Een voorbeeld van zo'n API is de AgendaOccurrence.byClientId die alle agenda-afspraken in een periode opzoekt:

/topic-images/Ons%20Tags%20Filteren%20op%20datum_2069.png

Als een API geen startdatum/einddatum als parameter accepteert is het alsnog mogelijk achteraf (na het ophalen van alle data) te filteren. Het nadeel is dat er meer data opgehaald wordt uit de API dan strikt noodzakelijk is. Als je wilt filteren op afspraken die al zijn afgelopen, kan je filteren op een einddatum kleiner dan vandaag:

/topic-images/Ons%20Tags%20Filteren%20op%20datum2_2068.png

Einddatums zijn in het algemeen inclusief (dus een einddatum van 2023-01-01 betekent tot en met 1 januari).

Filteren op 'actieve' data:.

Filteren op actieve datums

De waarde null wordt als oneindig groot gezien. Dit betekent dat als je filtert op bijvoorbeeld begindatum kleiner dan of gelijk aan vandaag staat en einddatum groter dan vandaag, je filtert op periodes die momenteel actief zijn

 

Aanvullende informatie

www.ons-api.nl

Zie www.ons-api.nl voor aanvullende documentatie over de API's die je via Ons Tags aanroept.

Testuitvoer van een tag tree

Het is mogelijk om in de ontwerppagina een testuitvoer te doen om te zien welke informatie wordt opgehaald voor elke tag. Beweeg met je muis over de bovenste node en klik op het uitvoericoontje.

'Berekende' parameterwaarden

Bij het opgeven van een vaste waarde voor een parameter van een API-node kun je een berekende waarde in het tekstvak invoeren.

Manipulatie t.o.v. 'vandaag'

  • Vandaag

  • Vandaag -1 dag

  • Vandaag + 2 weken

Toegestaan: dagen, weken, jaren. Bij het uitvoeren van het sjabloon wordt de waarde berekend.

Bijvoorbeeld: bij vandaag - 2 weken op 2021-01-20 wordt de waarde 2021-01-06

Lijsten

In het scherm met extra informatie over nodes zie je of er een object, waarde of een lijst wordt opgehaald. Als een lijst wordt teruggegeven, dan moeten de tags van nodes eronder binnen tags van die lijst staan. Zie het voorbeeld in het kopje hieronder.

Beknopte tags en naamgeving

De namen van tags moeten uniek zijn binnen de gehele omgeving. Als er echter een node met een tag onder een node hangt die een lijst teruggeeft, hoeft die tag enkel uniek binnen deze lijst te zijn.

In het overzicht van tags hieronder gaan we uit van een inrichting met een node met de tag medewerkerRelatiesVanClient die een lijst met medewerkerrelaties ophaalt op basis van een cliënt-ID.

  • ${client/voornaam}

  • ${client/achternaam}

  • ${medewerkerRelatiesVanClient}

    • ${voornaam}

    • ${achternaam}

  • ${medewerkerRelatiesVanClient}

In dit voorbeeld zijn de opsommingen er ter illustratie bij gezet. De schuine streep / bepaalt geen expliciete gelaagdheid.

De tags op het eerste niveau moeten in dit voorbeeld uniek binnen de hele omgeving zijn. Dat geldt ook voor de tag medewerkerRelatiesVanClient. Deze tag komt in de template 2 keer voor, namelijk als openings- en sluittag van de lijst.

De tags op het tweede niveau (voornaam en achternaam) hoeven in dit voorbeeld enkel uniek binnen de scope van de node medewerkerRelatiesVanClient te zijn.

Zo voorkom je lange tags zoals ${client/medewerkerRelatie/medewerker/voornaam}.

Applicatie(s)
Inhoudsopgave