Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

24.4 Wat is de verhouding tussen vorderingen en opbrengsten?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 24.4
2# Parameters: ?peildatum, ?startperiode, ?eindperiode
3# Ontologie: versie 3.0.0 of nieuwer
4
5PREFIX onz-fin: <http://purl.org/ozo/onz-fin#>
6PREFIX onz-g:   <http://purl.org/ozo/onz-g#>
7PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>
8
9SELECT
10  ("Verhouding vorderingen en totale opbrengsten" AS ?Kental)
11  ( 
12    IF(
13      BOUND(?bedrijfsopbrengsten) && (?bedrijfsopbrengsten != 0),
14      (xsd:decimal(?vorderingen) / xsd:decimal(?bedrijfsopbrengsten)),
15      "Ongedefinieerd"
16    ) AS ?Waarde
17  )
18
19  # Vorderingen
20WHERE {
21  {
22    SELECT
23      (SUM(IF(?jaarrekeningpost = "B.II Vorderingen", ?bedrag, 0)) AS ?vorderingen )
24    WHERE {
25      {
26        SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag)
27        WHERE {
28
29          {
30            SELECT ?rubriek ?categorie ((SUM(?geld_bedrag) + SUM(?saldo_waarde) / COUNT(?saldo_waarde)) AS ?bedrag_rubriek)
31            WHERE {
32              # BIND("2024-12-31"^^xsd:date AS ?peildatum)
33              BIND(?peildatum AS ?peildatum_argument)
34              {
35                SELECT DISTINCT ?rubriek WHERE {
36                  ?rubriek a onz-fin:Grootboekrubriek .
37                  FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
38                }
39              }
40              BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
41              BIND(
42                COALESCE(
43
44                  # Rubriek D
45                  IF(STRSTARTS(?rubriekCode, "12"), "B.II", ?unbound),
46                  "other"
47                  ) AS ?categorie
48              )
49              FILTER(?categorie IN ("B.II"))
50              OPTIONAL {
51                ?rubriek onz-g:isAbout ?saldo .
52                ?saldo a onz-fin:EindSaldo ;
53                       onz-fin:heeftGeldBedrag ?saldo_bedrag ;
54                       onz-g:hasDate ?saldo_datum .
55                FILTER(?saldo_datum <= ?peildatum_argument)
56              }
57              FILTER NOT EXISTS {
58                ?rubriek onz-g:isAbout ?otherSaldo .
59                ?otherSaldo a onz-fin:EindSaldo ;
60                            onz-g:hasDate ?otherDatum .
61                FILTER(
62                  ?otherSaldo != ?saldo
63                  && ?otherDatum <= ?peildatum_argument
64                  && ?otherDatum > ?saldo_datum
65                )
66              }
67              BIND(IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde)
68              OPTIONAL {
69                ?post a onz-fin:Grootboekpost ;
70                      onz-g:partOf ?rubriek ;
71                      onz-g:hasDate ?datum ;
72                      onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
73                FILTER(
74                  ?datum <= ?peildatum_argument
75                  && (!BOUND(?saldo_datum) || ?datum > ?saldo_datum)
76                )
77              }
78              BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag)
79            }
80            GROUP BY ?rubriek ?categorie
81          }
82          VALUES (?categorie ?jaarrekeningpost) {
83            ("B.II"   "B.II Vorderingen")
84          }
85        }
86        GROUP BY ?jaarrekeningpost
87      }
88    }
89  }
90
91  # Bedrijfsopbrengsten (P)
92  {
93    SELECT ((?p_totaal) AS ?bedrijfsopbrengsten)
94    WHERE {
95      {
96        SELECT (SUM(?p_bedrag) AS ?p_totaal)
97        WHERE {
98          # BIND("2025-01-01"^^xsd:date AS ?startperiode)         
99          # BIND("2025-12-31"^^xsd:date AS ?eindperiode)
100          {
101            SELECT DISTINCT ?rubriek WHERE {
102              ?rubriek a onz-fin:Grootboekrubriek .
103              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
104            }
105          }
106          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
107          ?post a onz-fin:Grootboekpost ;
108                onz-g:partOf ?rubriek ;
109                onz-g:hasDate ?datum ;
110                onz-fin:heeftGeldBedrag ?geld_bedrag .
111          FILTER(?datum >= ?startperiode && ?datum <= ?eindperiode)
112          BIND(
113                IF(
114                    STRSTARTS(?rubriekCode, "81") ||
115                    STRSTARTS(?rubriekCode, "82") ||
116                    STRSTARTS(?rubriekCode, "83") ||
117                    STRSTARTS(?rubriekCode, "89") ||
118                    STRSTARTS(?rubriekCode, "919") ||
119                    STRSTARTS(?rubriekCode, "920") ||
120                    STRSTARTS(?rubriekCode, "930"),
121                    ?geld_bedrag, 0
122            ) AS ?p_bedrag
123          )
124        }
125      }
126    }
127  }
128}
129ORDER BY ?Kental
130