Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
- Publicatiedatum:
- 18-06-2026
- Inwerkingtreding:
- 18-06-2026
19.2 Liquiditeit - wat is het werkkapitaal op korte termijn?
Concepten
Relaties
Eigenschappen
SPARQL query
Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren 19.2.0 2# Parameters: ?peildatum 3# Ontologie: versie 3.0.0 of nieuwer 4 5PREFIX onz-fin: <http://purl.org/ozo/onz-fin#> 6prefix onz-zorg: <http://purl.org/ozo/onz-zorg#> 7PREFIX onz-g: <http://purl.org/ozo/onz-g#> 8PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 9 10SELECT ?Kental ?Waarde 11WHERE { 12 { 13 SELECT (SUM(IF(?jaarrekeningpost = "B Vlottende activa", ?bedrag, 0)) - 14 SUM(IF(?jaarrekeningpost = "G Kortlopende schulden", ?bedrag, 0)) AS ?werkkapitaal) 15 WHERE { 16 { 17 SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag) 18 WHERE { 19 { # Middle select: Bereken het totaal per rubriek (saldo + latere mutaties) 20 SELECT 21 ?rubriek ?jaarrekeningpost 22 (SUM(?geld_bedrag_post) + SUM(?saldo_waarde)/COUNT(?saldo_waarde) AS ?bedrag_rubriek) 23 WHERE { 24 { # Innermost select: 25 # - Haal het meest recente saldo per rubriek op als beginsaldo, 0 indien geen saldo in data 26 # - Haal de bijbehorende datum op om alle posten na beginsaldo bij toe te voegen 27 SELECT 28 ?rubriek ?jaarrekeningpost 29 (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde) 30 ?peildatum_argument 31 (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum) 32 ?saldo_datum ?saldo 33 WHERE { 34 35 # BIND("2024-12-31"^^xsd:date AS ?peildatum) 36 BIND(?peildatum as ?peildatum_argument) 37 38 # Bind jaarrekeningpost op basis van rubriekCode 39 { 40 # Prismant: prefix-mapping, want Prismant consolideert niet dus we willen onderliggende rubrieken 41 { 42 ?rubriek a onz-fin:Grootboekrubriek . 43 } 44 UNION 45 { 46 ?rubriek a onz-fin:Grootboekrekening . 47 } 48 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 49 50 VALUES (?prismantPrefix ?jaarrekeningpost) { 51 ("3" "B Vlottende activa") 52 ("12" "B Vlottende activa") 53 ("131" "B Vlottende activa") 54 ("132" "B Vlottende activa") 55 ("14" "G Kortlopende schulden") 56 ("15" "G Kortlopende schulden") 57 } 58 FILTER(STRSTARTS(?rubriekCode, ?prismantPrefix)) 59 } 60 UNION 61 { 62 # RGS: exacte mapping, want RGS consolideert zelf onderliggende rubrieken 63 # Dit houdt in dat rubrieken naast de directe boekingen ook de totaaltelling 64 # van alle boekingen op alle onderliggende rubrieken bevatten (algemene uitgangspunten) 65 # We willen dus niet dubbel tellen en vandaar exacte match 66 VALUES (?rubriekCode ?jaarrekeningpost) { 67 ("BVrd" "B Vlottende activa") 68 ("BPro" "B Vlottende activa") 69 ("BObd" "B Vlottende activa") 70 ("BVor" "B Vlottende activa") 71 ("BVfi" "B Vlottende activa") 72 ("BEff" "B Vlottende activa") 73 ("BLim" "B Vlottende activa") 74 ("BSch" "G Kortlopende schulden") 75 } 76 77 BIND(IRI(CONCAT(STR(onz-fin:), ?rubriekCode)) AS ?rubriek) 78 { 79 ?rubriek a onz-fin:Grootboekrubriek . 80 } 81 UNION 82 { 83 ?rubriek a onz-fin:Grootboekrekening . 84 } 85 } 86 87 88 OPTIONAL { 89 ?rubriek onz-g:isAbout ?saldo . 90 ?saldo 91 a onz-fin:EindSaldo ; 92 onz-fin:heeftGeldBedrag ?saldo_bedrag ; 93 onz-g:hasDate ?saldo_datum . 94 95 FILTER (?saldo_datum <= ?peildatum_argument) 96 97 FILTER NOT EXISTS { 98 ?rubriek onz-g:isAbout ?saldo2 . 99 ?saldo2 100 a onz-fin:EindSaldo ; 101 onz-g:hasDate ?saldo_datum2 . 102 103 FILTER(?saldo2 != ?saldo) 104 FILTER (?saldo_datum2 <= ?peildatum_argument) 105 FILTER ( 106 ?saldo_datum2 > ?saldo_datum 107 || ( 108 ?saldo_datum2 = ?saldo_datum 109 && STR(?saldo2) > STR(?saldo) 110 ) 111 ) 112 } 113 } 114 115 } 116 } # End of innermost query: Alle aanwezige beginsaldos zijn gevonden 117 118 # Selecteer de bijbehorende grootboekpost bij de rubriek 119 OPTIONAL { 120 ?grootboek_post 121 a onz-fin:Grootboekpost ; 122 onz-g:partOf ?rubriek ; 123 onz-g:hasDate ?datum ; 124 onz-fin:heeftGeldBedrag ?geld_bedrag_temp . 125 # Behoud de grootboek post alleen voor de meest specifieke rubriek, 126 # om dubbeltelling bij meerdere rubrieken te voorkomen 127 FILTER NOT EXISTS { 128 ?grootboek_post onz-g:partOf ?specifiekereRubriek . 129 ?specifiekereRubriek onz-g:partOf+ ?rubriek . 130 } 131 FILTER (?datum <= ?peildatum_argument && (?datum > ?begin_datum || !BOUND(?begin_datum))) 132 } 133 BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag_post) 134 135 } GROUP BY ?rubriek ?jaarrekeningpost 136 } # End of middle query: Alle beginsaldos + transacties daarna zijn gevonden (eindtotaal bekend) 137 138 } GROUP BY ?jaarrekeningpost 139 } 140 } 141 } 142 143 BIND("Werkkapitaal op korte termijn" AS ?Kental) 144 # Eindantwoord afronden op twee decimalen 145 BIND(ROUND(?werkkapitaal * 100) / 100 AS ?Waarde) 146} 147ORDER BY ?Kental