Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Versie:

Publicatiedatum:04-10-2023

Inwerkingtreding:04-10-2023




Bekijk bron...

11.3.1 Langdurend ziekteverzuimpercentage (excl. zwangerschapsverlof) Q1 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-01-01"^^xsd:date AS ?start_periode)
21                    BIND("2023-03-31"^^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!