Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
11.2 Kortdurend ziekteverzuimpercentage (incl. zwangerschapsverlof)
Concepten
- Arbeidsovereenkomst
- Contractomvang
- Contractomvangwaarde
- Onverplaatsbaar artefact
- Verzuimtijd
- Vestiging
- Vestigingsnummer
- Werkovereenkomst afspraak
- Ziekteperiode
- Zorgkantoor regio
- Zorgverlener (functie)
- Zwangerschapsverlof
Relaties
- deel van
- gaat over
- gedefinieerd door
- geïdentificeerd door
- heeft deel
- heeft eigenschap of kenmerk
- heeft eigenschapswaarde
- heeft lokaliseerbaar gebied
- heeft meeteenheid
- opereert in regio
- vestiging van
Eigenschappen
Instanties
SPARQL query
Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren 11.2 2# Parameters: ?jaar, ?kwartaal, ?zorgkantoor 3# Ontologie: versie 3.0 of nieuwer 4 5PREFIX onz-g: <http://purl.org/ozo/onz-g#> 6PREFIX onz-org: <http://purl.org/ozo/onz-org#> 7PREFIX time: <http://www.w3.org/2006/time#> 8PREFIX onz-pers: <http://purl.org/ozo/onz-pers#> 9PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 10 11SELECT 12 ?vestiging 13 (IF(?noemer_zorg = 0, "Ongedefineerd", 100 * ?teller_zorg / ?noemer_zorg) AS ?indicator_zorg) 14 (IF(?noemer_niet_zorg = 0, "Ongedefineerd", 100 * ?teller_niet_zorg / ?noemer_niet_zorg) AS ?indicator_niet_zorg) 15{ 16 SELECT 17 ?vestiging 18 (SUM(?zorg * ?netto_verzuim_totaal) AS ?teller_zorg) 19 (SUM(?zorg * ?netto_dagen_afspraak) AS ?noemer_zorg) 20 (SUM(?niet_zorg * ?netto_verzuim_totaal) AS ?teller_niet_zorg) 21 (SUM(?niet_zorg * ?netto_dagen_afspraak) AS ?noemer_niet_zorg) 22 { 23 { 24 SELECT 25 ?zorg 26 ?niet_zorg 27 ?overeenkomst_afspraak 28 (MAX(?dagen_afspraak * ?ptf) AS ?netto_dagen_afspraak) 29 (SUM((?dagen_verzuim - ?totaal_hersteld) * ?ptf) AS ?netto_verzuim_totaal) 30 { 31 SELECT 32 ?zorg 33 ?niet_zorg 34 ?overeenkomst_afspraak 35 ?ptf 36 ?ziekte 37 ?dagen_afspraak 38 ?dagen_verzuim 39 (SUM(?dagen_hersteld) AS ?totaal_hersteld) 40 { 41 # BIND(2023 AS ?jaar) 42 # BIND("Q4" AS ?kwartaal) 43 BIND(IF(?kwartaal = 'Q1', xsd:date(CONCAT(STR(?jaar), '-01-01')), 44 IF(?kwartaal = 'Q2', xsd:date(CONCAT(STR(?jaar), '-04-01')), 45 IF(?kwartaal = 'Q3', xsd:date(CONCAT(STR(?jaar), '-07-01')), 46 IF(?kwartaal = 'Q4', xsd:date(CONCAT(STR(?jaar), '-10-01')), 47 '')))) AS ?start_periode) 48 BIND(?start_periode + "P3M"^^xsd:duration + "-P1D"^^xsd:duration AS ?eind_periode) 49 50 ?eind_periode ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_periode_reken . 51 ?overeenkomst 52 a onz-pers:ArbeidsOvereenkomst ; 53 onz-g:hasPart ?overeenkomst_afspraak . 54 ?overeenkomst_afspraak 55 a onz-pers:WerkOvereenkomstAfspraak ; 56 onz-g:startDatum ?start_afspraak . 57 OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak } 58 FILTER (?start_afspraak <= ?eind_periode && (?eind_afspraak >= ?start_periode || !BOUND(?eind_afspraak))) 59 ?overeenkomst_afspraak onz-g:hasPart ?omvang . 60 ?omvang 61 a onz-pers:ContractOmvang ; 62 onz-g:isAbout ?omvang_waarde . 63 ?omvang_waarde 64 a onz-pers:ContractOmvangWaarde ; 65 onz-g:hasDataValue ?omvang_getal ; 66 onz-g:hasUnitOfMeasure ?omvang_eenheid . 67 ?omvang_eenheid onz-g:hasDataValue ?eenheid_factor . 68 BIND(?omvang_getal/(36/?eenheid_factor) AS ?ptf) 69 BIND(IF(EXISTS {?overeenkomst_afspraak onz-g:isAbout/a onz-pers:ZorgverlenerFunctie}, 1, 0) AS ?zorg) 70 BIND(IF(?zorg = 0, 1, 0) AS ?niet_zorg) 71 BIND(IF(?start_afspraak < ?start_periode, ?start_periode, ?start_afspraak) AS ?start_afspraak_corr) 72 BIND(IF(?eind_afspraak > ?eind_periode || !BOUND(?eind_afspraak), ?eind_periode, ?eind_afspraak) AS ?eind_afspraak_corr) 73 ?start_afspraak_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_afspraak_reken . 74 ?eind_afspraak_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_afspraak_reken . 75 BIND(?eind_afspraak_reken - ?start_afspraak_reken + 1 AS ?dagen_afspraak) 76 OPTIONAL { 77 VALUES ?type_verzuim # Keuze in-/exclusief zwangerschapsverlog 78 { 79 onz-pers:ZiektePeriode 80 onz-pers:ZwangerschapsVerlof 81 } 82 ?ziekte 83 a ?type_verzuim ; 84 onz-g:definedBy ?overeenkomst ; 85 onz-g:startDatum ?start_ziekte_periode . 86 ?start_ziekte_periode ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_ziekte_periode_reken . 87 OPTIONAL { 88 ?ziekte onz-g:eindDatum ?eind_ziekte_periode_temp . 89 ?eind_ziekte_periode_temp ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_ziekte_periode_temp_reken . 90 } 91 # FILTER(?start_ziekte_periode <= ?eind_afspraak_corr && (?eind_ziekte_periode_temp >= ?start_afspraak_corr || !BOUND(?eind_ziekte_periode_temp))) 92 OPTIONAL { 93 ?ziekte onz-g:hasQuality ?verzuim_tijd . 94 ?verzuim_tijd 95 a onz-pers:VerzuimTijdKwaliteit ; 96 onz-g:hasQualityValue ?verzuim_waarde . 97 ?verzuim_waarde 98 onz-g:hasUnitOfMeasure onz-g:percent ; 99 onz-g:startDatum ?start_verzuim_waarde_temp ; 100 onz-g:hasDataValue ?verzuim_percentage . 101 ?start_verzuim_waarde_temp ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_verzuim_waarde_temp_reken_temp 102 OPTIONAL { 103 ?verzuim_waarde onz-g:eindDatum ?eind_verzuim_waarde_temp . 104 ?eind_verzuim_waarde_temp ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_verzuim_waarde_temp_reken_temp 105 } 106 } 107 } 108 BIND(IF(!BOUND(?start_verzuim_waarde_temp), ?unbound, IF(?start_verzuim_waarde_temp_reken_temp < ?start_afspraak_reken, ?start_afspraak_reken, ?start_verzuim_waarde_temp_reken_temp)) AS ?start_verzuim_waarde_reken) 109 BIND(IF(!BOUND(?start_verzuim_waarde_temp), ?unbound, IF(!BOUND(?eind_verzuim_waarde_temp_reken_temp) || ?eind_verzuim_waarde_temp_reken_temp > ?eind_afspraak_reken, ?eind_afspraak_reken, ?eind_verzuim_waarde_temp_reken_temp)) AS ?eind_verzuim_waarde_reken) 110 111 # Gebruikt totale ziekteperiode t/m eind meetperiode als maat voor kort/langdurend verzuim 112 BIND(IF(!BOUND(?ziekte), ?unbound, IF(!BOUND(?eind_ziekte_periode_temp) || ?eind_ziekte_periode_temp > ?eind_periode, ?eind_periode, ?eind_ziekte_periode_temp)) AS ?eind_ziekte_periode) 113 BIND(IF(!BOUND(?ziekte), ?unbound, IF(!BOUND(?eind_ziekte_periode_temp_reken) || ?eind_ziekte_periode_temp_reken > ?eind_periode_reken, ?eind_periode_reken, ?eind_ziekte_periode_temp_reken)) AS ?eind_ziekte_periode_reken) 114 BIND(IF(!BOUND(?ziekte), ?unbound, ?eind_ziekte_periode_reken - ?start_ziekte_periode_reken + 1) AS ?dagen_ziekte_periode) 115 # Filter kort/langdurend verzuim 116 BIND(IF(?dagen_ziekte_periode <= 28 || !BOUND(?ziekte), 1, 0) AS ?voorwaarde_1) 117 BIND(IF(BOUND(?ziekte) && (?start_ziekte_periode <= ?eind_afspraak_corr && (?eind_ziekte_periode >= ?start_afspraak_corr || !BOUND(?eind_ziekte_periode))), 1, 0) AS ?voorwaarde_2) 118 BIND(IF(!BOUND(?verzuim_tijd) || (BOUND(?verzuim_tijd) && (?start_verzuim_waarde_temp <= ?eind_afspraak_corr && (?eind_verzuim_waarde_temp >= ?start_afspraak_corr || !BOUND(?eind_verzuim_waarde_temp)))), 1, 0) AS ?voorwaarde_3) 119 BIND(?voorwaarde_1 * ?voorwaarde_2 * ?voorwaarde_3 AS ?geldige_ziekte) 120 121 BIND(IF(BOUND(?verzuim_tijd), ?geldige_ziekte * (100 - ?verzuim_percentage)/100 * (?eind_verzuim_waarde_reken - ?start_verzuim_waarde_reken + 1), 0) AS ?dagen_hersteld) 122 BIND(IF(!BOUND(?ziekte), ?unbound, IF(?start_ziekte_periode_reken < ?start_afspraak_reken, ?start_afspraak_reken, ?start_ziekte_periode_reken)) AS ?start_ziekte_reken) 123 BIND(IF(!BOUND(?ziekte), ?unbound, IF(?eind_ziekte_periode_temp_reken > ?eind_afspraak_reken || !BOUND(?eind_ziekte_periode_temp_reken), ?eind_afspraak_reken, ?eind_ziekte_periode_temp_reken)) AS ?eind_ziekte_reken) 124 BIND(IF(BOUND(?ziekte), ?geldige_ziekte * (?eind_ziekte_reken - ?start_ziekte_reken + 1), 0) AS ?dagen_verzuim) 125 } 126 GROUP BY 127 ?zorg 128 ?niet_zorg 129 ?overeenkomst_afspraak 130 ?ptf 131 ?ziekte 132 ?dagen_afspraak 133 ?dagen_verzuim 134 } 135 GROUP BY 136 ?zorg 137 ?niet_zorg 138 ?overeenkomst_afspraak 139 } 140 # BIND(onz-org:ZorgkantoorMenzis AS ?zorgkantoor) 141 ?overeenkomst_afspraak onz-g:isAbout ?locatie . 142 ?locatie 143 a onz-g:StationaryArtifact ; 144 onz-g:partOf* ?vestiging_uri . 145 ?vestiging_uri a onz-org:Vestiging ; 146 onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 . 147 BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode) 148 ?pc_gebied 149 onz-g:identifiedBy ?postcode ; 150 onz-g:partOf+ ?zk_regio . 151 ?zk_regio a onz-org:ZorgkantoorRegio . 152 ?zorgkantoor onz-g:hasOperatingRange ?zk_regio . 153 { 154 ?vestiging_uri onz-g:identifiedBy ?vest_nr. 155 ?vest_nr a onz-org:Vestigingsnummer ; 156 onz-g:hasDataValue ?vestiging . 157 BIND(?zorgkantoor AS ?zorgkantoor_vestiging) 158 } UNION { 159 # Includeer ook de organisatie als geheel en label deze als vestiging 160 ?vestiging_uri onz-org:vestigingVan ?organisatie_uri . 161 BIND("Totaal organisatie" AS ?vestiging) 162 BIND("n.v.t." AS ?zorgkantoor_vestiging) 163 } 164 } 165 GROUP BY ?vestiging 166 ORDER BY ?vestiging 167} 168ORDER BY ?vestiging 169
Heb je feedback?
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!