# Vorgänge

Aufbau eines Voranfrage-Vorgangs: Beteiligte, Status, Arbeitsschritte und die Aufgaben, die einen Schritt blockieren.

## Kunde und Vorgang

Ein **Kunde** (`customer_id`) ist die Person, deren Gesundheitsdaten geprüft werden. Zu ihm gehören Stammdaten, Dokumente, Befunde und Cluster.

Ein **Vorgang** (`preinquiry_id`, auch Risikovoranfrage) ist eine konkrete Anfrage für diesen Kunden. Ein Kunde kann mehrere Vorgänge haben, jeder Vorgang gehört zu genau einem Kunden. Neben der UUID trägt jeder Vorgang eine sprechende Nummer im Format `MV-7K4H-2QX9` (`case_number`), nach der `preinquiries_list` gezielt sucht.

Der **Scope** (`product_scope`) legt fest, worum es geht:

| Wert | Bedeutung |
| --- | --- |
| `pkv` | private Krankenversicherung |
| `bu` | Berufsunfähigkeitsversicherung |
| `pkv_bu` | beides in einem Vorgang; der Fragebogen ist die Vereinigung beider Kataloge mit dem jeweils längeren Abfragezeitraum |

Die Gesundheitsdaten hängen am **Kunden**, nicht am Vorgang. Zwei Vorgänge desselben Kunden greifen auf dieselben Befunde und Cluster zu.

## Status

`status` beschreibt, wo der Vorgang insgesamt steht:

| Status | Bedeutung |
| --- | --- |
| `intake` | angelegt, Aufnahme läuft |
| `active` | in Bearbeitung |
| `questionnaire_published` | Fragebogen für den Kunden freigegeben |
| `customer_response_received` | Kunde hat geantwortet |
| `archived` | abgeschlossen |

`preinquiries_list` blendet archivierte Vorgänge aus, außer du filterst ausdrücklich mit `status: "archived"`.

## Arbeitsschritte

Unabhängig vom Status läuft jeder Vorgang durch vier Schritte (`current_step`). Sie laufen nur vorwärts:

| Schritt | Inhalt |
| --- | --- |
| `customer_followup` | Unterlagen sammeln, auslesen lassen, Rückfragen mit dem Kunden klären, Fragebogen beantworten |
| `questionnaire_compose` | den Fragebogen für den Versand zusammenstellen |
| `insurer_dispatch` | Versicherer auswählen, Sendepakete versenden, Voten erfassen |
| `archive` | Vorgang abschließen |

Ältere Vorgänge können Schrittnamen aus einer früheren Fassung tragen (etwa `documents` oder `vote_tracking`); die Plattform bildet sie automatisch auf die vier aktuellen Schritte ab.

## Aufgaben und Blocker

Zu jedem Vorgang berechnet die Plattform offene Aufgaben. `preinquiries_get` liefert sie als `open_tasks` mit `task_key`, `title` und `severity`:

- `blocking` hält den Vorgang auf. Beispiele: kein Fragebogen erstellt (`questionnaire_required`), offene Pflichtfragen (`questionnaire_answers_required`), unversendete Sendepakete (`dispatch_required`).
- `warning` weist auf Nacharbeit hin, ohne zu blockieren. Beispiele: offene Schwärzung (`redaction_required`), laufende Auslese (`extraction_required`), unbestätigter Votums-Entwurf (`vote_draft_review_required`).

Diese Aufgaben entstehen aus dem Zustand des Vorgangs und verschwinden von selbst, sobald die Ursache behoben ist. Sie sind etwas anderes als die Aufgaben aus `tasks_list`: dort stehen manuell angelegte Aufgaben und Wiedervorlagen aus der Kundenakte.

## Einwilligung

`consent_status` steht auf `open` oder `granted`. Ohne erteilte Einwilligung dürfen keine Gesundheitsdaten an Versicherer gehen. `dashboard_summary` zählt Kunden ohne Einwilligung getrennt aus.

## Einstieg für Agenten

1. `dashboard_summary` für den Überblick: offene Vorgänge, davon mit Handlungsbedarf, Dokumente zur Prüfung.
2. `preinquiries_list` für die Vorgänge, gefiltert nach `status` oder `customer_id`.
3. `preinquiries_get` für einen einzelnen Vorgang mit `open_tasks`, Zielversicherern und Voten.
4. `customers_get` für die Stammdaten eines Kunden samt seiner Vorgänge, `customers_health_get` für die Gesundheitsdaten.
