Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Versie:

Publicatiedatum:23-12-2024

Inwerkingtreding:23-12-2024




Bekijk bron...

7.1 Aantal ingezette uren aan personeel in loondienst 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_contract, ?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 of vraag aan bij het KIK-V product? Neem dan contact met ons op!