Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

19.1 Wat is de DSCR (Debt Service Coverage Ratio)?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# SPARQL: 19.1 Zorgkantoren inkoopondersteuning
2# Parameters: ?startperiode, ?eindperiode, ?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  ("DSCR" AS ?Kental)
11  (
12    IF(
13      (?DebtService = 0),
14      "Ongedefinieerd"^^xsd:string,
15      (?EBITDA / ?DebtService)
16    )
17    AS ?Waarde
18  )
19WHERE {
20  # 1. EBITDA (uit SPARQL 19.6)
21  {
22        SELECT (?p_totaal - ?q_totaal + COALESCE(?q_vi, 0) AS ?EBITDA)
23    WHERE {
24      {
25        # DEEL 1: Eindtotalen berekenen
26        SELECT (SUM(?p_bedrag) AS ?p_totaal) (SUM(?q_bedrag) AS ?q_totaal)
27        WHERE {
28            #BIND("2024-01-01"^^xsd:date AS ?startperiode)
29            #BIND("2024-12-31"^^xsd:date AS ?eindperiode)                    
30          {
31            SELECT DISTINCT ?rubriek WHERE {
32              ?rubriek a onz-fin:Grootboekrubriek .
33              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
34              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
35            }
36          }
37
38          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
39
40          ?grootboek_post a onz-fin:Grootboekpost ;
41                          onz-g:partOf ?rubriek ;
42                          onz-g:hasDate ?datum ;
43                          onz-fin:heeftGeldBedrag ?geld_bedrag .
44
45          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
46
47          # P-bedragen
48          BIND(
49            IF(
50              STRSTARTS(?rubriekCode, "81") ||
51              STRSTARTS(?rubriekCode, "82") ||
52              STRSTARTS(?rubriekCode, "83") ||
53              STRSTARTS(?rubriekCode, "89") ||
54              STRSTARTS(?rubriekCode, "919") ||
55              STRSTARTS(?rubriekCode, "920") ||
56              STRSTARTS(?rubriekCode, "930"),
57              ?geld_bedrag, 0) AS ?p_bedrag
58          )
59
60          # Q-bedragen
61          BIND(
62            IF(
63              STRSTARTS(?rubriekCode, "417") ||
64              STRSTARTS(?rubriekCode, "418") ||
65              STRSTARTS(?rubriekCode, "411") ||
66              STRSTARTS(?rubriekCode, "412") ||
67              STRSTARTS(?rubriekCode, "413") ||
68              STRSTARTS(?rubriekCode, "414") ||
69              STRSTARTS(?rubriekCode, "415") ||
70              STRSTARTS(?rubriekCode, "416") ||
71              STRSTARTS(?rubriekCode, "419") ||
72              STRSTARTS(?rubriekCode, "420") ||
73              STRSTARTS(?rubriekCode, "4221") ||
74              STRSTARTS(?rubriekCode, "4223") ||
75              STRSTARTS(?rubriekCode, "4224") ||
76              STRSTARTS(?rubriekCode, "4225") ||
77              STRSTARTS(?rubriekCode, "4229") ||
78              STRSTARTS(?rubriekCode, "4226") ||
79              STRSTARTS(?rubriekCode, "480") ||
80              STRSTARTS(?rubriekCode, "481") ||
81              STRSTARTS(?rubriekCode, "482") ||
82              STRSTARTS(?rubriekCode, "483") ||
83              STRSTARTS(?rubriekCode, "484") ||
84              STRSTARTS(?rubriekCode, "423") ||
85              STRSTARTS(?rubriekCode, "43") ||
86              STRSTARTS(?rubriekCode, "44") ||
87              STRSTARTS(?rubriekCode, "45") ||
88              STRSTARTS(?rubriekCode, "46") ||
89              STRSTARTS(?rubriekCode, "47") ||
90              STRSTARTS(?rubriekCode, "486") ||
91              STRSTARTS(?rubriekCode, "489") ||
92              STRSTARTS(?rubriekCode, "905") ||
93              STRSTARTS(?rubriekCode, "911") ||
94              STRSTARTS(?rubriekCode, "912") ||
95              STRSTARTS(?rubriekCode, "913") ||
96              STRSTARTS(?rubriekCode, "914") ||
97              STRSTARTS(?rubriekCode, "915") ||
98              STRSTARTS(?rubriekCode, "921") ||
99              STRSTARTS(?rubriekCode, "931"),
100              ?geld_bedrag, 0) AS ?q_bedrag
101          )
102        }
103      }
104
105      # Q.VI Afschrijvingen op immateriële vaste activa en materiële vaste activa 
106      {
107        SELECT (SUM(?geld_bedrag) AS ?q_vi)
108        WHERE {
109            #BIND("2024-01-01"^^xsd:date AS ?startperiode)
110            #BIND("2024-12-31"^^xsd:date AS ?eindperiode)                    
111          {
112            SELECT DISTINCT ?rubriek WHERE {
113              ?rubriek a onz-fin:Grootboekrubriek .
114              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
115              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
116            }
117          }
118
119          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
120
121          BIND(
122            IF(
123              STRSTARTS(?rubriekCode, "480") ||
124              STRSTARTS(?rubriekCode, "481") ||
125              STRSTARTS(?rubriekCode, "482") ||
126              STRSTARTS(?rubriekCode, "483") ||
127              STRSTARTS(?rubriekCode, "484"),
128              "Q.VI", "other"
129            ) AS ?categorie
130          )
131
132          FILTER(?categorie = "Q.VI")
133
134          ?grootboek_post a onz-fin:Grootboekpost ;
135                          onz-g:partOf ?rubriek ;
136                          onz-g:hasDate ?datum ;
137                          onz-fin:heeftGeldBedrag ?geld_bedrag .
138
139          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
140        }
141      }
142    }
143  }
144
145  # 2. Rente en aflossingen
146{
147  SELECT (?r_iv_totaal + ?aflossing AS ?DebtService)
148  WHERE {
149    
150    # Rentelasten (R.IV)
151    {
152      SELECT (SUM(?geld_bedrag) AS ?r_iv_totaal)
153      WHERE {
154            #BIND("2024-01-01"^^xsd:date AS ?startperiode)
155            #BIND("2024-12-31"^^xsd:date AS ?eindperiode)                    
156        {
157          SELECT DISTINCT ?rubriek WHERE {
158            ?rubriek a onz-fin:Grootboekrubriek .
159            FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
160            FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
161          }
162        }
163        BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
164        ?grootboek_post a onz-fin:Grootboekpost ;
165                        onz-g:partOf ?rubriek ;
166                        onz-g:hasDate ?datum ;
167                        onz-fin:heeftGeldBedrag ?geld_bedrag .
168        FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
169        FILTER(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901"))
170      }
171    }
172
173    # saldoVoor
174    {
175      SELECT (SUM(?bedrag_rubriek) AS ?saldoVoor)
176      WHERE {
177        {
178          SELECT ?rubriek ?saldo_datum ?saldo_bedrag
179          WHERE {
180            #BIND("2023-12-31"^^xsd:date AS ?peildatum)                            
181            ?rubriek a onz-fin:Grootboekrubriek ;
182                    onz-g:isAbout ?saldo .
183            ?saldo a onz-fin:EindSaldo ;
184                  onz-fin:heeftGeldBedrag ?saldo_bedrag ;
185                  onz-g:hasDate ?saldo_datum .
186            FILTER (STRSTARTS(STRAFTER(STR(?rubriek), STR(onz-fin:)), "07"))
187            FILTER (?saldo_datum <= ?peildatum)
188            FILTER NOT EXISTS {
189              ?rubriek onz-g:isAbout ?otherSaldo .
190              ?otherSaldo a onz-fin:EindSaldo ;
191                          onz-g:hasDate ?otherDate .
192              FILTER(?otherDate <= ?peildatum && ?otherDate > ?saldo_datum)
193            }
194          }
195        }
196        BIND(IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?bedrag_rubriek)
197      }
198    }
199
200    # saldoNa
201    {
202      SELECT (SUM(?bedrag_rubriek) AS ?saldoNa)
203      WHERE {
204        {
205          SELECT ?rubriek ?saldo_datum ?saldo_bedrag
206          WHERE {
207            #BIND("2024-12-31"^^xsd:date AS ?eindperiode)                             
208            ?rubriek a onz-fin:Grootboekrubriek ;
209                    onz-g:isAbout ?saldo .
210            ?saldo a onz-fin:EindSaldo ;
211                  onz-fin:heeftGeldBedrag ?saldo_bedrag ;
212                  onz-g:hasDate ?saldo_datum .
213            FILTER (STRSTARTS(STRAFTER(STR(?rubriek), STR(onz-fin:)), "07"))
214            FILTER (?saldo_datum <= ?eindperiode)
215            FILTER NOT EXISTS {
216              ?rubriek onz-g:isAbout ?otherSaldo .
217              ?otherSaldo a onz-fin:EindSaldo ;
218                          onz-g:hasDate ?otherDate .
219              FILTER(?otherDate <= ?eindperiode && ?otherDate > ?saldo_datum)
220            }
221          }
222        }
223        BIND(IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?bedrag_rubriek)
224      }
225    }
226
227    # aflossing berekenen
228    BIND(?saldoVoor - ?saldoNa AS ?aflossing)
229    }
230  }
231}
232ORDER BY ?Kental
233