Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
- Publicatiedatum:
- 15-07-2026
- Inwerkingtreding:
- 16-07-2026
24.4 Overig - wat is de verhouding tussen vorderingen en opbrengsten?
Concepten
Relaties
Eigenschappen
SPARQL query
Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren 24.4 2# Parameters: ?peildatum 3# Ontologie: versie 3.0.0 of nieuwer 4# 5PREFIX onz-fin: <http://purl.org/ozo/onz-fin#> 6PREFIX onz-g: <http://purl.org/ozo/onz-g#> 7PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 8 9SELECT 10 ("Verhouding vorderingen en totale opbrengsten" AS ?Kental) 11 ( 12 IF( 13 BOUND(?bedrijfsopbrengsten) && (?bedrijfsopbrengsten != 0), 14 ROUND(xsd:decimal(?vorderingen) / xsd:decimal(?bedrijfsopbrengsten) * 100) / 100, 15 "Ongedefinieerd" 16 ) AS ?Waarde 17 ) 18 19WHERE { 20 # DEEL 1: Vorderingen (balans op peildatum, uit 18.1) 21 { 22 SELECT 23 (SUM(IF(?jaarrekeningpost = "B.II Vorderingen", ?bedrag, 0)) AS ?vorderingen) 24 WHERE { 25 { 26 SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag) 27 WHERE { 28 { 29 # Middle select: totaal per rubriek (saldo + latere mutaties) 30 SELECT ?rubriek ?categorie (SUM(?geld_bedrag_post) + SUM(?saldo_waarde) / COUNT(?saldo_waarde) AS ?bedrag_rubriek) 31 WHERE { 32 { 33 # Innerste subquery: meest recente saldo per rubriek 34 SELECT ?rubriek ?categorie 35 (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde) 36 ?peildatum_argument 37 (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum) 38 WHERE { 39 # BIND("2024-12-31"^^xsd:date AS ?peildatum) 40 BIND(?peildatum AS ?peildatum_argument) 41 42 # Selecteer rubrieken: zowel Prismant (Grootboekrubriek) als RGS (Grootboekrekening) 43 { 44 { ?rubriek a onz-fin:Grootboekrubriek } 45 UNION 46 { ?rubriek a onz-fin:Grootboekrekening } 47 } 48 FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 49 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 50 51 # Categorie-toewijzing 52 # Prismant: 12 → B.II 53 # RGS: BVor → B.II, BVfi → B.II 54 BIND( 55 COALESCE( 56 IF(STRSTARTS(?rubriekCode, "12"), "B.II", ?unbound), 57 IF(?rubriekCode = "BVor", "B.II", ?unbound), 58 IF(?rubriekCode = "BVfi", "B.II", ?unbound), 59 "other" 60 ) AS ?categorie 61 ) 62 FILTER(?categorie IN ("B.II")) 63 64 # Meest recente eindsaldo per rubriek (tiebreaker binnen OPTIONAL) 65 OPTIONAL { 66 ?rubriek onz-g:isAbout ?saldo . 67 ?saldo a onz-fin:EindSaldo ; 68 onz-fin:heeftGeldBedrag ?saldo_bedrag ; 69 onz-g:hasDate ?saldo_datum . 70 FILTER(?saldo_datum <= ?peildatum_argument) 71 FILTER NOT EXISTS { 72 ?rubriek onz-g:isAbout ?otherSaldo . 73 ?otherSaldo a onz-fin:EindSaldo ; 74 onz-g:hasDate ?otherDatum . 75 FILTER( 76 ?otherSaldo != ?saldo 77 && ?otherDatum <= ?peildatum_argument 78 && ( 79 ?otherDatum > ?saldo_datum 80 || (?otherDatum = ?saldo_datum && STR(?otherSaldo) > STR(?saldo)) 81 ) 82 ) 83 } 84 } 85 } 86 } 87 88 # Grootboekposten na saldo 89 OPTIONAL { 90 ?grootboek_post a onz-fin:Grootboekpost ; 91 onz-g:partOf ?rubriek ; 92 onz-g:hasDate ?datum ; 93 onz-fin:heeftGeldBedrag ?geld_bedrag_temp . 94 # Anti-dubbeltelling 95 FILTER NOT EXISTS { 96 ?grootboek_post onz-g:partOf ?child . 97 ?child onz-g:partOf ?rubriek . 98 FILTER(?child != ?rubriek) 99 { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } } 100 } 101 FILTER( 102 ?datum <= ?peildatum_argument 103 && (!BOUND(?begin_datum) || ?datum > ?begin_datum) 104 ) 105 } 106 BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag_post) 107 } 108 GROUP BY ?rubriek ?categorie 109 } 110 VALUES (?categorie ?jaarrekeningpost) { 111 ("B.II" "B.II Vorderingen") 112 } 113 } 114 GROUP BY ?jaarrekeningpost 115 } 116 } 117 } 118 119 # DEEL 2: Bedrijfsopbrengsten (W&V over meetperiode, uit 18.2) 120 { 121 SELECT ((?p_totaal) AS ?bedrijfsopbrengsten) 122 WHERE { 123 { 124 SELECT (SUM(?p_bedrag) AS ?p_totaal) 125 WHERE { 126 #BIND("2024-12-31"^^xsd:date AS ?peildatum) 127 BIND( 128 IF( 129 MONTH(?peildatum) = 12 && DAY(?peildatum) = 31, 130 xsd:date(CONCAT(STR(YEAR(?peildatum)), "-01-01")), 131 xsd:date(CONCAT(STR(YEAR(?peildatum)-1), "-07-01")) 132 ) 133 AS ?startperiode) 134 BIND(?peildatum AS ?eindperiode) 135 136 # Selecteer rubrieken: zowel Prismant (Grootboekrubriek) als RGS (Grootboekrekening) 137 { 138 { ?rubriek a onz-fin:Grootboekrubriek } 139 UNION 140 { ?rubriek a onz-fin:Grootboekrekening } 141 } 142 FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 143 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 144 145 ?post a onz-fin:Grootboekpost ; 146 onz-g:partOf ?rubriek ; 147 onz-g:hasDate ?datum ; 148 onz-fin:heeftGeldBedrag ?geld_bedrag . 149 # Anti-dubbeltelling 150 FILTER NOT EXISTS { 151 ?post onz-g:partOf ?child . 152 ?child onz-g:partOf ?rubriek . 153 FILTER(?child != ?rubriek) 154 { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } } 155 } 156 FILTER(?datum >= ?startperiode && ?datum <= ?eindperiode) 157 158 # Categorie-toewijzing 159 # Prismant: 81, 82, 83, 89, 919, 920, 930 → P 160 # RGS: WOmz, WRev, WRvi, WRgr, WWvv, WNoa, WLbe, WBat, WWiv, WWivGpv, WOvb → P 161 BIND( 162 IF( 163 STRSTARTS(?rubriekCode, "81") || 164 STRSTARTS(?rubriekCode, "82") || 165 STRSTARTS(?rubriekCode, "83") || 166 STRSTARTS(?rubriekCode, "89") || 167 STRSTARTS(?rubriekCode, "919") || 168 STRSTARTS(?rubriekCode, "920") || 169 STRSTARTS(?rubriekCode, "930") || 170 STRSTARTS(?rubriekCode, "WOmz") || 171 STRSTARTS(?rubriekCode, "WRev") || 172 STRSTARTS(?rubriekCode, "WRvi") || 173 STRSTARTS(?rubriekCode, "WRgr") || 174 STRSTARTS(?rubriekCode, "WWvv") || 175 STRSTARTS(?rubriekCode, "WNoa") || 176 STRSTARTS(?rubriekCode, "WLbe") || 177 STRSTARTS(?rubriekCode, "WBat") || 178 STRSTARTS(?rubriekCode, "WWiv") || 179 STRSTARTS(?rubriekCode, "WWivGpv") || 180 STRSTARTS(?rubriekCode, "WOvb"), 181 ?geld_bedrag, 0 182 ) AS ?p_bedrag 183 ) 184 } 185 } 186 } 187 } 188} 189ORDER BY ?Kental 190