Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
01-05-2026

Inwerkingtreding:
01-05-2026

8.2 Welk deel van de personeelskosten zijn voor PNIL?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 8.2
2# Parameters: ?jaar, ?kwartaal, ?zorgkantoor
3# Ontologie: versie 3.0 of nieuwer
4
5PREFIX onz-g: <http://purl.org/ozo/onz-g#>
6PREFIX onz-fin: <http://purl.org/ozo/onz-fin#>
7PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
8PREFIX onz-org: <http://purl.org/ozo/onz-org#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
11
12SELECT 
13    ?Indeling
14    (SUM(?bedrag_pnil) AS ?Kosten_PNIL_Euro) 
15    (SUM(?bedrag_pil) AS ?Kosten_PIL_Euro) 
16    (IF((SUM(?bedrag_pil)+SUM(?bedrag_pnil)) = 0, 
17        "ongedefinieerd", 
18        xsd:decimal(ROUND((SUM(?bedrag_pnil) / (SUM(?bedrag_pil)+SUM(?bedrag_pnil))) * 10000)) / 100
19    ) AS ?Procent_PNIL_tov_PIL_plus_PNIL)
20WHERE {
21    # Subquery: bepaal per grootboekpost de PIL/PNIL bedragen en optionele vestiging
22    {
23        SELECT DISTINCT ?grootboek_post ?bedrag_pil ?bedrag_pnil ?vestiging_label ?in_regio
24        WHERE {
25#             BIND(2024 AS ?jaar)
26#             BIND("Q3" AS ?kwartaal)
27#             BIND(onz-org:ZorgkantoorMenzis AS ?zorgkantoor)
28
29            BIND(IF(?kwartaal = 'Q1', xsd:date(CONCAT(STR(?jaar), '-01-01')),
30                    IF(?kwartaal = 'Q2', xsd:date(CONCAT(STR(?jaar), '-04-01')),
31                        IF(?kwartaal = 'Q3', xsd:date(CONCAT(STR(?jaar), '-07-01')),
32                            IF(?kwartaal = 'Q4', xsd:date(CONCAT(STR(?jaar), '-10-01')),
33                                '')))) AS ?start_periode)
34            BIND(?start_periode + "P3M"^^xsd:duration + "-P1D"^^xsd:duration AS ?eind_periode)
35
36            # Selecteer PNIL- of PIL-grootboekposten
37            {
38                # PNIL rubrieken (RGS + Prismant 418)
39                VALUES ?rubriek_pnil { 
40                    onz-fin:WBedOvpUik 
41                    onz-fin:WBedOvpUit 
42                    onz-fin:WBedOvpMaf 
43                    onz-fin:WBedOvpZzp
44                    onz-fin:WBedOvpPay 
45                    onz-fin:WBedOvpOip 
46                    onz-fin:418
47                }
48                ?grootboek_post a onz-fin:Grootboekpost ;
49                                onz-g:partOf ?pnil_desc ;
50                                onz-g:hasDate ?datum ;
51                                onz-fin:heeftGeldBedrag ?bedrag_pnil .
52                ?pnil_desc onz-g:partOf* ?rubriek_pnil .
53
54                # Exclusief: uitbesteed werk (WKrpKuw) mag niet meetellen bij PNIL
55                MINUS { ?pnil_desc onz-g:partOf* onz-fin:WKrpKuw . }
56
57                BIND(0 AS ?bedrag_pil)
58            } UNION {
59                # PIL rubrieken (RGS + Prismant)
60                VALUES ?rubriek_pil { 
61                    onz-fin:WPerLes 
62                    onz-fin:WPerSol 
63                    onz-fin:411 
64                    onz-fin:412 
65                    onz-fin:413
66                    onz-fin:414 
67                    onz-fin:415 
68                    onz-fin:416 
69                    onz-fin:419 
70                    onz-fin:420000 
71                    onz-fin:420100 
72                    onz-fin:422100 
73                    onz-fin:422300 
74                    onz-fin:422400
75                    onz-fin:422410 
76                    onz-fin:422500 
77                    onz-fin:422600 
78                    onz-fin:422900
79                }
80                ?grootboek_post a onz-fin:Grootboekpost ;
81                                onz-g:partOf ?pil_desc ;
82                                onz-g:hasDate ?datum ;
83                                onz-fin:heeftGeldBedrag ?bedrag_pil .
84                ?pil_desc onz-g:partOf* ?rubriek_pil .
85
86                # Exclusief: stagevergoedingen (WPerLesOlrSvg)
87                MINUS { ?pil_desc onz-g:partOf* onz-fin:WPerLesOlrSvg . }
88
89                BIND(0 AS ?bedrag_pnil)
90            }
91
92            FILTER (?datum >= ?start_periode && ?datum <= ?eind_periode)
93
94            # Koppeling grootboekpost → kostenplaats → vestiging is OPTIONEEL:
95            # posten op hoofdkantoor-niveau (bv. Specialist Ouderengeneeskunde, kwaliteitsadviseur) 
96            # zijn niet aan een vestiging gekoppeld en moeten alleen onder "Organisatie" vallen.
97            OPTIONAL {
98                ?grootboek_post onz-g:isAbout ?kosten_plaats .
99                ?kosten_plaats a onz-fin:Kostenplaats ;
100                               onz-g:isAbout ?vestiging_uri .
101                ?vestiging_uri a onz-org:Vestiging ;
102                               onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 .
103
104                # Leid 4-cijferige postcode af uit de 6-cijferige (laatste 2 karakters strippen)
105                BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
106
107                ?pc_gebied onz-g:identifiedBy ?postcode ;
108                           onz-g:partOf+ ?zk_regio .
109                ?zk_regio a onz-org:ZorgkantoorRegio .
110                ?zorgkantoor onz-g:hasOperatingRange ?zk_regio .
111
112                # Vestigingsnummer conform Pattern 3
113                ?vestiging_uri onz-g:identifiedBy ?vest_nr .
114                ?vest_nr a onz-org:Vestigingsnummer ;
115                         onz-g:hasDataValue ?vestiging_label .
116
117                BIND(true AS ?in_regio)
118            }
119        }
120    }
121
122    # gebruik VALUES + BIND(IF(...)) + FILTER,   
123    # voor vestiging resultaten in Fuseki
124    VALUES ?_rij { "vestiging" "organisatie" }
125    BIND(
126        IF(?_rij = "vestiging",
127            IF(BOUND(?vestiging_label) && BOUND(?in_regio),
128                ?vestiging_label,
129                "__SKIP__"),
130            "Organisatie (gecontracteerd + algemeen)")
131        AS ?Indeling
132    )
133    FILTER(?Indeling != "__SKIP__")
134}
135GROUP BY ?Indeling
136ORDER BY ?Indeling