Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren 2.1.1 2# Parameters: - 3# Ontologie: versie 2.0.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 (SUM(?inzet_uren) AS ?indicator) 14{ 15 { 16 SELECT DISTINCT 17 ?locatie 18 ?locatie_werk 19 ?inzet 20 ?gewerkte_tijd 21 { 22 BIND(('Q1') AS ?kwartaal) 23 BIND(IF(?kwartaal = 'Q1', '2023-01-01'^^xsd:date, 24 IF(?kwartaal = 'Q2', '2023-04-01'^^xsd:date, 25 IF(?kwartaal = 'Q3', '2023-07-01'^^xsd:date, 26 IF(?kwartaal = 'Q4', '2023-10-01'^^xsd:date, 27 '')))) AS ?start_periode) 28 BIND(?start_periode + "P3M"^^xsd:duration - "P1D"^^xsd:duration AS ?eind_periode) 29 30 # Alle zorgverlener functies 31 ?functie 32 a onz-pers:ZorgverlenerFunctie ; 33 onz-g:startDatum ?start_functie . 34 OPTIONAL { ?functie onz-g:eindDatum ?eind_functie . } 35 36 # Alle zorg verlener functies die vallen binnen de periode of worden hierop aangepast 37 FILTER(?start_functie <= ?eind_periode && ((?eind_functie >= ?start_periode) || (!BOUND(?eind_functie)))) 38 BIND(IF(!BOUND(?eind_functie), ?eind_periode, 39 IF(?eind_functie < ?eind_periode, ?eind_functie, ?eind_periode) 40 ) AS ?eind_functie_reken) 41 BIND(IF(?start_functie < ?start_periode, ?start_periode, ?start_functie) AS ?start_functie_reken) 42 43 # zorgverlener functie zijn onderdeel van een contract 44 ?overeenkomst 45 a onz-pers:ArbeidsOvereenkomst ; 46 onz-g:isAbout ?locatie_contract ; 47 onz-g:isAbout ?functie . 48 49 # Werkperiode van alle zorgverlener functies 50 ?inzet 51 a onz-pers:GewerktePeriode ; 52 onz-g:definedBy ?overeenkomst ; 53 onz-g:hasBeginTimeStamp ?start_inzet_datetime ; 54 onz-g:hasEndTimeStamp ?eind_inzet_datetime ; 55 onz-g:hasQuality ?gewerkte_tijd . 56 OPTIONAL{?inzet onz-g:hasPerdurantLocation ?locatie_werk} 57 # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period 58 BIND(STRDT(SUBSTR(STR(?start_inzet_datetime), 1, 10), xsd:date) AS ?start_inzet) 59 BIND(STRDT(SUBSTR(STR(?eind_inzet_datetime), 1, 10), xsd:date) AS ?eind_inzet) 60 FILTER (?start_inzet >= ?start_functie_reken && ?eind_inzet <= ?eind_functie_reken) 61 62 ?locatie_contract a onz-g:StationaryArtifact . 63 BIND(IF(!BOUND(?locatie_werk), ?locatie_contract, ?locatie_werk) AS ?locatie) 64 } 65 } 66 # Bepaal de vestiging waar de werkzaamheden verricht worden volgens de werkovereenkomst 67 { 68 ?locatie onz-g:partOf* ?vestiging_uri . 69 ?vestiging_uri 70 a onz-org:Vestiging ; 71 onz-g:identifiedBy ?vest_nr. 72 ?vest_nr a onz-org:Vestigingsnummer ; 73 onz-g:hasDataValue ?Vestiging . 74 } UNION { 75 # Includeer ook de organisatie als geheel en label deze als vestiging 76 ?locatie onz-g:partOf*/onz-org:vestigingVan ?organisatie_uri . 77 ?organisatie_uri 78 a onz-g:Business ; 79 rdfs:label ?Organisatie . 80 BIND(CONCAT('Totaal ',?Organisatie) AS ?Vestiging) 81 } 82 83 ?gewerkte_tijd 84 a onz-pers:GewerkteTijd ; 85 onz-g:hasQualityValue/onz-g:hasDataValue ?inzet_uren_voorl . 86 87 BIND(IF(!BOUND(?locatie_werk) && BOUND(?vestiging_uri), 0, 1) AS ?correctie) 88 BIND(?inzet_uren_voorl * ?correctie AS ?inzet_uren) 89} 90GROUP BY ?Vestiging 91ORDER BY ?Vestiging
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!