Let op: dit is een oudere versie van deze publicatie. Ga naar de laatste versie

Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

4.1.5 Gemiddelde contractomvang personeel Q1 2024

Concepten

Relaties

Eigenschappen

Instanties

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 4.1 
2# Parameters: $(kwartaal)
3# Ontologie: versie 2.0.0 of nieuwer
4
5PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
6PREFIX onz-g: <http://purl.org/ozo/onz-g#>
7PREFIX onz-org: <http://purl.org/ozo/onz-org#>
8PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
9PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
10PREFIX time: <http://www.w3.org/2006/time#>
11
12SELECT 
13	?vestiging
14	(SUM(?contractuele_uren_kwartaal * ?zorg)/SUM(?dagen_indicator) AS ?zorg_gerelateerd)
15	(SUM(?contractuele_uren_kwartaal * ?niet_zorg)/SUM(?dagen_indicator) AS ?niet_zorg_gerelateerd)
16WHERE { 
17    # Selecteer kwartaal 
18    BIND('Q1' AS ?kwartaal)
19    BIND(IF(?kwartaal = 'Q1', '2024-01-01'^^xsd:date, 
20        IF(?kwartaal = 'Q2', '2024-04-01'^^xsd:date,
21        IF(?kwartaal = 'Q3', '2024-07-01'^^xsd:date,
22        IF(?kwartaal = 'Q4', '2024-10-01'^^xsd:date, 
23        '')))) AS ?start_periode)
24    BIND((?start_periode + "P3M"^^xsd:duration - "P1D"^^xsd:duration) AS ?eind_periode)
25    
26    # Selecteer overeenkomst met start en eind en filter binnen kwartaal
27	?overeenkomst 
28    	a onz-pers:WerkOvereenkomst ;
29        onz-g:hasPart ?omvang ;
30        onz-g:isAbout ?locatie .
31
32    # Selecteer contractomvang
33    ?omvang
34    	a onz-pers:ContractOmvang ;
35        onz-g:startDatum ?omvang_start ;
36    	onz-g:isAbout ?omvang_waarde .
37  	OPTIONAL {?omvang a onz-pers:ContractOmvang ;
38                        onz-g:eindDatum ?omvang_eind}
39    FILTER (?omvang_start <= ?eind_periode && (!BOUND(?omvang_eind) || ?omvang_eind >= ?start_periode))    
40
41	?omvang_waarde
42        onz-g:hasDataValue ?omvang_waarde_getal ;
43        onz-g:hasUnitOfMeasure ?omvang_waarde_eenheid .
44  	?omvang_waarde_eenheid
45    	onz-pers:hasDenominatorQualityValue onz-g:Week ;
46     	onz-pers:hasNumeratorQualityValue onz-g:Uur ;
47      	onz-g:hasDataValue ?omvang_waarde_factor .
48    
49    # Bepaal de vestiging waar de werkzaamheden verricht worden volgens de werkovereenkomst
50    {
51        ?locatie onz-g:partOf* ?vestiging_uri .
52        ?vestiging_uri 
53            a onz-org:Vestiging ;
54            onz-g:identifiedBy ?vest_nr.
55        ?vest_nr a onz-org:Vestigingsnummer ;
56            onz-g:hasDataValue ?vestiging .
57    } UNION {
58        # Includeer ook de organisatie als geheel en label deze als vestiging
59        ?locatie onz-g:partOf*/onz-org:vestigingVan ?organisatie_uri .
60        ?organisatie_uri 
61            a onz-g:Business ;
62            rdfs:label ?organisatie .
63        BIND(CONCAT('Totaal ',?organisatie) AS ?vestiging)
64    }
65	
66    # Definieer of de verloonde uren voor een zorgfunctie zijn
67    OPTIONAL {
68        ?overeenkomst onz-g:isAbout ?zorgfunctie .
69        ?zorgfunctie a onz-pers:ZorgverlenerFunctie
70    }
71    
72	# Maak variabele waarmee of de verloonde uren vermenigvuldigd kunnen worden 
73    BIND(IF(BOUND(?zorgfunctie),1,0) AS ?zorg)
74	BIND(IF(?zorg=1,0,1) AS ?niet_zorg)
75    
76    # Bereken aantal uren per week en zet dit om naar kwartaal uren
77    BIND((?omvang_waarde_getal * ?omvang_waarde_factor) AS ?uren_per_week)
78   	BIND((47*?uren_per_week/4) AS ?contractuele_uren_kwartaal)
79    
80    # Bepaal aantal dagen overeenkomst in rapportageperiode
81    BIND(IF(?omvang_start < ?start_periode, ?start_periode, ?omvang_start) AS ?start_indicator)
82    BIND(IF(?omvang_eind > ?eind_periode || !BOUND(?omvang_eind), ?eind_periode, ?omvang_eind) AS ?eind_indicator)
83
84    ?start_indicator ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_indicator_final .
85    ?eind_indicator ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_indicator_final .
86    BIND(?eind_indicator_final - ?start_indicator_final + 1 AS ?dagen_indicator)
87} 
88GROUP BY ?vestiging
89

Heb je feedback?

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