Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Versie:

Publicatiedatum:04-10-2023

Inwerkingtreding:04-10-2023




Bekijk bron...

6.1.4 Percentage ingezette uren personeel per kwalificatieniveau Q4 2023

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 6.1
2# Parameters: $(start_periode), $(eind_periode)
3# Ontologie: versie 2.0.0 of nieuwer
4
5PREFIX onz-g: <http://purl.org/ozo/onz-g#>
6PREFIX onz-org: <http://purl.org/ozo/onz-org#>
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 
12	?vestiging
13	?kwalificatie_niveau
14	(?kwalificatie_uren AS ?ingezette_uren)
15	((?kwalificatie_uren/?totaal_uren)*100 AS ?percentage)
16WHERE 
17{	
18    # subquery: bereken het aantal ingezette uren per kwalificatieniveau en vestiging
19    {
20    	SELECT 
21            ?vestiging
22            ?kwalificatie_niveau
23            (SUM(?uren) AS ?kwalificatie_uren)
24		WHERE
25		{
26            # selecteer alle geregistreerde uren van de werknemers per 
27   			SELECT DISTINCT
28                ?gewerkte_periode
29                ?start_werk
30                ?eind_werk
31                ?uren
32                ?kwalificatie_niveau
33                ?vestiging
34    		WHERE 
35    		{      
36                BIND ('2023-10-01'^^xsd:date AS ?start_periode)      
37                BIND ('2023-12-31'^^xsd:date AS ?eind_periode)
38                
39            	# selecteer werkovereenkomsten waarbij werknemer een zorgverlenerfunctie heeft
40                ?overeenkomst 
41                    a onz-pers:ArbeidsOvereenkomst ;
42                    onz-pers:heeftOpdrachtnemer ?medewerker ;
43                    onz-g:isAbout/a onz-pers:ZorgverlenerFunctie ;
44					onz-g:isAbout ?functie .
45
46                # selecteer kwalificatie niveau
47                ?functie 
48                    a onz-g:Role ;
49                    a/ onz-g:hasQuality /onz-g:hasQualityValue ?functie_niveau .
50
51                ?functie_niveau
52                    a onz-pers:ODBKwalificatieWaarde ;
53                    rdfs:label ?kwalificatie_niveau .
54
55                # selecteer uren van gewerkte periode binnen peruide
56                ?gewerkteperiode 
57                    a onz-pers:GewerktePeriode ;
58                    onz-g:definedBy ?overeenkomst ;
59                    onz-g:hasBeginTimeStamp ?start_werk_datetime ;
60                    onz-g:hasEndTimeStamp ?eind_werk_datetime ;
61                    onz-g:hasPerdurantLocation ?location ;      
62                    onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren .
63                # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period
64                BIND(STRDT(SUBSTR(STR(?start_werk_datetime), 1, 10), xsd:date) AS ?start_werk)
65                BIND(STRDT(SUBSTR(STR(?eind_werk_datetime), 1, 10), xsd:date) AS ?eind_werk)
66                FILTER(?start_werk >= ?start_periode && ?eind_werk <= ?eind_periode)
67			
68                # selecteer locatie met bijbehorende vestiging
69                ?location
70                    onz-g:partOf* ?vestiging_uri .
71                ?vestiging_uri 
72            		a onz-org:Vestiging ;
73            		onz-g:identifiedBy ?vest_nr.
74                ?vest_nr a onz-org:Vestigingsnummer ;
75                    onz-g:hasDataValue ?vestiging .
76            }
77        }
78        GROUP BY ?vestiging ?kwalificatie_niveau
79    }
80    # subquery: bereken het aantal ingezette uren per vestiging
81    {
82        SELECT 
83            ?vestiging
84            (SUM(?uren) AS ?totaal_uren)
85        # selecteer alle geregistreerde uren van de werknemers per vestiging
86        WHERE
87        {
88            SELECT DISTINCT
89       			?gewerkte_periode
90                ?start_werk
91                ?eind_werk
92                ?uren
93                ?vestiging
94            WHERE 
95            { 
96                BIND ('2023-10-01'^^xsd:date AS ?start_periode)      
97                BIND ('2023-12-31'^^xsd:date AS ?eind_periode)
98                
99                # selecteer uren van gewerkte periode binnen periode
100                ?gewerkteperiode 
101                    a onz-pers:GewerktePeriode ;
102                    onz-g:hasBeginTimeStamp ?start_werk_datetime ;
103                    onz-g:hasEndTimeStamp ?eind_werk_datetime ;
104                    onz-g:hasPerdurantLocation ?location ; 
105                    onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren .
106                # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period
107                BIND(STRDT(SUBSTR(STR(?start_werk_datetime), 1, 10), xsd:date) AS ?start_werk)
108                BIND(STRDT(SUBSTR(STR(?eind_werk_datetime), 1, 10), xsd:date) AS ?eind_werk)
109                FILTER(?start_werk >= ?start_periode && ?eind_werk <= ?eind_periode)
110
111                ?location
112                    onz-g:partOf* ?vestiging_uri .
113                ?vestiging_uri 
114            		a onz-org:Vestiging ;
115            		onz-g:identifiedBy ?vest_nr.
116                ?vest_nr a onz-org:Vestigingsnummer ;
117                    onz-g:hasDataValue ?vestiging .
118            }
119        }
120        GROUP BY ?vestiging
121    }
122}
123ORDER BY ?vestiging ?kwalificatie_niveau

Heb je feedback?

Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!