Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Versie:

Publicatiedatum:23-12-2024

Inwerkingtreding:23-12-2024




Bekijk bron...

6.1 Percentage ingezette uren personeel per kwalificatieniveau

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 6.1
2# Parameters: ?jaar, ?kwartaal, ?zorgkantoor
3# Ontologie: versie 3.0 of nieuwer
4
5PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
6PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
7PREFIX onz-g: <http://purl.org/ozo/onz-g#>
8PREFIX onz-org: <http://purl.org/ozo/onz-org#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10
11SELECT 
12    ?vestiging
13    ?Kwalificatieniveau
14    (SUM(?gewerkte_uren) AS ?ingezette_uren_aan_zorgverleners)
15    (SUM(?gewerkte_uren)/SUM(?uren_totaal)*100 AS ?percentage)
16
17{
18    # BIND(2023 AS ?jaar)
19    # BIND("Q3" AS ?kwartaal)
20    # BIND(onz-org:ZorgkantoorMenzis AS ?zorgkantoor)
21    BIND(IF(?kwartaal = 'Q1', xsd:date(CONCAT(STR(?jaar), '-01-01')),
22        IF(?kwartaal = 'Q2', xsd:date(CONCAT(STR(?jaar), '-04-01')),
23        IF(?kwartaal = 'Q3', xsd:date(CONCAT(STR(?jaar), '-07-01')),
24        IF(?kwartaal = 'Q4', xsd:date(CONCAT(STR(?jaar), '-10-01')),
25        '')))) AS ?start_periode)
26    BIND(?start_periode + "P3M"^^xsd:duration + "-P1D"^^xsd:duration AS ?eind_periode)
27    
28    ?overeenkomst 
29        a onz-pers:ArbeidsOvereenkomst ; # personeel in loondienst
30        onz-pers:heeftOpdrachtnemer ?persoon ;
31        onz-g:hasPart ?overeenkomst_afspraak .
32    ?overeenkomst_afspraak
33        a onz-pers:WerkOvereenkomstAfspraak ;
34        onz-g:startDatum ?start_afspraak .
35    OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak }
36    FILTER(?start_afspraak <= ?eind_periode && ((?eind_afspraak >= ?start_periode) || (!BOUND(?eind_afspraak))))
37
38    ?overeenkomst_afspraak onz-g:isAbout ?functie .                
39    ?functie 
40        a onz-pers:ZorgverlenerFunctie ;
41        onz-g:hasQuality/onz-g:hasQualityValue ?kwal_niveau .
42    ?kwal_niveau a onz-pers:ODBKwalificatieWaarde .
43    ?overeenkomst_afspraak onz-g:isAbout ?locatie_afspraak .
44    ?locatie_afspraak a onz-g:StationaryArtifact .
45
46    ?inzet
47        a onz-pers:GewerktePeriode ;
48        onz-g:definedBy ?overeenkomst ;
49        onz-g:hasBeginTimeStamp ?start_inzet_datetime ;
50        onz-g:hasQuality/onz-g:hasQualityValue/onz-g:hasDataValue ?uren_totaal .
51    OPTIONAL{ ?inzet onz-g:hasPerdurantLocation ?locatie_werk }
52    BIND(STRDT(SUBSTR(STR(?start_inzet_datetime), 1, 10), xsd:date) AS ?start_inzet)
53    FILTER(?start_inzet >= ?start_periode && ?start_inzet <= ?eind_periode)
54    FILTER(?start_inzet >= ?start_afspraak && (?start_inzet <= ?eind_afspraak || !BOUND(?eind_afspraak)))
55    {
56        ?kwalificatie_niveau a onz-pers:ODBKwalificatieWaarde .
57    } UNION {
58        BIND("Totaal" AS ?kwalificatie_niveau)
59    }
60    BIND(IF(?kwal_niveau = ?kwalificatie_niveau || ?kwalificatie_niveau = "Totaal", ?uren_totaal, 0) AS ?gewerkte_uren)
61    # Bepaal de locatie voor uren. Gebruik urenregistratie. Als die geen locatie bevat, gebruik locatie van contract
62    BIND(IF(!BOUND(?locatie_werk), ?locatie_contract, ?locatie_werk) AS ?locatie)
63    ?locatie onz-g:partOf* ?vestiging_uri .
64    ?vestiging_uri a onz-org:Vestiging ;
65        onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 .
66    BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
67    ?pc_gebied 
68        onz-g:identifiedBy ?postcode ;
69        onz-g:partOf+ ?zk_regio .
70    ?zk_regio a onz-org:ZorgkantoorRegio .
71    ?zorgkantoor onz-g:hasOperatingRange ?zk_regio .
72    {     
73        ?vestiging_uri 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        ?vestiging_uri onz-org:vestigingVan ?organisatie_uri .
79        BIND("Totaal organisatie" AS ?vestiging)
80        BIND("n.v.t." AS ?zk_vestiging)
81    }
82    BIND(IF(!BOUND(?zk_vestiging), ?zorgkantoor, ?zk_vestiging) AS ?zorgkantoor_vestiging) .
83    ?kwalificatie_niveau rdfs:label ?Kwalificatieniveau
84}
85GROUP BY ?vestiging ?Kwalificatieniveau
86ORDER BY ?vestiging ?kwalificatie_niveau
87

Heb je feedback?

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