Let op: dit is een oudere versie van deze publicatie. Ga naar de laatste versie
Code gekopieerd
...Kopieer naar klembord
1# Indicator: ODB Personele samenstelling 2.3.1 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#> 9 10SELECT 11 (SUM(?ziek_totaal - ?hersteld_totaal) AS ?teller) 12 (SUM(?noemer_deel) AS ?noemer) 13 ((?teller / ?noemer) * 100 AS ?indicator) 14{ 15 SELECT 16 ?functie 17 ?omvang 18 (MAX(?overeenkomst_totaal) AS ?noemer_deel) 19 (SUM(?ziek_totaal_temp) AS ?ziek_totaal) 20 (MAX(?hersteld_totaal_temp) AS ?hersteld_totaal) 21 { 22 SELECT 23 ?functie 24 ?omvang 25 ?verzuimperiode 26 (MAX(?dagen_overeenkomst) AS ?overeenkomst_totaal) 27 (MAX(?dagen_ziek_reken) AS ?ziek_totaal_temp) 28 (SUM(?dagen_hersteld_reken) AS ?hersteld_totaal_temp) 29 { 30 BIND("2023-01-01"^^xsd:date AS ?start_periode) 31 BIND("2023-12-31"^^xsd:date AS ?eind_periode) 32 VALUES ?type_verzuim # Keuze in-/exclusief zwangerschapsverlog 33 { 34 onz-pers:ZiektePeriode 35 # onz-pers:ZwangerschapsVerlof 36 } 37 ?functie 38 a onz-pers:ZorgverlenerFunctie ; 39 onz-g:startDatum ?start_functie . 40 OPTIONAL {?functie onz-g:eindDatum ?eind_functie} 41 FILTER (?start_functie <= ?eind_periode && (?eind_functie >= ?start_periode || !BOUND(?eind_functie))) 42 BIND(IF(?start_functie < ?start_periode, ?start_periode, ?start_functie) AS ?start_functie_corr) 43 BIND(IF(?eind_functie > ?eind_periode || !BOUND(?eind_functie), ?eind_periode, ?eind_functie) AS ?eind_functie_corr) 44 ?overeenkomst 45 a onz-pers:ArbeidsOvereenkomst ; 46 onz-g:isAbout ?functie ; 47 onz-pers:heeftOpdrachtnemer ?persoon . 48 ?omvang 49 a onz-pers:ContractOmvang ; 50 onz-g:partOf ?overeenkomst ; 51 onz-g:isAbout ?omvang_waarde ; 52 onz-g:startDatum ?start_omvang . 53 OPTIONAL {?omvang onz-g:eindDatum ?eind_omvang} 54 FILTER (?start_omvang <= ?eind_functie_corr && (?eind_omvang >= ?start_functie_corr || !BOUND(?eind_omvang))) 55 ?omvang_waarde 56 onz-g:hasDataValue ?omvang_waarde_getal ; 57 onz-g:hasUnitOfMeasure ?omvang_waarde_eenheid . 58 ?omvang_waarde_eenheid 59 onz-pers:hasDenominatorQualityValue onz-g:Week ; 60 onz-pers:hasNumeratorQualityValue onz-g:Uur ; 61 onz-g:hasDataValue ?omvang_waarde_factor . 62 BIND (?omvang_waarde_getal * ?omvang_waarde_factor / 36 AS ?ptf) 63 BIND (IF(?start_omvang < ?start_functie_corr, ?start_functie_corr, ?start_omvang) AS ?start_omvang_corr) 64 BIND (IF(?eind_omvang > ?eind_functie_corr || !BOUND(?eind_omvang), ?eind_functie_corr, ?eind_omvang) AS ?eind_omvang_corr) 65 ?start_omvang_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_omvang_reken . 66 ?eind_omvang_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_omvang_reken . 67 BIND ((?eind_omvang_reken - ?start_omvang_reken + 1) * ?ptf AS ?dagen_overeenkomst) 68 OPTIONAL { 69 ?persoon 70 onz-g:isParticipantIn ?verzuimperiode . 71 ?verzuimperiode a ?type_verzuim ; 72 onz-g:startDatum ?start_verzuim . 73 OPTIONAL {?verzuimperiode onz-g:eindDatum ?eind_verzuim} 74 OPTIONAL { 75 ?verzuimperiode 76 onz-g:hasQuality ?verzuimtijd . 77 ?verzuimtijd 78 a onz-pers:VerzuimTijdKwaliteit ; 79 onz-g:hasQualityValue ?verzuimtijdwaarde . 80 ?verzuimtijdwaarde 81 a onz-g:DurationValue ; 82 onz-g:hasDataValue ?ziektepercentage ; 83 onz-g:hasUnitOfMeasure onz-g:percent ; 84 onz-g:startDatum ?start_ziektepercentage . 85 OPTIONAL {?verzuimtijdwaarde onz-g:eindDatum ?eind_ziektepercentage} 86 } 87 } 88 BIND (IF((?start_verzuim <= ?eind_omvang_corr && (?eind_verzuim >= ?start_omvang_corr || !BOUND(?eind_verzuim))), 1, 0) AS ?geen_ziekte_factor) 89 BIND(IF(!BOUND(?verzuimperiode), 0, ?geen_ziekte_factor) AS ?ziekte_factor) 90 BIND (IF(?start_verzuim < ?start_omvang_corr && ?ziekte_factor = 1, ?start_omvang_corr, ?start_verzuim) AS ?start_verzuim_corr) 91 BIND (IF(BOUND(?verzuimperiode) && (?eind_verzuim > ?eind_omvang_corr || !BOUND(?eind_verzuim)) && ?ziekte_factor = 1, ?eind_omvang_corr, ?eind_verzuim) AS ?eind_verzuim_corr) 92 BIND (IF((?start_ziektepercentage > ?eind_verzuim_corr || ?eind_ziektepercentage < ?start_verzuim_corr), 0, 1) AS ?geen_percentage_factor) 93 BIND(IF(!BOUND(?geen_percentage_factor), 0, ?geen_percentage_factor * ?ziekte_factor) AS ?percentage_factor) 94 BIND (IF(?start_ziektepercentage < ?start_verzuim_corr, ?start_verzuim_corr, ?start_ziektepercentage) AS ?start_ziektepercentage_corr) 95 BIND (IF(?eind_ziektepercentage > ?eind_verzuim_corr || !BOUND(?eind_ziektepercentage), ?eind_verzuim_corr, ?eind_ziektepercentage) AS ?eind_ziektepercentage_corr) 96 97 # Maak dummy verzuim en ziektepercentage datums als deze ontbreken, anders werkt de lookup naar de time:numerPosition niet 98 BIND (IF(BOUND(?start_verzuim_corr), ?start_verzuim_corr, "2023-01-01"^^xsd:date) AS ?start_verzuim_corr_bound) 99 BIND (IF(BOUND(?eind_verzuim_corr), ?eind_verzuim_corr, "2022-12-31"^^xsd:date) AS ?eind_verzuim_corr_bound) 100 BIND (IF(BOUND(?start_ziektepercentage_corr), ?start_ziektepercentage_corr, "2023-01-01"^^xsd:date) AS ?start_zp_bound) 101 BIND (IF(BOUND(?eind_ziektepercentage_corr), ?eind_ziektepercentage_corr, "2022-12-31"^^xsd:date) AS ?eind_zp_bound) 102 ?start_verzuim_corr_bound ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_verzuim_reken . 103 ?eind_verzuim_corr_bound ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_verzuim_reken . 104 ?start_zp_bound ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_zp_reken . 105 ?eind_zp_bound ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_zp_reken . 106 107 BIND ((?eind_zp_reken - ?start_zp_reken + 1) * ?ptf * ?percentage_factor * (100 - ?ziektepercentage)/100 AS ?dagen_hersteld) 108 BIND ((?eind_verzuim_reken - ?start_verzuim_reken + 1) * ?ptf * ?ziekte_factor AS ?dagen_ziek) 109 BIND (IF(!BOUND(?dagen_ziek), 0, ?dagen_ziek) AS ?dagen_ziek_reken) 110 BIND (IF(!BOUND(?dagen_hersteld), 0, ?dagen_hersteld) AS ?dagen_hersteld_reken) 111 } 112 GROUP BY ?functie ?omvang ?verzuimperiode 113 } 114 GROUP BY ?functie ?omvang 115}
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!