Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Versie:

Publicatiedatum:29-02-2024

Inwerkingtreding:29-02-2024




Bekijk bron...

7.1.3 Aantal ingezette uren personeel per cliënt Q3 2023

Concepten

Relaties

Eigenschappen

Instanties

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 7.1
2# Parameters: $(kwartaal)
3# Ontologie: versie 2.0.0 of nieuwer
4
5PREFIX onz-g: <http://purl.org/ozo/onz-g#>
6PREFIX onz-org: <http://purl.org/ozo/onz-org#>
7PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
8PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10PREFIX onz-zorg: <http://purl.org/ozo/onz-zorg#>
11
12SELECT 
13    ?vestiging
14    ?ingezette_uren
15    ?aantal_clienten
16    ((?ingezette_uren/?aantal_clienten) AS ?ingezetten_uren_per_client)
17WHERE 
18{
19    {
20        SELECT 
21            ?vestiging
22            (SUM(?uren) AS ?ingezette_uren)
23        WHERE
24        {
25            # definieer kwartaal waarin overeenkomst geldig moet zijn
26            BIND(('Q3') AS ?kwartaal)
27            BIND(
28                IF(?kwartaal = 'Q1', '2023-01-01'^^xsd:date, 
29                IF(?kwartaal = 'Q2', '2023-04-01'^^xsd:date,
30                IF(?kwartaal = 'Q3', '2023-07-01'^^xsd:date,
31                IF(?kwartaal = 'Q4', '2023-10-01'^^xsd:date, 
32                '')))) AS ?start_periode)
33            BIND((?start_periode + "P3M"^^xsd:duration - "P1D"^^xsd:duration) AS ?eind_periode)
34
35            # selecteer werkovereenkomsten waarbij werknemer een zorgverlenerfunctie heeft
36            ?functie
37                a onz-pers:ZorgverlenerFunctie ;
38                onz-g:startDatum ?start_functie .
39            OPTIONAL { ?functie onz-g:eindDatum ?eind_functie .}
40            
41            FILTER(?start_functie <= ?eind_periode && ((?eind_functie >= ?start_periode) || (!BOUND(?eind_functie))))
42            BIND(IF(!BOUND(?eind_functie), ?eind_periode, 
43                IF(?eind_functie < ?eind_periode, ?eind_functie, ?eind_periode)
44            ) AS ?eind_functie_reken)
45            BIND(IF(?start_functie < ?start_periode, ?start_periode, ?start_functie) AS ?start_functie_reken)
46            
47            ?overeenkomst 
48                a onz-pers:ArbeidsOvereenkomst ;
49                onz-g:isAbout ?functie .
50
51            # selecteer uren van gewerkte periode binnen rekenperiode
52            ?gewerkteperiode 
53                a onz-pers:GewerktePeriode ;
54                onz-g:hasBeginTimeStamp ?start_werk_datetime ;
55                onz-g:hasEndTimeStamp ?eind_werk_datetime ;
56                onz-g:hasPerdurantLocation ?locatie ; 
57                onz-g:definedBy ?overeenkomst ;
58                onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren .
59            # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period
60            BIND(STRDT(SUBSTR(STR(?start_werk_datetime), 1, 10), xsd:date) AS ?start_werk)
61            BIND(STRDT(SUBSTR(STR(?eind_werk_datetime), 1, 10), xsd:date) AS ?eind_werk)
62            FILTER((?start_werk >= ?start_functie_reken) && (?eind_werk <= ?eind_functie_reken))
63            
64            # selecteer vestiging van gewerkte periode
65            {
66                ?locatie onz-g:partOf* ?vestiging_uri .
67                ?vestiging_uri 
68                    a onz-org:Vestiging ;
69                    onz-g:identifiedBy ?vest_nr.
70                ?vest_nr a onz-org:Vestigingsnummer ;
71                    onz-g:hasDataValue ?vestiging .
72            } UNION {
73            # includeer ook de organisatie als geheel en label deze als vestiging
74                ?locatie onz-g:partOf*/onz-org:vestigingVan ?organisatie_uri .
75                ?organisatie_uri 
76                    a onz-g:Business ;
77                    rdfs:label ?organisatie .
78                BIND(CONCAT('Totaal ',?organisatie) AS ?vestiging)
79            }
80            
81        }
82        GROUP BY ?vestiging
83    }
84    {
85        SELECT 
86            ?vestiging
87            (COUNT(DISTINCT(?client)) AS ?aantal_clienten)
88        WHERE
89        {
90            # definieer kwartaal waarin overeenkomst geldig moet zijn
91            BIND(('Q3') AS ?kwartaal)
92            BIND(
93                IF(?kwartaal = 'Q1', '2023-01-01'^^xsd:date, 
94                IF(?kwartaal = 'Q2', '2023-04-01'^^xsd:date,
95                IF(?kwartaal = 'Q3', '2023-07-01'^^xsd:date,
96                IF(?kwartaal = 'Q4', '2023-10-01'^^xsd:date, 
97                '')))) AS ?start_periode)
98            BIND((?start_periode + "P3M"^^xsd:duration - "P1D"^^xsd:duration) AS ?eind_periode)
99            
100            VALUES ?zorgprofiel { onz-zorg:4VV onz-zorg:5VV onz-zorg:6VV onz-zorg:7VV onz-zorg:8VV onz-zorg:9BVV onz-zorg:10VV }
101            
102            # selecteer zorgproces binnen periode
103            ?zorgproces
104                a onz-zorg:NursingProcess ;
105                onz-g:definedBy ?indicatie ;
106                onz-g:hasPerdurantLocation ?locatie ;
107                onz-g:startDatum ?start_proces .
108            OPTIONAL {?zorgproces onz-g:eindDatum ?eind_proces}
109            FILTER (?start_proces <= ?eind_periode && (!BOUND(?eind_proces) || ?eind_proces >= ?start_periode))
110
111            # selecteer vestiging van gewerkte periode
112            {
113                ?locatie onz-g:partOf* ?vestiging_uri .
114                ?vestiging_uri 
115                    a onz-org:Vestiging ;
116                    onz-g:identifiedBy ?vest_nr.
117                ?vest_nr a onz-org:Vestigingsnummer ;
118                    onz-g:hasDataValue ?vestiging .
119            } UNION {
120                # includeer ook de organisatie als geheel en label deze als vestiging
121                ?locatie onz-g:partOf*/onz-org:vestigingVan ?organisatie_uri .
122                ?organisatie_uri 
123                    a onz-g:Business ;
124                    rdfs:label ?organisatie .
125                BIND(CONCAT('Totaal ',?organisatie) AS ?vestiging)
126            }
127
128            # selecteer de bijbehordene indicatie, om unieke clienten te kunnen bepalen
129            ?indicatie 
130                onz-g:hasPart ?zorgprofiel ;
131                onz-g:isAbout ?client .
132            ?client a onz-g:Human .
133        }
134    GROUP BY ?vestiging
135    }
136}
137

Heb je feedback?

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