Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

7.1 Aantal ingezette uren aan personeel in loondienst met een zorggerelateerde functie per cliënt

Concepten

Relaties

Eigenschappen

Instanties

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 7.1
2# Parameters: ?jaar, ?kwartaal, ?zorgkantoor
3# Ontologie: versie 3.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	# ?zorgkantoor_vestiging
15    ?ingezette_uren
16    ?aantal_clienten
17    (IF(?aantal_clienten = 0, "Ongedefineerd", ?ingezette_uren/?aantal_clienten) AS ?ingezetten_uren_per_client)
18WHERE 
19{
20    {
21        SELECT 
22            ?vestiging
23            ?zorgkantoor_vestiging
24            (SUM(?gewerkte_uren) AS ?ingezette_uren)
25        WHERE
26        {
27            # BIND(2023 AS ?jaar)
28            # BIND("Q3" AS ?kwartaal)
29            # BIND(onz-org:ZorgkantoorMenzis AS ?zorgkantoor)
30            BIND(IF(?kwartaal = 'Q1', xsd:date(CONCAT(STR(?jaar), '-01-01')),
31                IF(?kwartaal = 'Q2', xsd:date(CONCAT(STR(?jaar), '-04-01')),
32                IF(?kwartaal = 'Q3', xsd:date(CONCAT(STR(?jaar), '-07-01')),
33                IF(?kwartaal = 'Q4', xsd:date(CONCAT(STR(?jaar), '-10-01')),
34                '')))) AS ?start_periode)
35            BIND(?start_periode + "P3M"^^xsd:duration + "-P1D"^^xsd:duration AS ?eind_periode)
36            
37            # Bepaal filter voor definitie van overeenkomsten die geldig zijn voor personeelsleden
38            VALUES ?personeels_overeenkomst 
39            { 
40                onz-pers:ArbeidsOvereenkomst
41                onz-pers:UitzendOvereenkomst
42                onz-pers:InhuurOvereenkomst
43            }
44            ?overeenkomst 
45                a ?personeels_overeenkomst ;
46                onz-pers:heeftOpdrachtnemer ?persoon ;
47                onz-g:hasPart ?overeenkomst_afspraak .
48            ?overeenkomst_afspraak
49                a onz-pers:WerkOvereenkomstAfspraak ;
50                onz-g:startDatum ?start_afspraak .
51            OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak }
52            FILTER(?start_afspraak <= ?eind_periode && ((?eind_afspraak >= ?start_periode) || (!BOUND(?eind_afspraak))))
53
54            ?overeenkomst_afspraak onz-g:isAbout ?functie .                
55            ?functie a onz-pers:ZorgverlenerFunctie .
56            ?overeenkomst_afspraak onz-g:isAbout ?locatie_afspraak .
57            ?locatie_afspraak a onz-g:StationaryArtifact .
58
59            ?inzet
60                a onz-pers:GewerktePeriode ;
61                onz-g:definedBy ?overeenkomst ;
62                onz-g:hasBeginTimeStamp ?start_inzet_datetime ;
63                onz-g:hasQuality/onz-g:hasQualityValue/onz-g:hasDataValue ?gewerkte_uren .
64            OPTIONAL{ ?inzet onz-g:hasPerdurantLocation ?locatie_werk }
65            BIND(STRDT(SUBSTR(STR(?start_inzet_datetime), 1, 10), xsd:date) AS ?start_inzet)
66            FILTER(?start_inzet >= ?start_periode && ?start_inzet <= ?eind_periode)
67            FILTER(?start_inzet >= ?start_afspraak && (?start_inzet <= ?eind_afspraak || !BOUND(?eind_afspraak)))
68
69            BIND(IF(!BOUND(?locatie_werk), ?locatie_afspraak, ?locatie_werk) AS ?locatie)
70            ?locatie onz-g:partOf* ?vestiging_uri .
71            ?vestiging_uri a onz-org:Vestiging ;
72                onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 .
73            BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
74            ?pc_gebied 
75                onz-g:identifiedBy ?postcode ;
76                onz-g:partOf+ ?zk_regio .
77            ?zk_regio a onz-org:ZorgkantoorRegio .
78            ?zorgkantoor onz-g:hasOperatingRange ?zk_regio .
79            {     
80                ?vestiging_uri onz-g:identifiedBy ?vest_nr .    	
81                ?vest_nr a onz-org:Vestigingsnummer ;
82                    onz-g:hasDataValue ?vestiging .
83            } UNION {
84                # Includeer ook de organisatie als geheel en label deze als vestiging
85                ?vestiging_uri onz-org:vestigingVan ?organisatie_uri .
86                BIND("Totaal organisatie" AS ?vestiging)
87                BIND("n.v.t." AS ?zk_vestiging)
88            }
89            BIND(IF(!BOUND(?zk_vestiging), ?zorgkantoor, ?zk_vestiging) AS ?zorgkantoor_vestiging)
90
91        }
92        GROUP BY ?vestiging ?zorgkantoor_vestiging
93    }
94    {
95        SELECT 
96            ?vestiging
97            ?zorgkantoor_vestiging
98            (COUNT(DISTINCT(?client)) AS ?aantal_clienten)
99        WHERE
100        {
101            # definieer kwartaal waarin clienten verzorgd werden
102            # BIND(2023 AS ?jaar)
103            # BIND("Q3" AS ?kwartaal)
104            # BIND(onz-org:ZorgkantoorMenzis AS ?zorgkantoor)
105            BIND(IF(?kwartaal = 'Q1', xsd:date(CONCAT(STR(?jaar), '-01-01')),
106                IF(?kwartaal = 'Q2', xsd:date(CONCAT(STR(?jaar), '-04-01')),
107                IF(?kwartaal = 'Q3', xsd:date(CONCAT(STR(?jaar), '-07-01')),
108                IF(?kwartaal = 'Q4', xsd:date(CONCAT(STR(?jaar), '-10-01')),
109                '')))) AS ?start_periode)
110            BIND(?start_periode + "P3M"^^xsd:duration + "-P1D"^^xsd:duration AS ?eind_periode)
111            
112            VALUES ?zorgprofiel { onz-zorg:4VV onz-zorg:5VV onz-zorg:6VV onz-zorg:7VV onz-zorg:8VV onz-zorg:9BVV onz-zorg:10VV }
113            
114            # selecteer zorgproces binnen periode
115            ?zorgproces
116                a onz-zorg:NursingProcess ;
117                onz-g:definedBy ?indicatie ;
118                onz-g:hasPerdurantLocation ?locatie ;
119                onz-g:startDatum ?start_proces .
120            OPTIONAL {?zorgproces onz-g:eindDatum ?eind_proces}
121            FILTER (?start_proces <= ?eind_periode && (!BOUND(?eind_proces) || ?eind_proces >= ?start_periode))
122
123            # selecteer vestiging van het zorgproces
124            ?locatie onz-g:partOf* ?vestiging_uri .
125            ?vestiging_uri a onz-org:Vestiging ;
126                onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 .
127            BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
128            ?pc_gebied 
129                onz-g:identifiedBy ?postcode ;
130                onz-g:partOf+ ?zk_regio .
131            ?zk_regio a onz-org:ZorgkantoorRegio .
132            ?zorgkantoor onz-g:hasOperatingRange ?zk_regio .
133            {     
134                ?vestiging_uri onz-g:identifiedBy ?vest_nr .    	
135                ?vest_nr a onz-org:Vestigingsnummer ;
136                    onz-g:hasDataValue ?vestiging .
137            } UNION {
138                # Includeer ook de organisatie als geheel en label deze als vestiging
139                ?vestiging_uri onz-org:vestigingVan ?organisatie_uri .
140                BIND("Totaal organisatie" AS ?vestiging)
141                BIND("n.v.t." AS ?zk_vestiging)
142            }
143            BIND(IF(!BOUND(?zk_vestiging), ?zorgkantoor, ?zk_vestiging) AS ?zorgkantoor_vestiging)
144
145            # selecteer de bijbehordene indicatie, om unieke clienten te kunnen bepalen
146            ?indicatie 
147                onz-g:hasPart ?zorgprofiel ;
148                onz-g:isAbout ?client .
149            ?client a onz-g:Human .
150        }
151    GROUP BY ?vestiging ?zorgkantoor_vestiging
152    }
153}
154

Heb je feedback?

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