Uitwisselprofiel IGJ Contextinformatie t.b.v. onaangekondigd inspectiebezoek

Over Uitwisselprofiel IGJ Contextinformatie t.b.v. onaangekondigd inspectiebezoek

1.2.0


Publicatiedatum:
27-10-2025

Inwerkingtreding:
27-10-2025

1.2.3. Wat is het aantal ingezette uren aan medewerkers met een zorgverlener functie per soort werkovereenkomst?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: IGJ 1.2.3
2# Parameters: ?peildatum, ?vestigingsnummer
3# Ontologie: versie 3.0.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#>
10PREFIX onz-plan: <http://purl.org/ozo/onz-plan#>
11
12SELECT
13    ?kwalificatie_niveau
14    (SUM(?alle_soorten_ok) AS ?Totaal_aantal_ingezette_uren_ZV)
15    (SUM(?onbepaald) AS ?Aantal_ingezette_uren_ZV_onbepaalde_tijd) 
16    (SUM(?bepaald) AS ?Aantal_ingezette_uren_ZV_bepaalde_tijd)
17    (SUM(?oproep) AS ?Aantal_ingezette_uren_ZV_oproep)
18    (SUM(?bbl) AS ?Aantal_ingezette_uren_ZV_BBL)
19    (SUM(?inhuur) AS ?Aantal_ingezette_uren_ZV_inhuur)
20    (SUM(?uitzend) AS ?Aantal_ingezette_uren_ZV_uitzend)
21    (SUM(?stage) AS ?Aantal_ingezette_uren_ZV_stage)
22    (SUM(?vrijwilliger) AS ?Aantal_ingezette_uren_ZV_vrijwilliger)
23WHERE {
24    {
25        SELECT DISTINCT ?kwalificatie_niveau {
26            {
27                ?functie
28                    a onz-pers:ZorgverlenerFunctie ;
29                    onz-g:hasQuality / onz-g:hasQualityValue ?functie_niveau .
30                ?functie_niveau
31                    a onz-pers:ODBKwalificatieWaarde ;
32                    rdfs:label ?kwalificatie_niveau .
33            } UNION {
34                BIND("Totaal aantal ingezette uren" AS ?kwalificatie_niveau)
35            }
36        }
37    }
38    OPTIONAL{
39        {
40            SELECT DISTINCT 
41                ?medewerker
42                ?kwalificatie_niveau
43                ?onbepaald ?bepaald ?oproep ?bbl ?inhuur ?uitzend ?stage ?vrijwilliger
44                ?alle_soorten_ok
45            {
46                # BIND("2023-05-19"^^xsd:date AS ?peildatum)
47                # BIND(?vestigingsnummer AS ?vestigingsnummer)  # "000001254" "000001287"
48                
49                BIND(?peildatum AS ?peildatum_argument)
50                
51                VALUES ?type_overeenkomst {
52                    onz-pers:ArbeidsOvereenkomstOnbepaaldeTijd
53                    onz-pers:ArbeidsOvereenkomstBepaaldeTijd
54                    onz-pers:OproepOvereenkomst
55                    onz-pers:ArbeidsOvereenkomstBBL
56                    onz-pers:InhuurOvereenkomst
57                    onz-pers:UitzendOvereenkomst
58                    onz-pers:StageOvereenkomst
59                    onz-pers:VrijwilligersOvereenkomst
60                }
61                
62                ?overeenkomst 
63                    a ?type_overeenkomst ;
64                    onz-pers:heeftOpdrachtnemer ?medewerker ;
65                    onz-g:hasPart ?afspraak .
66                ?afspraak
67                    onz-g:isAbout ?functie ;
68                    onz-g:startDatum ?start_afspraak .
69                OPTIONAL {?afspraak onz-g:eindDatum ?eind_afspraak}
70                #bind(onz-pers:Kwalificatieniveau_5 as ?functie_niveau)
71                ?functie
72                    a onz-pers:ZorgverlenerFunctie ;
73                    onz-g:hasQuality / onz-g:hasQualityValue ?functie_niveau .
74                 
75                # --- DAN-venster t.o.v. peildatum
76                BIND(xsd:dateTime(CONCAT(STR(?peildatum_argument), "T07:00:00")) AS ?start_dienstdag)
77                BIND(xsd:dateTime(?start_dienstdag + "P1D"^^xsd:dayTimeDuration) AS ?eind_dienstdag)
78    
79                FILTER(  # overlap tussen afspraak obv diensturen en peildatum diensturen
80                    xsd:dateTime(CONCAT(STR(?start_afspraak), "T07:00:00")) <= ?eind_dienstdag && 
81                    (xsd:dateTime(CONCAT(STR(?eind_afspraak), "T07:00:00")) + "P1D"^^xsd:dayTimeDuration >= ?start_dienstdag || !BOUND(?eind_afspraak))
82                )
83                
84                ?functie_niveau a onz-pers:ODBKwalificatieWaarde .
85                {
86                    ?functie_niveau
87                        a onz-pers:ODBKwalificatieWaarde ;
88                        rdfs:label ?kwalificatie_niveau .
89                } UNION {
90                    BIND("Totaal aantal ingezette uren" AS ?kwalificatie_niveau ) 
91                }
92                
93                ?inzet
94                    a onz-pers:GewerktePeriode ;
95                    onz-g:definedBy ?overeenkomst ;
96                    onz-g:hasPerdurantLocation ?werk_locatie ;
97                    onz-g:hasBeginTimeStamp ?start_werk ;
98                    onz-g:hasEndTimeStamp ?eind_werk .
99                
100                BIND(?start_werk < ?eind_dienstdag && ?start_dienstdag < ?eind_werk AS ?overlap)
101                FILTER(?overlap)
102                BIND(IF(?start_werk < ?start_dienstdag, ?start_dienstdag, ?start_werk) AS ?start_werk_corr)
103                BIND(IF(?eind_werk > ?eind_dienstdag, ?eind_dienstdag, ?eind_werk) AS ?eind_werk_corr)
104                
105                BIND(HOURS(?start_werk_corr) + (MINUTES(?start_werk_corr)/60.0) + (SECONDS(?start_werk_corr)/3600.0) AS ?start_decimal)
106                BIND(HOURS(?eind_werk_corr) + (MINUTES(?eind_werk_corr)/60.0)  + (SECONDS(?eind_werk_corr)/3600.0)  AS ?eind_decimal_temp)
107                BIND(?eind_decimal_temp * IF(?eind_decimal_temp <= 0, -1, 1) AS ?eind_decimal)
108                BIND(?eind_decimal - ?start_decimal AS ?gewerkte_uren_temp)
109                BIND(?gewerkte_uren_temp + IF(?gewerkte_uren_temp < 0, 24, 0) AS ?gewerkte_uren)
110                
111                ?werk_locatie onz-g:partOf* ?vestiging . # vind Vestiging die hoort bij werk_locatie
112                ?vestiging 
113                    a onz-org:Vestiging ;
114                    onz-g:identifiedBy ?vestigingsnummer_object .
115                ?vestigingsnummer_object
116                    a onz-org:Vestigingsnummer ;
117                    onz-g:hasDataValue ?vestigingsnummer . # filter vestiging op gegeven vestigingsnummer
118                BIND(IF (?type_overeenkomst = onz-pers:ArbeidsOvereenkomstOnbepaaldeTijd, ?gewerkte_uren, 0) AS ?onbepaald)
119                BIND(IF (?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBepaaldeTijd, ?gewerkte_uren, 0) AS ?bepaald)
120                BIND(IF (?type_overeenkomst = onz-pers:OproepOvereenkomst, ?gewerkte_uren, 0) AS ?oproep)
121                BIND(IF (?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBBL, ?gewerkte_uren, 0) AS ?bbl)
122                BIND(IF (?type_overeenkomst = onz-pers:InhuurOvereenkomst, ?gewerkte_uren, 0) AS ?inhuur)
123                BIND(IF (?type_overeenkomst = onz-pers:UitzendOvereenkomst, ?gewerkte_uren, 0) AS ?uitzend)
124                BIND(IF (?type_overeenkomst = onz-pers:StageOvereenkomst, ?gewerkte_uren, 0) AS ?stage)
125                BIND(IF (?type_overeenkomst = onz-pers:VrijwilligersOvereenkomst, ?gewerkte_uren, 0) AS ?vrijwilliger)
126                BIND(?gewerkte_uren AS ?alle_soorten_ok)
127            }
128        }
129    }
130}
131GROUP BY ?kwalificatie_niveau
132ORDER BY ?kwalificatie_niveau
133