Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

23.3 Wat is de CAPEX (Capital Expenditures)?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 23.3.0 
2# Parameters: ?startperiode, ?eindperiode
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    ("CAPEX" AS ?Kental)
12    (IF(BOUND(?noemer) && ?noemer != 0, (?teller / ?noemer), "Ongedefinieerd") AS ?Waarde)
13WHERE
14{
15    ##########################
16    # A Vaste Activa op peildatum startperiode
17    ##########################
18    {
19        SELECT (SUM(?bedrag_rubriek) AS ?bedrag_start)
20        WHERE {
21            {
22                SELECT
23                    (SUM(?geld_bedrag) + SUM(?saldo_waarde)/count(?saldo_waarde) AS ?bedrag_rubriek) 
24                    ?rubriek ?categorie
25                WHERE {
26                    	# BIND("2024-01-01"^^xsd:date AS ?startperiode)
27                    {
28                        SELECT
29                            ?rubriek ?categorie
30                            (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde)
31                            (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum)
32                            ?saldo_datum ?saldo
33                        WHERE {
34                            # BIND("2024-01-01"^^xsd:date AS ?startperiode)
35                            ?rubriek a onz-fin:Grootboekrubriek .
36                            FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
37                            FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
38                            BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
39                            BIND(
40                                COALESCE(
41                                    IF(STRSTARTS(?rubriekCode, "00"), "A.I", ?unbound),
42                                    IF(STRSTARTS(?rubriekCode, "01"), "A.II", ?unbound),
43                                    IF(STRSTARTS(?rubriekCode, "03"), "A.III", ?unbound)
44                                ) AS ?categorie
45                            )
46                            FILTER(BOUND(?categorie))
47                            OPTIONAL {
48                                ?rubriek onz-g:isAbout ?saldo .
49                                ?saldo
50                                    a onz-fin:EindSaldo ;
51                                    onz-fin:heeftGeldBedrag ?saldo_bedrag ;
52                                    onz-g:hasDate ?saldo_datum .
53                                FILTER (?saldo_datum <= ?startperiode)
54                            }
55                            FILTER NOT EXISTS {
56                                ?rubriek onz-g:isAbout ?saldo2 .
57                                ?saldo2 a onz-fin:EindSaldo ;
58                                        onz-g:hasDate ?saldo_datum2 .
59                                FILTER(?saldo2 != ?saldo)
60                                FILTER (?saldo_datum2 <= ?startperiode && ?saldo_datum2 > ?saldo_datum)
61                            }
62                        }
63                    }
64                    OPTIONAL {
65                        ?grootboek_post a onz-fin:Grootboekpost ;
66                                        onz-g:partOf ?rubriek ;
67                                        onz-g:hasDate ?datum ;
68                                        onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
69                        FILTER (?datum <= ?startperiode && (?datum > ?begin_datum || !BOUND(?begin_datum)))
70                    }
71                    BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag)
72                } GROUP BY ?rubriek ?categorie
73            }
74        }
75    }
76
77    ##########################
78    # A Vaste Activa op peildatum eindperiode
79    ##########################
80    {
81        SELECT (SUM(?bedrag_rubriek) AS ?bedrag_eind)
82        WHERE {
83                
84            {
85                SELECT
86                    (SUM(?geld_bedrag) + SUM(?saldo_waarde)/count(?saldo_waarde) AS ?bedrag_rubriek) 
87                    ?rubriek ?categorie
88                WHERE {
89                    	# BIND("2024-12-31"^^xsd:date AS ?eindperiode)
90                    {
91                        SELECT
92                            ?rubriek ?categorie
93                            (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde)
94                            (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum)
95                            ?saldo_datum ?saldo
96                        WHERE {
97                            # BIND("2024-12-31"^^xsd:date AS ?eindperiode)        
98                            ?rubriek a onz-fin:Grootboekrubriek .
99                            FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
100                            FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
101                            BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
102                            BIND(
103                                COALESCE(
104                                    IF(STRSTARTS(?rubriekCode, "00"), "A.I", ?unbound),
105                                    IF(STRSTARTS(?rubriekCode, "01"), "A.II", ?unbound),
106                                    IF(STRSTARTS(?rubriekCode, "03"), "A.III", ?unbound)
107                                ) AS ?categorie
108                            )
109                            FILTER(BOUND(?categorie))
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                                FILTER (?saldo_datum <= ?eindperiode)
117                            }
118                            FILTER NOT EXISTS {
119                                ?rubriek onz-g:isAbout ?saldo2 .
120                                ?saldo2 a onz-fin:EindSaldo ;
121                                        onz-g:hasDate ?saldo_datum2 .
122                                FILTER(?saldo2 != ?saldo)
123                                FILTER (?saldo_datum2 <= ?eindperiode && ?saldo_datum2 > ?saldo_datum)
124                            }
125                        }
126                    }
127                    OPTIONAL {
128                        ?grootboek_post a onz-fin:Grootboekpost ;
129                                        onz-g:partOf ?rubriek ;
130                                        onz-g:hasDate ?datum ;
131                                        onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
132                        FILTER (?datum <= ?eindperiode && (?datum > ?begin_datum || !BOUND(?begin_datum)))
133                    }
134                    BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag)
135                } GROUP BY ?rubriek ?categorie
136            }
137        }
138    }
139
140    # -------------------------------
141    # Noemer: Q.VI afschrijvingen tijdens meetperiode
142    # -------------------------------
143    { 
144      SELECT (SUM(?bedrag_rubriek) AS ?noemer_raw) 
145      WHERE { 
146        SELECT ?categorie (SUM(?geld_bedrag) AS ?bedrag_rubriek) 
147        WHERE {
148               # BIND("2024-01-01"^^xsd:date AS ?startperiode)
149               # BIND("2024-12-31"^^xsd:date AS ?eindperiode)
150          { 
151            SELECT DISTINCT ?rubriek 
152            WHERE { 
153              ?rubriek a onz-fin:Grootboekrubriek . 
154              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 
155              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$")) 
156            } 
157          } 
158          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 
159          BIND(COALESCE(
160                IF(STRSTARTS(?rubriekCode, "480") || STRSTARTS(?rubriekCode, "481") || STRSTARTS(?rubriekCode, "482") || 
161                   STRSTARTS(?rubriekCode, "483") || STRSTARTS(?rubriekCode, "484"), "Q.VI", ?unbound), "other") AS ?categorie
162          ) 
163          FILTER(?categorie != "other") 
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        } 
170      GROUP BY ?categorie 
171      } 
172    } 
173    BIND(IF(BOUND(?noemer_raw), ?noemer_raw, 0) AS ?noemer)
174
175    # Teller calculation
176    BIND(?bedrag_eind - ?bedrag_start AS ?teller)
177}
178