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.4.1. Wat is het aantal ingezette personeelsleden met een zorgverlener functie?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: IGJ 1.4.1
2# Parameters: ?peildatum, ?vestigingsnummer
3# Ontologie: versie 3.0.0 of nieuwer
4
5PREFIX onz-g: <http://purl.org/ozo/onz-g#>
6PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
7PREFIX onz-zorg: <http://purl.org/ozo/onz-zorg#>
8PREFIX onz-org: <http://purl.org/ozo/onz-org#>
9PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
10PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
11PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
12
13SELECT
14    ?kwalificatieniveau
15    (SUM(COALESCE(?dag_dienst * ?pil, 0)) AS ?Aantal_ZV_PIL_dag)
16    (SUM(COALESCE(?avond_dienst * ?pil, 0)) AS ?Aantal_ZV_PIL_avond)
17    (SUM(COALESCE(?nacht_dienst * ?pil, 0)) AS ?Aantal_ZV_PIL_nacht)
18    (SUM(COALESCE(?dag_dienst * ?pnil, 0)) AS ?Aantal_ZV_PNIL_dag)
19    (SUM(COALESCE(?avond_dienst * ?pnil, 0)) AS ?Aantal_ZV_PNIL_avond)
20    (SUM(COALESCE(?nacht_dienst * ?pnil, 0)) AS ?Aantal_ZV_PNIL_nacht)
21{
22    # Dynamisch alleen Zorgverlenerfunctie kwalificatieniveaus ophalen
23    {
24        SELECT DISTINCT ?kwalificatieniveau {
25            {
26                ?functie
27                    a onz-pers:ZorgverlenerFunctie ;
28                    onz-g:hasQuality /onz-g:hasQualityValue ?functie_niveau .
29                ?functie_niveau
30                    a onz-pers:ODBKwalificatieWaarde ;
31                    rdfs:label ?kwalificatieniveau .
32            } UNION {
33                BIND("Totaal" AS ?kwalificatieniveau)
34            }
35        }
36    }
37
38    # Optioneel de werkelijke data matchen
39    OPTIONAL {
40        {
41            SELECT DISTINCT 
42                ?medewerker
43                ?kwalificatieniveau
44                ?dag_dienst
45                ?avond_dienst
46                ?nacht_dienst
47                ?pil
48                ?pnil
49            {
50                # BIND ("2023-09-15"^^xsd:date AS ?peildatum)
51                # BIND("000001254" AS ?vestigingsnummer)
52
53                # Werkperiode van alle zorgverlener functies
54                ?gewerkte_periode
55                    a onz-pers:GewerktePeriode ;
56                    onz-g:definedBy ?overeenkomst ;
57                    onz-g:hasPerdurantLocation ?werk_locatie ;
58                    onz-g:hasBeginTimeStamp ?start_werk .
59
60                BIND(HOURS(?start_werk) AS ?start_uur)
61
62                ?werk_locatie onz-g:partOf* ?vestiging . # vind Vestiging die hoort bij werk_locatie
63
64                ?vestiging 
65                    a onz-org:Vestiging ;
66                    onz-g:identifiedBy ?vestigingsnummer_object .
67                ?vestigingsnummer_object
68                    a onz-org:Vestigingsnummer ;
69                    onz-g:hasDataValue ?vestigingsnummer . # filter vestiging op gegeven vestigingsnummer
70
71                # Datum filter zo vroeg mogelijk (zoals in 1.4.2)
72                BIND(STRDT(SUBSTR(STR(?start_werk), 1, 10), xsd:date) AS ?start_werk_datum)
73
74                # Filter op het 24-uurs DAN-tijdslot
75                FILTER(
76                    (?start_werk_datum = ?peildatum && ?start_uur >= 7) ||
77                    (?start_werk_datum = (?peildatum + "P1D"^^xsd:duration) && ?start_uur < 7)
78                )
79
80                VALUES ?personeels_overeenkomst 
81                { 
82                    onz-pers:ArbeidsOvereenkomst
83                    onz-pers:UitzendOvereenkomst
84                    onz-pers:InhuurOvereenkomst
85                }
86
87                ?overeenkomst 
88                    a ?personeels_overeenkomst ;
89                    onz-pers:heeftOpdrachtnemer ?medewerker ;
90                    onz-g:hasPart ?overeenkomst_afspraak .
91
92                ?overeenkomst_afspraak
93                    a onz-pers:WerkOvereenkomstAfspraak ;
94                    onz-g:startDatum ?start_afspraak ;
95                    onz-g:isAbout ?functie .
96
97                OPTIONAL {?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak}
98                FILTER (?start_afspraak <= ?peildatum && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?peildatum))
99
100                ?functie
101                    a onz-pers:ZorgverlenerFunctie ;
102                    onz-g:hasQuality /onz-g:hasQualityValue ?functie_niveau .
103
104                ?functie_niveau
105                    a onz-pers:ODBKwalificatieWaarde .
106                {
107                    ?functie_niveau
108                        a onz-pers:ODBKwalificatieWaarde ;
109                        rdfs:label ?kwalificatieniveau .
110                } UNION {
111                    BIND("Totaal" AS ?kwalificatieniveau ) 
112                }
113
114                BIND(IF(?start_uur >= 7 && ?start_uur < 15, 1, 0) AS ?dag_dienst)
115                BIND(IF(?start_uur >= 15 && ?start_uur < 23, 1, 0) AS ?avond_dienst)
116                BIND(IF(?start_uur >= 23 || ?start_uur < 7, 1, 0) AS ?nacht_dienst)
117                BIND(IF (?personeels_overeenkomst = onz-pers:ArbeidsOvereenkomst, 1, 0) AS ?pil)
118                BIND(IF (?pil = 0, 1, 0) AS ?pnil)
119            }
120        }
121    }
122}
123GROUP BY ?kwalificatieniveau
124ORDER BY ?kwalificatieniveau
125