# Sprint 6E – Gesundheitsakte und Dokumentensuche

## Aktivierung

`--health-record-6e` aktiviert bewusst Akte, 6D-Kalender und 6C-Explorer. Ohne Flag bleiben Markup, Asset, API-Aufrufe und die Bezeichnung **Arzt** unverändert. Die reguläre Route bleibt `/health-dashboard-v5`.

## Read-only API

Neue additive Endpunkte: `record-summary`, `record-labs`, `medications`, `appointments`, `documents`, `documents/{opaque_id}`, `documents/{opaque_id}/matches` und `doctor-report`. Alle verwenden die bestehende Same-Origin-Session oder Bearer-Grenze, `no-store`, feste Parameter-Allowlisten, Limits und opaque Dokument-IDs. Interne IDs, Pfade, Drive-Verweise und Originaldateinamen werden nicht projiziert.

`/api/v1/labs` bleibt parameterlos und unverändert streng; Aktenzusatzdaten liegen unter `record-labs`.

## FTS5-Betrieb

Der Read-only Dashboard-Prozess schreibt nie. Die lokale, idempotente Wartung ist explizit:

```bash
python3 scripts/health/document_fts_migrate.py --db /abs/path/health.db --rebuild
python3 scripts/health/document_fts_migrate.py --db /abs/path/health.db --check
python3 scripts/health/document_fts_migrate.py --db /abs/path/health.db --drop
```

Der Index `health_document_fts` enthält nur `dokumente.review_status='geprueft'` und indexiert sichere Metadaten sowie freigegebenen Extrakttext in stabilen Abschnitten. `--drop` ist der dokumentierte Rollback; nach einem Restore ist `--rebuild` deterministisch. FTS5 wird geprüft, Fehler rollen die Transaktion zurück; Inhalte werden nicht geloggt.

Browserabfragen sind auf 2–80 Zeichen, höchstens acht Literal-Tokens und parametrisierte FTS-Ausdrücke begrenzt. Es gibt keinen `LIKE '%…%'`-Fallback.

## Grenzen

Die Akte zeigt dokumentierte Fakten, keine Diagnose, Kausalitätsaussage oder Therapieempfehlung. Terminstatus ohne explizites Quellfeld bleibt `documented_visit`. Originale sind nur für geprüfte Dokumente über eine authentisierte opaque Route unter erlaubten lokalen Gesundheitswurzeln verfügbar; Traversal, Symlinks, MIME- und Größenverstöße werden neutral abgelehnt.
