Uitwisselprofiel Zorginstituut Openbaarmaking kwaliteitsindicatoren verpleeghuiszorg

Versie:

Publicatiedatum:21-12-2023

Inwerkingtreding:21-12-2023




Bekijk bron...

2.2.1. Percentage fte per niveau

Concepten

Relaties

Eigenschappen

Instanties

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: ODB Personele samenstelling 2.2.1
2# Parameters: -
3# Ontologie: versie 2.0.0 of nieuwer
4
5PREFIX onz-g: <http://purl.org/ozo/onz-g#>
6PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
7PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
8PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
9PREFIX time: <http://www.w3.org/2006/time#>
10
11SELECT 
12	?kwalificatie 
13	?teller
14	?noemer 
15	(?teller/?noemer * 100 AS ?indicator)
16WHERE 
17{
18	{
19		SELECT ?kwalificatie (SUM(?aantal) AS ?teller) 
20		WHERE
21		{
22			SELECT DISTINCT 
23	        	?gewerkte_periode 
24	        	?kwalificatie 
25	        	?aantal        
26	        WHERE 
27	        { 
28	            BIND ("2023-01-01"^^xsd:date AS ?start_periode_datum)
29	            BIND ("2023-12-31"^^xsd:date AS ?eind_periode_datum) 
30
31	            # selecteer aantal gewerkte uren binnen periode die gekoppeld zijn aan werkovereenkomst 
32	            ?gewerkte_periode 
33	             	a onz-pers:GewerktePeriode ;
34	              	onz-g:hasBeginTimeStamp ?start_gewerktDT ;
35	               	onz-g:hasEndTimeStamp ?eind_gewerktDT .
36	            	FILTER(?start_gewerkt >= ?start_periode_datum && ?eind_gewerkt <= ?eind_periode_datum)
37	            ?gewerkte_periode
38	               	onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren ;
39	                onz-g:definedBy ?overeenkomst .
40				?overeenkomst a onz-pers:ArbeidsOvereenkomst .
41	            BIND(STRDT(SUBSTR(STR(?start_gewerktDT),1,10), xsd:date) AS ?start_gewerkt)
42	            BIND(STRDT(SUBSTR(STR(?eind_gewerktDT),1,10), xsd:date) AS ?eind_gewerkt)
43	            
44	            ?functie 
45	                a onz-pers:ZorgverlenerFunctie ;              
46	                ^onz-g:isAbout ?overeenkomst ;
47					onz-g:startDatum ?start_functie .
48	                OPTIONAL {?functie onz-g:eindDatum ?eind_functie}
49	                FILTER (?start_functie <= ?start_gewerkt && ((?eind_functie >= ?eind_gewerkt)||(!BOUND(?eind_functie))))
50	            ?functie
51	                a/onz-g:hasQuality/onz-g:hasQualityValue ?functie_niveau .
52	            ?functie_niveau 
53	                a onz-pers:ODBKwalificatieWaarde ;
54	                rdfs:label ?kwalificatie .
55
56				# rapporteer in de eenheid fte_36 (1 fte = 36 uur/week)
57				onz-pers:fte_36 
58					onz-g:hasDataValue ?corr_factor .
59				
60				# bereken aantal dagen in de periode
61				?start_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_periode .
62				?eind_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_periode .
63				BIND(?eind_periode - ?start_periode + 1 AS ?dagen_periode)
64				
65				# bereken fte (1 fte is volledig als 47 weken per jaar is gewerkt)
66				BIND (?uren/(?dagen_periode/365*47)/?corr_factor AS ?aantal)					
67	        } 
68        } GROUP BY ?kwalificatie
69	}
70	{
71		SELECT
72			(SUM(?aantal) AS ?noemer) 
73		WHERE 
74		{
75			{
76				SELECT DISTINCT
77					?start_periode_datum 
78					?eind_periode_datum 
79					?gewerkte_periode 
80					?uren
81				WHERE 
82				{ 
83					BIND ("2023-01-01"^^xsd:date AS ?start_periode_datum)
84					BIND ("2023-12-31"^^xsd:date AS ?eind_periode_datum)  
85					
86					# selecteer zorgverlenerfuncties die geldig zijn binnen de periode
87					?functie a onz-pers:ZorgverlenerFunctie ;
88						onz-g:startDatum ?start_functie .
89					OPTIONAL {
90						?functie onz-g:eindDatum ?eind_functie
91					}
92					FILTER (?start_functie <= ?eind_periode_datum && (?eind_functie >= ?eind_periode_datum || !BOUND(?eind_functie)))
93
94					# selecteer de arbeidsovereenkomst die hoort bij de functie
95					?overeenkomst
96						onz-g:isAbout ?functie ;
97						a onz-pers:ArbeidsOvereenkomst ;
98						onz-g:isAbout ?gewerkte_periode .
99
100					# selecteer aantal gewerkte uren binnen periode die gekoppeld zijn aan werkovereenkomst 
101					?gewerkte_periode 
102						a onz-pers:GewerktePeriode ;
103						onz-g:hasBeginTimeStamp ?start_gewerktDT ;
104						onz-g:hasEndTimeStamp ?eind_gewerktDT ;
105						onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren .
106					BIND(STRDT(SUBSTR(STR(?start_gewerktDT),1,10), xsd:date) AS ?start_gewerkt)
107					BIND(STRDT(SUBSTR(STR(?eind_gewerktDT),1,10), xsd:date) AS ?eind_gewerkt)
108					# selecteer gewerkte tijd in de gevraagde periode
109					FILTER(?start_gewerkt >= ?start_periode_datum && ?eind_gewerkt <= ?eind_periode_datum)     
110				}
111   			 }
112    
113			# rapporteer in de eenheid fte_36 (1 fte = 36 uur/week)
114			onz-pers:fte_36 
115				onz-g:hasDataValue ?corr_factor .
116			
117			# bereken aantal dagen in de periode
118			?start_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_periode .
119			?eind_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_periode .
120			BIND(?eind_periode - ?start_periode + 1 AS ?dagen_periode)
121			
122			# bereken fte (1 fte is volledig als 47 weken per jaar is gewerkt)
123			BIND (?uren/(?dagen_periode/365*47)/?corr_factor AS ?aantal)
124		}  
125	}
126}
127GROUP BY ?kwalificatie ?teller ?noemer
128ORDER BY ?kwalificatie

Heb je feedback?

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