Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
18-06-2026

Inwerkingtreding:
18-06-2026

22.1 Groei - wat is de omzetgroei?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 22.1 
2# Parameters: ?startperiode, ?eindperiode
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 ?Kental ?Waarde 
10WHERE {
11  {
12    # Bereken verslagjaar en vergelijkingsjaar
13    SELECT ?p_verslagjaar ?p_vergelijkingsjaar
14    WHERE {
15      # ========= Verslagjaar =========
16      {
17        SELECT (SUM(?p_bedrag) AS ?p_verslagjaar)
18        WHERE {
19          # BIND("2024-01-01"^^xsd:date AS ?startperiode)
20          # BIND("2024-12-31"^^xsd:date AS ?eindperiode)
21
22          {
23            ?rubriek a onz-fin:Grootboekrubriek .
24          }
25          UNION
26          {
27            ?rubriek a onz-fin:Grootboekrekening .
28          }
29          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
30
31          ?grootboek_post
32            a onz-fin:Grootboekpost ;
33            onz-g:partOf ?rubriek ;
34            onz-g:hasDate ?datum ;
35            onz-fin:heeftGeldBedrag ?geld_bedrag .
36          # Behoud de grootboek post alleen voor de meest specifieke rubriek, 
37          # om dubbeltelling bij meerdere rubrieken te voorkomen
38          FILTER NOT EXISTS {
39            ?grootboek_post onz-g:partOf ?specifiekereRubriek .
40            ?specifiekereRubriek onz-g:partOf+ ?rubriek .
41          }
42          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
43
44          # --- P: Bedragen voor eindtotaalberekening ---
45          # Prismant: P.I=81, P.IV=82/83/89/919/920/930
46          # RGS: P.I=WOmz/WRev/WRvi/WRgr/WWvv/WNoa/WLbe/WBat, P.II = WWiv minus WWivGvp, III=WWivGvp, P.IV=WOvb
47          # voor de som P volstaat het om WWiv hier te zetten want zo wordt WWivGvp ook maar 1x geteld.
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              STRSTARTS(?rubriekCode, "WOmz") ||
58              STRSTARTS(?rubriekCode, "WRev") ||
59              STRSTARTS(?rubriekCode, "WRvi") ||
60              STRSTARTS(?rubriekCode, "WRgr") ||
61              STRSTARTS(?rubriekCode, "WWvv") ||
62              STRSTARTS(?rubriekCode, "WNoa") ||
63              STRSTARTS(?rubriekCode, "WLbe") ||
64              STRSTARTS(?rubriekCode, "WBat") ||
65              STRSTARTS(?rubriekCode, "WWiv") ||
66              STRSTARTS(?rubriekCode, "WOvb"),
67              ?geld_bedrag, 0) AS ?p_bedrag
68          )
69
70        }
71      }
72
73      # ========= Vergelijkingsjaar =========
74      {
75        SELECT (SUM(?p_bedrag) AS ?p_vergelijkingsjaar)
76        WHERE {
77          # BIND("2024-01-01"^^xsd:date AS ?startperiode)
78          # BIND("2024-12-31"^^xsd:date AS ?eindperiode)
79
80          {
81            ?rubriek a onz-fin:Grootboekrubriek .
82          }
83          UNION
84          {
85            ?rubriek a onz-fin:Grootboekrekening .
86          }
87          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
88
89          ?grootboek_post
90            a onz-fin:Grootboekpost ;
91            onz-g:partOf ?rubriek ;
92            onz-g:hasDate ?datum ;
93            onz-fin:heeftGeldBedrag ?geld_bedrag .
94          # Behoud de grootboek post alleen voor de meest specifieke rubriek, 
95          # om dubbeltelling bij meerdere rubrieken te voorkomen
96          FILTER NOT EXISTS {
97            ?grootboek_post onz-g:partOf ?specifiekereRubriek .
98            ?specifiekereRubriek onz-g:partOf+ ?rubriek .
99          }
100
101
102          # vergelijkingsperiode = meetperiode minus 1 jaar
103          BIND(xsd:date(CONCAT(STR(YEAR(?startperiode)-1), "-", 
104                               SUBSTR(STR(?startperiode), 6, 2), "-", 
105                               SUBSTR(STR(?startperiode), 9, 2))) AS ?startVergelijkingsperiode)
106
107          BIND(xsd:date(CONCAT(STR(YEAR(?eindperiode)-1), "-", 
108                               SUBSTR(STR(?eindperiode), 6, 2), "-", 
109                               SUBSTR(STR(?eindperiode), 9, 2))) AS ?eindVergelijkingsperiode)
110
111          FILTER (?datum >= ?startVergelijkingsperiode && ?datum <= ?eindVergelijkingsperiode)
112
113          # --- P: Bedragen voor eindtotaalberekening ---
114          # Prismant: P.I=81, P.IV=82/83/89/919/920/930
115          # RGS: P.I=WOmz/WRev/WRvi/WRgr/WWvv/WNoa/WLbe/WBat, P.II = WWiv minus WWivGvp, III=WWivGvp, P.IV=WOvb
116          # voor de som P volstaat het om WWiv hier te zetten want zo wordt WWivGvp ook maar 1x geteld.
117          BIND(
118            IF(
119              STRSTARTS(?rubriekCode, "81") ||
120              STRSTARTS(?rubriekCode, "82") ||
121              STRSTARTS(?rubriekCode, "83") ||
122              STRSTARTS(?rubriekCode, "89") ||
123              STRSTARTS(?rubriekCode, "919") ||
124              STRSTARTS(?rubriekCode, "920") ||
125              STRSTARTS(?rubriekCode, "930") ||
126              STRSTARTS(?rubriekCode, "WOmz") ||
127              STRSTARTS(?rubriekCode, "WRev") ||
128              STRSTARTS(?rubriekCode, "WRvi") ||
129              STRSTARTS(?rubriekCode, "WRgr") ||
130              STRSTARTS(?rubriekCode, "WWvv") ||
131              STRSTARTS(?rubriekCode, "WNoa") ||
132              STRSTARTS(?rubriekCode, "WLbe") ||
133              STRSTARTS(?rubriekCode, "WBat") ||
134              STRSTARTS(?rubriekCode, "WWiv") ||
135              STRSTARTS(?rubriekCode, "WOvb"),
136              ?geld_bedrag, 0) AS ?p_bedrag
137          )
138        }
139      }
140    }
141  }
142
143  # Bereken omzetgroei
144  BIND(
145    IF(?p_vergelijkingsjaar = 0,
146      "Ongedefinieerd"^^xsd:string,
147      xsd:decimal(?p_verslagjaar) / xsd:decimal(?p_vergelijkingsjaar)
148    ) AS ?omzetgroei_raw
149  )
150
151  VALUES ?Kental { "Omzetgroei" "Omzetgroei%" }
152
153  BIND(
154    IF(
155      DATATYPE(?omzetgroei_raw) = xsd:string,
156      ?omzetgroei_raw,
157      IF(
158        ?Kental = "Omzetgroei",
159        ROUND(?omzetgroei_raw * 100) / 100,
160        ROUND(?omzetgroei_raw * 10000) / 100
161      )
162    ) AS ?Waarde
163  )
164}
165ORDER BY ?Kental
166