Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling en -monitoring

Versie:

Publicatiedatum:02-10-2023

Inwerkingtreding:02-10-2023




Bekijk bron...

3.4. Langdurend ziekteverzuimpercentage (incl. zwangerschapsverlof)

Concepten

Relaties

Eigenschappen

Instanties

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: VWS 3.4
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                    FILTER(?start_ziekte <= ?eind_omvang_corr && ((?eind_ziekte >= ?start_omvang_corr) || (!BOUND(?eind_ziekte))))
87
88                    #Filter lang/kortdurend verzuim
89                    BIND ((360 * (YEAR(?eind_ziekte + "P1D"^^xsd:duration) - YEAR(?start_ziekte))) +
90                        (30 * (MONTH(?eind_ziekte + "P1D"^^xsd:duration) - MONTH(?start_ziekte))) +
91                        (DAY(?eind_ziekte + "P1D"^^xsd:duration) - DAY(?start_ziekte))
92                        AS ?dagen_ziek)
93                    #FILTER (?dagen_ziek < 29) #kortdurend verzuim
94                    FILTER (?dagen_ziek >= 29 || !BOUND(?dagen_ziek)) #landurend verzuim
95
96                    BIND(IF(?start_ziekte <= ?start_omvang_corr, ?start_omvang_corr, ?start_ziekte) AS ?start_ziekte_corr)
97                    BIND(IF(?eind_ziekte >= ?eind_omvang_corr || !BOUND(?eind_ziekte), ?eind_omvang_corr, ?eind_ziekte) AS ?eind_ziekte_corr)
98                    OPTIONAL
99                    {
100                        ?ao 
101                            a onz-pers:VerzuimTijdKwaliteit ;
102                            onz-g:hasQualityValue ?aop .
103                        ?aop
104                            onz-g:hasDataValue ?aopercentage ;
105                            onz-g:startDatum ?start_aop .
106                            OPTIONAL { ?aop onz-g:eindDatum ?eind_aop }
107                            BIND(IF(!BOUND(?eind_aop), ?eind_ziekte_corr, ?eind_aop) AS ?eind_aop_corr)
108                            FILTER(?start_aop <= ?eind_ziekte_corr && ?eind_aop_corr >= ?start_ziekte_corr)
109                    }
110                    BIND(IF(?start_aop <= ?start_ziekte_corr, ?start_ziekte_corr, ?start_aop) AS ?start_aop_corr)
111                    BIND(IF(BOUND(?aopercentage), ?aopercentage, 100) AS ?aopercentage_corr)
112
113                    #Bereken aantal dagen ziek in periode
114                    BIND ((360 * (YEAR(?eind_ziekte_corr + "P1D"^^xsd:duration) - YEAR(?start_ziekte_corr))) +
115                        (30 * (MONTH(?eind_ziekte_corr + "P1D"^^xsd:duration) - MONTH(?start_ziekte_corr))) +
116                        (DAY(?eind_ziekte_corr + "P1D"^^xsd:duration) - DAY(?start_ziekte_corr))
117                        AS ?dagen_ziekte)
118                    #Bereken correcte aantal dagen deels hersteld o.b.v. AO percentage
119                    BIND ((360 * (YEAR(?eind_aop_corr + "P1D"^^xsd:duration) - YEAR(?start_aop_corr))) +
120                        (30 * (MONTH(?eind_aop_corr + "P1D"^^xsd:duration) - MONTH(?start_aop_corr))) +
121                        (DAY(?eind_aop_corr + "P1D"^^xsd:duration) - DAY(?start_aop_corr))
122                        AS ?dagen_deelshersteld)
123                    BIND(IF(BOUND(?dagen_deelshersteld),?dagen_deelshersteld,0) AS ?correctie_dagen_ziekte)     
124                }
125            }
126        }
127        GROUP BY ?vestiging ?zorg ?persoon ?ptf ?totaal_ziek ?dagen_overeenkomst
128    }
129}
130GROUP BY ?vestiging ?zorg

Heb je feedback?

Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!