Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
08-09-2026

Inwerkingtreding:
09-09-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:WKprKuw
41                    onz-fin:418
42                }
43                ?grootboek_post a onz-fin:Grootboekpost ;
44                                onz-g:partOf ?pnil_desc ;
45                                onz-g:hasDate ?datum ;
46                                onz-fin:heeftGeldBedrag ?bedrag_pnil .
47                ?pnil_desc onz-g:partOf* ?rubriek_pnil .
48
49
50                BIND(0 AS ?bedrag_pil)
51            } UNION {
52                # PIL rubrieken (RGS + Prismant)
53                VALUES ?rubriek_pil { 
54                    onz-fin:WPerLes 
55                    onz-fin:WPerSol 
56                    onz-fin:411 
57                    onz-fin:412 
58                    onz-fin:413
59                    onz-fin:414 
60                    onz-fin:415 
61                    onz-fin:416 
62                    onz-fin:419 
63                    onz-fin:420000 
64                    onz-fin:420100 
65                    onz-fin:422100 
66                    onz-fin:422300 
67                    onz-fin:422400
68                    onz-fin:422410 
69                    onz-fin:422500 
70                    onz-fin:422600 
71                    onz-fin:422900
72                }
73                ?grootboek_post a onz-fin:Grootboekpost ;
74                                onz-g:partOf ?pil_desc ;
75                                onz-g:hasDate ?datum ;
76                                onz-fin:heeftGeldBedrag ?bedrag_pil .
77                ?pil_desc onz-g:partOf* ?rubriek_pil .
78
79
80                BIND(0 AS ?bedrag_pnil)
81            }
82
83            FILTER (?datum >= ?start_periode && ?datum <= ?eind_periode)
84
85            # Koppeling grootboekpost → kostenplaats → vestiging is OPTIONEEL:
86            # posten op hoofdkantoor-niveau (bv. Specialist Ouderengeneeskunde, kwaliteitsadviseur) 
87            # zijn niet aan een vestiging gekoppeld en moeten alleen onder "Organisatie" vallen.
88            OPTIONAL {
89                ?grootboek_post onz-g:isAbout ?kosten_plaats .
90                ?kosten_plaats a onz-fin:Kostenplaats ;
91                               onz-g:isAbout ?vestiging_uri .
92                ?vestiging_uri a onz-org:Vestiging ;
93                               onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 .
94
95                # Leid 4-cijferige postcode af uit de 6-cijferige (laatste 2 karakters strippen)
96                BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
97
98                ?pc_gebied onz-g:identifiedBy ?postcode ;
99                           onz-g:partOf+ ?zk_regio .
100                ?zk_regio a onz-org:ZorgkantoorRegio .
101                ?zorgkantoor onz-g:hasOperatingRange ?zk_regio .
102
103                # Vestigingsnummer conform Pattern 3
104                ?vestiging_uri onz-g:identifiedBy ?vest_nr .
105                ?vest_nr a onz-org:Vestigingsnummer ;
106                         onz-g:hasDataValue ?vestiging_label .
107
108                BIND(true AS ?in_regio)
109            }
110        }
111    }
112
113    # gebruik VALUES + BIND(IF(...)) + FILTER,   
114    # voor vestiging resultaten in Fuseki
115    VALUES ?_rij { "vestiging" "organisatie" }
116    BIND(
117        IF(?_rij = "vestiging",
118            IF(BOUND(?vestiging_label) && BOUND(?in_regio),
119                ?vestiging_label,
120                "__SKIP__"),
121            "Organisatie (gecontracteerd + algemeen)")
122        AS ?Indeling
123    )
124    FILTER(?Indeling != "__SKIP__")
125}
126GROUP BY ?Indeling
127ORDER BY ?Indeling