Skip to content

Produktivitäts-Auswertung ​

Gibt Termindauer, Terminanzahl, Umsatz und Umsatz pro Behandler-Stunde zurück, gruppierbar nach Behandler, Ressource, Kurs und Zeitraum.

Die Datengrundlage und die Einschränkungen dieses Bereichs sind in der Bereichsübersicht beschrieben – insbesondere, dass hier Abrechnungsleistungen und keine Rechnungen ausgewertet werden.

Request ​

GET /api/oauth/v2/resource/fee-note-services/productivity

HeaderWert
AuthorizationBearer {access_token}

Query-Parameter ​

ParameterTypPflichtBeschreibung
fromstring (ISO-Datum)JaBeginn des Zeitraums
untilstring (ISO-Datum)JaEnde des Zeitraums
groupBystringNeinKommaliste aus treatingUser, resource, course. Plus höchstens ein Zeit-Token (day, week, month, year). Standard: treatingUser,month
treatingUserIdstring (UUID)NeinFiltert nach Behandler
offsetintegerNeinStartposition (Standard: 0)
limitintegerNeinAnzahl Ergebnisse (Standard: 50, Max: 200)

Hinweis zur Sortierung: Die Zeilen kommen stabil sortiert – bei gleichem Filter und gleicher Seite liefert ein wiederholter Aufruf dieselbe Reihenfolge. Ein angefordertes Zeit-Bucket (day, week, month, year) steht dabei vorne in der Sortierung, Zeitreihen kommen also chronologisch.

Hinweis zu gelöschten Patienten: Abrechnungsleistungen gelöschter Patienten fließen nicht mehr in die Produktivität ein, genau wie in der Umsatz-Auswertung.

Response ​

Erfolg (200 OK) ​

json
{
  "data": [
    {
      "period": "2026-03",
      "treatingUser": "6f1c1a2b-3c4d-5e6f-7890-abcdef123456",
      "resource": null,
      "course": null,
      "hasAppointment": true,
      "appointmentCount": 214,
      "durationMinutes": 6420,
      "gross": 48200.00,
      "net": 48200.00,
      "turnoverPerHour": 450.47
    },
    {
      "period": "2026-03",
      "treatingUser": "6f1c1a2b-3c4d-5e6f-7890-abcdef123456",
      "resource": null,
      "course": null,
      "hasAppointment": false,
      "appointmentCount": 0,
      "durationMinutes": 0,
      "gross": 1250.00,
      "net": 1250.00,
      "turnoverPerHour": null
    }
  ],
  "meta": { "total": 26, "offset": 0, "limit": 50 }
}

Die zweite Zeile (hasAppointment: false) zeigt Abrechnungsleistungen ohne Terminbezug: Sie tragen zu gross/net bei, aber nicht zu durationMinutes.

Response-Felder ​

FeldTypBeschreibung
dataArrayListe der aggregierten Produktivitätszeilen
data[].periodstring | nullZeitraum-Bucket, Format abhängig vom Zeit-Token in groupBy, null wenn kein Zeit-Token angefordert
data[].treatingUserstring (UUID) | nullID des Behandlers, null wenn nicht angefordert. Nachladbar über Benutzer anzeigen
data[].resourcestring (UUID) | nullID der Ressource (z.B. auch ein OP-Raum), null wenn nicht angefordert. Kein eigener OAuth-Endpoint zum Nachladen, siehe Konventionen
data[].coursestring (UUID) | nullID des Kurses, null wenn nicht angefordert. Nachladbar über Kurs-Details
data[].hasAppointmentbooleanOb die Zeile Abrechnungsleistungen mit Terminbezug zusammenfasst (true) oder solche ohne (false)
data[].appointmentCountintegerAnzahl der zugrunde liegenden Termine
data[].durationMinutesintegerSummierte Termindauer in Minuten. 0 bei Zeilen ohne Terminbezug
data[].grossfloatBruttobetrag
data[].netfloatNettobetrag
data[].turnoverPerHourfloat | nullUmsatz pro Behandler-Stunde (gross / (durationMinutes / 60), gerundet auf zwei Stellen). null bei durationMinutes = 0
meta.totalintegerGesamtanzahl der Gruppen
meta.offsetintegerAktuelle Startposition
meta.limitintegerAnzahl der zurückgegebenen Einträge
Beispiele
bash
curl -X GET "https://my.offisy.at/api/oauth/v2/resource/fee-note-services/productivity?from=2026-01-01&until=2026-12-31&groupBy=treatingUser%2Cmonth&treatingUserId=b2c3d4e5-f6a7-8901-bcde-f01234567890&offset=0&limit=50" \
  -H "Authorization: Bearer {access_token}"
Parameter
Zuerst Token anfordern

Mögliche Fehler ​

StatusCodeBeschreibung
400validation_errorFehlendes oder ungültiges from/until, ungültige Dimension, mehr als ein Zeit-Token, oder Zeitraum zu lang
400validation_errortreatingUserId ist kein gültiges UUID-Format
400invalid_requestDer API-Zugang ist keinem Benutzer zugeordnet – ordne ihm in den Offisy-Einstellungen einen Benutzer zu
401invalid_clientUngültiger oder fehlender Access Token
403insufficient_scopeScope reports nicht vorhanden
403access_deniedDem Besitzer-Benutzer deines API-Zugangs fehlt die Berechtigung Report Benutzer
403access_deniedAdd-on Mandanten aktiv, aber dem Besitzer-Benutzer deines API-Zugangs ist kein Mandant zugänglich (error_description: No tenancy is accessible to this user.)
404not_foundtreatingUserId verweist auf keinen existierenden Datensatz

Offisy GmbH