Ga naar inhoud

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:

  1. 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).

  2. 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.

  3. 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.

  4. Verhouding tot het totaal aantal vragen: De standaardvragen_base.json bevat 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).

  5. 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