Uitwisselprofiel Zorginstituut Openbaarmaking kwaliteitsindicatoren verpleeghuiszorg

Versie:

Publicatiedatum:06-06-2024

Inwerkingtreding:06-06-2024




Bekijk bron...

2.5.1. Aantal fte zorg client ratio

Concepten

Relaties

Eigenschappen

Instanties

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: ODB Personele samenstelling 2.5.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 onz-zorg: <http://purl.org/ozo/onz-zorg#>
8PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10PREFIX time: <http://www.w3.org/2006/time#>
11
12SELECT
13    (SUM(?aantal) AS ?teller)
14    (SUM(?dagen_proces)/365 AS ?noemer)
15    ((100*SUM(?aantal)/(SUM(?dagen_proces)/365)) AS ?indicator)
16{
17    {
18        {
19            SELECT ?zorgproces ?indicatie ?start_proces ?eind_proces ?start_periode ?eind_periode ?zorgprofiel
20            WHERE {
21                BIND ("2023-01-01"^^xsd:date AS ?start_periode)
22                BIND ("2023-12-31"^^xsd:date AS ?eind_periode)
23
24                ?zorgproces
25                    a onz-zorg:NursingProcess ;
26                    onz-g:definedBy ?indicatie ;
27                    onz-g:startDatum ?start_proces .
28                OPTIONAL {
29                    ?zorgproces 
30                        a onz-zorg:NursingProcess;
31                        onz-g:eindDatum ?eind_proces.
32                }
33                ?indicatie
34                    a onz-zorg:WlzIndicatie ;
35                    onz-g:hasPart ?zorgprofiel .
36
37                #Alleen processen in gevraagde periode
38                FILTER (?start_proces <= ?eind_periode && (!BOUND(?eind_proces) || ?eind_proces >= ?start_periode))
39            }
40        }
41
42        #Selecteer zorgprocessen binnen geincludeerde zorgprofielen
43        VALUES ?zorgprofiel { onz-zorg:4VV onz-zorg:5VV onz-zorg:6VV onz-zorg:7VV onz-zorg:8VV onz-zorg:9BVV onz-zorg:10VV }
44
45        #Corrigeer wanneer start of eind van het zorgproces buiten de gevraagde periode valt
46        BIND(IF(?start_periode > ?start_proces, ?start_periode, ?start_proces) AS ?start_proces_corr)
47        BIND(IF((?eind_periode < ?eind_proces) || !BOUND(?eind_proces), ?eind_periode, ?eind_proces) AS ?eind_proces_corr)
48
49        ?start_proces_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_proces_reken .
50        ?eind_proces_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_proces_reken .
51        BIND(?eind_proces_reken - ?start_proces_reken + 1 AS ?dagen_proces)
52        BIND (0 AS ?aantal)
53    }  UNION {
54        {
55            SELECT DISTINCT
56                ?start_periode_datum 
57                ?eind_periode_datum 
58                ?gewerkte_periode 
59                ?uren
60            WHERE 
61            { 
62                BIND ("2023-01-01"^^xsd:date AS ?start_periode_datum)
63                BIND ("2023-12-31"^^xsd:date AS ?eind_periode_datum)  
64                
65                # selecteer zorgverlenerfuncties die geldig zijn binnen de periode
66                ?functie a onz-pers:ZorgverlenerFunctie ;
67                    onz-g:startDatum ?start_functie .
68                OPTIONAL {
69                    ?functie onz-g:eindDatum ?eind_functie
70                }
71                FILTER (?start_functie <= ?eind_periode_datum && (?eind_functie >= ?start_periode_datum || !BOUND(?eind_functie)))
72                BIND(IF(?start_functie < ?start_periode_datum, ?start_periode_datum, ?start_functie) AS ?start_functie_corr)
73                BIND(IF(?eind_functie > ?eind_periode_datum || !BOUND(?eind_functie), ?eind_periode_datum, ?eind_functie) AS ?eind_functie_corr)
74                # selecteer de arbeidsovereenkomst die hoort bij de functie
75                ?overeenkomst
76                    onz-g:isAbout ?functie ;
77                    a onz-pers:ArbeidsOvereenkomst ;
78                    onz-g:isAbout ?gewerkte_periode .
79
80                # selecteer aantal gewerkte uren binnen periode die gekoppeld zijn aan werkovereenkomst 
81                ?gewerkte_periode 
82                    a onz-pers:GewerktePeriode ;
83                    onz-g:hasBeginTimeStamp ?start_gewerktDT ;
84                    onz-g:hasEndTimeStamp ?eind_gewerktDT ;
85                    onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren .
86                BIND(STRDT(SUBSTR(STR(?start_gewerktDT),1,10), xsd:date) AS ?start_gewerkt)
87                BIND(STRDT(SUBSTR(STR(?eind_gewerktDT),1,10), xsd:date) AS ?eind_gewerkt)
88                # selecteer gewerkte tijd in de gevraagde periode
89                FILTER(?start_gewerkt >= ?start_functie_corr && ?eind_gewerkt <= ?eind_functie_corr)     
90            }
91        }
92        
93        # rapporteer in de eenheid fte_36 (1 fte = 36 uur/week)
94        onz-pers:fte_36 
95            onz-g:hasDataValue ?corr_factor .
96        
97        # bereken aantal dagen in de periode
98        ?start_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_periode .
99        ?eind_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_periode .
100        BIND(?eind_periode - ?start_periode + 1 AS ?dagen_periode)
101        
102        # bereken fte (1 fte is volledig als 47 weken per jaar is gewerkt)
103        BIND (?uren/(?dagen_periode/365*47)/?corr_factor AS ?aantal)
104        BIND (0 AS ?dagen_proces)
105    } 
106}
107

Heb je feedback?

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