feat(verpleegrapportage): Nieuwe module + opruiming codebase
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>
This commit is contained in:
282
docs/seed-verpleegkundige-notities.md
Normal file
282
docs/seed-verpleegkundige-notities.md
Normal file
@@ -0,0 +1,282 @@
|
||||
# Seed Data: Verpleegkundige Notities
|
||||
|
||||
Handmatig verpleegkundige notities toevoegen aan de database via SQL.
|
||||
|
||||
## Stap 1: Patient ID opzoeken
|
||||
|
||||
Zoek eerst de UUID van de patient:
|
||||
|
||||
```sql
|
||||
SELECT id, name_given, name_family
|
||||
FROM patients
|
||||
WHERE name_family ILIKE '%achternaam%'
|
||||
ORDER BY name_family;
|
||||
```
|
||||
|
||||
## Stap 2: Notities invoegen
|
||||
|
||||
### Beschikbare categorieën
|
||||
|
||||
| Categorie | Beschrijving |
|
||||
|-----------|--------------|
|
||||
| `medicatie` | Medicatie gerelateerde notities |
|
||||
| `adl` | ADL/verzorging (eten, wassen, etc.) |
|
||||
| `gedrag` | Gedragsobservaties |
|
||||
| `incident` | Incidenten en ongewenste gebeurtenissen |
|
||||
| `observatie` | Algemene observaties |
|
||||
|
||||
### SQL Template
|
||||
|
||||
Vervang `'PATIENT_UUID_HIER'` met de gevonden patient ID:
|
||||
|
||||
```sql
|
||||
-- Verpleegkundige notities voor een patient
|
||||
INSERT INTO reports (patient_id, type, content, structured_data, include_in_handover, shift_date, created_at)
|
||||
VALUES
|
||||
-- Medicatie notitie
|
||||
('PATIENT_UUID_HIER', 'verpleegkundig',
|
||||
'Medicatie uitgereikt om 08:00. Patient nam zonder problemen in.',
|
||||
'{"category": "medicatie"}', false, CURRENT_DATE, NOW()),
|
||||
|
||||
-- ADL notitie
|
||||
('PATIENT_UUID_HIER', 'verpleegkundig',
|
||||
'Geholpen met ochtendzorg. Zelfstandig tanden gepoetst.',
|
||||
'{"category": "adl"}', false, CURRENT_DATE, NOW()),
|
||||
|
||||
-- Gedragsobservatie
|
||||
('PATIENT_UUID_HIER', 'verpleegkundig',
|
||||
'Rustige ochtend. Patient las de krant in de huiskamer.',
|
||||
'{"category": "gedrag"}', false, CURRENT_DATE, NOW()),
|
||||
|
||||
-- Incident
|
||||
('PATIENT_UUID_HIER', 'verpleegkundig',
|
||||
'Licht gestruikeld bij opstaan uit stoel. Geen letsel. Valrisico besproken.',
|
||||
'{"category": "incident"}', true, CURRENT_DATE, NOW()),
|
||||
|
||||
-- Algemene observatie (voor overdracht)
|
||||
('PATIENT_UUID_HIER', 'verpleegkundig',
|
||||
'Sliep onrustig vannacht. Klaagt over hoofdpijn. Arts informeren.',
|
||||
'{"category": "observatie"}', true, CURRENT_DATE, NOW());
|
||||
```
|
||||
|
||||
### Met specifieke tijdstippen
|
||||
|
||||
```sql
|
||||
INSERT INTO reports (patient_id, type, content, structured_data, include_in_handover, shift_date, created_at)
|
||||
VALUES
|
||||
-- Nachtdienst (voor 07:00 = vorige dag shift_date)
|
||||
('PATIENT_UUID_HIER', 'verpleegkundig',
|
||||
'Twee keer wakker geworden. Om 03:00 toiletgang, om 05:30 onrustig.',
|
||||
'{"category": "observatie"}', true,
|
||||
CURRENT_DATE - INTERVAL '1 day', -- shift_date = gisteren
|
||||
CURRENT_DATE + TIME '05:30'), -- created_at = vandaag 05:30
|
||||
|
||||
-- Ochtend
|
||||
('PATIENT_UUID_HIER', 'verpleegkundig',
|
||||
'Ontbijt goed gegeten. Koffie met melk.',
|
||||
'{"category": "adl"}', false, CURRENT_DATE, CURRENT_DATE + TIME '08:30'),
|
||||
|
||||
-- Middag
|
||||
('PATIENT_UUID_HIER', 'verpleegkundig',
|
||||
'Bezoek van dochter. Positieve stemming.',
|
||||
'{"category": "gedrag"}', false, CURRENT_DATE, CURRENT_DATE + TIME '14:00'),
|
||||
|
||||
-- Avond
|
||||
('PATIENT_UUID_HIER', 'verpleegkundig',
|
||||
'Avondmedicatie gegeven. Slaapmedicatie om 21:00.',
|
||||
'{"category": "medicatie"}', true, CURRENT_DATE, CURRENT_DATE + TIME '21:00');
|
||||
```
|
||||
|
||||
## Velden uitleg
|
||||
|
||||
| Veld | Waarde | Toelichting |
|
||||
|------|--------|-------------|
|
||||
| `type` | `'verpleegkundig'` | Altijd deze waarde voor korte notities |
|
||||
| `content` | string (1-500 tekens) | De notitie tekst |
|
||||
| `structured_data` | `'{"category": "..."}'` | JSON met categorie |
|
||||
| `include_in_handover` | `true/false` | Tonen in overdracht |
|
||||
| `shift_date` | `CURRENT_DATE` | Dienstdatum (voor 07:00 = vorige dag) |
|
||||
| `created_at` | `NOW()` | Aanmaaktijd |
|
||||
|
||||
## Voorbeelddata per categorie
|
||||
|
||||
### Medicatie voorbeelden
|
||||
```sql
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Paracetamol 500mg gegeven om 10:00 i.v.m. hoofdpijn.', '{"category": "medicatie"}', false, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'PRN lorazepam geweigerd. Patient wilde eerst ontspanningsoefeningen proberen.', '{"category": "medicatie"}', true, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Insuline toegediend voor avondeten. BG: 8.2 mmol/L.', '{"category": "medicatie"}', false, CURRENT_DATE, NOW())
|
||||
```
|
||||
|
||||
### ADL voorbeelden
|
||||
```sql
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Volledig geholpen met douchen. Huid intact, geen bijzonderheden.', '{"category": "adl"}', false, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Lunch: halve boterham gegeten, 1 kopje soep. Eetlust matig.', '{"category": "adl"}', true, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Continentie: 1x incontinent voor urine. Verschoond.', '{"category": "adl"}', false, CURRENT_DATE, NOW())
|
||||
```
|
||||
|
||||
### Gedrag voorbeelden
|
||||
```sql
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Goede dag. Actief deelgenomen aan groepsactiviteit.', '{"category": "gedrag"}', false, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Teruggetrokken gedrag. Wil op kamer blijven. Gesprek aangeboden.', '{"category": "gedrag"}', true, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Conflict met medebewoner over TV. Situatie de-escaleerd door afleiding.', '{"category": "gedrag"}', true, CURRENT_DATE, NOW())
|
||||
```
|
||||
|
||||
### Incident voorbeelden
|
||||
```sql
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Val uit bed om 04:00. Geen zichtbaar letsel. Arts geinformeerd.', '{"category": "incident"}', true, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Agressief gedrag richting personeel. Time-out op kamer. Gesprek na 30 min.', '{"category": "incident"}', true, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Verslikking tijdens eten. Heimlich niet nodig, spontaan uitgekucht.', '{"category": "incident"}', true, CURRENT_DATE, NOW())
|
||||
```
|
||||
|
||||
### Observatie voorbeelden
|
||||
```sql
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Temperatuur 37.8. Licht verhoogd. Monitoren.', '{"category": "observatie"}', true, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Zuurstof saturatie stabiel: 96% op kamerlucht.', '{"category": "observatie"}', false, CURRENT_DATE, NOW()),
|
||||
('PATIENT_UUID', 'verpleegkundig', 'Nieuwe rode plek op stuit. Decubitus preventie protocol gestart.', '{"category": "observatie"}', true, CURRENT_DATE, NOW())
|
||||
```
|
||||
|
||||
## Alles verwijderen voor een patient
|
||||
|
||||
```sql
|
||||
-- Soft delete (aanbevolen)
|
||||
UPDATE reports
|
||||
SET deleted_at = NOW()
|
||||
WHERE patient_id = 'PATIENT_UUID'
|
||||
AND type = 'verpleegkundig';
|
||||
|
||||
-- Hard delete (definitief)
|
||||
DELETE FROM reports
|
||||
WHERE patient_id = 'PATIENT_UUID'
|
||||
AND type = 'verpleegkundig';
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Kant-en-klare seed data (Colin Lit & Jan de Vriesh)
|
||||
|
||||
Kopieer onderstaande SQL en voer uit in Supabase SQL Editor.
|
||||
**Let op:** Vervang de UUIDs eerst met de juiste waarden uit je database.
|
||||
|
||||
```sql
|
||||
-- Seed data voor Colin Lit en Jan de Vriesh (afgelopen week)
|
||||
-- Kopieer en plak direct in Supabase SQL Editor
|
||||
|
||||
INSERT INTO reports (patient_id, type, content, structured_data, include_in_handover, shift_date, created_at)
|
||||
VALUES
|
||||
-- ═══════════════════════════════════════════════════════════════════════════
|
||||
-- COLIN LIT (f3fb1396-d326-450a-9f00-d60340f25deb)
|
||||
-- ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
-- Vandaag
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Ochtendmedicatie uitgereikt. Inname zonder problemen.',
|
||||
'{"category": "medicatie"}', false, CURRENT_DATE, CURRENT_DATE + TIME '08:15'),
|
||||
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Rustige ochtend. Zat in huiskamer te lezen.',
|
||||
'{"category": "gedrag"}', false, CURRENT_DATE, CURRENT_DATE + TIME '10:30'),
|
||||
|
||||
-- Gisteren
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Geholpen met douchen. Huid intact, geen bijzonderheden.',
|
||||
'{"category": "adl"}', false, CURRENT_DATE - INTERVAL '1 day', CURRENT_DATE - INTERVAL '1 day' + TIME '09:00'),
|
||||
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Klaagt over slecht slapen. Piekert veel. Gesprek aangeboden.',
|
||||
'{"category": "observatie"}', true, CURRENT_DATE - INTERVAL '1 day', CURRENT_DATE - INTERVAL '1 day' + TIME '14:30'),
|
||||
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Avondmedicatie gegeven incl. slaapmedicatie.',
|
||||
'{"category": "medicatie"}', false, CURRENT_DATE - INTERVAL '1 day', CURRENT_DATE - INTERVAL '1 day' + TIME '21:00'),
|
||||
|
||||
-- 3 dagen geleden
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Goede dag gehad. Deelgenomen aan groepsactiviteit.',
|
||||
'{"category": "gedrag"}', false, CURRENT_DATE - INTERVAL '3 days', CURRENT_DATE - INTERVAL '3 days' + TIME '16:00'),
|
||||
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Lunch volledig opgegeten. Eetlust lijkt verbeterd.',
|
||||
'{"category": "adl"}', false, CURRENT_DATE - INTERVAL '3 days', CURRENT_DATE - INTERVAL '3 days' + TIME '12:30'),
|
||||
|
||||
-- 5 dagen geleden
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Somber vanmorgen. Wilde niet uit bed komen. Na gesprek toch opgestaan.',
|
||||
'{"category": "gedrag"}', true, CURRENT_DATE - INTERVAL '5 days', CURRENT_DATE - INTERVAL '5 days' + TIME '09:30'),
|
||||
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Paracetamol gegeven i.v.m. hoofdpijn.',
|
||||
'{"category": "medicatie"}', false, CURRENT_DATE - INTERVAL '5 days', CURRENT_DATE - INTERVAL '5 days' + TIME '11:00'),
|
||||
|
||||
-- 6 dagen geleden
|
||||
('f3fb1396-d326-450a-9f00-d60340f25deb', 'verpleegkundig',
|
||||
'Bezoek van partner gehad. Positief gesprek, stemming opgeklaard.',
|
||||
'{"category": "observatie"}', false, CURRENT_DATE - INTERVAL '6 days', CURRENT_DATE - INTERVAL '6 days' + TIME '15:00'),
|
||||
|
||||
-- ═══════════════════════════════════════════════════════════════════════════
|
||||
-- JAN DE VRIESH (d16935c9-e0fe-4972-832f-175b7a38f9b9)
|
||||
-- ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
-- Vandaag
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Onrustige nacht. Meerdere keren wakker, piekeren over financien.',
|
||||
'{"category": "observatie"}', true, CURRENT_DATE, CURRENT_DATE + TIME '07:15'),
|
||||
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'PRN lorazepam aangeboden, geweigerd. Wil eerst ademhalingsoefeningen proberen.',
|
||||
'{"category": "medicatie"}', true, CURRENT_DATE, CURRENT_DATE + TIME '09:45'),
|
||||
|
||||
-- Gisteren
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Teruggetrokken gedrag. Hele ochtend op kamer gebleven.',
|
||||
'{"category": "gedrag"}', true, CURRENT_DATE - INTERVAL '1 day', CURRENT_DATE - INTERVAL '1 day' + TIME '11:00'),
|
||||
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Halve boterham lunch. Eetlust matig.',
|
||||
'{"category": "adl"}', false, CURRENT_DATE - INTERVAL '1 day', CURRENT_DATE - INTERVAL '1 day' + TIME '12:45'),
|
||||
|
||||
-- 2 dagen geleden
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Gespannen tijdens groepstherapie. Eerder vertrokken.',
|
||||
'{"category": "gedrag"}', true, CURRENT_DATE - INTERVAL '2 days', CURRENT_DATE - INTERVAL '2 days' + TIME '10:30'),
|
||||
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Avondmedicatie geweigerd, later alsnog ingenomen na gesprek.',
|
||||
'{"category": "medicatie"}', true, CURRENT_DATE - INTERVAL '2 days', CURRENT_DATE - INTERVAL '2 days' + TIME '21:30'),
|
||||
|
||||
-- 4 dagen geleden
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Licht gestruikeld in gang. Geen letsel. Was duizelig, bloeddruk gecontroleerd: 118/72.',
|
||||
'{"category": "incident"}', true, CURRENT_DATE - INTERVAL '4 days', CURRENT_DATE - INTERVAL '4 days' + TIME '14:00'),
|
||||
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Na incident rustiger. Middagdutje gedaan.',
|
||||
'{"category": "observatie"}', false, CURRENT_DATE - INTERVAL '4 days', CURRENT_DATE - INTERVAL '4 days' + TIME '16:30'),
|
||||
|
||||
-- 5 dagen geleden
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Goede dag. Wandeling gemaakt op terrein met begeleiding.',
|
||||
'{"category": "gedrag"}', false, CURRENT_DATE - INTERVAL '5 days', CURRENT_DATE - INTERVAL '5 days' + TIME '11:00'),
|
||||
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Zelfstandig gedoucht. Compliment gegeven voor zelfstandigheid.',
|
||||
'{"category": "adl"}', false, CURRENT_DATE - INTERVAL '5 days', CURRENT_DATE - INTERVAL '5 days' + TIME '08:30'),
|
||||
|
||||
-- 7 dagen geleden
|
||||
('d16935c9-e0fe-4972-832f-175b7a38f9b9', 'verpleegkundig',
|
||||
'Intake gesprek met nieuwe psychiater gehad. Medicatie wordt geevalueerd.',
|
||||
'{"category": "observatie"}', true, CURRENT_DATE - INTERVAL '7 days', CURRENT_DATE - INTERVAL '7 days' + TIME '10:00');
|
||||
```
|
||||
|
||||
### Snelle opschoning (indien nodig)
|
||||
|
||||
```sql
|
||||
-- Verwijder alle seed notities van afgelopen week
|
||||
UPDATE reports
|
||||
SET deleted_at = NOW()
|
||||
WHERE type = 'verpleegkundig'
|
||||
AND created_at >= CURRENT_DATE - INTERVAL '7 days';
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Tip:** Voer SQL uit via Supabase Dashboard > SQL Editor of via `psql`.
|
||||
Reference in New Issue
Block a user