Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

21.1 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_bedrag) AS ?r_iv_totaal)
24            (SUM(?s_ii_bedrag) AS ?s_ii_totaal)
25        WHERE {
26            # BIND("2024-01-01"^^xsd:date AS ?startperiode)
27            # BIND("2024-12-31"^^xsd:date AS ?eindperiode)
28
29            # Grootboekrubrieken selecteren
30            {
31                SELECT DISTINCT ?rubriek WHERE {
32                    ?rubriek a onz-fin:Grootboekrubriek .
33                    FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
34                    FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
35                }
36            }
37            BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
38
39            ?grootboek_post a onz-fin:Grootboekpost ;
40                onz-g:partOf ?rubriek ;
41                onz-g:hasDate ?datum ;
42                onz-fin:heeftGeldBedrag ?geld_bedrag .
43
44            FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
45
46            BIND(
47                IF(
48                    STRSTARTS(?rubriekCode, "81") ||
49                    STRSTARTS(?rubriekCode, "82") ||
50                    STRSTARTS(?rubriekCode, "83") ||
51                    STRSTARTS(?rubriekCode, "89") ||
52                    STRSTARTS(?rubriekCode, "919") ||
53                    STRSTARTS(?rubriekCode, "920") ||
54                    STRSTARTS(?rubriekCode, "930"),
55                    ?geld_bedrag, 0
56                ) AS ?p_bedrag
57            )
58            BIND(
59                IF(
60                    STRSTARTS(?rubriekCode, "417") ||
61                    STRSTARTS(?rubriekCode, "418") ||
62                    STRSTARTS(?rubriekCode, "411") ||
63                    STRSTARTS(?rubriekCode, "412") ||
64                    STRSTARTS(?rubriekCode, "413") ||
65                    STRSTARTS(?rubriekCode, "414") ||
66                    STRSTARTS(?rubriekCode, "415") ||
67                    STRSTARTS(?rubriekCode, "416") ||
68                    STRSTARTS(?rubriekCode, "419") ||
69                    STRSTARTS(?rubriekCode, "420") ||
70                    STRSTARTS(?rubriekCode, "4221") ||
71                    STRSTARTS(?rubriekCode, "4223") ||
72                    STRSTARTS(?rubriekCode, "4224") ||
73                    STRSTARTS(?rubriekCode, "4225") ||
74                    STRSTARTS(?rubriekCode, "4229") ||
75                    STRSTARTS(?rubriekCode, "4226") ||
76                    STRSTARTS(?rubriekCode, "480") ||
77                    STRSTARTS(?rubriekCode, "481") ||
78                    STRSTARTS(?rubriekCode, "482") ||
79                    STRSTARTS(?rubriekCode, "483") ||
80                    STRSTARTS(?rubriekCode, "484") ||
81                    STRSTARTS(?rubriekCode, "423") ||
82                    STRSTARTS(?rubriekCode, "43") ||
83                    STRSTARTS(?rubriekCode, "44") ||
84                    STRSTARTS(?rubriekCode, "45") ||
85                    STRSTARTS(?rubriekCode, "46") ||
86                    STRSTARTS(?rubriekCode, "47") ||
87                    STRSTARTS(?rubriekCode, "486") ||
88                    STRSTARTS(?rubriekCode, "489") ||
89                    STRSTARTS(?rubriekCode, "905") ||
90                    STRSTARTS(?rubriekCode, "911") ||
91                    STRSTARTS(?rubriekCode, "912") ||
92                    STRSTARTS(?rubriekCode, "913") ||
93                    STRSTARTS(?rubriekCode, "914") ||
94                    STRSTARTS(?rubriekCode, "915") ||
95                    STRSTARTS(?rubriekCode, "921") ||
96                    STRSTARTS(?rubriekCode, "931"),
97                    ?geld_bedrag, 0
98                ) AS ?q_bedrag
99            )
100
101            BIND(IF(STRSTARTS(?rubriekCode, "904"), ?geld_bedrag, 0) AS ?r_i_bedrag)
102            BIND(IF(STRSTARTS(?rubriekCode, "900"), ?geld_bedrag, 0) AS ?r_ii_bedrag)
103            BIND(IF(STRSTARTS(?rubriekCode, "903"), ?geld_bedrag, 0) AS ?r_iii_bedrag)
104            BIND(IF(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901"), ?geld_bedrag, 0) AS ?r_iv_bedrag)
105            BIND(IF(STRSTARTS(?rubriekCode, "902"), ?geld_bedrag, 0) AS ?s_ii_bedrag)
106        }
107    }
108
109    # Berekening S Resultaat na belastingen
110    BIND(?p_opbrengsten - ?q_totaal + ?r_i_totaal + ?r_ii_totaal - ?r_iii_totaal - ?r_iv_totaal + ?s_ii_totaal AS ?s_resultaat)
111}
112