- Nieuwe diagnose-systeem.mdx met volledige gebruikersdocumentatie
- Master-detail layout, ICD-10 zoeken, status/ernst niveaus
- Categorie toegevoegd aan _index.json
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Incident telling:
- Nieuwe incident_count in PatientOverzicht alerts
- Telt type='incident', 'crisis' én verpleegkundig category='incident'
- Oranje badge in patiëntenlijst
- "Met alerts" filter includeert nu ook incidenten
Expandable content:
- Rapportages in timeline tonen nu volledige tekst
- "Lees meer" / "Minder tonen" toggle voor berichten >5 regels
- Behoudt whitespace/regeleinden in tekst
Opruiming:
- Oude screenshots verwijderd
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Verpleegrapportage module:
- Nieuwe /epd/verpleegrapportage met patiëntenoverzicht
- Rapportage invoer workspace met timeline view
- Overdracht overzicht met AI-samenvatting
- API endpoints voor verpleegrapportage data
Opruiming:
- Oude /epd/overdracht en /epd/dagregistratie verwijderd (vervangen)
- Oude /api/nursing-logs verwijderd (geconsolideerd naar reports)
- Verouderde design docs en reports verwijderd
- Fonts verplaatst van docs/ naar public/fonts/
Bugfixes:
- Risk-manager: fix constraint violation (db values vs display labels)
- Overdracht API: filter op rapportages i.p.v. encounters
Database:
- Migratie voor consolidatie nursing_logs naar reports tabel
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Overdracht dashboard:
- Patiënten nu gefilterd op rapportages (laatste 24u) i.p.v. encounters
- Reports-block toont correcte type labels en kleuren
Rapportage module:
- Alle report types toegevoegd aan centrale lib/types/report.ts
- Quick actions met alle 8 rapportage types en icons
- Default type gewijzigd naar 'voortgang'
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
1. min-w-0 en box-border toegevoegd aan inputClassName en selectClassName - dit voorkomt dat inputs buiten hun
grid-cellen groeien
2. overflow-hidden toegevoegd aan de DialogContent - voorkomt dat content buiten de modal zichtbaar is
3. overflow-hidden toegevoegd aan het form element
4. Grid layout verbeterd voor datum/tijd: grid-cols-[1fr_auto_auto] met vaste breedte (w-24) voor de tijd inputs,
zodat de datum meer ruimte krijgt
5. min-w-0 toegevoegd aan alle grid children voor Type/Locatie
Deze wijzigingen zorgen ervoor dat:
- Invoervelden nooit buiten hun containers groeien
- De modal content netjes binnen de grenzen blijft
- De datum input meer ruimte krijgt dan de tijd inputs
- Select dropdowns niet overflow veroorzaken
Implements bidirectional linking between appointments and reports:
- E4.S1: Create report from appointment modal with encounter pre-linked
- E4.S2: Link existing reports to appointments via EncounterSelector
- E4.S3: Show linked reports in appointment modal edit view
- E4.S4: Navigation between appointments and reports with deep linking
Also includes bug fixes for patient search:
- Fix FHIR to internal format mapping for patient data
- Fix debounced search interference after patient selection
- Fix UUID handling for optional practitioner_id
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- E0.S1: Add encounter_id and intake_id columns to reports table
- E0.S2: Add performance indices for reports and encounters
- E0.S3: Regenerate TypeScript types
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add in-memory rate limiter (10 requests/minute per user)
- Show informative message when limit reached explaining demo context
- Display countdown timer showing when chat becomes available again
- Auto-reset rate limit when timer expires
- Update documentation with rate limit FAQ and category selection flow
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add DocsChatWidget to epd-layout-client.tsx
- Widget now visible for all authenticated EPD users
- Update bouwplan status: all epics complete
Completes AI Documentatie Assistent feature (E0-E4, 12 stories)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add 6 FAQ markdown files for clientbeheer, intake, screening,
behandelplan, spraak, and inloggen
- Add 2 guidelines files for interface and technical documentation
- Implement CategoryDetector for keyword-based category detection
- Implement KnowledgeLoader for loading relevant knowledge files
- Implement PromptBuilder for combining base prompt with knowledge
Part of AI Documentatie Assistent feature (Epic 0 & Epic 1)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
UI improvements based on UX review:
- Replace textarea with TipTap rich text editor
- Add mic button in editor toolbar (collapsible recorder)
- Remove duplicate type selection (keep only quick action buttons)
- Remove redundant "Nieuwe rapportage:" label
- Add streaming highlight on editor border during recording
- Extend RichTextEditor with toolbarExtra, isStreaming props
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
TypeScript and ESLint fixes:
- Fixed unescaped quotes in report-timeline.tsx (ESLint error)
- Restored database.types.ts from git history (was empty)
- Added reports table type definition to database.types.ts
- Fixed missing getCookieHeader import in intakes/actions.ts
- Fixed use-media-query.ts ternary operator (TypeScript error)
- Simplified z.enum() in report.ts (removed unsupported error options)
All type checking and linting now passes successfully.
Build tested locally and ready for Vercel deployment.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Issue: Foreign key constraint violation when creating reports
- reports.created_by referenced practitioners.id
- Code was storing auth.uid() instead of practitioner.id
- Demo practitioners have user_id: null (no auth link)
Solution (prototype):
- Drop FK constraints on created_by and updated_by
- Store auth user ID directly without constraint
- Added migration: 20251123_fix_reports_created_by_constraint.sql
Note: In production, populate practitioners.user_id and restore
FK constraints for proper data integrity.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Adapted cleanup to work with split-view rapportage refactor.
Split-view refactor replaced modal flow with dual-pane workspace:
- Composer is now on the rapportage page itself (no modal)
- "Nieuwe rapportage" button scrolls to #rapportage-composer
- Timeline and composer visible simultaneously
Changes:
- Recreated PatientLayoutClient WITHOUT RapportageModal
- Kept ClientHeader with focusElementId prop for scroll navigation
- Kept layout.tsx using PatientLayoutClient wrapper
- ClientSidebar removal still valid (EPDSidebar handles navigation)
Result: Clean codebase compatible with split-view design
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added comprehensive verification report documenting the complete build
fix process from initial failure to successful compilation.
Report includes:
- Root cause analysis (archive exclusion + database types issues)
- Step-by-step fix verification
- All 10+ TypeScript errors identified and resolved
- Build configuration changes
- Recommendations for future improvements
File: docs/reports/verification-report-20251123.md (45KB)
This serves as documentation for:
- Understanding what went wrong
- How the issues were systematically resolved
- Best practices for database type management
- Reference for similar issues in the future
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>