Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling over Macro Economische Vraagstukken en Arbeidsmarkt

Over Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling over Macro Economische Vraagstukken en Arbeidsmarkt


Publicatiedatum:
19-11-2025

Inwerkingtreding:
19-11-2025

2.21. Wat is het percentage uitstroom van zorggerelateerd personeel in loondienst?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: MEVA 2.21
2# Parameters: ?jaar
3# Ontologie: versie 3.0 of nieuwer
4
5PREFIX onz-g:   <http://purl.org/ozo/onz-g#>
6PREFIX onz-pers:<http://purl.org/ozo/onz-pers#>
7PREFIX onz-org: <http://purl.org/ozo/onz-org#>
8PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>
9
10SELECT
11  ?Periode
12  ("Organisatie" AS ?Indeling)
13  ?Aantal_PIL_met_zorgfunctie
14  ?Aantal_uitgestroomde_PIL_met_zorgfunctie
15  ?Percentage_uitstroom
16WHERE {
17  {
18    # Kwartaalgegevens
19    SELECT
20      ?Periode
21      (SUM(?noemer_waarde) AS ?Aantal_PIL_met_zorgfunctie)
22      (SUM(?teller_waarde) AS ?Aantal_uitgestroomde_PIL_met_zorgfunctie)
23      (IF(SUM(?noemer_waarde) = 0,
24          "Ongedefinieerd",
25          ROUND( (100.0 * SUM(?teller_waarde) / SUM(?noemer_waarde)) * 100 ) / 100
26         ) AS ?Percentage_uitstroom)
27    WHERE {
28      {
29        SELECT
30          ?Periode
31          ?werknemer
32          (IF(MAX(?op_peildatum_eerder) = 1, 1, 0) AS ?noemer_waarde)
33          (IF(MAX(?op_peildatum_eerder) = 1 && MAX(?op_peildatum_later) = 0, 1, 0) AS ?teller_waarde)
34        WHERE {
35          #BIND(2024 AS ?jaar)
36          VALUES ?kw { 1 2 3 4 }
37
38          # Eerste dag van het kwartaal
39          BIND( xsd:date(CONCAT(STR(?jaar), "-",
40            IF(?kw=1,"01-01", IF(?kw=2,"04-01", IF(?kw=3,"07-01","10-01")))
41          )) AS ?p_start )
42
43          # Eerste dag van het opvolgende kwartaal
44          BIND( ?p_start + "P3M"^^xsd:duration AS ?p_next )
45          BIND( CONCAT("Q", STR(?kw)) AS ?Periode )
46
47          # ArbeidsOvereenkomst + afspraken zonder zorgverlenersfunctie
48          ?overeenkomst
49            a onz-pers:ArbeidsOvereenkomst ;
50            onz-pers:heeftOpdrachtnemer ?werknemer ;
51            onz-g:hasPart ?overeenkomst_afspraak .
52          ?overeenkomst_afspraak
53            a onz-pers:WerkOvereenkomstAfspraak ;
54            onz-g:isAbout ?functie ;
55            onz-g:startDatum ?start_afspraak .
56          OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak . }
57                    
58 		?functie 
59            a onz-pers:ZorgverlenerFunctie .
60
61          BIND( IF(?start_afspraak <= ?p_next && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?p_next), 1, 0) AS ?op_peildatum_later )
62          BIND( IF(?start_afspraak <= ?p_start  && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?p_start ), 1, 0) AS ?op_peildatum_eerder )
63        }
64        GROUP BY ?Periode ?werknemer
65      }
66    }
67    GROUP BY ?Periode
68  }
69  UNION
70  {
71    # Gemiddelde per jaar
72    SELECT
73        ("Gemiddelde per jaar" AS ?Periode)
74      (ROUND(AVG(?Aantal_PIL_met_zorgfunctie_temp) * 100) / 100 AS ?Aantal_PIL_met_zorgfunctie)
75      (ROUND(AVG(?Aantal_uitgestroomde_PIL_met_zorgfunctie_temp) * 100) / 100 AS ?Aantal_uitgestroomde_PIL_met_zorgfunctie)
76      (ROUND(AVG(?Percentage_uitstroom_temp) * 100) / 100 AS ?Percentage_uitstroom)
77    WHERE {
78      {
79        SELECT
80          ?Periode_temp
81          (SUM(?noemer_waarde) AS ?Aantal_PIL_met_zorgfunctie_temp)
82          (SUM(?teller_waarde) AS ?Aantal_uitgestroomde_PIL_met_zorgfunctie_temp)
83          (IF(SUM(?noemer_waarde) = 0,
84              0,
85              (100.0 * SUM(?teller_waarde) / SUM(?noemer_waarde))
86             ) AS ?Percentage_uitstroom_temp)
87        WHERE {
88          {
89            SELECT
90              ?Periode_temp
91              ?werknemer
92              (IF(MAX(?op_peildatum_eerder) = 1, 1, 0) AS ?noemer_waarde)
93              (IF(MAX(?op_peildatum_eerder) = 1 && MAX(?op_peildatum_later) = 0, 1, 0) AS ?teller_waarde)
94            WHERE {
95              #BIND(2024 AS ?jaar)
96              VALUES ?kw { 1 2 3 4 }
97
98              # Eerste dag van het kwartaal
99              BIND( xsd:date(CONCAT(STR(?jaar), "-",
100                IF(?kw=1,"01-01", IF(?kw=2,"04-01", IF(?kw=3,"07-01","10-01")))
101              )) AS ?p_start )
102
103              # Eerste dag van het opvolgende kwartaal
104              BIND( ?p_start + "P3M"^^xsd:duration AS ?p_next )
105              BIND( CONCAT("Q", STR(?kw)) AS ?Periode_temp )
106
107              # ArbeidsOvereenkomst + afspraken zonder zorgverlenersfunctie
108              ?overeenkomst
109                a onz-pers:ArbeidsOvereenkomst ;
110                onz-pers:heeftOpdrachtnemer ?werknemer ;
111                onz-g:hasPart ?overeenkomst_afspraak .
112              ?overeenkomst_afspraak
113                a onz-pers:WerkOvereenkomstAfspraak ;
114                onz-g:isAbout ?functie ;
115                onz-g:startDatum ?start_afspraak .
116              OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak . }
117
118              ?functie 
119                    a onz-pers:ZorgverlenerFunctie .
120
121       		 BIND( IF(?start_afspraak <= ?p_next && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?p_next), 1, 0) AS ?op_peildatum_later )
122         	 BIND( IF(?start_afspraak <= ?p_start  && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?p_start ), 1, 0) AS ?op_peildatum_eerder )
123            }
124            GROUP BY ?Periode_temp ?werknemer
125          }
126        }
127        GROUP BY ?Periode_temp
128      }
129    }
130  }
131}
132ORDER BY 
133  (IF(?Periode = "Gemiddelde per jaar", 5, 
134     IF(?Periode = "Q1", 1, 
135        IF(?Periode = "Q2", 2, 
136           IF(?Periode = "Q3", 3, 4)))))