# JARVIS Health Intelligence Workflow

Stand: 2026-05-12

## Ziel

Das Gesundheitsmanagement-System sammelt Gesundheitsdokumente, Laborwerte, YAZIO-Ernährungsdaten, tägliche Gesundheitsdaten per E-Mail und manuelle Telegram-Einträge. Kritische Laborwerte werden nicht blind aus OCR übernommen, sondern über ein 4-Augen-Prinzip validiert.

## Eingangskanäle

1. **E-Mail:** `friday.uplink@gmail.com`
   - Laborberichte, Untersuchungsberichte, Arztberichte, tägliche Gesundheitsdaten.
2. **Telegram:** Direkte Dateien oder Notizen.
3. **Google Drive Inbox:** `Gesundheitsdaten Inbox` (`1HOJXzIjJaUUoLGZgJjAR5V6ZCsOBsGgE`).
4. **YAZIO API:** tägliche Ernährungseinträge.
5. **Automatischer Gesundheitsdaten-E-Mail-Flow:** tägliche Werte werden ins `tagebuch` geschrieben.

## Datenbank-Erweiterungen

Migration: `scripts/health_system_migrate.py`

Neue Tabellen:

- `health_processing_runs` — Batch-/Verarbeitungsläufe.
- `laborwerte_staging` — OCR/Docling-Laborwerte vor Freigabe.
- `document_insights` — strukturierte Erkenntnisse aus Dokumenten.
- `health_daily_summary` — Tageszusammenfassungen.
- `health_insights` — Trends/Korrelationen/Auffälligkeiten.
- `report_runs` — erzeugte Reports/Dashboards.

Erweiterte Tabellen:

- `laborwerte`: `abnahme_datum`, `befund_datum`, `wert_original`, `quelle`, `validierungsstatus`, `review_batch_id`.
- `dokumente`: `quelle`, `review_status`, `processing_quality`.

## 4-Augen-Laborworkflow

1. Dokument kommt rein.
2. Docling/OCR extrahiert Volltext und Laborwerte.
3. Laborwerte landen in `laborwerte_staging` mit Status `zur_pruefung`.
4. JARVIS erzeugt `KORREKTUR_Laborwerte_<batch>.xlsx`.
5. Datei wird in Google Drive Ordner `Gesundheitsdaten Korrektur` abgelegt.
6. User prüft/korrigiert die XLSX.
7. User schreibt sinngemäß: „Korrekturen übernehmen.“
8. JARVIS liest die Korrektur-XLSX und schreibt validierte Werte in `laborwerte`.
9. `aktuelle_blutwerte.xlsx`, Dashboard und Berichte werden aktualisiert.

## Google Drive Ordner

- Inbox: `Gesundheitsdaten Inbox` — `1HOJXzIjJaUUoLGZgJjAR5V6ZCsOBsGgE`
- Archiv: `Archiv` — `1H2zXafzbaRobY8XDcPyRpZBE6mXeTcJe`
- Korrektur: `Gesundheitsdaten Korrektur` — `18wPP6yHjdp8XShhue7OZcamcqc09ec9g`

Aktuelle initiale Korrekturdatei:

- Drive File: `1hNta5la-F4X2qutweFcwm3B5eaIxci0e`
- Lokaler Pfad: `corrections/KORREKTUR_Laborwerte_reference_20260512_155504.xlsx`

## Hauptskripte

- `scripts/health_pipeline.py`
  - `generate-lab-report`
  - `export-correction`
  - `apply-corrections <xlsx>`
  - `dashboard`
  - `daily-report`
  - `weekly-report`
  - `register-inbox`
- `scripts/generate_labor_report.py` — Wrapper für `health_pipeline.py generate-lab-report`.
- `scripts/health_system_migrate.py` — idempotente DB-Migration mit Backup.
- `~/.hermes/scripts/health_daily_sync.py` — Cron-Script für Inbox/Gmail/YAZIO/Dashboard.
- `~/.hermes/scripts/health_weekly_report.py` — Cron-Script für Wochenbericht.

## Reports

- `reports/aktuelle_blutwerte.xlsx` — eine Spalte pro Untersuchung/Datum, eine Zeile pro Parameter.
- `reports/health_dashboard.html` — Health Cockpit mit Systemstatus und Labortrends.
- `reports/daily_health_report_YYYY-MM-DD.md` — Tagesbericht.
- `reports/weekly_health_report_<start>_<end>.md` — Wochenbericht.

## Cron Jobs

- `2bf4d0a8bedb` — Gesundheitsdaten Daily Sync, täglich 23:10.
- `e9b6fe32c177` — Gesundheitsdaten Wochenbericht, Sonntag 18:00.
- Alter fehlerhafter Inbox-Check `e2150e5d908d` wurde pausiert.

## Wichtig

- Laborwerte aus OCR/Docling gelten erst nach Korrektur-Freigabe als `validiert`.
- Die User-XLSX `260510_Laborwerte_Uebersicht.xlsx` wird als aktuellste Referenz bevorzugt, weil sie die Spalten bis `2026-05-07` enthält.
- `ermittlung_datum` ist nicht das klinische Abnahmedatum; für Trends `abnahme_datum` verwenden.
