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