Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
18-06-2026

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