Uitwisselprofiel ActiZ Belangenbehartiging

Over Uitwisselprofiel ActiZ Belangenbehartiging


Publicatiedatum:
18-12-2025

Inwerkingtreding:
01-02-2026

2.3. Wat is het percentage doorstroom van personeel in loondienst naar oplopend kwalificatieniveau?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: ActiZ 2.3
2# Parameters: ?jaar, ?kwartaal
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#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10
11
12SELECT
13    ("Organisatie" as ?Organisatie)
14    (SUM(?teller_waarde) AS ?Aantal_PIL_met_oplopend_kwalificatieniveau)
15    (IF(SUM(?noemer_waarde) = 0,
16        "Ongedefinieerd",
17        ROUND( (100.0 * SUM(?teller_waarde) / SUM(?noemer_waarde)) * 100 ) / 100
18       ) AS ?Percentage_PIL_met_oplopend_kwalificatieniveau)
19WHERE {
20    {
21        SELECT
22            ?werknemer
23            (IF(MAX(?op_peildatum_later) > 0 && MAX(?op_peildatum_eerder) > 0, 1, 0) AS ?noemer_waarde)
24            (IF(?noemer_waarde = 1 && MAX(?op_peildatum_eerder) < MAX(?op_peildatum_later), 1, 0) AS ?teller_waarde)
25        {
26            #BIND(2024 AS ?jaar)
27            #BIND("Q1" AS ?kwartaal)
28            BIND(IF(?kwartaal = 'Q1', xsd:date(CONCAT(STR(?jaar), '-01-01')),
29                IF(?kwartaal = 'Q2', xsd:date(CONCAT(STR(?jaar), '-04-01')),
30                IF(?kwartaal = 'Q3', xsd:date(CONCAT(STR(?jaar), '-07-01')),
31                IF(?kwartaal = 'Q4', xsd:date(CONCAT(STR(?jaar), '-10-01')),
32                '')))) AS ?p_start)
33            # Eerste dag van het opvolgende kwartaal
34            BIND( ?p_start + "P3M"^^xsd:duration AS ?p_next )
35
36            
37            # Alle werknemers met een zorgverlenerfunctie
38            ?overeenkomst
39                a onz-pers:ArbeidsOvereenkomst ;
40                onz-pers:heeftOpdrachtnemer ?werknemer ;
41                onz-g:hasPart ?overeenkomst_afspraak .
42            ?overeenkomst_afspraak
43                a onz-pers:WerkOvereenkomstAfspraak ;
44                onz-g:isAbout ?functie ;
45                onz-g:startDatum ?start_afspraak .
46            OPTIONAL {
47                ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak
48            }
49            ?functie 
50                a onz-pers:ZorgverlenerFunctie ;
51                onz-g:hasQuality /onz-g:hasQualityValue ?functie_niveau .
52            ?overeenkomst_afspraak
53                onz-g:isAbout ?locatie .
54            ?locatie 
55                a onz-g:StationaryArtifact ;
56                onz-g:partOf* ?vestiging_uri .
57            ?vestiging_uri a onz-org:Vestiging ;
58                onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 .
59            BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
60            ?pc_gebied 
61                onz-g:identifiedBy ?postcode ;
62                onz-g:partOf+ ?zk_regio .
63            ?zk_regio a onz-org:ZorgkantoorRegio .
64            ?zorgkantoor onz-g:hasOperatingRange ?zk_regio .
65        
66            # selecteer kwalificatie niveau en converteer naar integer
67            ?functie_niveau
68                a onz-pers:ODBKwalificatieWaarde ;
69                rdfs:label ?niveau .
70            BIND(xsd:integer(REPLACE(?niveau, "\\D+", "")) AS ?niveau_number)
71            
72            # filter medewerkers met kwalificatieniveau 1 t/m 6
73            FILTER((?niveau_number >=1) && (?niveau_number <=6))
74            
75            # Geldig op eerste dag van het kwartaal (noemer)
76            BIND(IF(?start_afspraak <= ?p_start && ((?eind_afspraak >= ?p_start)||(!BOUND(?eind_afspraak))), ?niveau_number, 0) AS ?op_peildatum_eerder)
77            
78            # Geldig op eerste dag van het volgende kwartaal (voor UITSTROOM moet dit 0 worden)
79            BIND(IF(?start_afspraak <= ?p_next && ((?eind_afspraak >= ?p_next)||(!BOUND(?eind_afspraak))), ?niveau_number, 0) AS ?op_peildatum_later)
80        }
81        GROUP BY ?werknemer
82    }
83}
84