Validatieprotocol: Dubbelmedicatie
Versie 1.0.0 - juni 2026
1. Doel
Verificatie van de correcte werking van de dubbelmedicatie-detectie. De detectie draait op twee signalen uit de G-Standaard:
- BST671 (gecureerde dubbelmedicatie-paren op productniveau, PRK): vangt twee middelen die elkaar dubbel geven, ook over de ATC5-grens heen.
- Stamnaam-backstop (BST715 / BST750, salt-collapsed): vangt dezelfde werkzame stof onder twee namen en de overlap van een combinatiepreparaat met een los component. De backstop telt alleen werkzame stoffen (G-Standaard werkzaam/hulpstof-indicator, BST715 GNMWHS), zodat een gedeelde hulpstof geen fout-positief geeft.
2. Type studie
Technische verificatie met testcases. Deterministisch algoritme op een vaste G-Standaard-uitgave, geen klinische validatie nodig.
3. Testontwerp
17 testcases verdeeld over de beslissingspaden van de detectie:
| Categorie | Aantal | Verwacht resultaat |
|---|---|---|
| Cross-stof BST671-paren | 5 | Dubbeling gedetecteerd (type "groep") |
| Zelfde werkzame stof / combinatie | 3 | Dubbeling gedetecteerd (type "stof") |
| Geen dubbeling (andere klasse, bewuste combinatie, gedeelde hulpstof) | 5 | Geen dubbeling |
| Randgevallen en polyfarmacie | 4 | Correct gedrag (leeg, een middel, exacte duplicate, een dubbeling tussen meerdere) |
4. Uitvoering
Per testcase wordt de medicatielijst door analyse_dubbelmedicatie gehaald tegen de echte lookup.db. De cluster-handtekening (type + betrokken middelen) wordt vergeleken met de gold-standard. Een exacte duplicate (zelfde naam en gebruik) is een data-artefact en wordt voor de detectie samengevouwen.
5. Acceptatiecriterium
100% concordantie met de gold-standard. Deterministisch algoritme.
6. Steekproefonderbouwing
6.1 Methode
Equivalentieklasse-partitionering conform IEC 62304:2006. Bij een deterministisch algoritme met binaire uitkomst (dubbeling ja/nee, plus het type) is het doel volledige beslissingspadcoverage, niet het schatten van een foutproportie.
6.2 Dekkingsanalyse
| Beslissingspad | Testcases | Dekking |
|---|---|---|
| BST671-paar gevonden (cross-stof, "groep") | 5 | Basale detectie, inclusief de ATC5-grens (benzodiazepinen) en drie middelen als drie paarsgewijze relaties |
| Stamnaam-overlap (zelfde werkzame stof, "stof") | 3 | Zelfde stof onder twee namen, combinatie plus mono, zelfde naam met ander gebruik |
| Andere klasse / bewuste combinatie | 3 | Specificiteit: betablokker + NSAID, DAPT, twee verschillende vitamine-D-stoffen blijven ongeflagd |
| Werkzaam/hulpstof-filter | 1 | Een gedeelde hulpstof (macrogol in een creme) geeft geen dubbeling |
| Per-relatie clustering | (zie 3 SSRI's) | Geen transitieve samenvoeging tot een mega-cluster |
| Randgevallen (leeg, een middel, exacte duplicate, polyfarmacie) | 4 | Grenswaarden, dedup van data-artefacten, een dubbeling tussen meerdere middelen |
| Totaal | 17 | 100% beslissingspaden |
6.3 Onderbouwing van het aantal
- Het algoritme is deterministisch op een vaste G-Standaard-uitgave; er zijn geen probabilistische componenten.
- De equivalentieklassen dekken de scenario's die in de praktijk voorkomen. De cross-stof-klasse test de winst van BST671 boven een ATC5-heuristiek (benzodiazepinen over de ATC5-grens). De werkzaam/hulpstof-klasse test de belangrijkste fout-positief-bron (een gedeelde hulpstof).
- De per-relatie clustering (drie SSRI's worden drie paren, geen samengevoegde groep) borgt dat een gedeeld bestanddeel nooit ongerelateerde middelen aan elkaar koppelt.
- Conform IEC 62304 en IEEE 829 is bij deterministische software-verificatie 100% decision coverage de standaard, niet statistische steekproeftrekking.
7. Rapportage
Per testcase: invoer, verwachte output, werkelijke output, pass/fail. Het rapport wordt gegenereerd in tests/validation_reports/V4.md.