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

Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

7.1.2 Aantal ingezette uren personeel per cliënt Q2 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('Q2' 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 ?locatie_contract ;
50                onz-g:isAbout ?functie .
51
52            # selecteer uren van gewerkte periode binnen rekenperiode
53            ?gewerkteperiode 
54                a onz-pers:GewerktePeriode ;
55                onz-g:hasBeginTimeStamp ?start_werk_datetime ;
56                onz-g:hasEndTimeStamp ?eind_werk_datetime ;
57                onz-g:definedBy ?overeenkomst ;
58                onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren_voor_correctie .
59            OPTIONAL{?gewerkteperiode onz-g:hasPerdurantLocation ?locatie_werk .}
60            # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period
61            BIND(STRDT(SUBSTR(STR(?start_werk_datetime), 1, 10), xsd:date) AS ?start_werk)
62            BIND(STRDT(SUBSTR(STR(?eind_werk_datetime), 1, 10), xsd:date) AS ?eind_werk)
63            FILTER((?start_werk >= ?start_functie_reken) && (?eind_werk <= ?eind_functie_reken))
64            
65            ?locatie_contract a onz-g:StationaryArtifact
66            BIND(IF(!BOUND(?locatie_werk), ?locatie_contract, ?locatie_werk) AS ?locatie)
67
68            # selecteer vestiging van gewerkte periode
69            {
70                ?locatie onz-g:partOf* ?vestiging_uri .
71                ?vestiging_uri 
72                    a onz-org:Vestiging ;
73                    onz-g:identifiedBy ?vest_nr.
74                ?vest_nr a onz-org:Vestigingsnummer ;
75                    onz-g:hasDataValue ?vestiging .
76            } UNION {
77            # includeer ook de organisatie als geheel en label deze als vestiging
78                ?locatie onz-g:partOf*/onz-org:vestigingVan ?organisatie_uri .
79                ?organisatie_uri 
80                    a onz-g:Business ;
81                    rdfs:label ?organisatie .
82                BIND(CONCAT('Totaal ',?organisatie) AS ?vestiging)
83            }
84
85            BIND(IF(!BOUND(?locatie_werk) && BOUND(?vestiging_uri), 0, 1) AS ?correctie)
86            BIND(?uren_voor_correctie * ?correctie AS ?uren)
87        }
88        GROUP BY ?vestiging
89    }
90    {
91        SELECT 
92            ?vestiging
93            (COUNT(DISTINCT(?client)) AS ?aantal_clienten)
94        WHERE
95        {
96            # definieer kwartaal waarin overeenkomst geldig moet zijn
97            BIND('Q2' AS ?kwartaal)
98            BIND(
99                IF(?kwartaal = 'Q1', '2023-01-01'^^xsd:date, 
100                IF(?kwartaal = 'Q2', '2023-04-01'^^xsd:date,
101                IF(?kwartaal = 'Q3', '2023-07-01'^^xsd:date,
102                IF(?kwartaal = 'Q4', '2023-10-01'^^xsd:date, 
103                '')))) AS ?start_periode)
104            BIND((?start_periode + "P3M"^^xsd:duration - "P1D"^^xsd:duration) AS ?eind_periode)
105            
106            VALUES ?zorgprofiel { onz-zorg:4VV onz-zorg:5VV onz-zorg:6VV onz-zorg:7VV onz-zorg:8VV onz-zorg:9BVV onz-zorg:10VV }
107            
108            # selecteer zorgproces binnen periode
109            ?zorgproces
110                a onz-zorg:NursingProcess ;
111                onz-g:definedBy ?indicatie ;
112                onz-g:hasPerdurantLocation ?locatie ;
113                onz-g:startDatum ?start_proces .
114            OPTIONAL {?zorgproces onz-g:eindDatum ?eind_proces}
115            FILTER (?start_proces <= ?eind_periode && (!BOUND(?eind_proces) || ?eind_proces >= ?start_periode))
116
117            # selecteer vestiging van gewerkte periode
118            {
119                ?locatie onz-g:partOf* ?vestiging_uri .
120                ?vestiging_uri 
121                    a onz-org:Vestiging ;
122                    onz-g:identifiedBy ?vest_nr.
123                ?vest_nr a onz-org:Vestigingsnummer ;
124                    onz-g:hasDataValue ?vestiging .
125            } UNION {
126                # includeer ook de organisatie als geheel en label deze als vestiging
127                ?locatie onz-g:partOf*/onz-org:vestigingVan ?organisatie_uri .
128                ?organisatie_uri 
129                    a onz-g:Business ;
130                    rdfs:label ?organisatie .
131                BIND(CONCAT('Totaal ',?organisatie) AS ?vestiging)
132            }
133
134            # selecteer de bijbehordene indicatie, om unieke clienten te kunnen bepalen
135            ?indicatie 
136                onz-g:hasPart ?zorgprofiel ;
137                onz-g:isAbout ?client .
138            ?client a onz-g:Human .
139        }
140    GROUP BY ?vestiging
141    }
142}
143

Heb je feedback?

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