Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
- Publicatiedatum:
- 15-07-2026
- Inwerkingtreding:
- 16-07-2026
20.1 Solvabiliteit - wat is de solvabiliteitsratio?
Concepten
Relaties
Eigenschappen
SPARQL query
Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren 20.1 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 14 (IF(SUM(IF(?jaarrekeningpost = "H Totaal Passiva", ?bedrag, 0)) = 0, 15 "Ongedefinieerd"^^xsd:string, 16 ROUND( 17 SUM(IF(?jaarrekeningpost = "D Eigen Vermogen", ?bedrag, 0)) / 18 SUM(IF(?jaarrekeningpost = "H Totaal Passiva", ?bedrag, 0)) * 10000 19 ) / 10000) AS ?solvabiliteitsratio) 20 WHERE { 21 { 22 SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag) 23 WHERE { 24 #BIND("2024-12-31"^^xsd:date AS ?peildatum) 25 BIND(?peildatum AS ?peildatum_argument) 26 { 27 SELECT 28 (SUM(?geld_bedrag_post) + SUM(?saldo_waarde)/count(?saldo_waarde) AS ?bedrag_rubriek) 29 ?rubriek ?jaarrekeningpost_child 30 WHERE { 31 { 32 SELECT 33 ?rubriek ?jaarrekeningpost_child 34 (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde) 35 ?peildatum_argument 36 (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum) 37 ?saldo_datum ?saldo ?heeftBeginsaldo 38 WHERE { 39 #BIND("2024-12-31"^^xsd:date AS ?peildatum) 40 BIND(?peildatum AS ?peildatum_argument) 41 42 { 43 # Prismant: prefix-mapping, want Prismant consolideert niet dus we willen onderliggende rubrieken 44 { 45 ?rubriek a onz-fin:Grootboekrubriek . 46 } 47 UNION 48 { 49 ?rubriek a onz-fin:Grootboekrekening . 50 # in de testdata is deze branch overbodig, voor de zekerheid laten staan omdat in werkelijkheid 51 # de codes waarschijnlijk grootboekrekeningen zijn 52 } 53 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 54 55 VALUES (?prismantPrefix ?jaarrekeningpost_child) { 56 ("0511" "D.I") 57 ("05413" "D.IV") 58 ("05311" "D.V") 59 ("05342" "D.V") 60 ("05423" "D.V") 61 ("05323" "D.VI") 62 ("0539" "D.VII") 63 ("05493" "D.VII") 64 ("05915" "D.VII") 65 ("091" "D.VIII") 66 ("06" "E") 67 ("07" "F") 68 ("14" "G") 69 ("15" "G") 70 } 71 FILTER(STRSTARTS(?rubriekCode, ?prismantPrefix)) 72 } 73 UNION 74 { 75 # RGS: exacte mapping, want RGS consolideert zelf onderliggende rubrieken 76 VALUES (?rubriekCode ?jaarrekeningpost_child) { 77 ("BEivGok" "D.I") 78 ("BEivAgi" "D.II") 79 ("BEivHer" "D.III") 80 ("BEivWer" "D.IV") 81 ("BEivStr" "D.IV") 82 ("BEivBer" "D.V") 83 ("BEivBef" "D.VI") 84 ("BEivOvr" "D.VII") 85 ("BEivOre" "D.VIII") 86 ("BVrz" "E") 87 ("BEga" "E") 88 ("BLas" "F") 89 ("BSch" "G") 90 } 91 92 BIND(IRI(CONCAT(STR(onz-fin:), ?rubriekCode)) AS ?rubriek) 93 { 94 ?rubriek a onz-fin:Grootboekrubriek . 95 } 96 UNION 97 { 98 ?rubriek a onz-fin:Grootboekrekening . 99 } 100 } 101 102 OPTIONAL { 103 ?rubriek onz-g:isAbout ?saldo . 104 ?saldo 105 a onz-fin:EindSaldo ; 106 onz-fin:heeftGeldBedrag ?saldo_bedrag ; 107 onz-g:hasDate ?saldo_datum . 108 109 FILTER (?saldo_datum <= ?peildatum_argument) 110 111 FILTER NOT EXISTS { 112 ?rubriek onz-g:isAbout ?saldo2 . 113 ?saldo2 114 a onz-fin:EindSaldo ; 115 onz-g:hasDate ?saldo_datum2 . 116 117 FILTER(?saldo2 != ?saldo) 118 FILTER (?saldo_datum2 <= ?peildatum_argument) 119 FILTER ( 120 ?saldo_datum2 > ?saldo_datum 121 || ( 122 ?saldo_datum2 = ?saldo_datum 123 && STR(?saldo2) > STR(?saldo) 124 ) 125 ) 126 } 127 } 128 # Bind alleen als er een saldo in de data aanwezig was 129 BIND(IF(BOUND(?saldo_bedrag), 1, ?unbound) AS ?heeftBeginsaldo) 130 131 } 132 } 133 134 # Selecteer de bijbehorende grootboekpost bij de rubriek 135 OPTIONAL { 136 ?grootboek_post 137 a onz-fin:Grootboekpost ; 138 onz-g:partOf ?rubriek ; 139 onz-g:hasDate ?datum ; 140 onz-fin:heeftGeldBedrag ?geld_bedrag_temp . 141 # Behoud de grootboek post alleen voor de meest specifieke rubriek, 142 # om dubbeltelling bij meerdere rubrieken te voorkomen 143 FILTER NOT EXISTS { 144 ?grootboek_post onz-g:partOf ?specifiekereRubriek . 145 ?specifiekereRubriek onz-g:partOf+ ?rubriek . 146 } 147 FILTER (?datum <= ?peildatum_argument && (?datum > ?begin_datum || !BOUND(?begin_datum))) 148 BIND (1 AS ?heeftGrootboekPost) 149 } 150 BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag_post) 151 152 } GROUP BY ?rubriek ?jaarrekeningpost_child 153 } 154 155 VALUES (?jaarrekeningpost_child ?jaarrekeningpost) { 156 ("D.I" "D Eigen Vermogen") 157 ("D.II" "D Eigen Vermogen") 158 ("D.III" "D Eigen Vermogen") 159 ("D.IV" "D Eigen Vermogen") 160 ("D.V" "D Eigen Vermogen") 161 ("D.VI" "D Eigen Vermogen") 162 ("D.VII" "D Eigen Vermogen") 163 ("D.VIII" "D Eigen Vermogen") 164 ("D.I" "H Totaal Passiva") 165 ("D.II" "H Totaal Passiva") 166 ("D.III" "H Totaal Passiva") 167 ("D.IV" "H Totaal Passiva") 168 ("D.V" "H Totaal Passiva") 169 ("D.VI" "H Totaal Passiva") 170 ("D.VII" "H Totaal Passiva") 171 ("D.VIII" "H Totaal Passiva") 172 ("E" "H Totaal Passiva") 173 ("F" "H Totaal Passiva") 174 ("G" "H Totaal Passiva") 175 } 176 177 } GROUP BY ?jaarrekeningpost 178 } 179 } 180 } 181 VALUES ?Kental { 182 "Solvabiliteitsratio" 183 "Solvabiliteitsratio (%)" 184 } 185 186 BIND( 187 IF(DATATYPE(?solvabiliteitsratio) = xsd:string, 188 "Ongedefinieerd"^^xsd:string, 189 IF(?Kental = "Solvabiliteitsratio", 190 ROUND(xsd:decimal(?solvabiliteitsratio) * 100) / 100, # Ratio: 2 dec 191 ROUND(xsd:decimal(?solvabiliteitsratio) * 1000) / 10 # Percentage: 1 dec 192 ) 193 ) AS ?Waarde 194 ) 195} 196ORDER BY ?Kental 197