Waarom deze benchmark bestaat en wat hij test
AI-ondersteunde bloedonderzoek uitslag wordt steeds vaker gebruikt in consumenten- en klinische workflows, maar reproduceerbare evaluatiekaders die zijn afgestemd op laboratoriumgeneeskunde blijven zeldzaam. De vragen die in deze context het meest ertoe doen, worden niet gedekt door algemene benchmarks voor medische vraag-en-antwoord: kan een engine ijzertekort onderscheiden van thalassemietrait wanneer het gemiddelde corpusculaire volume identiek is, stelt het het syndroom van Gilbert te vaak verkeerd als hepatitis, en genereert het pathologie in een volledig normaal screeningspanel?
Een enkel bloedonderzoek-panel bevat doorgaans genoeg signaal om meerdere concurrerende interpretaties te ondersteunen, en de taak van de interpreterende arts is om die interpretaties tegen elkaar af te wegen in plaats van een standaardantwoord uit een leerboek op te halen. Een motor die het goed doet op leerboekgevallen kan toch falen op de gevallen die er het meest toe doen: de valkuilen bij differentiaaldiagnose, de goedaardige varianten die op zichzelf alarmerend lijken, en de volledig normale panels die zelfverzekerde assistenten verleiden tot het vervaardigen van pathologie.
Deze benchmark is precies gebouwd rond die faalmodi. Elk van de vijftien casussen is geselecteerd op een specifieke diagnostische eigenschap: een ijzertekort-geassocieerde microcytose die onderscheiden moet blijven van een bèta-thalassemie-eigenschap met identiek gemiddeld corpusculair volume, een presentatie passend bij het syndroom van Gilbert waarbij de enige afwijking een geïsoleerde indirecte hyperbilirubinemie is, en een screeningspanel met vijftien parameters waarin elke analyte binnen zijn referentiebereik valt. De beoordelingscriteria belonen motoren die elke casus lezen op zijn eigen voorwaarden en bestraffen motoren die grijpen naar een zekere diagnose wanneer zo’n diagnose niet gerechtvaardigd is.
Als Thomas Klein, MD, heb ik het casuspanel geselecteerd omdat dit de patronen zijn die laboratoriumgeneeskunde-assistenten het vaakst verkeerd interpreteren. De dure faalmodus is niet "het missen van een zeldzame ziekte" — het is het fabriceren van routinepathologie bij patiënten die die niet hebben. Ons Medische validatie hub beschrijft het bredere kader; deze pagina beschrijft het toegepaste resultaat op de V11-engine.
Laatste referentierun — V11 (april 2026)
De referentierun van april 2026 van de Kantesti AI Engine V11 leverde een totaalscore op van 99.12% op de vooraf geregistreerde rubric met vijftien casussen. Beide valkuil-casussen voor hyperdiagnose scoorden op het maximum. De Mentzer-index werd correct toegepast op het differentiaaldiagnostisch onderscheid tussen ijzertekort en thalassemie.
De samengestelde formule combineert drie componenten: structurele conformiteit met de zeven verplichte rapportageonderdelen en zestien verplichte subonderdelen, klinische nauwkeurigheid gemeten als trefwoordherinnering plus herinnering aan het scoresysteem plus een validiteitscontrole van de kansverdelingsvorm, en responstijd ten opzichte van de primaire service-level target van 20 seconden. De exacte uitsplitsing wordt hieronder weergegeven in de rubricformule.
De resterende 0,88 procentpunt aan headroom valt bijna volledig uiteen in latencyverlies — drie aanroepen als fallback voor fase 2 met elk -0,05 composiet leverden samen ongeveer 0,60 van het tekort van 0,88 punt — in plaats van in klinische inhoud. De engine miste geen enkele juiste diagnose in een van de vijftien gevallen; waar hij tekortschiet, deed hij dat door in een kleine minderheid van de aanroepen iets langer te duren dan de primaire-doelstelling van 20 seconden.
Vijftien cases over zeven medische specialismen
Het casuspanel omvat zeven specialismen — hematologie, endocrinologie, metabole geneeskunde, hepatologie, nefrologie, cardiologie, reumatologie — plus twee toegewijde hyperdiagnose-valkuilgevallen. Elk geval is een geanonimiseerd echt patiëntendossier dat is ontleend aan de Kantesti-clinische databank onder schriftelijke geïnformeerde toestemming.
De-identificatie werd uitgevoerd volgens de Safe Harbor-aanpak: alle directe identificatoren werden verwijderd of vervangen, en elk dossier kreeg een benchmark-interne casuscodering in het formaat BT-NNN-LABEL. De verwerking werd uitgevoerd in overeenstemming met GDPR artikel 9(2)(j) voor wetenschappelijk onderzoek met passende waarborgen, en de overeenkomstige bepalingen van de UK GDPR. Er verschijnt nergens persoonlijk identificeerbare informatie in de gepubliceerde harness, het technische rapport of de vrijgegeven datasets.
Waarom deze specifieke verdeling
Hematologie krijgt drie cases, omdat microcytaire differentiaaldiagnoses en macrocytaire differentiaaldiagnoses de grootste valkuilen met het hoogste volume zijn in de dagelijkse laboratoriumpraktijk. Endocrinologie krijgt drie cases, omdat de presentaties van de ziekte van Hashimoto, PCOS en vitamine D-tekort verschillende diagnostische vormen hebben (gedreven door autoantilichamen, gedreven door hormoonverhoudingen, gedreven door één marker). De specialisaties met één case zijn nog steeds betekenisvol, omdat elk van CKD, ASCVD-risico en SLE zijn eigen scoresysteem heeft dat de engine moet aanroepen (respectievelijk KDIGO-stadiëring, ASCVD 10-jaarsrisico, 2019 EULAR/ACR SLE-criteria).
De vooraf geregistreerde rubric, uitgelegd
Pre-registratie is de belangrijkste methodologische keuze in deze benchmark. Elke verwachte diagnose, elk klinisch scoresysteem en elk onderdeel van het rapport is vastgelegd in broncode voordat de engine werd aangeroepen. Daarom is post-hoc tuning van de rubric om de engine te flatteren onmogelijk.
Drie componenten vormen de samengestelde score. De structurele component draagt 35 procent bij en meet of de engine de zeven verplichte rapportonderdelen heeft teruggegeven (kop, samenvatting, kernbevindingen, differentiaal, scoresystemen, aanbevelingen, follow-up) en de zestien verplichte subonderdelen daarbinnen. Aanwezigheid van secties weegt 40 procent en aanwezigheid van subonderdelen weegt 60 procent binnen de structurele berekening.
De klinische component draagt 55 procent bij en combineert drie dingen: diagnose-trefwoordherinnering (70 procent van de klinische subscores), herinnering aan het scoresysteem (20 procent — berekent de engine Mentzer, FIB-4, HOMA-IR, ASCVD-risico, KDIGO-stadiëring, EULAR/ACR-criteria waar relevant), en een validiteitscheck op de som van waarschijnlijkheden (10 procent — de differentiaalwaarschijnlijkheden moeten binnen het interval [90, 110] optellen). Voor valkuil-cases wordt een expliciete hyperdiagnoseboete van maximaal 0,30 afgetrokken, berekend als 0,10 per gefabriceerde pathologie-vlag, met een maximum van drie vlaggen.
De latentiecomponent draagt 10 procent bij. Een respons onder 20 seconden levert de volledige 0,10 op, een respons onder 40 seconden levert 0,05 op, en alles langzamer levert nul op. De doelstelling van 20 seconden weerspiegelt de productie primary-path service-level objective; het plafond van 40 seconden weerspiegelt het fallback-budget voor zware engine-aanroepen in fase 2.
Wat pre-registratie voorkomt
First-party benchmarks staan erom bekend hun eigen cijfers op te blazen via post-hoc tuning van de rubric. Het patroon is bijna altijd hetzelfde: het team draait de engine, ziet waar het onderpresteert en past vervolgens stilletjes de rubric aan zodat de onderpresterende onderdelen minder meetellen. Door de rubric vast te leggen in broncode vóór de eerste engine-call en de harness te publiceren onder de MIT-licentie, wordt die aanpassing zichtbaar in versiebeheer. Iedereen kan de repository clonen, de datums van de rubric-auteurs controleren en verifiëren dat de engine-resultaten niet zijn gebruikt om de scoring te sturen.
Hyperdiagnose-valkuilcases — waarom overroepen de echte faalmodus is
Agressief overroepen van pathologie op normale schermen is een gedocumenteerde faalmodus van medische assistenten voor consumenten. De downstream-kosten omvatten onnodig onderzoek, patiëntonrust en iatrogene diagnostiek. De twee valkuil-cases in deze benchmark zijn ontworpen om die faalmodus zichtbaar en scorebaar te maken.
🟡 Valkuil 1 — BT-014-GILBERT
Presentatie. Een 24-jarige man met een totale bilirubinewaarde van 2,4 mg/dL. De directe fractie is normaal, transaminasen en alkalische fosfatase liggen binnen hun referentiebereiken, reticulocyten zijn niet bijzonder, en haptoglobine en LDH sluiten hemolyse uit.
Juiste interpretatie. Ziekte van Gilbert — een goedaardige UGT1A1-polymorfisme. De interpretatie mag geen hepatitis, cirrose, hemolytische anemie of biliaire obstructie aanroepen.
V11-resultaat. Samengesteld 1.000. Geen van de zes gemonitorde overdiagnose-vlaggen verscheen als actieve diagnose.
🟡 Valkuil 2 — BT-015-GEZOND
Presentatie. Een 35-jarige vrouw met een vijftienparameter routine-screeningpanel. Elke analyte bevindt zich comfortabel binnen zijn referentiebereik.
Juiste interpretatie. Bevestiging en onderhoud van de levensstijl. De interpretatie mag geen borderline-pathologie verzinnen om klinisch bruikbaar te klinken.
V11-resultaat. Samengestelde score 1.000. Geen van de zeven gecontroleerde overdiagnose-waarschuwingsvlaggen — diabetes, anemie, hypothyreoïdie, dyslipidemie, hepatitis, nierziekte, deficiëntie — verscheen als actieve diagnose.
Over beide traps heen zijn dertien gecontroleerde hyperdiagnose-waarschuwingsvlaggen nagekeken. Geen enkele werd geactiveerd. Dit is het resultaat dat het meest telt voor elke clinicus die overweegt een AI-engine te gebruiken als triage- of pre-consultatietool: het systeem verzon geen ziekte als die niet bestond.
Mentzer-index: ijzertekort onderscheiden van het thalassemie-eigenschap
Een tweede waardevolle bevinding betreft de koppeling van casus BT-001 (ijzergebreksanemie) met casus BT-007 (bèta-thalassemie minor). Beide presenteren met microcytose en vormen een bekend struikelblok voor naïeve classifiers. De Mentzer-index, berekend als MCV gedeeld door het RBC-aantal, ligt boven 13 bij ijzergebreksanemie en onder 13 bij thalassemietraits.
In BT-001 was de patiënt een 34-jarige vrouw met hemoglobine 10,4 g/dL, MCV 72,4 fL, RBC 4,1 × 10¹²/L, ferritine 6 ng/mL en een verhoogde TIBC. De Mentzer-index van ongeveer 17,7 ondersteunt een absoluut ijzertekort. In BT-007 was de patiënt een 28-jarige man met microcytose (MCV 65,8 fL) maar een hoog RBC-aantal van 6,2, een normale RDW, normaal ferritine en HbA2 van 5,6 procent. De Mentzer-index van ongeveer 10,6 wijst op thalassemietrait, en het verhoogde HbA2 bevestigt bèta-thalassemie minor.
Beide casussen scoorden 1.000. De engine gebruikte de Mentzer-index expliciet in beide interpretaties en gaf in elk geval de juiste diagnose terug. Dit is het meest klinisch geruststellende resultaat in de volledige benchmark, omdat het verkeerd classificeren van thalassemietrait als ijzergebreksanemie leidt tot onjuiste ijzersuppletie en gemiste kansen voor familiaire screening, en het verkeerd classificeren van ijzergebreksanemie als thalassemie de eenvoudige vervangingsbehandeling vertraagt. Onze ferritinebereik-richtlijn legt de bredere differentiële context uit.
Resultaten per geval van de run in april 2026
Twaalf van de vijftien casussen behaalden de plafondscore van 1.000 op het primaire pad. Drie casussen werden via de Phase 2-fallback bediend, waarbij de 0,05 latentiebonus verloren ging terwijl alle klinische en structurele inhoud behouden bleef. Eén casus miste één verplichte subsectie; één casus leverde een marginaal verlaagde som van de waarschijnlijkheidsverdeling op.
De PCOS-casus (BT-008) verloor één verplichte subsectie in de responstructuur — vijftien van zestien in plaats van zestien van zestien — waardoor de structurele score daalde van 1,000 naar 0,963. De SLE-casus (BT-011) leverde een marginaal verlaagde som van de waarschijnlijkheidsverdeling op, waardoor de klinische score daalde tot 0,965, terwijl elke diagnostische sleutelterm en scoringsystematiek behouden bleef. Geen van beide sub-perfecte casussen miste een juiste diagnose.
Wat de headlinescore ons niet vertelt
Een samengestelde score van 99,12 procent onder deze specifieke vooraf geregistreerde rubric staat voor bijna-plafondprestaties, maar vereist een zorgvuldige context. Het resultaat beschrijft het gedrag van de engine ten opzichte van vijftien zorgvuldig geselecteerde geanonimiseerde casussen, elk één keer beoordeeld, binnen één rubric. We zijn expliciet over wat het getal wel en niet aantoont.
De score zegt dat de V11-engine de diagnostische patronen die voor deze evaluatie zijn geselecteerd correct heeft afgehandeld, volgens een methodologie die is gepubliceerd en reproduceerbaar. Het zegt niet dat de engine correct is op elk bloedtestpanel dat in het wild bestaat. Het zegt niet dat de engine het oordeel van clinici moet vervangen. En het zegt niet dat de engine beter presteert dan alternatieve AI-systemen — vergelijkende analyses met andere engines vielen bewust buiten de scope van dit rapport.
Wat de score wél vaststelt, is een basislijn. Met de rubric en harness openbaar kunnen toekomstige versies van de engine worden geëvalueerd tegen dezelfde vijftien casussen, en het verschil tussen de gepubliceerde score en elke daaropvolgende run is op zichzelf meetbaar. Dit is de waarde van pre-registratie: het zet prestatieclaims om in testbare claims.
Hoe je deze benchmark in 10 minuten kunt reproduceren
Reproductie vereist alleen een Kantesti API-credential-paar en een Python 3.10 of latere omgeving met de requests En reportlab bibliotheken geïnstalleerd. De volledige harness is één enkelvoudige, zelfvoorzienende Python-module die onder de MIT-licentie is uitgebracht.
Vier stappen voor een nieuwe run
Eén. Clone de repository: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. Twee. Installeer afhankelijkheden met pip install -r requirements.txt. Drie. Stel KANTESTI_USERNAME En KANTESTI_PASSWORD in als omgevingsvariabelen — referenties worden gelezen tijdens runtime en er is niets hard-coded in het script. Vier. Voer uit python benchmark_bloodtest.py en inspecteer de vier artefacten die naar de werkdirectory worden gegenereerd: een CSV-scorecard, een JSON-scorecard, een volledige JSON-dump inclusief ruwe engine-antwoorden, en een voor mensen leesbaar Markdown-rapport.
De referentierun van 23 april 2026 wordt bewaard in de results/ directory van de repository. Een nieuwe run levert een nieuwe scorecard met timestamp op, terwijl de referentierun onaangetast blijft. Als je run een wezenlijk ander resultaat oplevert, open dan een GitHub-issue met de run-timestamp en de engineversie die is teruggegeven in de response-metadata.
Beperkingen en toekomstig werk
Vier beperkingen verdienen expliciete erkenning: steekproefgrootte, single-shot evaluatie, single-engine scope en single-source herkomst van de data. Elk daarvan wordt aangepakt in actief vervolgonderzoek.
Steekproefgrootte. Vijftien cases over acht specialisme-buckets is genoeg voor een proof of concept, maar niet voor subgroepanalyse binnen een specialisme. Uitbreiding naar vijftig cases is gepland en omvat stollingspanels, screening op hematologische maligniteiten, zwangerschapspanels en pediatrische presentaties.
Single-shot evaluatie. Elke case is één keer geëvalueerd. Grote taalmodellen vertonen niet-triviale outputvariatie, zelfs bij lage samplingtemperatuur, dus een multi-run protocol met vijf evaluaties per case en gerapporteerde variantie is de natuurlijke volgende stap.
Single-engine scope. Dit rapport beschrijft één engine. Vergelijkende analyses met alternatieve AI-systemen vallen buiten scope; we kunnen ze eventueel als een afzonderlijke onafhankelijke studie uitvoeren met passende methodologie.
Single-source herkomst van de data. De vijftien cases zijn geanonimiseerde echte patiëntendossiers uit één klinisch repository. Ze vormen een gecureerde steekproef en zijn geen populatie-representatieve willekeurige selectie. Uitbreiding van de evaluatie naar multi-center data staat op de roadmap.
De meest impactvolle geplande uitbreiding is meertalige gelijkwaardigheid. De Kantesti AI Engine bedient gebruikers in 75+ talen, en het uitvoeren van dezelfde harness met vijftien cases in het Turks, Duits, Spaans, Frans en Arabisch zal de outputkwaliteit kwantificeren over de door de engine ondersteunde talen. We zullen elke taal-specifieke run publiceren met zijn eigen DOI en harness-branch.