Validatieprotocol: Standaardvragen
Versie 1.0.0 - maart 2026
1. Doel
Verificatie van de correcte encoding en logica-uitvoering van de standaardvragen-module.
2. Type studie
Encoding verificatie (klinische review) + Logica verificatie (testcases).
3. Fase 1 - Klinische encoding review
3.1 Methode
Twee onafhankelijke klinisch apothekers reviewen alle standaardvragen in standaardvragen_base.json op. Beide reviewen onafhankelijk; discrepanties worden besproken tot consensus. Beoordelingscriteria:
- Klinische juistheid
- Correctheid van ATC-triggers
- Logica-regels (AND/AND_NOT)
- Leeftijdsfilters
- Bronverwijzing
3.2 Acceptatiecriterium
Alle vragen goedgekeurd door de apotheker. Opmerkingen verwerkt voor Fase 2.
4. Fase 2 - Logica verificatie
4.1 Testontwerp
40 testcases die alle logica-regeltypes dekken:
De engine kent vijf logica-regeltypes (AND, AND_NOT, ATC_ABSENT, AND_indicatie, AND_labwaarde); de primaire ATC-trigger (primary_triggers) en het leeftijdsfilter (age_min) zijn aanvullende mechanismen.
| Regeltype | Aantal | Beschrijving |
|---|---|---|
Enkele ATC-trigger (primary_triggers) |
8 | Een ATC-prefix triggert de vraag |
| AND (meerdere ATC) | 8 | Alle genoemde ATC-prefixen moeten aanwezig zijn |
| AND_NOT / ATC_ABSENT | 8 | Afwezigheidslogica: ATC aanwezig EN bepaalde ATC afwezig (AND_NOT), of trigger juist bij afwezigheid van een ATC (ATC_ABSENT) |
Leeftijdsfilter (age_min) |
5 | Trigger alleen boven bepaalde leeftijd |
| AND_indicatie / AND_labwaarde | 6 | Informatieve hints |
| Geen match | 5 | Medicatielijst die geen vragen triggert |
4.2 Uitvoering
Per testcase: invoer, registreer getriggerde vragen, vergelijk met verwachte output.
5. Acceptatiecriterium
100% logica-correctheid. Deterministisch algoritme.
6. Steekproefonderbouwing
6.1 Methode
Equivalentieklasse-partitionering met volledige logica-dekking, conform IEC 62304:2006. De standaardvragen-module evalueert regelgebaseerde logica (ATC-matching met AND/AND_NOT/leeftijdsfilters). Het doel is 100% dekking van alle logica-regeltypes, niet het schatten van een foutproportie.
6.2 Dekkingsanalyse
De standaardvragen-engine ondersteunt de volgende logica-regeltypes:
| Regeltype | Testcases | Dekking |
|---|---|---|
Enkele ATC-trigger (primary_triggers met 1 prefix) |
8 | Match op ATC3/ATC5/ATC7 variaties; true positive en true negative |
| AND (meerdere ATC-prefixen vereist) | 8 | Alle prefixen aanwezig; 1 ontbreekt; subset aanwezig |
| AND_NOT / ATC_ABSENT (afwezigheidslogica) | 8 | Trigger + exclusie afwezig; trigger + exclusie aanwezig; trigger juist bij ontbreken van een ATC (ATC_ABSENT) |
Leeftijdsfilter (age_min, combinatie met ATC-trigger) |
5 | Boven grens; onder grens; exact op grens (boundary) |
| AND_indicatie / AND_labwaarde (informatieve hints) | 6 | Hint aanwezig; hint afwezig; combinatie met ATC-trigger |
| Geen match (negatieve controle) | 5 | Medicatielijst zonder triggers; lege lijst; irrelevante ATC-codes |
| Totaal | 40 | 100% logica-regeltypes |
6.3 Onderbouwing van het aantal
Waarom 40 testcases voldoende is:
-
Volledige regeltype-dekking: Alle 5 logica-regeltypes + negatieve controles worden getest. Elke regeltype heeft meerdere testcases voor boundary values (exact op de grens, net eronder, net erboven).
-
Combinatorische dekking: De 40 testcases dekken de belangrijkste combinaties van regeltypes. Het totale aantal mogelijke combinaties is theoretisch groot (5 regeltypes * variaties), maar in de praktijk worden slechts 3 combinatiepatronen gebruikt (AND + leeftijd, AND_NOT + leeftijd, ATC + indicatie-hint). Alle 3 worden getest.
-
Negatieve controles (5 cases): Specifiek gericht op het uitsluiten van fout-positieven. Bij standaardvragen is een onterechte trigger (vals alarm) minder kritisch dan bij STOPP-criteria, maar moet wel worden gedetecteerd.
-
Verhouding tot het totaal aantal vragen: De
standaardvragen_base.jsonbevat 59 vragen. De 40 testcases testen niet elk individuele vraag, maar elk logica-pad. De klinische correctheid van individuele vragen (juiste ATC-prefixen, juiste bronverwijzing) wordt in Fase 1 door de apothekers beoordeeld (100% review). -
IEC 62304 conformiteit: Bij deterministische rule-engines is de standaardbenadering het testen van alle beslissingspaden (decision coverage), aangevuld met boundary value analysis. 40 testcases leveren een testintensiteit van ~8 cases per regeltype, wat ruim boven het minimum van 2-3 per equivalentieklasse ligt (Myers et al., 2011).
7. Rapportage
- Fase 1: klinische opmerkingen en correcties
- Fase 2: per testcase pass/fail, gegroepeerd per regeltype
- Conclusie: voldoet/voldoet niet