Uitwisselprofiel Zorginstituut Openbaarmaking kwaliteitsindicatoren verpleeghuiszorg

Versie:

Publicatiedatum:21-12-2023

Inwerkingtreding:21-12-2023




Bekijk bron...

2.1.1. Aantal personeelsleden

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: ODB Personele samenstelling 2.1.1
2# Parameters: -
3# Ontologie: versie 2.0.0 of nieuwer
4
5PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
6PREFIX time: <http://www.w3.org/2006/time#>
7PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
8PREFIX onz-g: <http://purl.org/ozo/onz-g#>
9
10SELECT
11	(SUM(?factor_totaal) AS ?indicator)
12{
13    SELECT #alle factoren bij elkaar optellen, max per persoon beperken tot 1
14        ?persoon
15        (IF(SUM(?dagen_indicator/?dagen_periode) > 1, 1,SUM(?dagen_indicator/?dagen_periode))AS ?factor_totaal)
16    {
17        SELECT DISTINCT #functies die op dezelfde dag starten, samenvoegen op de functie met de meeste dagen
18            ?persoon
19            ?dagen_periode
20            ?start_functie_corr
21            (MAX(?dagen_functie) AS ?dagen_indicator)
22        { 
23            # definieer periode waarin overeenkomst geldig moet zijn
24            BIND("2023-01-01"^^xsd:date AS ?start_periode_datum)
25            BIND("2023-12-31"^^xsd:date AS ?eind_periode_datum)
26            ?start_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_periode .
27            ?eind_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_periode .
28            BIND(?eind_periode - ?start_periode + 1 AS ?dagen_periode)
29
30            # selecteer werkovereenkomsten waarbij werknemer een zorgverlenerfunctie heeft
31            ?functie 
32                a onz-pers:ZorgverlenerFunctie ;
33                onz-g:startDatum ?start_functie_datum .
34            OPTIONAL {
35                ?functie onz-g:eindDatum ?eind_functie_datum .
36            }
37            FILTER(?start_functie_datum <= ?eind_periode_datum && (?eind_functie_datum >= ?start_periode_datum || !BOUND(?eind_functie_datum)))
38            BIND(IF(?start_functie_datum < ?start_periode_datum, ?start_periode_datum, ?start_functie_datum) AS ?start_functie_datum_corr)
39            BIND(IF(!BOUND(?eind_functie_datum) || ?eind_functie_datum > ?eind_periode_datum, ?eind_periode_datum, ?eind_functie_datum) AS ?eind_functie_datum_corr)
40            ?start_functie_datum_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_functie_corr .
41            ?eind_functie_datum_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_functie_corr .
42            BIND(?eind_functie_corr - ?start_functie_corr + 1 AS ?dagen_functie)
43
44            ?overeenkomst
45                a onz-pers:ArbeidsOvereenkomst ;
46                onz-g:isAbout ?functie ;
47                onz-pers:heeftOpdrachtnemer ?persoon .
48        }	
49        GROUP BY ?persoon ?dagen_periode ?start_functie_corr
50        ORDER BY ?persoon
51    }
52    GROUP BY ?persoon
53}

Heb je feedback?

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