Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
- Publicatiedatum:
- 15-07-2026
- Inwerkingtreding:
- 16-07-2026
20.2 Solvabiliteit - wat is het weerstandsvermogen?
Concepten
Relaties
Eigenschappen
SPARQL query
Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren 20.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-g: <http://purl.org/ozo/onz-g#> 7PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 8 9SELECT 10 ("Weerstandsvermogen" AS ?Kental) 11 ( 12 IF( 13 BOUND(?bedrijfsopbrengsten) && (?bedrijfsopbrengsten != 0), 14 ROUND(xsd:decimal(?eigenvermogen) / xsd:decimal(?bedrijfsopbrengsten) * 100) / 100, 15 "Ongedefinieerd" 16 ) AS ?Waarde 17 ) 18 19WHERE { 20 # DEEL 1: D Eigen vermogen (balans op peildatum, uit 18.1) 21 { 22 SELECT 23 (SUM(IF(?jaarrekeningpost = "D Eigen vermogen", ?bedrag, 0)) AS ?eigenvermogen) 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 # Prismant: prefix-mapping op 6-cijferige Grootboekrubrieken 43 { 44 { ?rubriek a onz-fin:Grootboekrubriek } 45 UNION 46 { ?rubriek a onz-fin:Grootboekrekening } 47 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 48 FILTER(REGEX(?rubriekCode, "^[0-9]{6}$")) 49 VALUES (?prismantPrefix ?categorie) { 50 ("0511" "D.I") 51 ("05413" "D.IV") 52 ("05311" "D.V") 53 ("05342" "D.V") 54 ("05423" "D.V") 55 ("05323" "D.VI") 56 ("0539" "D.VII") 57 ("05493" "D.VII") 58 ("05915" "D.VII") 59 ("091" "D.VIII") 60 } 61 FILTER(STRSTARTS(?rubriekCode, ?prismantPrefix)) 62 } 63 UNION 64 { 65 # RGS: exacte mapping 66 VALUES (?rubriekCode ?categorie) { 67 ("BEivGok" "D.I") 68 ("BEivAgi" "D.II") 69 ("BEivHer" "D.III") 70 ("BEivWer" "D.IV") 71 ("BEivStr" "D.IV") 72 ("BEivBer" "D.V") 73 ("BEivBef" "D.VI") 74 ("BEivOvr" "D.VII") 75 ("BEivOre" "D.VIII") 76 } 77 BIND(IRI(CONCAT(STR(onz-fin:), ?rubriekCode)) AS ?rubriek) 78 { ?rubriek a onz-fin:Grootboekrubriek } 79 UNION 80 { ?rubriek a onz-fin:Grootboekrekening } 81 } 82 83 # Meest recente eindsaldo per rubriek (tiebreaker binnen OPTIONAL) 84 OPTIONAL { 85 ?rubriek onz-g:isAbout ?saldo . 86 ?saldo a onz-fin:EindSaldo ; 87 onz-fin:heeftGeldBedrag ?saldo_bedrag ; 88 onz-g:hasDate ?saldo_datum . 89 FILTER(?saldo_datum <= ?peildatum_argument) 90 FILTER NOT EXISTS { 91 ?rubriek onz-g:isAbout ?otherSaldo . 92 ?otherSaldo a onz-fin:EindSaldo ; 93 onz-g:hasDate ?otherDatum . 94 FILTER( 95 ?otherSaldo != ?saldo 96 && ?otherDatum <= ?peildatum_argument 97 && ( 98 ?otherDatum > ?saldo_datum 99 || (?otherDatum = ?saldo_datum && STR(?otherSaldo) > STR(?saldo)) 100 ) 101 ) 102 } 103 } 104 } 105 } 106 107 # Grootboekposten na saldo 108 OPTIONAL { 109 ?grootboek_post a onz-fin:Grootboekpost ; 110 onz-g:partOf ?rubriek ; 111 onz-g:hasDate ?datum ; 112 onz-fin:heeftGeldBedrag ?geld_bedrag_temp . 113 # Anti-dubbeltelling 114 FILTER NOT EXISTS { 115 ?grootboek_post onz-g:partOf ?child . 116 ?child onz-g:partOf ?rubriek . 117 FILTER(?child != ?rubriek) 118 { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } } 119 } 120 FILTER( 121 ?datum <= ?peildatum_argument 122 && (!BOUND(?begin_datum) || ?datum > ?begin_datum) 123 ) 124 } 125 BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag_post) 126 } 127 GROUP BY ?rubriek ?categorie 128 } 129 VALUES (?categorie ?jaarrekeningpost) { 130 ("D.I" "D Eigen vermogen") 131 ("D.II" "D Eigen vermogen") 132 ("D.III" "D Eigen vermogen") 133 ("D.IV" "D Eigen vermogen") 134 ("D.V" "D Eigen vermogen") 135 ("D.VI" "D Eigen vermogen") 136 ("D.VII" "D Eigen vermogen") 137 ("D.VIII" "D Eigen vermogen") 138 } 139 } 140 GROUP BY ?jaarrekeningpost 141 } 142 } 143 } 144 145 # DEEL 2: Bedrijfsopbrengsten (W&V over meetperiode, uit 18.2) 146 { 147 SELECT ((?p_totaal) AS ?bedrijfsopbrengsten) 148 WHERE { 149 { 150 SELECT (SUM(?p_bedrag) AS ?p_totaal) 151 WHERE { 152 153 #BIND("2024-12-31"^^xsd:date AS ?peildatum) 154 BIND( 155 IF( 156 MONTH(?peildatum) = 12 && DAY(?peildatum) = 31, 157 xsd:date(CONCAT(STR(YEAR(?peildatum)), "-01-01")), 158 xsd:date(CONCAT(STR(YEAR(?peildatum)-1), "-07-01")) 159 ) 160 AS ?startperiode) 161 BIND(?peildatum AS ?eindperiode) 162 163 # Selecteer rubrieken: zowel Prismant (Grootboekrubriek) als RGS (Grootboekrekening) 164 { 165 { ?rubriek a onz-fin:Grootboekrubriek } 166 UNION 167 { ?rubriek a onz-fin:Grootboekrekening } 168 } 169 FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 170 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 171 172 ?post a onz-fin:Grootboekpost ; 173 onz-g:partOf ?rubriek ; 174 onz-g:hasDate ?datum ; 175 onz-fin:heeftGeldBedrag ?geld_bedrag . 176 # Anti-dubbeltelling 177 FILTER NOT EXISTS { 178 ?post onz-g:partOf ?child . 179 ?child onz-g:partOf ?rubriek . 180 FILTER(?child != ?rubriek) 181 { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } } 182 } 183 FILTER(?datum >= ?startperiode && ?datum <= ?eindperiode) 184 185 # Categorie-toewijzing 186 # Prismant: 81, 82, 83, 89, 919, 920, 930 → P 187 # RGS: WOmz, WRev, WRvi, WRgr, WWvv, WNoa, WLbe, WBat, WWiv, WWivGpv, WOvb → P 188 BIND( 189 IF( 190 STRSTARTS(?rubriekCode, "81") || 191 STRSTARTS(?rubriekCode, "82") || 192 STRSTARTS(?rubriekCode, "83") || 193 STRSTARTS(?rubriekCode, "89") || 194 STRSTARTS(?rubriekCode, "919") || 195 STRSTARTS(?rubriekCode, "920") || 196 STRSTARTS(?rubriekCode, "930") || 197 STRSTARTS(?rubriekCode, "WOmz") || 198 STRSTARTS(?rubriekCode, "WRev") || 199 STRSTARTS(?rubriekCode, "WRvi") || 200 STRSTARTS(?rubriekCode, "WRgr") || 201 STRSTARTS(?rubriekCode, "WWvv") || 202 STRSTARTS(?rubriekCode, "WNoa") || 203 STRSTARTS(?rubriekCode, "WLbe") || 204 STRSTARTS(?rubriekCode, "WBat") || 205 STRSTARTS(?rubriekCode, "WWiv") || 206 STRSTARTS(?rubriekCode, "WWivGpv") || 207 STRSTARTS(?rubriekCode, "WOvb"), 208 ?geld_bedrag, 0 209 ) AS ?p_bedrag 210 ) 211 } 212 } 213 } 214 } 215} 216ORDER BY ?Kental 217