Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
15-07-2026

Inwerkingtreding:
16-07-2026

21.1 Rentabiliteit - wat is de winstratio?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 21.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
10    ("Winstratio" AS ?Kental)
11    (IF(?p_opbrengsten = 0,
12    "Ongedefinieerd"^^xsd:string,
13    ROUND((?s_resultaat / ?p_opbrengsten) * 100) / 100
14) AS ?Waarde)
15WHERE {
16    {
17        # Bereken alle benodigde totalen in één scan
18        SELECT
19            (SUM(?p_bedrag) AS ?p_opbrengsten)   # P totaal
20            (SUM(?q_bedrag) AS ?q_totaal)        # Q totaal
21            (SUM(?r_i_bedrag) AS ?r_i_totaal)
22            (SUM(?r_ii_bedrag) AS ?r_ii_totaal)
23            (SUM(?r_iii_bedrag) AS ?r_iii_totaal)
24            (SUM(?r_iv_plus_bedrag) AS ?r_iv_plus_totaal)
25            (SUM(?r_iv_min_bedrag) AS ?r_iv_min_totaal)
26            (SUM(?s_i_bedrag) AS ?s_i_totaal)
27            (SUM(?s_ii_bedrag) AS ?s_ii_totaal)
28        WHERE {
29            #  BIND("2024-01-01"^^xsd:date AS ?startperiode)
30            #  BIND("2024-12-31"^^xsd:date AS ?eindperiode)
31
32            ?grootboek_post a onz-fin:Grootboekpost ;
33                onz-g:partOf ?rubriek ;
34                onz-g:hasDate ?datum ;
35                onz-fin:heeftGeldBedrag ?geld_bedrag .
36
37            # Match directe ouder: Grootboekrekening (RGS) of Grootboekrubriek (Prismant)
38            {
39                { ?rubriek a onz-fin:Grootboekrekening }
40                UNION
41                { ?rubriek a onz-fin:Grootboekrubriek }
42            }
43            # Anti-dubbeltelling: houd alleen het bladniveau (geen transitive ancestors)
44            FILTER NOT EXISTS {
45                ?grootboek_post onz-g:partOf ?child .
46                ?child onz-g:partOf ?rubriek .
47                FILTER(?child != ?rubriek)
48                { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } }
49            }
50            FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
51            BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
52
53            FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
54
55            # --- P: Bedragen voor eindtotaalberekening ---
56            # Prismant: P.I=81, P.IV=82/83/89/919/920/930
57            # RGS: P.I=WOmz/WRev/WRvi/WRgr/WWvv/WNoa/WLbe/WBat, P.II/III=WWiv, P.IV=WOvb
58            BIND(
59                IF(
60                    STRSTARTS(?rubriekCode, "81") ||
61                    STRSTARTS(?rubriekCode, "82") ||
62                    STRSTARTS(?rubriekCode, "83") ||
63                    STRSTARTS(?rubriekCode, "89") ||
64                    STRSTARTS(?rubriekCode, "919") ||
65                    STRSTARTS(?rubriekCode, "920") ||
66                    STRSTARTS(?rubriekCode, "930") ||
67                    STRSTARTS(?rubriekCode, "WOmz") ||
68                    STRSTARTS(?rubriekCode, "WRev") ||
69                    STRSTARTS(?rubriekCode, "WRvi") ||
70                    STRSTARTS(?rubriekCode, "WRgr") ||
71                    STRSTARTS(?rubriekCode, "WWvv") ||
72                    STRSTARTS(?rubriekCode, "WNoa") ||
73                    STRSTARTS(?rubriekCode, "WLbe") ||
74                    STRSTARTS(?rubriekCode, "WBat") ||
75                    STRSTARTS(?rubriekCode, "WWiv") ||
76                    STRSTARTS(?rubriekCode, "WOvb"),
77                    ?geld_bedrag, 0) AS ?p_bedrag
78            )
79            # --- Q: Diverse kostenrubrieken ---
80            # Prismant: 417/418/411-419/420/4221/4223-4225/4229/4226/480-484/423/43-47/486/489/905/911-915/921/931
81            # RGS: WKpr/WPer/WAfs/WWvi/WBwv/WBed/WOok/WKol/WVkf/WAkf
82            BIND(
83                IF(
84                    STRSTARTS(?rubriekCode, "417") ||
85                    STRSTARTS(?rubriekCode, "418") ||
86                    STRSTARTS(?rubriekCode, "411") ||
87                    STRSTARTS(?rubriekCode, "412") ||
88                    STRSTARTS(?rubriekCode, "413") ||
89                    STRSTARTS(?rubriekCode, "414") ||
90                    STRSTARTS(?rubriekCode, "415") ||
91                    STRSTARTS(?rubriekCode, "416") ||
92                    STRSTARTS(?rubriekCode, "419") ||
93                    STRSTARTS(?rubriekCode, "420") ||
94                    STRSTARTS(?rubriekCode, "4221") ||
95                    STRSTARTS(?rubriekCode, "4223") ||
96                    STRSTARTS(?rubriekCode, "4224") ||
97                    STRSTARTS(?rubriekCode, "4225") ||
98                    STRSTARTS(?rubriekCode, "4229") ||
99                    STRSTARTS(?rubriekCode, "4226") ||
100                    STRSTARTS(?rubriekCode, "480") ||
101                    STRSTARTS(?rubriekCode, "481") ||
102                    STRSTARTS(?rubriekCode, "482") ||
103                    STRSTARTS(?rubriekCode, "483") ||
104                    STRSTARTS(?rubriekCode, "484") ||
105                    STRSTARTS(?rubriekCode, "423") ||
106                    STRSTARTS(?rubriekCode, "43") ||
107                    STRSTARTS(?rubriekCode, "44") ||
108                    STRSTARTS(?rubriekCode, "45") ||
109                    STRSTARTS(?rubriekCode, "46") ||
110                    STRSTARTS(?rubriekCode, "47") ||
111                    STRSTARTS(?rubriekCode, "486") ||
112                    STRSTARTS(?rubriekCode, "489") ||
113                    STRSTARTS(?rubriekCode, "905") ||
114                    STRSTARTS(?rubriekCode, "911") ||
115                    STRSTARTS(?rubriekCode, "912") ||
116                    STRSTARTS(?rubriekCode, "913") ||
117                    STRSTARTS(?rubriekCode, "914") ||
118                    STRSTARTS(?rubriekCode, "915") ||
119                    STRSTARTS(?rubriekCode, "921") ||
120                    STRSTARTS(?rubriekCode, "931") ||
121                    STRSTARTS(?rubriekCode, "WKpr") ||
122                    STRSTARTS(?rubriekCode, "WPer") ||
123                    STRSTARTS(?rubriekCode, "WAfs") ||
124                    STRSTARTS(?rubriekCode, "WWvi") ||
125                    STRSTARTS(?rubriekCode, "WBwv") ||
126                    STRSTARTS(?rubriekCode, "WBed") ||
127                    STRSTARTS(?rubriekCode, "WOok") ||
128                    STRSTARTS(?rubriekCode, "WKol") ||
129                    STRSTARTS(?rubriekCode, "WVkf") ||
130                    STRSTARTS(?rubriekCode, "WAkf"),
131                    ?geld_bedrag, 0) AS ?q_bedrag
132            )
133            # R.I: Prismant=904, RGS=WOvt
134            BIND(IF(STRSTARTS(?rubriekCode, "904") || STRSTARTS(?rubriekCode, "WOvt"), ?geld_bedrag, 0) AS ?r_i_bedrag)
135            # R.II: Prismant=900, RGS=WFbeRlm
136            BIND(IF(STRSTARTS(?rubriekCode, "900") || STRSTARTS(?rubriekCode, "WFbeRlm"), ?geld_bedrag, 0) AS ?r_ii_bedrag)
137            # R.III: Prismant=903, RGS=WWfa/WVhe
138            BIND(IF(STRSTARTS(?rubriekCode, "903") || STRSTARTS(?rubriekCode, "WWfa") || STRSTARTS(?rubriekCode, "WVhe"), ?geld_bedrag, 0) AS ?r_iii_bedrag)
139            # R.IV: Prismant=485/901, RGS=WFbe-WFbeRlm
140            BIND(IF(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901") || STRSTARTS(?rubriekCode, "WFbe"), ?geld_bedrag, 0) AS ?r_iv_plus_bedrag)
141            BIND(IF(STRSTARTS(?rubriekCode, "WFbeRlm"), ?geld_bedrag, 0) AS ?r_iv_min_bedrag)
142            # S.I: Prismant=n.v.t., RGS=WBel
143            BIND(IF(STRSTARTS(?rubriekCode, "WBel"), ?geld_bedrag, 0) AS ?s_i_bedrag)
144            # S.II: Prismant=902, RGS=WRed/WAad
145            BIND(IF(STRSTARTS(?rubriekCode, "902") || STRSTARTS(?rubriekCode, "WRed") || STRSTARTS(?rubriekCode, "WAad"), ?geld_bedrag, 0) AS ?s_ii_bedrag)
146        }
147    }
148
149    # Berekening S Resultaat na belastingen
150    BIND(?p_opbrengsten + ?q_totaal + ?r_i_totaal + ?r_ii_totaal + ?r_iii_totaal + (?r_iv_plus_totaal - ?r_iv_min_totaal) + ?s_i_totaal + ?s_ii_totaal AS ?s_resultaat)
151}
152