docs: add speech recognition release note and improve doc sorting
- Add user-facing release note for speech-to-text feature - Sort documentation by status (completed > in_progress > planned) - Update voice-controlled-reporting to v2 (planned future version) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -82,7 +82,7 @@
|
|||||||
"group": "features",
|
"group": "features",
|
||||||
"description": "CRUD operations voor cliënten",
|
"description": "CRUD operations voor cliënten",
|
||||||
"order": 5,
|
"order": 5,
|
||||||
"status": "planned"
|
"status": "in_progress"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "screening-system",
|
"slug": "screening-system",
|
||||||
@@ -123,12 +123,20 @@
|
|||||||
"order": 10,
|
"order": 10,
|
||||||
"status": "planned"
|
"status": "planned"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"slug": "spraakgestuurde-verslaglegging",
|
||||||
|
"title": "Spraakgestuurde Verslaglegging",
|
||||||
|
"group": "features",
|
||||||
|
"description": "Real-time spraakherkenning voor rapportages via Deepgram",
|
||||||
|
"order": 11,
|
||||||
|
"status": "completed"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"slug": "voice-controlled-reporting",
|
"slug": "voice-controlled-reporting",
|
||||||
"title": "Spraakgestuurd Rapporteren",
|
"title": "Spraakgestuurd Rapporteren (v2)",
|
||||||
"group": "features",
|
"group": "features",
|
||||||
"description": "AI-gedreven spraakopname voor dictaat en metingen extractie",
|
"description": "AI-gedreven spraakopname voor dictaat en metingen extractie",
|
||||||
"order": 11,
|
"order": 12,
|
||||||
"status": "planned"
|
"status": "planned"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ category: "client-management"
|
|||||||
group: "features"
|
group: "features"
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
releaseDate: "TBD"
|
releaseDate: "TBD"
|
||||||
status: "planned"
|
status: "in_progress"
|
||||||
description: "CRUD operations voor cliënten - toevoegen, bewerken, zoeken en beheren van cliëntgegevens"
|
description: "CRUD operations voor cliënten - toevoegen, bewerken, zoeken en beheren van cliëntgegevens"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ category: "fhir-api"
|
|||||||
group: "architecture"
|
group: "architecture"
|
||||||
version: "2.0.0"
|
version: "2.0.0"
|
||||||
releaseDate: "2024-11-21"
|
releaseDate: "2024-11-21"
|
||||||
status: "in-progress"
|
status: "completed"
|
||||||
description: "RESTful FHIR API endpoints voor data-uitwisseling - patiënten, contactmomenten, diagnoses en behandelplannen"
|
description: "RESTful FHIR API endpoints voor data-uitwisseling - patiënten, contactmomenten, diagnoses en behandelplannen"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ category: "fhir-datamodel"
|
|||||||
group: "architecture"
|
group: "architecture"
|
||||||
version: "2.0.0"
|
version: "2.0.0"
|
||||||
releaseDate: "2024-11-21"
|
releaseDate: "2024-11-21"
|
||||||
status: "active"
|
status: "completed"
|
||||||
description: "FHIR-compliant datamodel voor GGZ-gegevens volgens MedMIJ standaarden - patiënten, behandelaren, contactmomenten en behandelplannen"
|
description: "FHIR-compliant datamodel voor GGZ-gegevens volgens MedMIJ standaarden - patiënten, behandelaren, contactmomenten en behandelplannen"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
152
content/nl/documentatie/spraakgestuurde-verslaglegging.mdx
Normal file
152
content/nl/documentatie/spraakgestuurde-verslaglegging.mdx
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
---
|
||||||
|
title: "Spraakgestuurde Verslaglegging"
|
||||||
|
category: "spraakgestuurde-verslaglegging"
|
||||||
|
group: "features"
|
||||||
|
version: "1.0.0"
|
||||||
|
releaseDate: "2024-11-25"
|
||||||
|
status: "completed"
|
||||||
|
description: "Dicteer rapportages direct in het EPD met real-time spraakherkenning via Deepgram Nova-2"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Met de nieuwe spraakgestuurde verslaglegging kunnen behandelaren rapportages dicteren in plaats van typen. Het systeem transcribeert spraak naar tekst in real-time, waardoor u efficiënter kunt werken en meer tijd overhoudt voor de cliënt.
|
||||||
|
|
||||||
|
**Kernvoordelen:**
|
||||||
|
- Sneller rapporteren (dicteren vs. typen)
|
||||||
|
- Hands-free invoer tijdens of direct na het consult
|
||||||
|
- Nederlandse spraakherkenning van hoge kwaliteit
|
||||||
|
- Visuele feedback tijdens opname
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Hoe te gebruiken
|
||||||
|
|
||||||
|
### Stap 1: Open de Rapportage
|
||||||
|
|
||||||
|
Navigeer naar een cliëntdossier en klik op **Rapportage** in het menu. U ziet de rapportage-editor met een groene microfoonknop in de werkbalk.
|
||||||
|
|
||||||
|
### Stap 2: Start de opname
|
||||||
|
|
||||||
|
Klik op de **groene microfoonknop** om de spraakopname te starten.
|
||||||
|
|
||||||
|
**Wat u ziet:**
|
||||||
|
- De knop wordt oranje met een waveform animatie
|
||||||
|
- Een klein vierkant (stop-icoon) verschijnt
|
||||||
|
- De browser vraagt eenmalig om microfoontoegang
|
||||||
|
|
||||||
|
### Stap 3: Dicteer uw rapportage
|
||||||
|
|
||||||
|
Spreek duidelijk en in een normaal tempo. Terwijl u spreekt:
|
||||||
|
|
||||||
|
- **Live preview**: Onder de editor verschijnt een oranje balk met de tekst die wordt herkend
|
||||||
|
- **Automatische interpunctie**: Punten en komma's worden automatisch toegevoegd
|
||||||
|
- **Pauzes worden herkend**: Na een korte stilte wordt de zin als definitief opgeslagen
|
||||||
|
|
||||||
|
**Tips voor optimale herkenning:**
|
||||||
|
- Spreek in een rustige omgeving
|
||||||
|
- Houd de microfoon op normale afstand
|
||||||
|
- Dicteer natuurlijk, alsof u tegen een collega spreekt
|
||||||
|
- Vermeld bij voorkeur de cliëntnaam aan het begin
|
||||||
|
|
||||||
|
### Stap 4: Stop de opname
|
||||||
|
|
||||||
|
Klik op het **oranje stop-icoon** om de opname te beëindigen. De getranscribeerde tekst blijft in de editor staan en kan handmatig worden aangepast.
|
||||||
|
|
||||||
|
### Stap 5: Bewerk en sla op
|
||||||
|
|
||||||
|
- Controleer de getranscribeerde tekst
|
||||||
|
- Pas eventuele fouten aan
|
||||||
|
- Klik op **Analyseer met AI** voor automatische categorisatie
|
||||||
|
- Klik op **Opslaan** om de rapportage vast te leggen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Functionaliteit
|
||||||
|
|
||||||
|
### Real-time Transcriptie
|
||||||
|
|
||||||
|
De spraak wordt direct naar tekst omgezet terwijl u spreekt. Er is geen wachttijd na de opname - de tekst is meteen beschikbaar.
|
||||||
|
|
||||||
|
**Technische specificaties:**
|
||||||
|
- Model: Deepgram Nova-2 (geoptimaliseerd voor Nederlands)
|
||||||
|
- Latentie: < 300ms
|
||||||
|
- Nauwkeurigheid: > 95% voor duidelijke spraak
|
||||||
|
|
||||||
|
### Visuele Waveform
|
||||||
|
|
||||||
|
Tijdens de opname toont de microfoonknop een mini-waveform met 5 balkjes die meebewegen met uw stem. Dit geeft visuele bevestiging dat de microfoon actief luistert.
|
||||||
|
|
||||||
|
### Interim Preview
|
||||||
|
|
||||||
|
De oranje preview-balk toont wat het systeem denkt te horen voordat de zin definitief is. Dit verdwijnt automatisch wanneer de tekst wordt bevestigd en in de editor verschijnt.
|
||||||
|
|
||||||
|
### Automatische Conceptopslag
|
||||||
|
|
||||||
|
Uw rapportage wordt automatisch lokaal opgeslagen terwijl u werkt. Bij een onderbroken sessie (browsercrash, per ongeluk sluiten) kunt u verder waar u gebleven was.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Veelgestelde vragen
|
||||||
|
|
||||||
|
### Welke browser ondersteunt spraakopname?
|
||||||
|
|
||||||
|
Spraakopname werkt in alle moderne browsers:
|
||||||
|
- Chrome (aanbevolen)
|
||||||
|
- Firefox
|
||||||
|
- Safari
|
||||||
|
- Edge
|
||||||
|
|
||||||
|
Op oudere browsers of zonder microfoon wordt de knop grijs weergegeven.
|
||||||
|
|
||||||
|
### Moet ik iets installeren?
|
||||||
|
|
||||||
|
Nee, de spraakherkenning werkt volledig in de browser. Bij eerste gebruik vraagt de browser eenmalig om toegang tot uw microfoon.
|
||||||
|
|
||||||
|
### Hoe zit het met privacy?
|
||||||
|
|
||||||
|
- Audio wordt versleuteld verzonden naar Deepgram voor transcriptie
|
||||||
|
- Audio wordt **niet** opgeslagen na transcriptie
|
||||||
|
- Alleen de getranscribeerde tekst wordt bewaard in het EPD
|
||||||
|
- Deepgram is AVG-compliant
|
||||||
|
|
||||||
|
### Wat als de herkenning fouten maakt?
|
||||||
|
|
||||||
|
De tekst in de editor is volledig bewerkbaar. Corrigeer eventuele fouten handmatig voordat u opslaat. Voor medische termen of eigennamen kan handmatige correctie nodig zijn.
|
||||||
|
|
||||||
|
### Hoeveel mag ik dicteren?
|
||||||
|
|
||||||
|
Er geldt een limiet van 5 opnamesessies per uur per gebruiker. Dit is ruim voldoende voor normale rapportage. Bij het bereiken van de limiet verschijnt een melding.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Bekende beperkingen
|
||||||
|
|
||||||
|
- **Achtergrondgeluid**: Veel omgevingsgeluid kan de herkenning verstoren
|
||||||
|
- **Meerdere sprekers**: Het systeem is geoptimaliseerd voor één spreker
|
||||||
|
- **Medische termen**: Sommige specialistische termen worden mogelijk niet correct herkend
|
||||||
|
- **Dialect**: Standaard Nederlands wordt het beste herkend
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Keyboard shortcuts
|
||||||
|
|
||||||
|
| Actie | Shortcut |
|
||||||
|
|-------|----------|
|
||||||
|
| Focus naar editor | Tab naar rapportage sectie |
|
||||||
|
| Start/stop opname | Klik microfoonknop |
|
||||||
|
| Analyseer met AI | Alt + A |
|
||||||
|
| Opslaan | Alt + S |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Gerelateerde documentatie
|
||||||
|
|
||||||
|
- [Interface Design System](/documentatie/interface-design) - UI patterns en componenten
|
||||||
|
- [Authentication System](/documentatie/authentication) - Inloggen en toegangsbeheer
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Feedback
|
||||||
|
|
||||||
|
Ervaart u problemen met de spraakherkenning of heeft u suggesties? Neem contact op met de beheerder of meld het via de feedbackknop in de applicatie.
|
||||||
@@ -4,7 +4,7 @@ category: "voice-controlled-reporting"
|
|||||||
group: "features"
|
group: "features"
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
releaseDate: "TBD"
|
releaseDate: "TBD"
|
||||||
status: "planned"
|
status: "in_progress"
|
||||||
description: "AI-gedreven spraakopname voor dictaat en automatische metingen extractie in de GGZ praktijk"
|
description: "AI-gedreven spraakopname voor dictaat en automatische metingen extractie in de GGZ praktijk"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -47,13 +47,22 @@ export async function getAllReleases(): Promise<ReleaseNote[]> {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// Sort by group order and then by category
|
// Sort by group order, then by status (completed first), then alphabetically
|
||||||
return releases.sort((a, b) => {
|
return releases.sort((a, b) => {
|
||||||
const groupOrder = { foundation: 1, features: 2, infrastructure: 3, bugs: 4 }
|
const groupOrder = { foundation: 1, features: 2, infrastructure: 3, bugs: 4 }
|
||||||
const aOrder = groupOrder[a.frontmatter.group]
|
const statusOrder = { completed: 1, in_progress: 2, planned: 3 }
|
||||||
const bOrder = groupOrder[b.frontmatter.group]
|
|
||||||
|
|
||||||
if (aOrder !== bOrder) return aOrder - bOrder
|
// 1. Sort by group
|
||||||
|
const aGroupOrder = groupOrder[a.frontmatter.group]
|
||||||
|
const bGroupOrder = groupOrder[b.frontmatter.group]
|
||||||
|
if (aGroupOrder !== bGroupOrder) return aGroupOrder - bGroupOrder
|
||||||
|
|
||||||
|
// 2. Sort by status (completed first, then in_progress, then planned)
|
||||||
|
const aStatusOrder = statusOrder[a.frontmatter.status] ?? 4
|
||||||
|
const bStatusOrder = statusOrder[b.frontmatter.status] ?? 4
|
||||||
|
if (aStatusOrder !== bStatusOrder) return aStatusOrder - bStatusOrder
|
||||||
|
|
||||||
|
// 3. Sort alphabetically within same status
|
||||||
return a.frontmatter.category.localeCompare(b.frontmatter.category)
|
return a.frontmatter.category.localeCompare(b.frontmatter.category)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user