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 ($(start_periode) AS ?start_periode) 37 BIND ($(eind_periode) AS ?eind_periode) 38 39 # selecteer werkovereenkomsten waarbij werknemer een zorgverlenerfunctie heeft 40 ?functie 41 a onz-pers:ZorgverlenerFunctie ; 42 a/ onz-g:hasQuality /onz-g:hasQualityValue ?functie_niveau ; 43 onz-g:startDatum ?start_functie . 44 OPTIONAL { ?functie onz-g:eindDatum ?eind_functie . } 45 46 FILTER(?start_functie <= ?eind_periode && ((?eind_functie >= ?start_periode) || (!BOUND(?eind_functie)))) 47 BIND(IF(!BOUND(?eind_functie), ?eind_periode, 48 IF(?eind_functie < ?eind_periode, ?eind_functie, ?eind_periode) 49 ) AS ?eind_functie_reken) 50 BIND(IF(?start_functie < ?start_periode, ?start_periode, ?start_functie) AS ?start_functie_reken) 51 52 ?overeenkomst 53 a onz-pers:ArbeidsOvereenkomst ; 54 onz-pers:heeftOpdrachtnemer ?medewerker ; 55 onz-g:isAbout ?functie . 56 57 ?functie_niveau 58 a onz-pers:ODBKwalificatieWaarde ; 59 rdfs:label ?kwalificatie_niveau . 60 61 # selecteer uren van gewerkte periode binnen periode 62 ?gewerkte_periode 63 a onz-pers:GewerktePeriode ; 64 onz-g:definedBy ?overeenkomst ; 65 onz-g:hasBeginTimeStamp ?start_werk_datetime ; 66 onz-g:hasEndTimeStamp ?eind_werk_datetime ; 67 onz-g:hasPerdurantLocation ?location ; 68 onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren . 69 # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period 70 BIND(STRDT(SUBSTR(STR(?start_werk_datetime), 1, 10), xsd:date) AS ?start_werk) 71 BIND(STRDT(SUBSTR(STR(?eind_werk_datetime), 1, 10), xsd:date) AS ?eind_werk) 72 FILTER(?start_werk >= ?start_functie_reken && ?eind_werk <= ?eind_functie_reken) 73 74 # selecteer locatie met bijbehorende vestiging 75 ?location 76 onz-g:partOf* ?vestiging_uri . 77 ?vestiging_uri 78 a onz-org:Vestiging ; 79 onz-g:identifiedBy ?vest_nr. 80 ?vest_nr a onz-org:Vestigingsnummer ; 81 onz-g:hasDataValue ?vestiging . 82 } 83 } 84 GROUP BY ?vestiging ?kwalificatie_niveau 85 } 86 # subquery: bereken het aantal ingezette uren per vestiging 87 { 88 SELECT 89 ?vestiging 90 (SUM(?uren) AS ?totaal_uren) 91 # selecteer alle geregistreerde uren van de werknemers per vestiging 92 WHERE 93 { 94 SELECT DISTINCT 95 ?gewerkte_periode 96 ?start_werk 97 ?eind_werk 98 ?uren 99 ?vestiging 100 WHERE 101 { 102 BIND ($(start_periode) AS ?start_periode) 103 BIND ($(eind_periode) AS ?eind_periode) 104 105 # selecteer uren van gewerkte periode binnen periode 106 ?gewerkte_periode 107 a onz-pers:GewerktePeriode ; 108 onz-g:hasBeginTimeStamp ?start_werk_datetime ; 109 onz-g:hasEndTimeStamp ?eind_werk_datetime ; 110 onz-g:hasPerdurantLocation ?location ; 111 onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren . 112 # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period 113 BIND(STRDT(SUBSTR(STR(?start_werk_datetime), 1, 10), xsd:date) AS ?start_werk) 114 BIND(STRDT(SUBSTR(STR(?eind_werk_datetime), 1, 10), xsd:date) AS ?eind_werk) 115 FILTER(?start_werk >= ?start_periode && ?eind_werk <= ?eind_periode) 116 117 ?location 118 onz-g:partOf* ?vestiging_uri . 119 ?vestiging_uri 120 a onz-org:Vestiging ; 121 onz-g:identifiedBy ?vest_nr. 122 ?vest_nr a onz-org:Vestigingsnummer ; 123 onz-g:hasDataValue ?vestiging . 124 } 125 } 126 GROUP BY ?vestiging 127 } 128} 129ORDER BY ?vestiging ?kwalificatie_niveau
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!