Let op: dit is een oudere versie van deze publicatie. Ga naar de laatste versie
Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren 11.2.0 2# Parameters: - 3# Ontologie: versie 2.3.0 of nieuwer 4 5PREFIX onz-pers: <http://purl.org/ozo/onz-pers#> 6PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 7PREFIX onz-g: <http://purl.org/ozo/onz-g#> 8PREFIX time: <http://www.w3.org/2006/time#> 9PREFIX onz-org: <http://purl.org/ozo/onz-org#> 10 11SELECT 12 ?vestiging 13 ?zorg 14 (SUM(?ziek_totaal - ?hersteld_totaal) AS ?teller) 15 (SUM(?noemer_deel) AS ?noemer) 16 ((?teller / ?noemer) * 100 AS ?indicator) 17{ 18 SELECT 19 ?functie 20 ?omvang 21 ?vestiging 22 ?zorg 23 (MAX(?overeenkomst_totaal) AS ?noemer_deel) 24 (SUM(?ziek_totaal_temp) AS ?ziek_totaal) 25 (MAX(?hersteld_totaal_temp) AS ?hersteld_totaal) 26 { 27 SELECT 28 ?functie 29 ?omvang 30 ?vestiging 31 ?zorg 32 ?verzuimperiode 33 (MAX(?dagen_overeenkomst) AS ?overeenkomst_totaal) 34 (MAX(?dagen_ziek_reken) AS ?ziek_totaal_temp) 35 (SUM(?dagen_hersteld_reken) AS ?hersteld_totaal_temp) 36 { 37 BIND("2023-01-01"^^xsd:date AS ?start_periode) 38 BIND("2023-12-31"^^xsd:date AS ?eind_periode) 39 VALUES ?type_verzuim # Keuze in-/exclusief zwangerschapsverlog 40 { 41 onz-pers:ZiektePeriode 42 onz-pers:ZwangerschapsVerlof 43 } 44 ?functie 45 a onz-g:OccupationalPositionRole ; 46 onz-g:startDatum ?start_functie . 47 OPTIONAL {?functie onz-g:eindDatum ?eind_functie} 48 FILTER (?start_functie <= ?eind_periode && (?eind_functie >= ?start_periode || !BOUND(?eind_functie))) 49 BIND(IF(?start_functie < ?start_periode, ?start_periode, ?start_functie) AS ?start_functie_corr) 50 BIND(IF(?eind_functie > ?eind_periode || !BOUND(?eind_functie), ?eind_periode, ?eind_functie) AS ?eind_functie_corr) 51 OPTIONAL 52 { 53 ?functie a onz-pers:ZorgverlenerFunctie . 54 BIND(1 AS ?zorgfunctie) 55 } 56 BIND(IF(BOUND(?zorgfunctie),"Zorg","Niet-zorg") AS ?zorg) 57 ?overeenkomst 58 a onz-pers:ArbeidsOvereenkomst ; 59 onz-g:isAbout ?functie ; 60 onz-pers:heeftOpdrachtnemer ?persoon . 61 ?locatie 62 a onz-g:StationaryArtifact ; 63 ^onz-g:isAbout ?overeenkomst ; 64 onz-g:partOf* ?v . 65 ?v 66 a onz-org:Vestiging ; 67 onz-g:identifiedBy ?vest_nr. 68 ?vest_nr 69 a onz-org:Vestigingsnummer . 70 { 71 ?vest_nr onz-g:hasDataValue ?vestiging . 72 } UNION { 73 BIND ("Totaal organisatie" AS ?vestiging) 74 } 75 ?omvang 76 a onz-pers:ContractOmvang ; 77 onz-g:partOf ?overeenkomst ; 78 onz-g:isAbout ?omvang_waarde ; 79 onz-g:startDatum ?start_omvang . 80 OPTIONAL {?omvang onz-g:eindDatum ?eind_omvang} 81 FILTER (?start_omvang <= ?eind_functie_corr && (?eind_omvang >= ?start_functie_corr || !BOUND(?eind_omvang))) 82 ?omvang_waarde 83 onz-g:hasDataValue ?omvang_waarde_getal ; 84 onz-g:hasUnitOfMeasure ?omvang_waarde_eenheid . 85 ?omvang_waarde_eenheid 86 onz-pers:hasDenominatorQualityValue onz-g:Week ; 87 onz-pers:hasNumeratorQualityValue onz-g:Uur ; 88 onz-g:hasDataValue ?omvang_waarde_factor . 89 BIND (?omvang_waarde_getal * ?omvang_waarde_factor / 36 AS ?ptf) 90 BIND (IF(?start_omvang < ?start_functie_corr, ?start_functie_corr, ?start_omvang) AS ?start_omvang_corr) 91 BIND (IF(?eind_omvang > ?eind_functie_corr || !BOUND(?eind_omvang), ?eind_functie_corr, ?eind_omvang) AS ?eind_omvang_corr) 92 ?start_omvang_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_omvang_reken . 93 ?eind_omvang_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_omvang_reken . 94 BIND ((?eind_omvang_reken - ?start_omvang_reken + 1) * ?ptf AS ?dagen_overeenkomst) 95 OPTIONAL { 96 ?persoon 97 onz-g:isParticipantIn ?verzuimperiode . 98 ?verzuimperiode a ?type_verzuim ; 99 onz-g:startDatum ?start_verzuim . 100 ?start_verzuim ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_verzuimduur_reken . 101 OPTIONAL 102 { 103 ?verzuimperiode onz-g:eindDatum ?eind_verzuim . 104 ?eind_verzuim ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_verzuimduur_reken . 105 } 106 BIND(?eind_verzuimduur_reken - ?start_verzuimduur_reken + 1 AS ?verzuimduur) 107 FILTER(?verzuimduur <= 28 || !BOUND(?verzuimduur)) # Alleen kortdurend verzuim meenemen 108 OPTIONAL { 109 ?verzuimperiode 110 onz-g:hasQuality ?verzuimtijd . 111 ?verzuimtijd 112 a onz-pers:VerzuimTijdKwaliteit ; 113 onz-g:hasQualityValue ?verzuimtijdwaarde . 114 ?verzuimtijdwaarde 115 a onz-g:DurationValue ; 116 onz-g:hasDataValue ?ziektepercentage ; 117 onz-g:hasUnitOfMeasure onz-g:percent ; 118 onz-g:startDatum ?start_ziektepercentage . 119 OPTIONAL {?verzuimtijdwaarde onz-g:eindDatum ?eind_ziektepercentage} 120 } 121 } 122 BIND (IF((?start_verzuim <= ?eind_omvang_corr && (?eind_verzuim >= ?start_omvang_corr || !BOUND(?eind_verzuim))), 1, 0) AS ?geen_ziekte_factor) 123 BIND (IF(!BOUND(?verzuimperiode), 0, ?geen_ziekte_factor) AS ?ziekte_factor) 124 BIND (IF(?start_verzuim < ?start_omvang_corr && ?ziekte_factor = 1, ?start_omvang_corr, ?start_verzuim) AS ?start_verzuim_corr) 125 BIND (IF(BOUND(?verzuimperiode) && (?eind_verzuim > ?eind_omvang_corr || !BOUND(?eind_verzuim)) && ?ziekte_factor = 1, ?eind_omvang_corr, ?eind_verzuim) AS ?eind_verzuim_corr) 126 BIND (IF((?start_ziektepercentage > ?eind_verzuim_corr || ?eind_ziektepercentage < ?start_verzuim_corr), 0, 1) AS ?geen_percentage_factor) 127 BIND (IF(!BOUND(?geen_percentage_factor), 0, ?geen_percentage_factor * ?ziekte_factor) AS ?percentage_factor) 128 BIND (IF(?start_ziektepercentage < ?start_verzuim_corr, ?start_verzuim_corr, ?start_ziektepercentage) AS ?start_ziektepercentage_corr) 129 BIND (IF(?eind_ziektepercentage > ?eind_verzuim_corr || !BOUND(?eind_ziektepercentage), ?eind_verzuim_corr, ?eind_ziektepercentage) AS ?eind_ziektepercentage_corr) 130 131 # Maak dummy verzuim en ziektepercentage datums als deze ontbreken, anders werkt de lookup naar de time:numerPosition niet 132 BIND (IF(BOUND(?start_verzuim_corr), ?start_verzuim_corr, "2023-01-01"^^xsd:date) AS ?start_verzuim_corr_bound) 133 BIND (IF(BOUND(?eind_verzuim_corr), ?eind_verzuim_corr, "2022-12-31"^^xsd:date) AS ?eind_verzuim_corr_bound) 134 BIND (IF(BOUND(?start_ziektepercentage_corr), ?start_ziektepercentage_corr, "2023-01-01"^^xsd:date) AS ?start_zp_bound) 135 BIND (IF(BOUND(?eind_ziektepercentage_corr), ?eind_ziektepercentage_corr, "2022-12-31"^^xsd:date) AS ?eind_zp_bound) 136 ?start_verzuim_corr_bound ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_verzuim_reken . 137 ?eind_verzuim_corr_bound ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_verzuim_reken . 138 ?start_zp_bound ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_zp_reken . 139 ?eind_zp_bound ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_zp_reken . 140 141 BIND ((?eind_zp_reken - ?start_zp_reken + 1)*?ptf*?percentage_factor*(100 - ?ziektepercentage)/100 AS ?dagen_hersteld) 142 BIND ((?eind_verzuim_reken - ?start_verzuim_reken + 1) * ?ptf * ?ziekte_factor AS ?dagen_ziek) 143 BIND (IF(!BOUND(?dagen_ziek), 0, ?dagen_ziek) AS ?dagen_ziek_reken) 144 BIND (IF(!BOUND(?dagen_hersteld), 0, ?dagen_hersteld) AS ?dagen_hersteld_reken) 145 } 146 GROUP BY ?vestiging ?zorg ?functie ?omvang ?verzuimperiode ?vestiging ?zorg 147 } 148 GROUP BY ?vestiging ?zorg ?functie ?omvang 149} 150GROUP BY ?vestiging ?zorg 151ORDER BY ?vestiging DESC(?zorg)
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!