Uitwisselprofiel IGJ Contextinformatie t.b.v. aangekondigd inspectiebezoek

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

1.0.0-RC1-acc


Publicatiedatum:
01-09-2025

Inwerkingtreding:
01-09-2025

1.2.1. Wat is het aantal medewerkers met een zorgverlener functie?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: IGJ 1.2.1
2# Parameters: ?vestigingsnummer, ?peildatum 
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 xsd: <http://www.w3.org/2001/XMLSchema#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10
11SELECT ?kwalificatie_niveau
12       (COUNT(DISTINCT ?persoon) AS ?Totaal)
13       (COUNT(?persoon_onbepaald) AS ?Aantal_ZV_medewerkers_onbepaalde_tijd)
14       (COUNT(?persoon_bepaald) AS ?Aantal_ZV_medewerkers_bepaalde_tijd)
15       (COUNT(?persoon_oproep) AS ?Aantal_ZV_medewerkers_oproep)
16       (COUNT(?persoon_bbl) AS ?Aantal_ZV_medewerkers_BBL)
17       (COUNT(?persoon_inhuur) AS ?Aantal_ZV_medewerkers_inhuur)
18       (COUNT(?persoon_uitzend) AS ?Aantal_ZV_medewerkers_uitzend)
19       (COUNT(?persoon_stage) AS ?Aantal_ZV_medewerkers_stage)
20       (COUNT(?persoon_vrijwilliger) AS ?Aantal_ZV_medewerkers_vrijwilliger)
21WHERE {
22  {
23    {
24      SELECT DISTINCT ?kwalificatie_niveau
25      WHERE {
26        ?functie_niveau a onz-pers:ODBKwalificatieWaarde ;
27                        rdfs:label ?kwalificatie_niveau .
28      }
29    }
30
31    OPTIONAL {
32      SELECT ?kwalificatie_niveau ?persoon
33             ?persoon_onbepaald ?persoon_bepaald ?persoon_oproep
34             ?persoon_bbl ?persoon_inhuur ?persoon_uitzend
35             ?persoon_stage ?persoon_vrijwilliger
36      WHERE {
37        #BIND("2024-01-12"^^xsd:date AS ?peildatum)
38        #BIND("000001254" AS ?target_vestigingsnummer)
39        BIND(?peildatum AS ?peildatum_argument)
40
41        ?type_overeenkomst rdfs:subClassOf onz-pers:WerkOvereenkomst .
42        FILTER(?type_overeenkomst != onz-pers:ArbeidsOvereenkomst && ?type_overeenkomst != onz-pers:WerkOvereenkomst)
43
44        ?overeenkomst a ?type_overeenkomst ;
45                      onz-pers:heeftOpdrachtnemer ?persoon ;
46                      onz-g:hasPart ?overeenkomst_afspraak .
47
48        ?overeenkomst_afspraak a onz-pers:WerkOvereenkomstAfspraak ;
49                               onz-g:startDatum ?start_afspraak ;
50                               onz-g:isAbout ?functie, ?locatie .
51
52        OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak }
53
54        #FILTER(?start_afspraak <= ?peildatum && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?peildatum))
55        FILTER(?start_afspraak <= ?peildatum_argument && (?eind_afspraak >= ?peildatum_argument || !BOUND(?eind_afspraak)))
56
57        ?functie a onz-pers:ZorgverlenerFunctie ;
58                 onz-g:hasQuality / onz-g:hasQualityValue ?functie_niveau .
59
60        ?functie_niveau a onz-pers:ODBKwalificatieWaarde ;
61                        rdfs:label ?kwalificatie_niveau .
62
63        ?locatie a onz-g:StationaryArtifact .
64        ?locatie onz-g:partOf* ?vestiging_uri .
65        ?vestiging_uri a onz-org:Vestiging ;
66                       onz-g:identifiedBy ?vestigingsnummer_object .
67        ?vestigingsnummer_object a onz-org:Vestigingsnummer ;
68                                 onz-g:hasDataValue ?vestigingsnummer .
69
70        #FILTER(?vestigingsnummer = ?target_vestigingsnummer)
71
72        # Use IF expressions instead of OPTIONAL with FILTER for Fuseki compatibility
73        BIND(IF(?type_overeenkomst = onz-pers:ArbeidsOvereenkomstOnbepaaldeTijd, ?persoon, ?unbound) AS ?persoon_onbepaald)
74        BIND(IF(?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBepaaldeTijd, ?persoon, ?unbound) AS ?persoon_bepaald)
75        BIND(IF(?type_overeenkomst = onz-pers:OproepOvereenkomst, ?persoon, ?unbound) AS ?persoon_oproep)
76        BIND(IF(?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBBL, ?persoon, ?unbound) AS ?persoon_bbl)
77        BIND(IF(?type_overeenkomst = onz-pers:InhuurOvereenkomst, ?persoon, ?unbound) AS ?persoon_inhuur)
78        BIND(IF(?type_overeenkomst = onz-pers:UitzendOvereenkomst, ?persoon, ?unbound) AS ?persoon_uitzend)
79        BIND(IF(?type_overeenkomst = onz-pers:StageOvereenkomst, ?persoon, ?unbound) AS ?persoon_stage)
80        BIND(IF(?type_overeenkomst = onz-pers:VrijwilligersOvereenkomst, ?persoon, ?unbound) AS ?persoon_vrijwilliger)
81      }
82    }
83  }
84
85   UNION
86
87  {
88    VALUES ?kwalificatie_niveau { "Totaal aantal medewerkers" }
89
90    OPTIONAL {
91      {
92        SELECT DISTINCT ?persoon
93               ?persoon_onbepaald ?persoon_bepaald ?persoon_oproep
94               ?persoon_bbl ?persoon_inhuur ?persoon_uitzend
95               ?persoon_stage ?persoon_vrijwilliger
96        WHERE {
97          #BIND("2024-01-12"^^xsd:date AS ?peildatum)
98          #BIND("000001254" AS ?target_vestigingsnummer)
99          BIND(?peildatum AS ?peildatum_argument)
100
101          ?type_overeenkomst rdfs:subClassOf onz-pers:WerkOvereenkomst .
102          FILTER(?type_overeenkomst != onz-pers:ArbeidsOvereenkomst && ?type_overeenkomst != onz-pers:WerkOvereenkomst)
103
104          ?overeenkomst a ?type_overeenkomst ;
105                        onz-pers:heeftOpdrachtnemer ?persoon ;
106                        onz-g:hasPart ?overeenkomst_afspraak .
107
108          ?overeenkomst_afspraak a onz-pers:WerkOvereenkomstAfspraak ;
109                                 onz-g:startDatum ?start_afspraak ;
110                                 onz-g:isAbout ?functie, ?locatie .
111
112          OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak }
113
114          #FILTER(?start_afspraak <= ?peildatum && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?peildatum))
115          FILTER(?start_afspraak <= ?peildatum_argument && (?eind_afspraak >= ?peildatum_argument || !BOUND(?eind_afspraak))) 
116
117          ?functie a onz-pers:ZorgverlenerFunctie ;
118                   onz-g:hasQuality / onz-g:hasQualityValue ?functie_niveau .
119          ?functie_niveau a onz-pers:ODBKwalificatieWaarde .
120
121          ?locatie a onz-g:StationaryArtifact .
122          ?locatie onz-g:partOf* ?vestiging_uri .
123          ?vestiging_uri a onz-org:Vestiging ;
124                         onz-g:identifiedBy ?vestigingsnummer_object .
125          ?vestigingsnummer_object a onz-org:Vestigingsnummer ;
126                                   onz-g:hasDataValue ?vestigingsnummer .
127
128          #FILTER(?vestigingsnummer = ?target_vestigingsnummer)
129
130          BIND(IF(?type_overeenkomst = onz-pers:ArbeidsOvereenkomstOnbepaaldeTijd, ?persoon, ?unbound) AS ?persoon_onbepaald)
131          BIND(IF(?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBepaaldeTijd, ?persoon, ?unbound) AS ?persoon_bepaald)
132          BIND(IF(?type_overeenkomst = onz-pers:OproepOvereenkomst, ?persoon, ?unbound) AS ?persoon_oproep)
133          BIND(IF(?type_overeenkomst = onz-pers:ArbeidsOvereenkomstBBL, ?persoon, ?unbound) AS ?persoon_bbl)
134          BIND(IF(?type_overeenkomst = onz-pers:InhuurOvereenkomst, ?persoon, ?unbound) AS ?persoon_inhuur)
135          BIND(IF(?type_overeenkomst = onz-pers:UitzendOvereenkomst, ?persoon, ?unbound) AS ?persoon_uitzend)
136          BIND(IF(?type_overeenkomst = onz-pers:StageOvereenkomst, ?persoon, ?unbound) AS ?persoon_stage)
137          BIND(IF(?type_overeenkomst = onz-pers:VrijwilligersOvereenkomst, ?persoon, ?unbound) AS ?persoon_vrijwilliger)
138        }
139      }
140    }
141  }
142}
143GROUP BY ?kwalificatie_niveau
144ORDER BY ?kwalificatie_niveau