Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

21.2 Wat is de REV (Resultaat Eigen Vermogen)?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 21.2.0 
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  ("REV" AS ?Kental)
11  (IF(?D_eigen_vermogen = 0, "Ongedefinieerd", (?S_resultaat_na_belastingen / ?D_eigen_vermogen)) AS ?Waarde)
12WHERE
13{
14  # Noemer S (meetperiode)
15  {
16    SELECT
17      ( (SUM(?p_bedrag) - SUM(?q_bedrag) + SUM(?r_i_bedrag) + SUM(?r_ii_bedrag)
18         - SUM(?r_iii_bedrag) - SUM(?r_iv_bedrag) - SUM(?s_i_bedrag) + SUM(?s_ii_bedrag))
19        AS ?S_resultaat_na_belastingen )
20    WHERE {
21          # BIND("2024-01-01"^^xsd:date AS ?startperiode)
22          # BIND("2024-12-31"^^xsd:date AS ?eindperiode)
23          
24          ?rubriek a onz-fin:Grootboekrubriek .
25          FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
26          FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
27          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
28
29          ?grootboek_post a onz-fin:Grootboekpost ;
30                          onz-g:partOf ?rubriek ;
31                          onz-g:hasDate ?datum ;
32                          onz-fin:heeftGeldBedrag ?geld_bedrag .
33          FILTER(?datum >= ?startperiode && ?datum <= ?eindperiode)
34
35      BIND(
36        IF(
37          STRSTARTS(?rubriekCode, "81") ||
38          STRSTARTS(?rubriekCode, "82") ||
39          STRSTARTS(?rubriekCode, "83") ||
40          STRSTARTS(?rubriekCode, "89") ||
41          STRSTARTS(?rubriekCode, "919") ||
42          STRSTARTS(?rubriekCode, "920") ||
43          STRSTARTS(?rubriekCode, "930"),
44        ?geld_bedrag, 0) AS ?p_bedrag)
45
46      BIND(
47        IF(
48          STRSTARTS(?rubriekCode, "417") ||
49          STRSTARTS(?rubriekCode, "418") ||
50          STRSTARTS(?rubriekCode, "411") ||
51          STRSTARTS(?rubriekCode, "412") ||
52          STRSTARTS(?rubriekCode, "413") ||
53          STRSTARTS(?rubriekCode, "414") ||
54          STRSTARTS(?rubriekCode, "415") ||
55          STRSTARTS(?rubriekCode, "416") ||
56          STRSTARTS(?rubriekCode, "419") ||
57          STRSTARTS(?rubriekCode, "420") ||
58          STRSTARTS(?rubriekCode, "4221") ||
59          STRSTARTS(?rubriekCode, "4223") ||
60          STRSTARTS(?rubriekCode, "4224") ||
61          STRSTARTS(?rubriekCode, "4225") ||
62          STRSTARTS(?rubriekCode, "4229") ||
63          STRSTARTS(?rubriekCode, "4226") ||
64          STRSTARTS(?rubriekCode, "480") ||
65          STRSTARTS(?rubriekCode, "481") ||
66          STRSTARTS(?rubriekCode, "482") ||
67          STRSTARTS(?rubriekCode, "483") ||
68          STRSTARTS(?rubriekCode, "484") ||
69          STRSTARTS(?rubriekCode, "423") ||
70          STRSTARTS(?rubriekCode, "43") ||
71          STRSTARTS(?rubriekCode, "44") ||
72          STRSTARTS(?rubriekCode, "45") ||
73          STRSTARTS(?rubriekCode, "46") ||
74          STRSTARTS(?rubriekCode, "47") ||
75          STRSTARTS(?rubriekCode, "486") ||
76          STRSTARTS(?rubriekCode, "489") ||
77          STRSTARTS(?rubriekCode, "905") ||
78          STRSTARTS(?rubriekCode, "911") ||
79          STRSTARTS(?rubriekCode, "912") ||
80          STRSTARTS(?rubriekCode, "913") ||
81          STRSTARTS(?rubriekCode, "914") ||
82          STRSTARTS(?rubriekCode, "915") ||
83          STRSTARTS(?rubriekCode, "921") ||
84          STRSTARTS(?rubriekCode, "931"),
85        ?geld_bedrag, 0) AS ?q_bedrag)
86
87      BIND(IF(STRSTARTS(?rubriekCode, "904"), ?geld_bedrag, 0) AS ?r_i_bedrag)
88      BIND(IF(STRSTARTS(?rubriekCode, "900"), ?geld_bedrag, 0) AS ?r_ii_bedrag)
89      BIND(IF(STRSTARTS(?rubriekCode, "903"), ?geld_bedrag, 0) AS ?r_iii_bedrag)
90      BIND(IF(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901"), ?geld_bedrag, 0) AS ?r_iv_bedrag)
91      BIND(0 AS ?s_i_bedrag)
92      BIND(IF(STRSTARTS(?rubriekCode, "902"), ?geld_bedrag, 0) AS ?s_ii_bedrag)
93    }
94  } 
95
96  # Teller D (peildatum)
97  {
98    SELECT ( SUM(?bedrag_rubriek) AS ?D_eigen_vermogen )
99    WHERE {
100
101      # inner: compute one row per rubriek using MAX(saldo) + SUM(posts)
102      {
103        SELECT
104          ?rubriek
105          ( (COALESCE(MAX(?saldo_bedrag), 0) + COALESCE(SUM(?geld_bedrag_temp), 0)) AS ?bedrag_rubriek )
106        WHERE {
107      		      # BIND("2024-12-31"^^xsd:date AS ?peildatum)
108      		      BIND(?peildatum AS ?peildatum_argument)
109
110                ?rubriek a onz-fin:Grootboekrubriek .
111                FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
112                FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
113                BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
114                BIND(?peildatum AS ?peildatum_argument)
115
116          BIND(
117            COALESCE(
118              IF(STRSTARTS(?rubriekCode, "0511"), "D.I", ?unbound),
119              IF(STRSTARTS(?rubriekCode, "05413"), "D.IV", ?unbound),
120              IF(STRSTARTS(?rubriekCode, "05311") || STRSTARTS(?rubriekCode, "05342") || STRSTARTS(?rubriekCode, "05423"), "D.V", ?unbound),
121              IF(STRSTARTS(?rubriekCode, "05323"), "D.VI", ?unbound),
122              IF(STRSTARTS(?rubriekCode, "0539") || STRSTARTS(?rubriekCode, "05493") || STRSTARTS(?rubriekCode, "05915"), "D.VII", ?unbound),
123              IF(STRSTARTS(?rubriekCode, "091"), "D.VIII", ?unbound)
124            ) AS ?categorie)
125          FILTER(BOUND(?categorie))
126
127          OPTIONAL {
128            ?rubriek onz-g:isAbout ?saldo .
129            ?saldo a onz-fin:EindSaldo ;
130                   onz-fin:heeftGeldBedrag ?saldo_bedrag ;
131                   onz-g:hasDate ?saldo_datum .
132            FILTER (?saldo_datum <= ?peildatum_argument)
133          }
134          FILTER NOT EXISTS {
135            ?rubriek onz-g:isAbout ?saldo2 .
136            ?saldo2 a onz-fin:EindSaldo ; onz-g:hasDate ?saldo_datum2 .
137            FILTER(?saldo2 != ?saldo)
138            FILTER(?saldo_datum2 <= ?peildatum_argument && ?saldo_datum2 > ?saldo_datum)
139          }
140
141          OPTIONAL {
142            ?grootboek_post a onz-fin:Grootboekpost ;
143                            onz-g:partOf ?rubriek ;
144                            onz-g:hasDate ?datum ;
145                            onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
146            FILTER (?datum <= ?peildatum_argument && (?datum > ?saldo_datum || !BOUND(?saldo_datum)))
147          }
148        }
149        GROUP BY ?rubriek
150      }
151    }
152  } 
153} 
154