Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Versie:

Publicatiedatum:23-12-2024

Inwerkingtreding:23-12-2024




Bekijk bron...

5.1 Leeftijdsopbouw personeel in loondienst

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 5.1
2# Parameters: ?kwartaal ?jaar ?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 rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
11
12SELECT 
13    ?vestiging 
14    # ?zorgkantoor_vestiging
15    (SUM(?1620) AS ?16_20)
16    (SUM(?2125) AS ?21_25)
17    (SUM(?2630) AS ?26_30)
18    (SUM(?3135) AS ?31_35)
19    (SUM(?3640) AS ?36_40)
20    (SUM(?4145) AS ?41_45)
21    (SUM(?4650) AS ?46_50)
22    (SUM(?5155) AS ?51_55)
23    (SUM(?5660) AS ?56_60)
24    (SUM(?6165) AS ?61_65)
25    (SUM(?6670) AS ?66_70)
26    (SUM(?7175) AS ?71_75)
27    (SUM(?75_) AS ?75_ouder)
28{
29    {
30        SELECT  DISTINCT 
31            ?vestiging 
32            ?zorgkantoor_vestiging
33            ?persoon
34            ?leeftijd
35        {
36            # BIND(2023 AS ?jaar)
37            # BIND("Q1" AS ?kwartaal)
38            # BIND(onz-org:ZorgkantoorMenzis AS ?zorgkantoor)
39
40            BIND(IF(?kwartaal = 'Q1', xsd:date(CONCAT(STR(?jaar), '-01-01')),
41                IF(?kwartaal = 'Q2', xsd:date(CONCAT(STR(?jaar), '-04-01')),
42                IF(?kwartaal = 'Q3', xsd:date(CONCAT(STR(?jaar), '-07-01')),
43                IF(?kwartaal = 'Q4', xsd:date(CONCAT(STR(?jaar), '-10-01')),
44                '')))) AS ?start_periode)
45            BIND(?start_periode + "P3M"^^xsd:duration + "-P1D"^^xsd:duration AS ?eind_periode)
46            
47            ?overeenkomst 
48                a onz-pers:ArbeidsOvereenkomst ;
49                onz-pers:heeftOpdrachtnemer ?persoon ;
50                onz-g:hasPart ?overeenkomst_afspraak .
51            ?overeenkomst_afspraak
52                a onz-pers:WerkOvereenkomstAfspraak ;
53                onz-g:startDatum ?start_afspraak .
54            OPTIONAL {
55                ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak
56            }
57            FILTER (?start_afspraak <= ?eind_periode && (?eind_afspraak >= ?start_periode || !BOUND(?eind_afspraak)))
58
59            ?persoon 
60                a onz-g:Human ;
61                onz-g:hasDateOfBirth ?geboortedatum .
62            
63            BIND(YEAR(?eind_periode) - YEAR(?geboortedatum) AS ?leeftijd_voorl)
64            BIND(IF(MONTH(?geboortedatum) > MONTH(?eind_periode) 
65                || (MONTH(?geboortedatum) = MONTH(?eind_periode) && DAY(?geboortedatum) > DAY(?eind_periode)), 
66                ?leeftijd_voorl - 1, ?leeftijd_voorl) AS ?leeftijd)
67        
68            # bepaal vestiging en zorgkantoor regio voor iedere contractafspraak
69            ?overeenkomst_afspraak onz-g:isAbout ?locatie .
70            ?locatie 
71                a onz-g:StationaryArtifact ;
72                onz-g:partOf* ?vestiging_uri .
73            ?vestiging_uri a onz-org:Vestiging ;
74                onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 .
75            BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
76            ?pc_gebied 
77                onz-g:identifiedBy ?postcode ;
78                onz-g:partOf+ ?zk_regio .
79            ?zk_regio a onz-org:ZorgkantoorRegio .
80            ?zorgkantoor onz-g:hasOperatingRange ?zk_regio .
81            {     
82                ?vestiging_uri onz-g:identifiedBy ?vest_nr .    	
83                ?vest_nr a onz-org:Vestigingsnummer ;
84                    onz-g:hasDataValue ?vestiging .
85            } UNION {
86                # Includeer ook de organisatie als geheel en label deze als vestiging
87                ?vestiging_uri onz-org:vestigingVan ?organisatie_uri .
88                BIND("Totaal organisatie" AS ?vestiging)
89                BIND("n.v.t." AS ?zk_vestiging)
90            }
91            BIND(IF(!BOUND(?zk_vestiging), ?zorgkantoor, ?zk_vestiging) AS ?zorgkantoor_vestiging)
92
93        }
94    }
95    BIND(IF(?leeftijd >= 16 && ?leeftijd <= 20, 1, 0) AS ?1620)
96    BIND(IF(?leeftijd >= 21 && ?leeftijd <= 25, 1, 0) AS ?2125)
97    BIND(IF(?leeftijd >= 26 && ?leeftijd <= 30, 1, 0) AS ?2630)
98    BIND(IF(?leeftijd >= 31 && ?leeftijd <= 35, 1, 0) AS ?3135)
99    BIND(IF(?leeftijd >= 36 && ?leeftijd <= 40, 1, 0) AS ?3640)
100    BIND(IF(?leeftijd >= 41 && ?leeftijd <= 45, 1, 0) AS ?4145)
101    BIND(IF(?leeftijd >= 46 && ?leeftijd <= 50, 1, 0) AS ?4650)
102    BIND(IF(?leeftijd >= 51 && ?leeftijd <= 55, 1, 0) AS ?5155)
103    BIND(IF(?leeftijd >= 56 && ?leeftijd <= 60, 1, 0) AS ?5660)
104    BIND(IF(?leeftijd >= 61 && ?leeftijd <= 65, 1, 0) AS ?6165)
105    BIND(IF(?leeftijd >= 66 && ?leeftijd <= 70, 1, 0) AS ?6670)
106    BIND(IF(?leeftijd >= 71 && ?leeftijd <= 75, 1, 0) AS ?7175)
107    BIND(IF(?leeftijd >= 75 , 1, 0) AS ?75_)
108}
109GROUP BY ?vestiging ?zorgkantoor_vestiging 
110ORDER BY ?vestiging

Heb je feedback?

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