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

Uitwisselprofiel Zorginstituut Openbaarmaking kwaliteitsindicatoren verpleeghuiszorg

Versie:

Publicatiedatum:20-06-2023

Inwerkingtreding:01-07-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 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#>
9
10SELECT 
11    (SUM(?factor) AS ?indicator)
12WHERE
13{
14    {
15        SELECT 
16            ?persoon 
17            ?start_def 
18            ?end_def 
19            ?start_periode 
20            ?eind_periode
21        WHERE
22        {
23            {
24                SELECT 
25                    ?persoon 
26                    ?overeenkomst 
27                    ?start_periode ?eind_periode
28                    (MIN(?start_corr2) AS ?start_def) 
29                    (MAX(?end_corr2) AS ?end_def) 
30                    (MAX(?i) AS ?ignore)
31                WHERE
32                { 
33                    # definieer periode waarin overeenkomst geldig moet zijn
34                    BIND("2022-01-01"^^xsd:date AS ?start_periode)
35                    BIND("2022-12-31"^^xsd:date AS ?eind_periode)
36                
37                    # selecteer werkovereenkomsten waarbij werknemer een zorgverlenerfunctie heeft
38                    ?overeenkomst 
39                        onz-pers:heeftOpdrachtnemer ?persoon ;
40                        a onz-pers:ArbeidsOvereenkomst ;
41                        onz-g:isAbout/a onz-pers:ZorgverlenerFunctie ;
42                        onz-g:startDatum ?start .
43                    OPTIONAL {?overeenkomst onz-g:eindDatum ?end}
44
45                    # alleen overeenkomsten in de gevraagde periode
46                    FILTER (?start <= ?eind_periode && (!BOUND(?end) || ?end >= ?start_periode))
47                    
48                    ?other_contract 
49                        onz-pers:heeftOpdrachtnemer ?persoon ;
50                        a onz-pers:ArbeidsOvereenkomst ;
51                        onz-g:isAbout/a onz-pers:ZorgverlenerFunctie ;
52                        onz-g:startDatum ?other_start .
53                    OPTIONAL {?other_contract onz-g:eindDatum ?other_end} .
54
55                    # alleen overeenkomsten in de gevraagde periode
56                    FILTER (?other_start <= ?eind_periode && (!BOUND(?other_end) || ?other_end >= ?start_periode))
57
58                    # corrigeer wanneer start of eind van de overeenkomst buiten de gevraagde periode valt
59                    BIND(IF(?start_periode > ?start, ?start_periode, ?start) AS ?start_corr)
60                    BIND(IF((?eind_periode < ?end) || !BOUND(?end), ?eind_periode, ?end) AS ?end_corr)
61                    BIND(IF(?start_periode > ?other_start, ?start_periode, ?other_start) AS ?other_start_corr)
62                    BIND(IF((?eind_periode < ?other_end) || !BOUND(?other_end), ?eind_periode, ?other_end) AS ?other_end_corr)
63
64                    BIND(IF(?other_start_corr < ?end_corr && ?other_end_corr > ?start_corr, 1, 0) AS ?o)
65                    BIND(IF(?other_start_corr < ?start_corr && ?other_end_corr > ?end_corr, 1, 0) AS ?i)
66                    BIND(IF(?o = 1,IF(?other_start_corr < ?start_corr,?other_start_corr,?start_corr),?start_corr) AS ?start_corr2)
67                    BIND(IF(?o = 1,IF(?other_end_corr > ?end_corr,?other_end_corr,?end_corr),?end_corr) AS ?end_corr2)
68                } 
69                GROUP BY ?persoon ?overeenkomst ?start_periode ?eind_periode
70            }
71            FILTER(?ignore = 0)
72        } 
73        GROUP BY ?persoon ?start_def ?end_def ?start_periode ?eind_periode
74    }
75    BIND ((360 * (YEAR(?eind_periode + "P1D"^^xsd:duration) - YEAR(?start_periode))) +
76    (30 * (MONTH(?eind_periode + "P1D"^^xsd:duration) - MONTH(?start_periode))) +
77    (DAY(?eind_periode + "P1D"^^xsd:duration) - DAY(?start_periode)) AS ?dagen_periode)
78    BIND ((360 * (YEAR(?end_def + "P1D"^^xsd:duration) - YEAR(?start_def))) +
79    (30 * (MONTH(?end_def + "P1D"^^xsd:duration) - MONTH(?start_def))) +
80    (DAY(?end_def + "P1D"^^xsd:duration) - DAY(?start_def)) AS ?dagen_overeenkomst)
81    BIND (?dagen_overeenkomst/?dagen_periode AS ?factor)
82}

Heb je feedback?

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