Validatieprotocol: ACB-score
Versie 1.0.0 - maart 2026
1. Doel
Verificatie van de correcte encoding van de ACB-scoretabel en de correcte werking van het sommatiealgoritme.
2. Type studie
Encoding verificatie (100% review) + Algoritme verificatie (testcases).
3. Fase 1 - Encoding verificatie
3.1 Methode
Twee onafhankelijke klinisch apothekers controleren alle ATC7-naar-score mappings in acb.json tegen de gepubliceerde bronlijst. Beide reviewen onafhankelijk; discrepanties worden besproken tot consensus. Bronnen:
- Ephor anticholinerge-geneesmiddelenlijst: de exacte bron die in het
version-veld vanacb.jsonis vastgelegd (https://ephor.nl/wp-content/uploads/2018/12/anticholinergic-drugs.pdf). Dit is de Nederlandse referentielijst waaruit de scores zijn overgenomen. - Boustani M, et al. (2008): de wetenschappelijke oorsprong van de ACB-schaal, waarop de Ephor-lijst voortbouwt.
De tabel bevat 228 ATC7-codes verdeeld over drie scoreniveaus (143 met score 1, 14 met score 2, 71 met score 3).
3.2 Beoordelingscriteria
Per entry:
- Is de ATC7-code correct?
- Is de toegekende score (1, 2 of 3) conform de gepubliceerde lijst?
- Ontbreken er geneesmiddelen? Staan er geneesmiddelen in die niet in de bron staan?
3.3 Acceptatiecriterium
100% concordantie na correctie.
4. Fase 2 - Algoritme verificatie
4.1 Testcases
20 testcases:
| Categorie | Aantal | Beschrijving |
|---|---|---|
| Eenvoudig (2-5 medicijnen) | 6 | Bekende ACB-medicijnen |
| Complex (6-12 medicijnen) | 6 | Mix van ACB en niet-ACB medicijnen |
| Randgevallen | 4 | Nul ACB-medicijnen, alleen score-1, alleen score-3 |
| Deduplicatie | 2 | Zelfde geneesmiddel meerdere keren |
| Maximale belasting | 2 | 15+ medicijnen met hoge ACB-scores |
4.2 Uitvoering
Per testcase: definieer medicatielijst, voer in, vergelijk totaalscore en itemlijst met handmatige berekening.
4.3 Acceptatiecriterium
100% concordantie. Deterministisch algoritme; elke afwijking is een implementatiefout.
5. Steekproefonderbouwing
5.1 Fase 1 -- Encoding verificatie
100% review. Alle entries in acb.json worden gecontroleerd. Er is geen steekproef; de volledige populatie wordt beoordeeld. Dit is de sterkste vorm van verificatie en elimineert steekproeffout volledig.
5.2 Fase 2 -- Algoritme verificatie (20 testcases)
Methode: Equivalentieklasse-partitionering conform IEC 62304:2006 (software lifecycle) en IEEE 829 (testdocumentatie). Bij een deterministisch algoritme met 100%-concordantie als acceptatiecriterium is het doel niet het schatten van een proportie, maar het bereiken van volledige beslissingspadcoverage.
Dekkingsanalyse:
Het ACB-sommatiealgoritme heeft de volgende beslissingspaden:
| Beslissingspad | Testcases | Dekking |
|---|---|---|
| Basale sommatie (score 1, 2, 3 variaties) | 6 eenvoudige cases | Alle scoreniveaus |
| Mix van ACB en niet-ACB medicijnen | 6 complexe cases | Filtering van niet-ACB medicijnen |
| Nul-ACB scenario | 1 randgeval | Lege resultaatset |
| Alleen score-1 / alleen score-3 | 2 randgevallen | Homogene invoer |
| ATC7-deduplicatie | 2 cases | Dubbele entries in invoer |
| Maximale belasting (15+ medicijnen) | 2 cases | Schaalbaarheid, geen overflow |
| Nul-invoer (lege medicatielijst) | 1 randgeval | Grenswaarde |
| Totaal | 20 | 100% beslissingspaden |
Onderbouwing van het aantal: - Het algoritme is deterministisch: dezelfde invoer levert altijd dezelfde uitvoer. Een enkele fout in een testcase is een implementatiefout, geen statistisch fenomeen. - Bij deterministische algoritmen is de standaardbenadering in software-verificatie het bereiken van 100% branch/decision coverage, niet het schatten van een foutproportie (Beizer, 1990; Myers et al., 2011). - 20 testcases dekken alle 6 equivalentieklassen met meerdere instanties per klasse (boundary value analysis). Dit voldoet aan de IEC 62304 eis voor verificatie van software-eenheden. - Aanvullende zekerheid: Fase 1 (100% encoding review) elimineert de meest waarschijnlijke foutbron (incorrecte ATC7-naar-score mapping). De testcases in Fase 2 verifiëren uitsluitend de sommatielogica.
6. Rapportage
- Encoding: lijst van discrepanties met correctie
- Algoritme: per testcase pass/fail
- Conclusie: voldoet/voldoet niet