Code gekopieerd
...Kopieer naar klembord
1# Indicator: VWS 3.3 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 ?zorg 14 ((ROUND(100*SUM(?ptf * (?totaal_ziektedagen - ?correctie_totaal)))/100) AS ?teller) 15 ((ROUND(100*SUM(?ptf * ?dagen_overeenkomst))/100) AS ?noemer) 16 ((ROUND(100*SUM(?ptf * (?totaal_ziektedagen - ?correctie_totaal)) / SUM(?ptf * ?dagen_overeenkomst) * 100)/100) AS ?indicator) 17{ 18 { 19 SELECT DISTINCT ?vestiging ?zorg ?persoon ?ptf (MAX(?dagen_ziekte) AS ?totaal_ziektedagen) (SUM(?correctie_dagen_ziekte * (1 - (?aopercentage_corr / 100))) AS ?correctie_totaal) ?dagen_overeenkomst 20 { 21 { 22 SELECT DISTINCT ?vestiging ?zorg ?persoon ?omvang ?ptf ?dagen_ziekte ?correctie_dagen_ziekte ?aopercentage_corr ?dagen_overeenkomst 23 { 24 BIND("2022-01-01"^^xsd:date AS ?start_periode) 25 BIND("2022-12-31"^^xsd:date AS ?eind_periode) 26 VALUES ?type_verzuim #Keuze in-/exclusief zwangerschapsverlog 27 { 28 onz-pers:ZiektePeriode 29 #onz-pers:ZwangerschapsVerlof 30 } 31 ?overeenkomst 32 a onz-pers:ArbeidsOvereenkomst ; 33 onz-pers:heeftOpdrachtnemer ?persoon ; 34 onz-g:isAbout ?locatie ; 35 onz-g:startDatum ?start_overeenkomst . 36 OPTIONAL { ?overeenkomst onz-g:eindDatum ?eind_overeenkomst } 37 FILTER(?start_overeenkomst <= ?eind_periode && ((?eind_overeenkomst >= ?start_periode) || (!BOUND(?eind_overeenkomst)))) 38 BIND(IF(?start_overeenkomst <= ?start_periode, ?start_periode, ?start_overeenkomst) AS ?start_overeenkomst_corr) 39 BIND(IF(?eind_overeenkomst >= ?eind_periode || !BOUND(?eind_overeenkomst), ?eind_periode, ?eind_overeenkomst) AS ?eind_overeenkomst_corr) 40 ?locatie 41 a onz-g:StationaryArtifact ; 42 onz-g:partOf* ?v . 43 ?v 44 a onz-org:Vestiging ; 45 onz-g:identifiedBy ?vest_nr . 46 ?vest_nr 47 a onz-org:Vestigingsnummer ; 48 onz-g:hasDataValue ?vestiging . 49 50 OPTIONAL 51 { 52 ?overeenkomst onz-g:isAbout ?zorgfunctie . 53 ?zorgfunctie a onz-pers:ZorgverlenerFunctie 54 } 55 BIND(IF(BOUND(?zorgfunctie),"Zorg","Niet-zorg") AS ?zorg) 56 ?omvang 57 a onz-pers:ContractOmvang ; 58 onz-g:partOf ?overeenkomst ; 59 onz-g:isAbout ?omvang_waarde ; 60 onz-g:startDatum ?start_omvang . 61 OPTIONAL { ?omvang onz-g:eindDatum ?eind_omvang } 62 FILTER(?start_omvang <= ?eind_overeenkomst_corr && ((?eind_omvang >= ?start_overeenkomst_corr) || (!BOUND(?eind_omvang)))) 63 BIND(IF(?start_omvang <= ?start_periode, ?start_periode, ?start_omvang) AS ?start_omvang_corr) 64 BIND(IF(?eind_omvang >= ?eind_periode || !BOUND(?eind_omvang), ?eind_periode, ?eind_omvang) AS ?eind_omvang_corr) 65 #Bereken aantal dagen in overeenkomst 66 BIND ((360 * (YEAR(?eind_omvang_corr + "P1D"^^xsd:duration) - YEAR(?start_omvang_corr))) + 67 (30 * (MONTH(?eind_omvang_corr + "P1D"^^xsd:duration) - MONTH(?start_omvang_corr))) + 68 (DAY(?eind_omvang_corr + "P1D"^^xsd:duration) - DAY(?start_omvang_corr)) AS ?dagen_overeenkomst) 69 70 ?omvang_waarde 71 onz-g:hasDataValue ?omvang_waarde_getal ; 72 onz-g:hasUnitOfMeasure ?omvang_waarde_eenheid . 73 ?omvang_waarde_eenheid 74 onz-pers:hasDenominatorQualityValue onz-g:Week ; 75 onz-pers:hasNumeratorQualityValue onz-g:Uur ; 76 onz-g:hasDataValue ?omvang_waarde_factor . 77 BIND(?omvang_waarde_getal/36*?omvang_waarde_factor AS ?ptf) 78 ?ziekteperiode 79 a ?type_verzuim ; 80 onz-g:hasParticipant ?persoon ; 81 onz-g:startDatum ?start_ziekte . 82 OPTIONAL {?ziekteperiode a ?type_verzuim ; 83 onz-g:hasQuality ?ao .} 84 OPTIONAL {?ziekteperiode a ?type_verzuim ; 85 onz-g:eindDatum ?eind_ziekte .} 86 OPTIONAL {?ziekteperiode onz-g:eindDatum ?eind_ziekte} 87 FILTER(?start_ziekte <= ?eind_omvang_corr && ((?eind_ziekte >= ?start_omvang_corr) || (!BOUND(?eind_ziekte)))) 88 89 #Filter lang/kortdurend verzuim 90 BIND ((360 * (YEAR(?eind_ziekte + "P1D"^^xsd:duration) - YEAR(?start_ziekte))) + 91 (30 * (MONTH(?eind_ziekte + "P1D"^^xsd:duration) - MONTH(?start_ziekte))) + 92 (DAY(?eind_ziekte + "P1D"^^xsd:duration) - DAY(?start_ziekte)) 93 AS ?dagen_ziek) 94 #FILTER (?dagen_ziek < 29) #kortdurend verzuim 95 FILTER (?dagen_ziek >= 29 || !BOUND(?dagen_ziek)) #landurend verzuim 96 97 BIND(IF(?start_ziekte <= ?start_omvang_corr, ?start_omvang_corr, ?start_ziekte) AS ?start_ziekte_corr) 98 BIND(IF(?eind_ziekte >= ?eind_omvang_corr || !BOUND(?eind_ziekte), ?eind_omvang_corr, ?eind_ziekte) AS ?eind_ziekte_corr) 99 OPTIONAL 100 { 101 ?ao 102 a onz-pers:VerzuimTijdKwaliteit ; 103 onz-g:hasQualityValue ?aop . 104 ?aop 105 onz-g:hasDataValue ?aopercentage ; 106 onz-g:startDatum ?start_aop . 107 OPTIONAL { ?aop onz-g:eindDatum ?eind_aop } 108 BIND(IF(!BOUND(?eind_aop), ?eind_ziekte_corr, ?eind_aop) AS ?eind_aop_corr) 109 FILTER(?start_aop <= ?eind_ziekte_corr && ?eind_aop_corr >= ?start_ziekte_corr) 110 } 111 BIND(IF(?start_aop <= ?start_ziekte_corr, ?start_ziekte_corr, ?start_aop) AS ?start_aop_corr) 112 BIND(IF(BOUND(?aopercentage), ?aopercentage, 100) AS ?aopercentage_corr) 113 114 #Bereken aantal dagen ziek in periode 115 BIND ((360 * (YEAR(?eind_ziekte_corr + "P1D"^^xsd:duration) - YEAR(?start_ziekte_corr))) + 116 (30 * (MONTH(?eind_ziekte_corr + "P1D"^^xsd:duration) - MONTH(?start_ziekte_corr))) + 117 (DAY(?eind_ziekte_corr + "P1D"^^xsd:duration) - DAY(?start_ziekte_corr)) 118 AS ?dagen_ziekte) 119 #Bereken correcte aantal dagen deels hersteld o.b.v. AO percentage 120 BIND ((360 * (YEAR(?eind_aop_corr + "P1D"^^xsd:duration) - YEAR(?start_aop_corr))) + 121 (30 * (MONTH(?eind_aop_corr + "P1D"^^xsd:duration) - MONTH(?start_aop_corr))) + 122 (DAY(?eind_aop_corr + "P1D"^^xsd:duration) - DAY(?start_aop_corr)) 123 AS ?dagen_deelshersteld) 124 BIND(IF(BOUND(?dagen_deelshersteld),?dagen_deelshersteld,0) AS ?correctie_dagen_ziekte) 125 } 126 } 127 } 128 GROUP BY ?vestiging ?zorg ?persoon ?ptf ?totaal_ziek ?dagen_overeenkomst 129 } 130} 131GROUP BY ?vestiging ?zorg
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!