V1a -- Validatieprotocol: G-Standaard ATC Lookup
Versie 1.0.0 -- maart 2026
1. Doel
Verificatie van de correcte werking van de ATC-verrijkingsfunctie (lookup_atc() in features/medicatiebeoordeling/lookup.py), die geneesmiddelnamen vertaalt naar ATC-codes via de G-Standaard database.
Dit protocol valideert de lookup-functie in isolatie. Voor de end-to-end validatie per AIS-systeem (inclusief parser-volledigheid en handmatige correctie), zie V1b -- AIS-integratievalidatie.
2. Type studie
Technische verificatie. De G-Standaard is een autoritatieve bron (beheerd door Z-Index/KNMP). Remedice wijzigt de inhoud niet. De verificatie richt zich op de correcte implementatie van de lookup-functie.
3. Testontwerp
3.1 Referentieset
Samenstelling van een referentieset van 100 geneesmiddelnamen met bekende ATC-codes:
| Categorie | Aantal | Voorbeelden |
|---|---|---|
| Gangbare geneesmiddelen | 50 | Metformine, omeprazol, amlodipine, metoprolol |
| Minder gangbare geneesmiddelen | 25 | Entecavir, bosentan, tolvaptan |
| Randgevallen | 25 | Combinatiepreparaten, merknamen, generieke namen met suffix |
3.2 Selectie
- Gangbaar: willekeurig uit de top-200 meest voorgeschreven middelen in NL
- Minder gangbaar: willekeurig uit overige G-Standaard entries
- Randgevallen: doelgericht geselecteerd op bekende moeilijkheden
3.3 Gold standard
De correcte ATC-code per geneesmiddel, handmatig opgezocht in de G-Standaard database.
4. Uitvoering
- Voer elke geneesmiddelnaam in via
lookup_atc(naam) - Registreer: geretourneerde ATC-code, matchtype (exact/fuzzy), matchscore
- Vergelijk met gold standard
5. Meetpunten
| Meetpunt | Definitie |
|---|---|
| Exact match rate | Percentage exacte namen met correcte ATC-code |
| Fuzzy match correctheid | Percentage fuzzy matches met correcte ATC-code |
| Fout-positief rate | Percentage namen met incorrecte ATC-code |
6. Acceptatiecriteria
| Criterium | Drempel |
|---|---|
| Exact match rate | >= 99% |
| Fuzzy match correctheid | >= 95% |
| Fout-positief rate | <= 2% |
7. Steekproefonderbouwing
7.1 Methode
Precisie-gebaseerde steekproefberekening: de steekproef is zo gekozen dat het 95%-betrouwbaarheidsinterval (Clopper-Pearson exact binomiaal) rond de geschatte proporties smal genoeg is om klinisch relevante afwijkingen van de acceptatiedrempels te detecteren.
7.2 Berekening per categorie
Gangbare geneesmiddelen (n = 50, exact match): - Verwachte match rate: >= 99% (lookup op gestandaardiseerde namen) - Normale benadering: voor het schatten van een proportie p = 0.99 met halve BI-breedte d = 0.05 is de benodigde steekproef n = Z^2 * p * (1-p) / d^2 = 1.96^2 * 0.99 * 0.01 / 0.05^2 = 15.2. Met n = 50 is er ruim voldoende precisie. - Clopper-Pearson: bij 49/50 correct (98%) is het 95% BI [89.4%, 99.9%]. Bij 50/50 correct (100%) is het 95% BI [92.9%, 100%]. In beide gevallen ligt de ondergrens ruim boven de 95%-drempel voor toevallige fout.
Minder gangbare geneesmiddelen (n = 25): - Verwachte match rate: >= 95% - Clopper-Pearson: bij 24/25 correct (96%) is het 95% BI [79.6%, 99.9%]. De breedte van het interval (20.3%) is acceptabel voor deze subgroep: een lagere match rate in deze categorie is klinisch minder kritisch dan bij gangbare middelen, en wordt gedekt door de overall drempel.
Randgevallen (n = 25): - Verwachte fuzzy match rate: >= 90% - Clopper-Pearson: bij 23/25 correct (92%) is het 95% BI [74.0%, 99.0%]. De breedte (25.0%) is inherent aan de kleinere subgroep. De randgevallen zijn doelgericht geselecteerd (niet willekeurig), waardoor de foutmodi beter worden gedekt dan bij een willekeurige steekproef van dezelfde omvang.
7.3 Overall precisie
Over alle 100 namen: bij een overall match rate van 97% is het 95% BI [91.5%, 99.4%] (Clopper-Pearson). De ondergrens (91.5%) ligt ruim boven de klinisch relevante grens van 90%, waarmee met hoge zekerheid kan worden vastgesteld dat de lookup-functie adequaat presteert.
7.4 Stratificatie-rationale
De 50/25/25-verdeling is bewust scheef naar gangbare geneesmiddelen: deze vertegenwoordigen >80% van het werkelijke gebruik. De overrepresentatie van randgevallen (25%) ten opzichte van hun werkelijke prevalentie (<5%) is een doelgerichte keuze om de moeilijkste foutmodi te dekken.
8. Rapportage
- Totaal en per categorie: match rate, fout-positieven, geen-resultaten
- Lijst van alle foutieve matches met oorzaakanalyse
- Conclusie: voldoet/voldoet niet