Code gekopieerd
...Kopieer naar klembord
1PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 2PREFIX onz-pers: <http://purl.org/ozo/onz-pers#> 3PREFIX onz-g: <http://purl.org/ozo/onz-g#> 4PREFIX onz-org: <http://purl.org/ozo/onz-org#> 5PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 6 7SELECT 8 ((ROUND(100*SUM(?ptf * (?totaal_ziektedagen - ?correctie_totaal)))/100) AS ?teller) 9 ((ROUND(100*SUM(?ptf * ?dagen_overeenkomst))/100) AS ?noemer) 10 ((ROUND(100*SUM(?ptf * (?totaal_ziektedagen - ?correctie_totaal)) / SUM(?ptf * ?dagen_overeenkomst) * 100)/100) AS ?indicator) 11{ 12 { 13 SELECT DISTINCT ?persoon ?ptf (MAX(?dagen_ziekte) AS ?totaal_ziektedagen) (SUM(?correctie_dagen_ziekte * (1 - (?aopercentage_corr / 100))) AS ?correctie_totaal) ?dagen_overeenkomst 14 { 15 { 16 SELECT DISTINCT ?persoon ?omvang ?ptf ?dagen_ziekte ?correctie_dagen_ziekte ?aopercentage_corr ?dagen_overeenkomst 17 { 18 BIND("2022-01-01"^^xsd:date AS ?start_periode) 19 BIND("2022-12-31"^^xsd:date AS ?eind_periode) 20 21 ?overeenkomst 22 a onz-pers:ArbeidsOvereenkomst ; 23 onz-pers:heeftOpdrachtnemer ?persoon ; 24 onz-g:isAbout ?locatie ; 25 onz-g:startDatum ?start_overeenkomst . 26 OPTIONAL { ?overeenkomst onz-g:eindDatum ?eind_overeenkomst } 27 FILTER(?start_overeenkomst <= ?eind_periode && ((?eind_overeenkomst >= ?start_periode) || (!BOUND(?eind_overeenkomst)))) 28 BIND(IF(?start_overeenkomst <= ?start_periode, ?start_periode, ?start_overeenkomst) AS ?start_overeenkomst_corr) 29 BIND(IF(?eind_overeenkomst >= ?eind_periode || !BOUND(?eind_overeenkomst), ?eind_periode, ?eind_overeenkomst) AS ?eind_overeenkomst_corr) 30 ?omvang 31 onz-g:partOf ?overeenkomst ; 32 onz-g:isAbout ?omvang_waarde ; 33 onz-g:startDatum ?start_omvang . 34 OPTIONAL { ?omvang onz-g:eindDatum ?eind_omvang } 35 FILTER(?start_omvang <= ?eind_overeenkomst_corr && ((?eind_omvang >= ?start_overeenkomst_corr) || (!BOUND(?eind_omvang)))) 36 BIND(IF(?start_omvang <= ?start_periode, ?start_periode, ?start_omvang) AS ?start_omvang_corr) 37 BIND(IF(?eind_omvang >= ?eind_periode || !BOUND(?eind_omvang), ?eind_periode, ?eind_omvang) AS ?eind_omvang_corr) 38 #Bereken aantal dagen in overeenkomst 39 BIND ((360 * (YEAR(?eind_omvang_corr + "P1D"^^xsd:duration) - YEAR(?start_omvang_corr))) + 40 (30 * (MONTH(?eind_omvang_corr + "P1D"^^xsd:duration) - MONTH(?start_omvang_corr))) + 41 (DAY(?eind_omvang_corr + "P1D"^^xsd:duration) - DAY(?start_omvang_corr)) 42 AS ?dagen_overeenkomst) 43 ?omvang_waarde 44 onz-g:hasDataValue ?omvang_waarde_getal ; 45 onz-g:hasUnitOfMeasure ?omvang_waarde_eenheid . 46 ?omvang_waarde_eenheid 47 onz-pers:hasDenominatorQualityValue onz-g:Week ; 48 onz-pers:hasNumeratorQualityValue onz-g:Uur ; 49 onz-g:hasDataValue ?omvang_waarde_factor . 50 BIND(?omvang_waarde_getal/36*?omvang_waarde_factor AS ?ptf) 51 ?ziekteperiode 52 a onz-pers:ZiektePeriode ; 53 onz-g:hasParticipant ?persoon ; 54 onz-g:startDatum ?start_ziekte . 55 OPTIONAL {?ziekteperiode a onz-pers:ZiektePeriode ; 56 onz-g:hasQuality ?ao .} 57 OPTIONAL {?ziekteperiode onz-g:eindDatum ?eind_ziekte .} 58 FILTER(?start_ziekte <= ?eind_omvang_corr && ((?eind_ziekte >= ?start_omvang_corr) || (!BOUND(?eind_ziekte)))) 59 BIND(IF(?start_ziekte <= ?start_omvang_corr, ?start_omvang_corr, ?start_ziekte) AS ?start_ziekte_corr) 60 BIND(IF(?eind_ziekte >= ?eind_omvang_corr || !BOUND(?eind_ziekte), ?eind_omvang_corr, ?eind_ziekte) AS ?eind_ziekte_corr) 61 OPTIONAL 62 { 63 ?ao 64 a onz-pers:VerzuimTijdKwaliteit ; 65 onz-g:hasQualityValue ?aop . 66 ?aop 67 onz-g:hasDataValue ?aopercentage ; 68 onz-g:startDatum ?start_aop . 69 OPTIONAL { ?aop onz-g:eindDatum ?eind_aop } 70 BIND(IF(!BOUND(?eind_aop), ?eind_ziekte_corr, ?eind_aop) AS ?eind_aop_corr) 71 FILTER(?start_aop <= ?eind_ziekte_corr && ?eind_aop_corr >= ?start_ziekte_corr) 72 } 73 BIND(IF(?start_aop <= ?start_ziekte_corr, ?start_ziekte_corr, ?start_aop) AS ?start_aop_corr) 74 BIND(IF(BOUND(?aopercentage), ?aopercentage, 100) AS ?aopercentage_corr) 75 76 #Bereken aantal dagen ziek in periode 77 BIND ((360 * (YEAR(?eind_ziekte_corr + "P1D"^^xsd:duration) - YEAR(?start_ziekte_corr))) + 78 (30 * (MONTH(?eind_ziekte_corr + "P1D"^^xsd:duration) - MONTH(?start_ziekte_corr))) + 79 (DAY(?eind_ziekte_corr + "P1D"^^xsd:duration) - DAY(?start_ziekte_corr)) 80 AS ?dagen_ziekte) 81 #Bereken correcte aantal dagen deels hersteld o.b.v. AO percentage 82 BIND ((360 * (YEAR(?eind_aop_corr + "P1D"^^xsd:duration) - YEAR(?start_aop_corr))) + 83 (30 * (MONTH(?eind_aop_corr + "P1D"^^xsd:duration) - MONTH(?start_aop_corr))) + 84 (DAY(?eind_aop_corr + "P1D"^^xsd:duration) - DAY(?start_aop_corr)) 85 AS ?dagen_deelshersteld) 86 BIND(IF(BOUND(?dagen_deelshersteld),?dagen_deelshersteld,0) AS ?correctie_dagen_ziekte) 87 } 88 } 89 } 90 GROUP BY ?persoon ?ptf ?totaal_ziek ?dagen_overeenkomst 91 } 92}```
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!