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

Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

4.1.0 Gemiddelde contractomvang personeel

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

Heb je feedback?

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