Files
triqura-ecd/docs/seed-data-reports.md
colinislit dce3943963 feat: rapportage UI refactor, speech streaming, docs & seed data
Rapportage:
- Refactor workspace into modular components (quick-actions, timeline-card, timeline-sidebar)
- Add updateReport action for inline editing
- Improve report timeline with better UX

Speech:
- Add Deepgram token API endpoint
- Add use-deepgram-streaming hook
- Add confidence-text component

Docs:
- Add architecture documentation
- Add performance optimization plan
- Add speech specs and seed data docs

Scripts & Data:
- Add seed-reports script and migration
- Update AGENTS.md guidelines

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 14:07:08 +01:00

7.2 KiB

Reports Seed Data Documentatie

Deze documentatie beschrijft hoe je testdata voor rapportages kunt inladen om AI-samenvattingsfunctionaliteit te demonstreren.

Overzicht

De seed data bevat 10 realistische rapportages verdeeld over 3 patiënten:

Patiënten & Rapportages

1. Colin Lit - Depressie Behandeling (5 rapportages)

  • Intake behandeladvies - Uitgebreide intake met DSM classificatie, ROM scores en CGT behandelplan
  • Sessie 2 notitie - Voortgang gedragsactivatie
  • Sessie 4 notitie - Significante vooruitgang, PHQ-9 verbeterd
  • Crisis interventie - Tussentijds telefonisch contact
  • Voortgangsrapportage - Evaluatie na 8 sessies met ROM vergelijking

Gebruik voor demonstratie:

  • Timeline visualisatie van behandelverloop
  • ROM score tracking (PHQ-9: 14 → 6)
  • Behandeleffectiviteit analyse
  • Crisis moment herkenning

2. Jan de Vriesh - Angststoornis (3 rapportages)

  • Intake behandeladvies - GAD diagnose met ACT behandelplan
  • Sessie 3 notitie - Mindfulness en acceptance technieken
  • Sessie 6 notitie - Uitgebreide relatiedynamiek analyse

Gebruik voor demonstratie:

  • ACT interventie tracking
  • Relationele problematiek identificatie
  • Emotionele doorbraken herkennen
  • Lange vorm notities samenvatten

3. Optimus Prime - Diagnostiek (2 rapportages) 🤖

  • Diagnostisch rapport - Uitgebreid neuropsychologisch onderzoek met WAIS-IV scores
  • Follow-up notitie - Bespreking diagnostische bevindingen

Gebruik voor demonstratie:

  • Complexe diagnostiek samenvatten
  • Test resultaten extractie
  • Atypische presentaties herkennen
  • Easter egg functionaliteit 😊

Installatie Methoden

Methode 1: SQL Migratie (Aanbevolen voor development)

# Voer de SQL migratie uit via Supabase CLI
npx supabase db push

# Of direct via psql
psql $DATABASE_URL -f supabase/migrations/20251124_seed_reports_data.sql

Voordelen:

  • Snelste methode
  • Idempotent (ON CONFLICT DO NOTHING)
  • Onderdeel van migratie geschiedenis

Methode 2: TypeScript Seed Script

# Zorg dat environment variables zijn ingesteld
export NEXT_PUBLIC_SUPABASE_URL="your-project-url"
export SUPABASE_SERVICE_ROLE_KEY="your-service-role-key"

# Voer het seed script uit
pnpm tsx scripts/seed-reports.ts

Voordelen:

  • Meer flexibel voor aanpassingen
  • Betere error handling en feedback
  • Makkelijk uit te breiden met extra logica

Data Structuur

Report Types

type ReportType = 'behandeladvies' | 'vrije_notitie';
  • behandeladvies: Gestructureerde rapportages met diagnoses en behandelplannen
  • vrije_notitie: Vrije vorm sessie notities

Structured Data Examples

Behandeladvies

{
  "diagnosis_codes": ["F32.1", "F51.0"],
  "rom_scores": {
    "PHQ-9": 14,
    "GAD-7": 8
  },
  "treatment_plan": {
    "type": "CGT",
    "sessions": 12,
    "frequency": "wekelijks"
  }
}

Sessie Notitie

{
  "session_number": 4,
  "phq9_score": 9,
  "treatment_progress": "goed"
}

AI Confidence Scores

Sommige rapportages bevatten AI confidence scores voor ML training:

{
  ai_confidence: 0.92,  // 0.0 - 1.0
  ai_reasoning: "Clearly structured intake report with treatment advice section"
}

Use Cases voor AI Demonstratie

1. Automatische Samenvatting

Input: Lange rapportage (1000+ woorden)
Output: Beknopte samenvatting (200 woorden) met key points

2. ROM Score Extractie

Input: Behandelverloop van Colin (5 rapportages)
Output: PHQ-9 timeline: [14, -, 9, -, 6]
        Trend: Significante verbetering

3. Behandelplan Identificatie

Input: Intake rapportages
Output:
  - Colin: CGT, 12 sessies, wekelijks
  - Jan: ACT, 16 sessies, wekelijks
  - Optimus: Geen behandeling, consultatief

4. Rapportage Classificatie

Input: Rapport content
Output: Type: behandeladvies (confidence: 0.92)

5. Crisis Moment Detectie

Input: Alle rapportages van patiënt
Output: Crisis interventie gedetecteerd op 2024-10-28
        Severity: laag
        Actie: extra sessie gepland

6. Thematische Analyse

Input: Jan's rapportages
Output: Terugkerende thema's:
  - Piekeren / worry
  - Relatiedynamiek
  - Geruststelling zoeken
  - Mindfulness challenges

Query Voorbeelden

Alle rapportages voor een patiënt

SELECT
  r.*,
  p.name_given || ' ' || p.name_family as patient_name,
  pr.name_given || ' ' || pr.name_family as practitioner_name
FROM reports r
JOIN patients p ON r.patient_id = p.id
LEFT JOIN practitioners pr ON r.created_by = pr.id
WHERE p.name_family = 'Lit' AND 'Colin' = ANY(p.name_given)
ORDER BY r.created_at ASC;

ROM scores over tijd

SELECT
  created_at,
  structured_data->'rom_scores' as rom_scores,
  structured_data->'session_number' as session
FROM reports
WHERE patient_id = 'colin-lit-uuid'
  AND structured_data ? 'rom_scores'
ORDER BY created_at;

Behandeladvies rapportages

SELECT
  p.name_family,
  r.content,
  r.structured_data->'treatment_plan' as treatment_plan,
  r.ai_confidence
FROM reports r
JOIN patients p ON r.patient_id = p.id
WHERE r.type = 'behandeladvies'
  AND r.ai_confidence > 0.9
ORDER BY r.created_at DESC;

Data Reset

Om de seed data opnieuw in te laden:

-- Verwijder bestaande reports (soft delete)
UPDATE reports
SET deleted_at = NOW()
WHERE created_at >= '2024-10-15'
  AND created_at <= '2024-11-22';

-- Of hard delete (wees voorzichtig!)
DELETE FROM reports
WHERE created_at >= '2024-10-15'
  AND created_at <= '2024-11-22';

Dan kun je de seed scripts opnieuw uitvoeren.

Uitbreidingen

Meer rapportages toevoegen

Edit scripts/seed-reports.ts en voeg nieuwe entries toe aan seedReportsData:

{
  patient_family_name: 'Lit',
  patient_given_name: 'Colin',
  practitioner_index: 1,
  type: 'vrije_notitie',
  content: 'Nieuwe sessie notitie...',
  created_at: '2024-11-25T10:00:00Z',
  structured_data: {
    session_number: 9,
    // ... meer data
  }
}

Andere patiënten

Voeg eerst nieuwe patiënt toe aan de database, en gebruik dan dezelfde structuur in het seed script.

Troubleshooting

"Patient not found" error

  • Controleer of de seed data voor patients is geladen
  • Verifieer de naam spelling (case-sensitive!)
  • Check of name_given een array is

"Foreign key violation" error

  • Zorg dat practitioners zijn geladen (zie 20241121_seed_demo_data.sql)
  • Verifieer dat de practitioner IDs kloppen

Duplicate key errors

  • De SQL migratie gebruikt ON CONFLICT DO NOTHING
  • Het TypeScript script zal dubbele entries overslaan
  • Als je opnieuw wilt seeden, verwijder eerst de oude data

Next Steps

Na het laden van seed data:

  1. Test de rapportage UI - Ga naar /epd/patients/[id]/rapportage
  2. Implementeer AI samenvatting - Gebruik Claude API om rapportages samen te vatten
  3. Bouw timeline visualisatie - Toon chronologisch overzicht van behandeling
  4. ROM tracking dashboard - Visualiseer scores over tijd
  5. Zoek functionaliteit - Full-text search over rapportage content

Contact & Support

Voor vragen over de seed data of uitbreidingen, zie de main project README of open een issue in het project.


Created: 2024-11-24 Last Updated: 2024-11-24 Version: 1.0