Let op: dit is een oudere versie van deze publicatie. Ga naar de laatste versie

Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

11.2.3 Kortdurend ziekteverzuimpercentage (incl. zwangerschapsverlof) Q3 2023

Concepten

Relaties

Eigenschappen

Instanties

SPARQL query

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