Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
18-06-2026

Inwerkingtreding:
18-06-2026

24.5 Overig - wat is de arbeidsintensiteit PIL & PNIL?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 24.5
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 ?Kental ?Waarde WHERE {
10  {
11    SELECT
12      ( 
13        IF(
14          BOUND(?p_totaal) && (?p_totaal != 0),
15          xsd:decimal(?q_bedragen) / xsd:decimal(?p_totaal) * -1,
16          "Ongedefinieerd"
17        ) AS ?aipnilpil         # rauwe ratio (zonder afronding)
18      )
19
20    WHERE {
21      {
22        # DEEL 1: Eindtotalen berekenen
23        SELECT (SUM(?p_bedrag) AS ?p_totaal) (SUM(?q_bedrag) AS ?q_bedragen)
24        WHERE {
25          #BIND("2024-01-01"^^xsd:date AS ?startperiode)                         
26          #BIND("2024-12-31"^^xsd:date AS ?eindperiode)               
27         
28        {
29          SELECT DISTINCT ?rubriek WHERE {
30              { ?rubriek a onz-fin:Grootboekrubriek }
31              UNION
32              { ?rubriek a onz-fin:Grootboekrekening }
33              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
34          }
35        }
36
37        # Koppel grootboekposten aan rubrieken binnen meetperiode
38        ?grootboek_post a onz-fin:Grootboekpost ;
39          onz-g:partOf ?rubriek ;
40          onz-g:hasDate ?datum ;
41          onz-fin:heeftGeldBedrag ?geld_bedrag .
42
43
44        # Anti-dubbeltelling: houd alleen het bladniveau (geen transitive ancestors)
45        FILTER NOT EXISTS {
46            ?grootboek_post onz-g:partOf ?child .
47            ?child onz-g:partOf ?rubriek .
48            FILTER(?child != ?rubriek)
49            { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } }
50        }
51
52
53      BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
54
55      FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
56
57      # P-bedragen
58      # Prismant: P.I=81, P.IV=82/83/89/919/920/930
59      # RGS: P.I=WOmz/WRev/WRvi/WRgr/WWvv/WNoa/WLbe/WBat, P.II = WWiv minus WWivGvp, III=WWivGvp, P.IV=WOvb
60      # voor de som P volstaat het om WWiv hier te zetten want zo wordt WWivGvp ook maar 1x geteld.
61      # We hebben hier alleen p totaal nodig dus minus logica voor specifieke subposten niet nodig
62      BIND(
63        IF(
64          STRSTARTS(?rubriekCode, "81") ||
65          STRSTARTS(?rubriekCode, "82") ||
66          STRSTARTS(?rubriekCode, "83") ||
67          STRSTARTS(?rubriekCode, "89") ||
68          STRSTARTS(?rubriekCode, "919") ||
69          STRSTARTS(?rubriekCode, "920") ||
70          STRSTARTS(?rubriekCode, "930") ||
71          STRSTARTS(?rubriekCode, "WOmz") ||
72          STRSTARTS(?rubriekCode, "WRev") ||
73          STRSTARTS(?rubriekCode, "WRvi") ||
74          STRSTARTS(?rubriekCode, "WRgr") ||
75          STRSTARTS(?rubriekCode, "WWvv") ||
76          STRSTARTS(?rubriekCode, "WNoa") ||
77          STRSTARTS(?rubriekCode, "WLbe") ||
78          STRSTARTS(?rubriekCode, "WBat") ||
79          STRSTARTS(?rubriekCode, "WWiv") ||
80          STRSTARTS(?rubriekCode, "WOvb"),
81          ?geld_bedrag, 0) AS ?p_bedrag)
82
83      # --- Q: Diverse kostenrubrieken ---
84      # Q.I RGS: WKpr minus WKprKuw
85      # Q.II: 417/418 (Kosten uitbesteed werk en andere externe kosten), RGS: WKprKuw
86      # Q.III: 411-419 (Lonen en salarissen), RGS: WPer minus WPerSol minus WPerPen
87      # Q.IV: 420/4221/4223-4225/4229 (Sociale lasten), RGS: WPerSol
88      # Q.V: 4226 (Afschrijvingen), RGS: WPerPen
89      # Q.VI: 480-484 (Afschrijvingen op immateriële vaste activa en materiële vaste activa), RGS: WAfs
90      # Q.VII: RGS: WWvi
91      # Q.VIII: RGS: WBwv
92      # Q.IX: 423/43-47/486/489/905/911-915/921/931 (Overige bedrijfskosten), RGS: WBed/WOok/WKol/WVkf/WAkf
93      # ook hier volstaat het voor de som van Q om alleen WPer te noemen zodat WPerSol en WPerPen niet dubbel geteld worden
94      # in deze indicator alleen II tm V nodig ! 
95      BIND(
96        IF(
97          STRSTARTS(?rubriekCode, "417") ||
98          STRSTARTS(?rubriekCode, "418") ||
99          STRSTARTS(?rubriekCode, "411") ||
100          STRSTARTS(?rubriekCode, "412") ||
101          STRSTARTS(?rubriekCode, "413") ||
102          STRSTARTS(?rubriekCode, "414") ||
103          STRSTARTS(?rubriekCode, "415") ||
104          STRSTARTS(?rubriekCode, "416") ||
105          STRSTARTS(?rubriekCode, "419") ||
106          STRSTARTS(?rubriekCode, "420") ||
107          STRSTARTS(?rubriekCode, "4221") ||
108          STRSTARTS(?rubriekCode, "4223") ||
109          STRSTARTS(?rubriekCode, "4224") ||
110          STRSTARTS(?rubriekCode, "4225") ||
111          STRSTARTS(?rubriekCode, "4229") ||
112          STRSTARTS(?rubriekCode, "4226") ||
113          STRSTARTS(?rubriekCode, "WKprKuw") ||
114          STRSTARTS(?rubriekCode, "WPer") ,
115          ?geld_bedrag, 0) AS ?q_bedrag)
116        }
117      }
118    }
119  }
120  VALUES ?Kental {
121    "Arbeidsintensiteit PIL & PNIL"
122    "Arbeidsintensiteit PIL & PNIL%"
123  }
124
125  # ratio met 2 decimalen en percentage met 2 decimalen (eigenlijk 4 decimalen nodig omdat je keer 100 doet)
126  BIND(
127    IF(DATATYPE(?aipnilpil) = xsd:string,
128        "Ongedefinieerd"^^xsd:string,
129        IF(?Kental = "Arbeidsintensiteit PIL & PNIL",
130            # Decimale weergave: afronden op 2 decimalen
131            ROUND(xsd:decimal(?aipnilpil) * 100) / 100,
132            # Procentuele weergave:
133            # Volgorde van executie: (1) ×10000 schalen  (2) ROUND afronden  (3) /100 terugschalen → percentage met 2 decimalen
134            ROUND(xsd:decimal(?aipnilpil) * 10000) / 100
135        )
136        ) AS ?Waarde )
137
138}