Over Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling over Macro Economische Vraagstukken en Arbeidsmarkt
- Publicatiedatum:
- 19-11-2025
- Inwerkingtreding:
- 19-11-2025
3.5. Hoeveel uur zijn er verloond?
Concepten
- Arbeidsovereenkomst
- Functie in organisatie-rol
- Onverplaatsbaar artefact
- Verloonde periode
- Vestiging
- Vestigingsnummer
- Werkovereenkomst afspraak
- Zorgkantoor regio
- Zorgverlener (functie)
Relaties
- deel van
- gaat over
- gedefinieerd door
- geïdentificeerd door
- heeft deel
- heeft eigenschap of kenmerk
- heeft eigenschapswaarde
- heeft lokaliseerbaar gebied
- heeft opdrachtnemer
- opereert in regio
- vestiging van
Eigenschappen
SPARQL query
Code gekopieerd
...Kopieer naar klembord
1# Indicator: MEVA 3.5 (per kwartaal binnen een jaar) + totaal per jaar 2# Parameters: ?jaar, ?zorgkantoor 3# Ontologie: versie 3.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 onz-fin: <http://purl.org/ozo/onz-fin#> 10 11SELECT ?Periode ?Organisatieindeling ?Zorggerelateerd ?Niet_Zorggerelateerd ?Totaal 12WHERE { 13 { 14 SELECT 15 (CONCAT("Q", STR(?kwartaal)) AS ?Periode) 16 (?vestiging AS ?Organisatieindeling) 17 (SUM(?verloonde_uren * ?zorg) AS ?Zorggerelateerd) 18 (SUM(?verloonde_uren * ?niet_zorg) AS ?Niet_Zorggerelateerd) 19 (SUM(?verloonde_uren) AS ?Totaal) 20 WHERE { 21 # BIND(2023 AS ?jaar) 22 # BIND(onz-org:ZorgkantoorMenzis AS ?zorgkantoor) 23 24 # Jaargrenzen 25 BIND(xsd:date(CONCAT(STR(?jaar), '-01-01')) AS ?start_periode) 26 BIND(xsd:date(CONCAT(STR(?jaar), '-12-31')) AS ?eind_periode) 27 28 # Personeels-overeenkomsten 29 ?overeenkomst 30 a onz-pers:ArbeidsOvereenkomst ; 31 onz-pers:heeftOpdrachtnemer ?persoon ; 32 onz-g:hasPart ?overeenkomst_afspraak . 33 34 ?overeenkomst_afspraak 35 a onz-pers:WerkOvereenkomstAfspraak ; 36 onz-g:startDatum ?start_afspraak . 37 OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak } 38 FILTER(?start_afspraak <= ?eind_periode && ((?eind_afspraak >= ?start_periode) || (!BOUND(?eind_afspraak)))) 39 40 ?overeenkomst_afspraak onz-g:isAbout ?functie . 41 ?functie a onz-g:OccupationalPositionRole . 42 ?overeenkomst_afspraak onz-g:isAbout ?locatie . 43 ?locatie a onz-g:StationaryArtifact . 44 45 ?verloonde_periode 46 a onz-fin:VerloondePeriode ; 47 onz-g:definedBy ?overeenkomst ; 48 onz-g:startDatum ?datum_verloonde_periode ; 49 onz-g:hasQuality/onz-g:hasQualityValue/onz-g:hasDataValue ?verloonde_uren . 50 FILTER(?datum_verloonde_periode >= ?start_periode && ?datum_verloonde_periode <= ?eind_periode) 51 FILTER(?datum_verloonde_periode >= ?start_afspraak && (?datum_verloonde_periode <= ?eind_afspraak || !BOUND(?eind_afspraak))) 52 53 # Kwartaal bepalen 54 BIND(CEIL(xsd:decimal(MONTH(?datum_verloonde_periode)) / 3) AS ?kwartaal) 55 56 # Vestiging + Zorgkantoor-regio filter 57 ?locatie onz-g:partOf* ?vestiging_uri . 58 ?vestiging_uri a onz-org:Vestiging ; 59 onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 . 60 BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode) 61 ?pc_gebied onz-g:identifiedBy ?postcode ; 62 onz-g:partOf+ ?zk_regio . 63 ?zk_regio a onz-org:ZorgkantoorRegio . 64 ?zorgkantoor onz-g:hasOperatingRange ?zk_regio . 65 66 { 67 ?vestiging_uri onz-g:identifiedBy ?vest_nr . 68 ?vest_nr a onz-org:Vestigingsnummer ; 69 onz-g:hasDataValue ?vestiging . 70 } UNION { 71 # Ook de organisatie als geheel opnemen als 'vestiging' 72 ?vestiging_uri onz-org:vestigingVan ?organisatie_uri . 73 BIND("Totaal organisatie" AS ?vestiging) 74 BIND("n.v.t." AS ?zk_vestiging) 75 } 76 BIND(IF(!BOUND(?zk_vestiging), ?zorgkantoor, ?zk_vestiging) AS ?zorgkantoor_vestiging) 77 78 # Zorg / niet-zorg indicatoren 79 BIND(IF(EXISTS { ?functie a onz-pers:ZorgverlenerFunctie }, 1, 0) AS ?zorg) 80 BIND(IF(?zorg = 0, 1, 0) AS ?niet_zorg) 81 } 82 GROUP BY ?kwartaal ?vestiging ?zorgkantoor_vestiging 83 } 84 UNION 85 { 86 SELECT 87 ("Totaal jaar" AS ?Periode) 88 (?vestiging AS ?Organisatieindeling) 89 (SUM(?verloonde_uren * ?zorg) AS ?Zorggerelateerd) 90 (SUM(?verloonde_uren * ?niet_zorg) AS ?Niet_Zorggerelateerd) 91 (SUM(?verloonde_uren) AS ?Totaal) 92 WHERE { 93 # BIND(2023 AS ?jaar) 94 # BIND(onz-org:ZorgkantoorMenzis AS ?zorgkantoor) 95 96 # Jaargrenzen 97 BIND(xsd:date(CONCAT(STR(?jaar), '-01-01')) AS ?start_periode) 98 BIND(xsd:date(CONCAT(STR(?jaar), '-12-31')) AS ?eind_periode) 99 100 # Personeels-overeenkomsten 101 ?overeenkomst 102 a onz-pers:ArbeidsOvereenkomst ; 103 onz-pers:heeftOpdrachtnemer ?persoon ; 104 onz-g:hasPart ?overeenkomst_afspraak . 105 106 ?overeenkomst_afspraak 107 a onz-pers:WerkOvereenkomstAfspraak ; 108 onz-g:startDatum ?start_afspraak . 109 OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak } 110 FILTER(?start_afspraak <= ?eind_periode && ((?eind_afspraak >= ?start_periode) || (!BOUND(?eind_afspraak)))) 111 112 ?overeenkomst_afspraak onz-g:isAbout ?functie . 113 ?functie a onz-g:OccupationalPositionRole . 114 ?overeenkomst_afspraak onz-g:isAbout ?locatie . 115 ?locatie a onz-g:StationaryArtifact . 116 117 ?verloonde_periode 118 a onz-fin:VerloondePeriode ; 119 onz-g:definedBy ?overeenkomst ; 120 onz-g:startDatum ?datum_verloonde_periode ; 121 onz-g:hasQuality/onz-g:hasQualityValue/onz-g:hasDataValue ?verloonde_uren . 122 FILTER(?datum_verloonde_periode >= ?start_periode && ?datum_verloonde_periode <= ?eind_periode) 123 FILTER(?datum_verloonde_periode >= ?start_afspraak && (?datum_verloonde_periode <= ?eind_afspraak || !BOUND(?eind_afspraak))) 124 125 # Vestiging + Zorgkantoor-regio filter 126 ?locatie onz-g:partOf* ?vestiging_uri . 127 ?vestiging_uri a onz-org:Vestiging ; 128 onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 . 129 BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode) 130 ?pc_gebied onz-g:identifiedBy ?postcode ; 131 onz-g:partOf+ ?zk_regio . 132 ?zk_regio a onz-org:ZorgkantoorRegio . 133 ?zorgkantoor onz-g:hasOperatingRange ?zk_regio . 134 135 { 136 ?vestiging_uri onz-g:identifiedBy ?vest_nr . 137 ?vest_nr a onz-org:Vestigingsnummer ; 138 onz-g:hasDataValue ?vestiging . 139 } UNION { 140 ?vestiging_uri onz-org:vestigingVan ?organisatie_uri . 141 BIND("Totaal organisatie" AS ?vestiging) 142 BIND("n.v.t." AS ?zk_vestiging) 143 } 144 BIND(IF(!BOUND(?zk_vestiging), ?zorgkantoor, ?zk_vestiging) AS ?zorgkantoor_vestiging) 145 146 # Zorg / niet-zorg indicatoren 147 BIND(IF(EXISTS { ?functie a onz-pers:ZorgverlenerFunctie }, 1, 0) AS ?zorg) 148 BIND(IF(?zorg = 0, 1, 0) AS ?niet_zorg) 149 } 150 GROUP BY ?vestiging ?zorgkantoor_vestiging 151 } 152} 153# Sorteer Q1..Q4 en zet "Jaar" als laatste 154ORDER BY ?Organisatieindeling (IF(?Periode="Totaal jaar", 5, xsd:integer(SUBSTR(?Periode,2)))) 155