- docs/intent/samenspel-tip-ecd.html: laag-of-platform discussiestuk voor de werksessie over de TIP-koppeling (twee modellen, drie routes, API-mapping, beslisvragen) - docs/sessions/2026-07-14-sessielog.md: besluiten, reviewbevindingen en uitgevoerde opschoning van vandaag Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
64 lines
5.5 KiB
Markdown
64 lines
5.5 KiB
Markdown
# Sessielog — 14 juli 2026
|
||
|
||
**Deelnemers:** Colin (PO) + Claude Code
|
||
**Onderwerp:** TIP↔ECD-samenspel, module-reviews, opschoning codebase (fase 0 + 0b)
|
||
**Branch:** `swift-cortex`
|
||
|
||
---
|
||
|
||
## 1. Besluiten
|
||
|
||
| # | Besluit | Toelichting |
|
||
|---|---|---|
|
||
| 1 | **ECD wordt opnieuw opgebouwd op een eigen datamodel** | Prototype leunt op Supabase + FHIR-conventies met structurele gebreken. Geen quick fixes; eerst strippen, dan van scratch opbouwen met goede logica en module-interacties. |
|
||
| 2 | **Geen quick fixes op de gevonden bugs** | De reviewbevindingen (zie §3) zijn symptomen van het ontbrekende datamodel; structureel oplossen in de rebuild. |
|
||
| 3 | **Kapotte intake-tabs en behandelplan-module verwijderd** | Anamnese/Onderzoeken/ROM konden nooit opslaan; behandelplan-AI negeerde diagnose en ernst. Beide komen terug bij de rebuild. |
|
||
| 4 | **FHIR en Cortex blijven voorlopig staan** | `/api/fhir/Patient` is de facto de patiënten-API (dossier, agenda, Cortex). Vervangen is fase 3. Cortex-flows raken de TIP-koppeling — niet twee keer bouwen. |
|
||
| 5 | **Instroom als eerste rebuild-module (voorstel, nog te bevestigen)** | Verwijzing → screening → intake is ook de TIP-proefflow; bewijst datamodel én TIP-samenspel in één beweging. |
|
||
|
||
## 2. TIP↔ECD-verkenning
|
||
|
||
- TIP-repo (`../intent-platform/tip`) verkend: Dossier → Workspace → Artifact → Information Elements → Intentregels → Intent → Scenario. Twee paden naar een intent: gestructureerd (regels over IE's) en ongestructureerd (`POST /detect`).
|
||
- **Kerninzicht:** TIP is een platform waar je een systeem *op aansluit* (datafeed vereist), geen laag die je *op een systeem legt*. Dat wijkt af van het beeld waarmee het ECD is ontworpen — en van het Cortex-architectuurdocument v0.1, dat de intent-motor als in-app bibliotheek (`lib/cortex/`) beschrijft en TIP nog niet kent.
|
||
- Drie routes uitgewerkt: (1) alleen `/detect`, (2) TIP als volledig procesbrein, (3) **groeipad** — `/detect` + één gestructureerde flow (verwijsbrief → intake) als proef. Aanbeveling: route 3.
|
||
- Open behoeftes die TIP nu niet dekt: streaming chat, entity resolution (hoort ECD-kant: vereist patiëntendata), RAG/kennisbank.
|
||
- **Discussiestuk voor de werksessie Colin & Joshua:** `docs/intent/samenspel-tip-ecd.html` (ook als artifact gepubliceerd). Bevat de twee modellen, verwijsbrief-flow, drie routes, API-mapping en vijf beslisvragen.
|
||
|
||
## 3. Module-reviews (drie parallelle agents)
|
||
|
||
**Intake** — Anamnese, Onderzoeken en ROM functioneel volledig kapot: UI stuurt weergave-labels ("Psychiatrische anamnese") waar de database systeemcodes eist (`psychiatrisch`). Alle verwijderknoppen doen stil niets (DELETE RLS-policies ontbreken op alle intake-tabellen). Intake-header "Bewerken" is een lege placeholder. Kindcheck met default-antwoorden slaat leeg object op → voortgangsring blijft op "ontbreekt".
|
||
|
||
**Diagnoses** — Verwijderen is een no-op (zelfde RLS-oorzaak, live geverifieerd). Behandelplan-AI kreeg "DSM-categorie: primary-diagnosis" in de prompt i.p.v. de diagnose; ernst viel altijd terug op "middel". DSM-5-veld werd verzameld maar nooit opgeslagen. UI kent 4 van de 6 statussen. ICD-10 hardcoded (55 F-codes). Twee parallelle diagnosemodules op dezelfde tabel. `conditions`-tabel staat in geen enkele migration (schema niet reproduceerbaar).
|
||
|
||
**Agenda** — Drie schrijfpaden (EPD-modal, Cortex server actions, Cortex API-routes) met elk eigen conventies. Modal-afspraken verschuiven +2 uur per opslag (naïeve tijdstring → timestamptz). `practitioner_id` leeg → Cortex cancel/reschedule altijd 403. Cortex annuleer/verzet-flow doodlopend (parser levert string, UI verwacht object). Dagweergave filtert vanaf kloktijd i.p.v. middernacht. Patiëntzoeker case-sensitive op voornaam.
|
||
|
||
## 4. Uitgevoerd: opschoning (7 commits, −24.097 regels)
|
||
|
||
Van 394 naar 298 ts/tsx-bestanden. Build en lint groen na elke stap.
|
||
|
||
| Commit | Inhoud |
|
||
|---|---|
|
||
| `10c994b` | Fase 0: marketing-site, blog, leads-API, `_archive`, sitemap; root → `/login`; robots op disallow-all |
|
||
| `5e910c3` | Dubbele diagnosemodule (patiëntniveau) weg |
|
||
| `a8b02c1` | Kapotte intake-tabs weg, incl. server actions, voortgangsring en Cortex-navigatiedoelen |
|
||
| `96848ec` | Behandelplan-module weg (ook uit patiëntdashboard, dashboard-API, Cortex-dashboardblock) |
|
||
| `38dd7c1` | Placeholder-pagina's dashboard/reports weg; login-tests → `/epd/agenda` |
|
||
| `caeba77` | `/epd/clients` redirect-laag weg; alles landt op `/epd/patients` |
|
||
| `b00bfa5` | `next-mdx-remote`, `gray-matter`, laatste marketing-restanten weg |
|
||
|
||
Sidebar toont nu alleen werkende modules: Cortex, Cliënten, Verpleegrapportage, Agenda.
|
||
|
||
**Nog open uit de verificatie:** e2e-suites en browser-smoke-check (vereisen draaiende dev-server). Commits zijn lokaal — nog niet gepusht.
|
||
|
||
## 5. Vervolgstappen
|
||
|
||
1. **Werksessie Colin & Joshua** over het TIP↔ECD-samenspel — discussiestuk als agenda (vijf beslisvragen, o.a. platform-of-laag en eigenaarschap per gegeven).
|
||
2. **Ontwerpdocument rebuild:** moduleset + flows + datamodel-voorstel (centrale waardelijsten, herkomst-velden mens/AI, stabiele ID's, pgvector-klaar, Neo4j ontworpen-niet-aangezet). Review met Colin vóór er een migration wordt geschreven.
|
||
3. Daarna: verse schema-baseline, `lib/dat/`, modules één voor één terugbouwen — **instroom eerst**.
|
||
|
||
## Referenties
|
||
|
||
- Discussiestuk: `docs/intent/samenspel-tip-ecd.html`
|
||
- Platform-architectuur: `../../docs/knowledge/technische-architectuur.md` (v0.1 — behoeft v0.2 met TIP-ADR)
|
||
- Opruimplan (goedgekeurd): zes stappen fase 0b, uitgevoerd zoals hierboven
|