Uitwisselprofiel ActiZ Belangenbehartiging

Over Uitwisselprofiel ActiZ Belangenbehartiging


Publicatiedatum:
18-09-2025

Inwerkingtreding:
18-09-2025

2.11. Wat is het aantal werknemers met een zorgverlener functie per kwalificatieniveau per soort werkovereenkomst?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: ActiZ 2.11
2# Parameters: ?jaar, ?kwartaal
3# Ontologie: versie 3.0 of nieuwer
4
5PREFIX onz-org: <http://purl.org/ozo/onz-org#>
6PREFIX onz-g: <http://purl.org/ozo/onz-g#>
7PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
8PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
9PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
10
11SELECT  ?vestiging
12        ?zk_regio_code
13		?kwalificatie_niveau
14        (COUNT(DISTINCT ?persoon_onbepaald) AS ?Aantal_ZV_medewerkers_onbepaalde_tijd) 
15        (COUNT(DISTINCT ?persoon_bepaald) AS ?Aantal_ZV_medewerkers_bepaalde_tijd)
16        (COUNT(DISTINCT ?persoon_oproep) AS ?Aantal_ZV_medewerkers_oproep)
17        (COUNT(DISTINCT ?persoon_bbl) AS ?Aantal_ZV_medewerkers_BBL) 
18        (COUNT(DISTINCT ?persoon_inhuur)  AS ?Aantal_ZV_medewerkers_inhuur)
19        (COUNT(DISTINCT ?persoon_uitzend) AS ?Aantal_ZV_medewerkers_uitzend)
20        (COUNT(DISTINCT ?persoon_stage)  AS ?Aantal_ZV_medewerkers_stage)
21        (COUNT(DISTINCT ?persoon_vrijwilliger) AS ?Aantal_ZV_medewerkers_vrijwilliger)
22		(COUNT(DISTINCT ?persoon) AS ?Totaal)
23WHERE {
24    # Parameters / periode
25    #BIND(2024 AS ?jaar)
26    #BIND("Q1" AS ?kwartaal)
27    BIND(
28    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 ?start_periode
33    )
34    BIND(?start_periode + "P3M"^^xsd:duration + "-P1D"^^xsd:duration AS ?eind_periode)
35
36    # Overeenkomsten & afspraken
37    ?type_overeenkomst rdfs:subClassOf onz-pers:WerkOvereenkomst .
38    FILTER(?type_overeenkomst != onz-pers:ArbeidsOvereenkomst && ?type_overeenkomst != onz-pers:WerkOvereenkomst)
39
40    ?overeenkomst a ?type_overeenkomst ;
41                onz-pers:heeftOpdrachtnemer ?persoon ;
42                onz-g:hasPart ?overeenkomst_afspraak .
43
44    ?overeenkomst_afspraak a onz-pers:WerkOvereenkomstAfspraak ;
45                            onz-g:startDatum ?start_afspraak ;
46                            onz-g:isAbout ?functie, ?locatie .
47    OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak }
48
49    FILTER( ?start_afspraak <= ?eind_periode && ( !BOUND(?eind_afspraak) || ?eind_afspraak >= ?start_periode ) )
50
51    ?functie a onz-pers:ZorgverlenerFunctie ;
52            onz-g:hasQuality / onz-g:hasQualityValue ?functie_niveau .
53    ?functie_niveau a onz-pers:ODBKwalificatieWaarde ;
54                    rdfs:label ?kwalificatie_niveau .
55
56    # Koppel locatie -> vestiging
57    ?locatie a onz-g:StationaryArtifact ;
58            onz-g:partOf* ?vestiging_uri .
59
60    {
61    # Tak 1: echte vestiging + afleiding zorgkantoorregio
62    ?vestiging_uri a onz-org:Vestiging ;
63                    onz-g:identifiedBy ?vest_nr ;
64                    onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 .
65    ?vest_nr a onz-org:Vestigingsnummer ; onz-g:hasDataValue ?vestiging .
66
67    BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
68    ?pc_gebied onz-g:identifiedBy ?postcode ;
69                onz-g:partOf+ ?zk_regio .
70    ?zk_regio a onz-org:ZorgkantoorRegio .
71    }
72    UNION
73    {
74    # Tak 2: totaal organisatie, laat ?zk_regio ongebonden (leeg in output)
75    ?vestiging_uri onz-org:vestigingVan ?organisatie_uri .
76    BIND("Totaal organisatie" AS ?vestiging)
77    # Let op: GEEN patronen die ?zk_regio binden in deze tak
78    }
79
80    BIND(
81    IF(BOUND(?zk_regio),
82        STRAFTER(STR(?zk_regio), "/onz-org/"),
83        ?unbound
84    ) AS ?zk_regio_code
85    )
86
87    # Type-specifieke projecties (Fuseki-vriendelijk)
88    BIND(IF(?type_overeenkomst = onz-pers:ArbeidsOvereenkomstOnbepaaldeTijd, ?persoon, ?unbound) AS ?persoon_onbepaald)
89    BIND(IF(?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBepaaldeTijd,   ?persoon, ?unbound) AS ?persoon_bepaald)
90    BIND(IF(?type_overeenkomst = onz-pers:OproepOvereenkomst,               ?persoon, ?unbound) AS ?persoon_oproep)
91    BIND(IF(?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBBL,           ?persoon, ?unbound) AS ?persoon_bbl)
92    BIND(IF(?type_overeenkomst = onz-pers:InhuurOvereenkomst,               ?persoon, ?unbound) AS ?persoon_inhuur)
93    BIND(IF(?type_overeenkomst = onz-pers:UitzendOvereenkomst,              ?persoon, ?unbound) AS ?persoon_uitzend)
94    BIND(IF(?type_overeenkomst = onz-pers:StageOvereenkomst,                ?persoon, ?unbound) AS ?persoon_stage)
95    BIND(IF(?type_overeenkomst = onz-pers:VrijwilligersOvereenkomst,        ?persoon, ?unbound) AS ?persoon_vrijwilliger)
96}
97GROUP BY ?vestiging ?zk_regio_code ?kwalificatie_niveau
98ORDER BY ?vestiging ?zk_regio_code ?kwalificatie_niveau