- 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>
2.8 KiB
2.8 KiB
Technische Documentatie
Deze documentatie is bedoeld voor developers en technisch beheerders.
Architectuur Overzicht
Het Mini-EPD is gebouwd met:
- Frontend: Next.js 14 (App Router) + React + Tailwind CSS
- Backend: Next.js API Routes
- Database: Supabase (PostgreSQL)
- Authenticatie: Supabase Auth
- Hosting: Vercel
FHIR R4 Standaard
Het EPD volgt de FHIR R4 standaard voor zorgdata:
Resources
Patient- CliëntgegevensPractitioner- BehandelaarOrganization- OrganisatieEncounter- Contact/afspraakObservation- Observatie/metingCondition- DiagnoseCarePlan- Behandelplan
API Endpoints
GET /api/fhir/Patient - Lijst van patiënten
GET /api/fhir/Patient/:id - Specifieke patiënt
POST /api/fhir/Patient - Nieuwe patiënt aanmaken
PUT /api/fhir/Patient/:id - Patiënt bijwerken
DELETE /api/fhir/Patient/:id - Patiënt verwijderen
Database Schema
Belangrijke Tabellen
| Tabel | Beschrijving |
|---|---|
patients |
Cliëntgegevens |
practitioners |
Behandelaars |
intakes |
Intake registraties |
intake_sections |
Sectie-inhoud van intakes |
treatment_plans |
Behandelplannen |
reports |
Rapportages |
Row Level Security (RLS)
Alle tabellen hebben RLS policies:
- Gebruikers zien alleen data van hun organisatie
- Behandelaars zien alleen eigen cliënten (tenzij supervisor)
Authenticatie
Login Flow
- Gebruiker vult credentials in
- Supabase Auth valideert
- JWT token wordt uitgegeven
- Token wordt opgeslagen in httpOnly cookie
Rollen
behandelaar- Standaard rolscreener- Screening toegangadmin- Volledige toegang
Environment Variables
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=xxx
SUPABASE_SERVICE_ROLE_KEY=xxx
ANTHROPIC_API_KEY=xxx
DEEPGRAM_API_KEY=xxx
Development
Lokaal draaien
pnpm install
pnpm dev
Database migraties
npx supabase db push
Type generatie
npx supabase gen types typescript --local > lib/supabase/database.types.ts
API Rate Limits
| Endpoint | Limit |
|---|---|
| Auth endpoints | 10/min |
| FHIR endpoints | 100/min |
| AI endpoints | 20/min |
Monitoring & Logging
- Vercel Analytics - Performance monitoring
- Supabase Logs - Database queries en auth events
- Console logging - Applicatie logs (geen PII)
Veelvoorkomende Fouten
| Code | Betekenis | Oplossing |
|---|---|---|
| 401 | Niet geauthenticeerd | Opnieuw inloggen |
| 403 | Geen toegang | Controleer rol/rechten |
| 404 | Niet gevonden | Resource bestaat niet |
| 429 | Rate limit | Wacht en probeer opnieuw |
| 500 | Server error | Neem contact op met support |