Let op: dit is een oudere versie van deze publicatie. Ga naar de laatste versie
Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren 7.1 2# Parameters: $(kwartaal) 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#> 10PREFIX onz-zorg: <http://purl.org/ozo/onz-zorg#> 11 12SELECT 13 ?vestiging 14 ?ingezette_uren 15 ?aantal_clienten 16 ((?ingezette_uren/?aantal_clienten) AS ?ingezetten_uren_per_client) 17WHERE 18{ 19 { 20 SELECT 21 ?vestiging 22 (SUM(?uren) AS ?ingezette_uren) 23 WHERE 24 { 25 # definieer kwartaal waarin overeenkomst geldig moet zijn 26 BIND(('Q2') AS ?kwartaal) 27 BIND( 28 IF(?kwartaal = 'Q1', '2023-01-01'^^xsd:date, 29 IF(?kwartaal = 'Q2', '2023-04-01'^^xsd:date, 30 IF(?kwartaal = 'Q3', '2023-07-01'^^xsd:date, 31 IF(?kwartaal = 'Q4', '2023-10-01'^^xsd:date, 32 '')))) AS ?start_periode) 33 BIND((?start_periode + "P3M"^^xsd:duration - "P1D"^^xsd:duration) AS ?eind_periode) 34 35 # selecteer werkovereenkomsten waarbij werknemer een zorgverlenerfunctie heeft 36 ?functie 37 a onz-pers:ZorgverlenerFunctie ; 38 onz-g:startDatum ?start_functie . 39 OPTIONAL { ?functie onz-g:eindDatum ?eind_functie .} 40 41 FILTER(?start_functie <= ?eind_periode && ((?eind_functie >= ?start_periode) || (!BOUND(?eind_functie)))) 42 BIND(IF(!BOUND(?eind_functie), ?eind_periode, 43 IF(?eind_functie < ?eind_periode, ?eind_functie, ?eind_periode) 44 ) AS ?eind_functie_reken) 45 BIND(IF(?start_functie < ?start_periode, ?start_periode, ?start_functie) AS ?start_functie_reken) 46 47 ?overeenkomst 48 a onz-pers:ArbeidsOvereenkomst ; 49 onz-g:isAbout ?functie . 50 51 # selecteer uren van gewerkte periode binnen rekenperiode 52 ?gewerkteperiode 53 a onz-pers:GewerktePeriode ; 54 onz-g:hasBeginTimeStamp ?start_werk_datetime ; 55 onz-g:hasEndTimeStamp ?eind_werk_datetime ; 56 onz-g:hasPerdurantLocation ?locatie ; 57 onz-g:definedBy ?overeenkomst ; 58 onz-g:hasQuality / onz-g:hasQualityValue / onz-g:hasDataValue ?uren . 59 # Als begin- en endTimeStamp van type dateTime zijn dan omzetten zodat vergeleken kan worden met start en eind period 60 BIND(STRDT(SUBSTR(STR(?start_werk_datetime), 1, 10), xsd:date) AS ?start_werk) 61 BIND(STRDT(SUBSTR(STR(?eind_werk_datetime), 1, 10), xsd:date) AS ?eind_werk) 62 FILTER((?start_werk >= ?start_functie_reken) && (?eind_werk <= ?eind_functie_reken)) 63 64 # selecteer vestiging van gewerkte periode 65 { 66 ?locatie onz-g:partOf* ?vestiging_uri . 67 ?vestiging_uri 68 a onz-org:Vestiging ; 69 onz-g:identifiedBy ?vest_nr. 70 ?vest_nr a onz-org:Vestigingsnummer ; 71 onz-g:hasDataValue ?vestiging . 72 } UNION { 73 # includeer ook de organisatie als geheel en label deze als vestiging 74 ?locatie onz-g:partOf*/onz-org:vestigingVan ?organisatie_uri . 75 ?organisatie_uri 76 a onz-g:Business ; 77 rdfs:label ?organisatie . 78 BIND(CONCAT('Totaal ',?organisatie) AS ?vestiging) 79 } 80 81 } 82 GROUP BY ?vestiging 83 } 84 { 85 SELECT 86 ?vestiging 87 (COUNT(DISTINCT(?client)) AS ?aantal_clienten) 88 WHERE 89 { 90 # definieer kwartaal waarin overeenkomst geldig moet zijn 91 BIND(('Q2') AS ?kwartaal) 92 BIND( 93 IF(?kwartaal = 'Q1', '2023-01-01'^^xsd:date, 94 IF(?kwartaal = 'Q2', '2023-04-01'^^xsd:date, 95 IF(?kwartaal = 'Q3', '2023-07-01'^^xsd:date, 96 IF(?kwartaal = 'Q4', '2023-10-01'^^xsd:date, 97 '')))) AS ?start_periode) 98 BIND((?start_periode + "P3M"^^xsd:duration - "P1D"^^xsd:duration) AS ?eind_periode) 99 100 VALUES ?zorgprofiel { onz-zorg:4VV onz-zorg:5VV onz-zorg:6VV onz-zorg:7VV onz-zorg:8VV onz-zorg:9BVV onz-zorg:10VV } 101 102 # selecteer zorgproces binnen periode 103 ?zorgproces 104 a onz-zorg:NursingProcess ; 105 onz-g:definedBy ?indicatie ; 106 onz-g:hasPerdurantLocation ?locatie ; 107 onz-g:startDatum ?start_proces . 108 OPTIONAL {?zorgproces onz-g:eindDatum ?eind_proces} 109 FILTER (?start_proces <= ?eind_periode && (!BOUND(?eind_proces) || ?eind_proces >= ?start_periode)) 110 111 # selecteer vestiging van gewerkte periode 112 { 113 ?locatie onz-g:partOf* ?vestiging_uri . 114 ?vestiging_uri 115 a onz-org:Vestiging ; 116 onz-g:identifiedBy ?vest_nr. 117 ?vest_nr a onz-org:Vestigingsnummer ; 118 onz-g:hasDataValue ?vestiging . 119 } UNION { 120 # includeer ook de organisatie als geheel en label deze als vestiging 121 ?locatie onz-g:partOf*/onz-org:vestigingVan ?organisatie_uri . 122 ?organisatie_uri 123 a onz-g:Business ; 124 rdfs:label ?organisatie . 125 BIND(CONCAT('Totaal ',?organisatie) AS ?vestiging) 126 } 127 128 # selecteer de bijbehordene indicatie, om unieke clienten te kunnen bepalen 129 ?indicatie 130 onz-g:hasPart ?zorgprofiel ; 131 onz-g:isAbout ?client . 132 ?client a onz-g:Human . 133 } 134 GROUP BY ?vestiging 135 } 136}
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!