Let op: dit is een oudere versie van deze publicatie. Ga naar de laatste versie
Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren 6.1 2# Parameters: $(start_periode), $(eind_periode) 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#> 10 11SELECT 12 ?vestiging 13 ?kwalificatie_niveau 14 (?kwalificatie_uren AS ?ingezette_uren) 15 ((?kwalificatie_uren/?totaal_uren)*100 AS ?percentage) 16WHERE 17{ 18 # subquery: bereken het aantal ingezette uren per kwalificatieniveau en vestiging 19 { 20 SELECT 21 ?vestiging 22 ?kwalificatie_niveau 23 (SUM(?uren) AS ?kwalificatie_uren) 24 WHERE 25 { 26 # selecteer alle geregistreerde uren van de werknemers per 27 SELECT DISTINCT 28 ?gewerkte_periode 29 ?start_werk 30 ?eind_werk 31 ?uren 32 ?kwalificatie_niveau 33 ?vestiging 34 WHERE 35 { 36 BIND ('2023-10-01'^^xsd:date AS ?start_periode) 37 BIND ('2023-12-31'^^xsd:date AS ?eind_periode) 38 39 # selecteer werkovereenkomsten waarbij werknemer een zorgverlenerfunctie heeft 40 ?overeenkomst 41 a onz-pers:ArbeidsOvereenkomst ; 42 onz-pers:heeftOpdrachtnemer ?medewerker ; 43 onz-g:isAbout/a onz-pers:ZorgverlenerFunctie ; 44 onz-g:isAbout ?functie . 45 46 # selecteer kwalificatie niveau 47 ?functie 48 a onz-g:Role ; 49 a/ onz-g:hasQuality /onz-g:hasQualityValue ?functie_niveau . 50 51 ?functie_niveau 52 a onz-pers:ODBKwalificatieWaarde ; 53 rdfs:label ?kwalificatie_niveau . 54 55 # selecteer uren van gewerkte periode binnen peruide 56 ?gewerkteperiode 57 a onz-pers:GewerktePeriode ; 58 onz-g:definedBy ?overeenkomst ; 59 onz-g:hasBeginTimeStamp ?start_werk_datetime ; 60 onz-g:hasEndTimeStamp ?eind_werk_datetime ; 61 onz-g:hasPerdurantLocation ?location ; 62 onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren . 63 # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period 64 BIND(STRDT(SUBSTR(STR(?start_werk_datetime), 1, 10), xsd:date) AS ?start_werk) 65 BIND(STRDT(SUBSTR(STR(?eind_werk_datetime), 1, 10), xsd:date) AS ?eind_werk) 66 FILTER(?start_werk >= ?start_periode && ?eind_werk <= ?eind_periode) 67 68 # selecteer locatie met bijbehorende vestiging 69 ?location 70 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 } 77 } 78 GROUP BY ?vestiging ?kwalificatie_niveau 79 } 80 # subquery: bereken het aantal ingezette uren per vestiging 81 { 82 SELECT 83 ?vestiging 84 (SUM(?uren) AS ?totaal_uren) 85 # selecteer alle geregistreerde uren van de werknemers per vestiging 86 WHERE 87 { 88 SELECT DISTINCT 89 ?gewerkte_periode 90 ?start_werk 91 ?eind_werk 92 ?uren 93 ?vestiging 94 WHERE 95 { 96 BIND ('2023-10-01'^^xsd:date AS ?start_periode) 97 BIND ('2023-12-31'^^xsd:date AS ?eind_periode) 98 99 # selecteer uren van gewerkte periode binnen periode 100 ?gewerkteperiode 101 a onz-pers:GewerktePeriode ; 102 onz-g:hasBeginTimeStamp ?start_werk_datetime ; 103 onz-g:hasEndTimeStamp ?eind_werk_datetime ; 104 onz-g:hasPerdurantLocation ?location ; 105 onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren . 106 # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period 107 BIND(STRDT(SUBSTR(STR(?start_werk_datetime), 1, 10), xsd:date) AS ?start_werk) 108 BIND(STRDT(SUBSTR(STR(?eind_werk_datetime), 1, 10), xsd:date) AS ?eind_werk) 109 FILTER(?start_werk >= ?start_periode && ?eind_werk <= ?eind_periode) 110 111 ?location 112 onz-g:partOf* ?vestiging_uri . 113 ?vestiging_uri 114 a onz-org:Vestiging ; 115 onz-g:identifiedBy ?vest_nr. 116 ?vest_nr a onz-org:Vestigingsnummer ; 117 onz-g:hasDataValue ?vestiging . 118 } 119 } 120 GROUP BY ?vestiging 121 } 122} 123ORDER BY ?vestiging ?kwalificatie_niveau
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!