Cortex handelt een no-show af vanuit één chatcommando: afspraak annuleren (declarabiliteits-nudge), en de openstaande concept- huisartsbrief wordt via LLM herschreven en ter review aangeboden in een document artifact (human-in-the-loop, PATCH dispatch zet status op verzendklaar). - API-routes: context, rescript, cancel, dispatch - NoShowDocumentBlock: review/edit UI met origineel-vergelijk - Mock-data voor concept huisartsbrief - PRD, FO, bouwplan en epics in docs/intent/noshow-case/ Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5.5 KiB
5.5 KiB
Functioneel Ontwerp (FO) - Cortex Use Case: No Show Afhandeling
Project: Cortex Intent System (Mini-EPD Prototype) Focus: Casus 2 (Journaliseren Consult - No Show) Datum: Vandaag Link: PRD - Casus No Show
1. Gedetailleerde User Flow (Stap-voor-stap)
De interactie verloopt volledig conversationeel via het Cortex Chat venster en de stateful UI (Artifacts).
- Stap 1: Registratie
- User: Opent (of is in) het dossier van de patiënt en typt in de inputbalk: "Patiënt is niet verschenen - no show."
- Systeem: De NLP checkt intents en ziet
register_no_show.
- Stap 2: Context Analyse & Waarschuwing (Nudge)
- Systeem: Achterhaalt de actieve afspraak. Rule engine check: is
is_billablewaar? Ja. - Cortex AI Bericht: "Ik zie een declarabel consult in de agenda. Volgens inkoopvoorwaarden mag deze afspraak NIET gedeclareerd worden. Wil je dat ik deze annuleer als 'No Show'?"
- UI Component: Toont knoppen (Nudge Suggestions) eronder:
[Ja, annuleer]|[Nee, laat staan]
- Systeem: Achterhaalt de actieve afspraak. Rule engine check: is
- Stap 3: Activering Brief Check
- User: Klikt op
[Ja, annuleer]. - Systeem: Verstuurt signaal naar backend. Wijzigt afspraak status naar 'cancelled_no_show'. Systeem zoekt naar openstaande taken voor deze patiënt en vindt Concept Huisartsbrief.
- Cortex AI Bericht: "Afspraak geannuleerd. Er staat nog een concept huisartsbrief klaar. Zal ik daar de No Show in verwerken?"
- UI Component: Toont knoppen:
[Ja, pas brief aan]|[Nee]
- User: Klikt op
- Stap 4: AI Generatie & Beoordeling (Artifact)
- User: Klikt op
[Ja, pas brief aan]. - Systeem: Roept LLM API aan in de backend met de originele tekst + "Integreer dat de afspraak vandaag gepauzeerd is wegens no show."
- Cortex AI Bericht: "Huisartsbrief is aangepast. Kijk of je hiermee akkoord bent."
- UI Component: Triggert
openArtifacten het rechtervenster met de bewerkte brief schuift in beeld.
- User: Klikt op
- Stap 5: Accordering
- User: Leest de brief in het Artifact venster, eventuele handmatige typ-aanpassingen, en klikt op
[Akkoord & Verzendklaar]. - Systeem: Slaat document/state op (status naar
ready_for_dispatch). Toont kleine succesmelding in chat.
- User: Leest de brief in het Artifact venster, eventuele handmatige typ-aanpassingen, en klikt op
2. Componenten Matrix (Hergebruik vs. Nieuw)
Hier is in kaart gebracht welke React/Next.js store- en UI componenten we nodig hebben en wat hun huidige status is in de codebase.
2.1 UI Componenten (Frontend)
| Component | Status | Toelichting | Locatie verwachting |
|---|---|---|---|
| Cortex Chat Input | ♻️ Hergebruik | De bestaande inputbalk / command center waar de "no show" in getypt wordt. Omdat intent-herkenning centraal op de tekst werkt, hebben we geen nieuwe velden nodig. | components/cortex/chat/... of command-center/... |
| Cortex Chat Message | ♻️ Hergebruik | De 'bubbels' waarin Cortex reageert. Deze renderen al responses. | components/cortex/chat/... |
| Nudge Suggestion Card | 🛠️ Aanpassen | Deze tonen de UI knoppen (zoals [Ja, annuleren]). We moeten in de component bevestigen dat we via een klik een onzichtbaar of command-response kunnen terug sturen naar de orchestrator voor Stap 3. |
components/cortex/chat/nudge-suggestion.tsx (indien apart) |
| Document Artifact Window | ♻️ Hergebruik | We hebben de Artifact functionaliteit open staan in de store (openArtifacts). In dat artefact paneel kunnen we document content afbeelden. |
components/cortex/artifacts/... |
| Rich Text Editor | ♻️ Hergebruik | Binnenin het Artifact tonen we de Huisartsbrief via de editor component, zodat de arts nog kan bewerken. | components/cortex/rich-text-editor.tsx |
| Artifact Action Bar | ✨ Nieuw | Een component (of extra 'footer') aan het Artifact component, met een knop [Akkoord & Verzendklaar]. Nu is het vaak readonly. |
components/cortex/artifacts/ of als los element. |
2.2 Logica & Backend Componenten
| Component / Module | Status | Toelichting | Huidige locatie |
|---|---|---|---|
| Intent Classifier | 🛠️ Aanpassen | Toevoegen van het register_no_show label in de mapping. |
lib/cortex/intent-labels.ts & lib/cortex/types.ts |
| Nudge Protocol Rules | 🛠️ Aanpassen | Hier integreren we The "Declarabele Check" en "Brief Alert". We programmeren een regel af in nudge.ts die luistert naar de no_show. |
lib/cortex/nudge.ts |
| Cortex Store | ♻️ Hergebruik | Functies zoals addSuggestion en openArtifact zijn klaar voor gebruik! Hier is geen redesign van state voor nodig. |
stores/cortex-store.ts |
| No-Show Orchestrator/API | ✨ Nieuw | Specifieke API call en/of uitbreiding in AI logica die de database context opzoekt, LLM (via Langchain) aanstuurt en de brief herschrijft. | app/api/cortex/... |
3. Implementatie Fasering (FO -> Bouw)
- Interface Prep:
register_no_showin alle TypeScript Types & configuraties toevoegen. De Nudge Rule definiëren (Fase 1 is statisch zonder database checks om UI op te pikken). - Acties (Nudges): Knoppen reageren: we zorgen dat het klikken op de Chat Suggestie door praat met de store, zodat het volgende venster / bericht ('Zal ik conceptbrief openen?') getriggerd kan worden.
- Artifact Opening:
rich-text-editor.tsxintegreren in een Artifact layout, openen doormiddel vanopenArtifact. Knoppen 'Akkoord' toevoegen (console logs voorlopig). - Backend (API & DB): Bouw van server-side checks. Echt data mocken en een route voor de LLM brief-rescript uitschrijven.