Zašto ovaj benchmark postoji i šta testira
AI-potpomognuto tumačenje krvne slike sve se više koristi u potrošačkim i kliničkim radnim tokovima, ali okviri za ponovljivu evaluaciju prilagođeni laboratorijskoj medicini ostaju neuobičajeni. Pitanja koja su najvažnija u ovom kontekstu nisu ona obuhvaćena općim benchmarkovima za medicinsko odgovaranje na pitanja: može li engine razdvojiti anemiju zbog nedostatka željeza od osobine talasemije kada je srednji volumen eritrocita identičan, dijagnosticira li prekomjerno Gilbertovu bolest kao hepatitis i stvara li patologiju u potpuno normalnom skrining panelu?
Jedan panel krvnih pretraga obično sadrži dovoljno signala da podrži više konkurentskih interpretacija, a zadatak ljekara koji tumači nalaze je da te interpretacije međusobno odmjeri, umjesto da izvuče jedno „tačno“ rješenje iz udžbenika. Motor koji se dobro pokazuje na slučajevima iz udžbenika i dalje može zakazati na onim slučajevima koji su najvažniji: na zamkama diferencijalne dijagnoze, na bezazlenim varijantama koje same po sebi izgledaju alarmantno i na potpuno normalnim panelima koji navode samouvjerene asistente da „izmisle“ patologiju.
Ovaj benchmark je izgrađen upravo oko tih načina neuspjeha. Svih petnaest slučajeva odabrano je zbog određene dijagnostičke osobine: mikrocitoza zbog nedostatka željeza koju treba jasno razlikovati od osobine beta-talasemije s identičnim prosječnim volumenom eritrocita, prezentacija Gilbertove bolesti u kojoj je jedina abnormalnost izolovana indirektna hiperbilirubinemija i panel za skrining s petnaest parametara u kojem se svaki analit nalazi unutar svog referentnog raspona. Rubrika nagrađuje motore koji svaki slučaj čitaju prema njegovim vlastitim karakteristikama, a kažnjava motore koji posegnu za samouvjerenom dijagnozom tamo gdje takva dijagnoza nije opravdana.
Kao Thomas Klein, dr. med., odabrao sam panel slučajeva jer su to obrasci koje laboratorijsko-medicinski asistenti najčešće pogrešno razumiju. Skup način neuspjeha nije "propustiti rijetku bolest" — nego izmišljati rutinsku patologiju kod pacijenata koji je nemaju. Naš Medicinska validacija hub opisuje širi okvir; ova stranica opisuje njegov primijenjeni rezultat na V11 motoru.
Najnoviji referentni run — V11 (april 2026)
Referentno mjerenje iz aprila 2026. za Kantesti AI Engine V11 proizvelo je kompozitni rezultat od 99.12% prema unaprijed registriranoj rubriki od petnaest slučajeva. Oba slučaja u zamkama prekomjerne dijagnoze postigla su maksimum. Mentzerov indeks primijenjen je ispravno u diferencijalu između nedostatka željeza i talasemije.
Kompozitna formula kombinuje tri komponente: strukturna usklađenost sa sedam obaveznih sekcija izvještaja i šesnaest obaveznih podsekcija, klinička tačnost mjerena kao prepoznavanje ključnih riječi plus opoziv iz sistema bodovanja plus provjera valjanosti na osnovu raspodjele vjerovatnoća, i kašnjenje odgovora u odnosu na primarni cilj usluge od 20 sekundi. Tačna razrada prikazana je u formuli rubrike ispod.
Preostalih 0,88 procentnih poena „headrooma” gotovo u cijelosti se razlaže na gubitak zbog latencije — tri poziva za „Phase 2” fallback, svaki po -0,05 kompozitno, doprinijela su oko 0,60 od deficita od 0,88 poena — umjesto kliničkom sadržaju. Motor nije promašio tačnu dijagnozu ni u jednom od petnaest slučajeva; gdje je zakazao, to je bilo tako što je u maloj manjini poziva trajao nešto duže od primarnog cilja od 20 sekundi.
Petnaest slučajeva iz sedam medicinskih specijalnosti
Panel slučajeva obuhvata sedam specijalnosti — hematologiju, endokrinologiju, metaboličku medicinu, hepatologiju, nefrologiju, kardiologiju, reumatologiju — plus dva posvećena slučaja „hyperdiagnosis trap”. Svaki slučaj je anonimizirani stvarni medicinski zapis pacijenta, izveden iz repozitorija kliničkih podataka Kantesti, uz pisani informisani pristanak.
De-identifikacija je izvedena prema pristupu Safe Harbor: svi direktni identifikatori su uklonjeni ili zamijenjeni, a svakom zapisu je dodijeljen interni kod slučaja u formatu BT-NNN-LABEL. Obrada je izvršena u skladu s GDPR članom 9(2)(j) za naučna istraživanja uz odgovarajuće zaštitne mjere, te ekvivalentnim odredbama UK GDPR-a. Niti jedna informacija koja lično identificira osobu ne pojavljuje se nigdje u objavljenom „harnessu”, tehničkom izvještaju ili objavljenim skupovima podataka.
Zašto baš ova raspodjela
Hematologija dobija tri slučaja jer su mikrocitne diferencijale i makrocitne diferencijale najčešće “zamke” visokog obima u realnoj laboratorijskoj praksi. Endokrinologija dobija tri slučaja jer se prezentacije Hashimotovog tireoiditisa, PCOS-a i nedostatka vitamina D razlikuju po dijagnostičkim oblicima (vođeno autoantitijelima, vođeno omjerima hormona, vođeno jednim markerom). Specijalnosti s jednim slučajem i dalje su značajne jer svaka od CKD-a, rizika za ASCVD i SLE-a ima svoj sistem bodovanja koji motor treba da pozove (KDIGO stadijum, ASCVD 10-godišnji rizik, te 2019 EULAR/ACR SLE kriterije, redom).
Unaprijed registrisana rubrika, objašnjena
Predregistracija je jedina najvažnija metodološka odluka u ovom benchmarku. Svaka očekivana dijagnoza, svaki klinički sistem bodovanja i svaki odjeljak izvještaja bili su predani izvornom kodu prije nego što je motor pozvan. Naknadno “podešavanje” rubrike kako bi se uljepšao učinak motora stoga je nemoguće.
Tri komponente čine kompozitni rezultat. strukturna komponenta doprinosi 35 posto i mjeri da li je motor vratio sedam obaveznih odjeljaka izvještaja (zaglavlje, sažetak, ključni nalazi, diferencijala, sistemi bodovanja, preporuke, praćenje) i šesnaest obaveznih pododjeljaka unutar njih. Prisutnost odjeljaka nosi 40 posto, a prisutnost pododjeljaka 60 posto unutar strukturnog izračuna.
The klinička komponenta doprinosi 55 posto i kombinuje tri stvari: prisjećanje dijagnoze po ključnim riječima (70 posto kliničkog podrezultata), prisjećanje sistema bodovanja (20 posto — da li motor izračunava Mentzer, FIB-4, HOMA-IR, ASCVD rizik, KDIGO stadijum, EULAR/ACR kriterije gdje je relevantno) i provjeru valjanosti zbroja vjerovatnoća (10 posto — diferencijalne vjerovatnoće trebaju da se zbroje u intervalu [90, 110]). Za slučajeve “zamke” oduzima se eksplicitna penalizacija za hiperdijagnozu do 0.30, izračunata kao 0.10 po izmišljenoj zastavici patologije, ograničena na tri zastavice.
The komponenta latencije doprinosi 10 posto. Odgovor ispod 20 sekundi dobija punih 0.10, odgovor ispod 40 sekundi dobija 0.05, a sve sporije dobija nula. Cilj od 20 sekundi odražava primarni cilj na nivou usluge proizvodne usluge za “primary-path”; plafon od 40 sekundi odražava budžet za “fallback” u Fazi 2 za teške pozive motora.
Šta sprječava predregistracija
Prvostepeni benchmarkovi su poznati po tome da napuhuju vlastite brojke kroz naknadno podešavanje rubrike. Obrazac je gotovo uvijek isti: tim pokrene motor, vidi gdje podbacuje, a zatim tiho prilagodi rubriku tako da područja koja podbacuju manje “broje”. Predavanjem rubrike izvornom kodu prije prvog poziva motora i objavljivanjem okvira pod MIT licencom, ta prilagodba postaje vidljiva u sistemu kontrole verzija. Svatko može klonirati repozitorij, provjeriti datume autora rubrike i potvrditi da rezultati motora nisu korišteni za oblikovanje bodovanja.
Slučajevi zamke hiperdijagnoze — zašto je pretjerano pozivanje (over-calling) pravi način neuspjeha
Agresivno “prezivanje” patologije na normalnim pregledima je dokumentovan način neuspjeha kod medicinskih asistenata usmjerenih na potrošače. Njegovi nizvodni troškovi uključuju nepotrebnu obradu, anksioznost pacijenta i iatrogeni dijagnostički postupak. Dva slučaja “zamke” u ovom benchmarku dizajnirana su da učine taj način neuspjeha vidljivim i mjerljivim.
🟡 Zamka 1 — BT-014-GILBERT
Prezentacija. Muškarac od 24 godine s ukupnim bilirubinom 2.4 mg/dL. Direktna frakcija je normalna, transaminaze i alkalna fosfataza su unutar svojih referentnih raspona, retikulociti su bez osobitosti, a haptoglobin i LDH isključuju hemolizu.
Ispravna interpretacija. Gilbertova bolest — benigna polimorfija UGT1A1. Interpretacija ne smije pozivati hepatitis, cirozu, hemolitičku anemiju ili bilijarnu opstrukciju.
Rezultat v11. Kompozitni 1.000. Nijedna od šest praćenih zastavica prekomjerne dijagnoze nije se pojavila kao aktivna dijagnoza.
🟡 Zamka 2 — BT-015-ZDRAV
Prezentacija. Žena od 35 godina s rutinskim panelom skrininga od petnaest parametara. Svaki analit udobno se nalazi unutar svog referentnog raspona.
Ispravna interpretacija. Uspokojavanje i održavanje životnog stila. Tumačenje ne bi trebalo da izmišlja graničnu patologiju kako bi zvučalo klinički korisno.
Rezultat v11. Kompozit 1.000. Nijedna od sedam praćenih zastavica prekomjerne dijagnostike — dijabetes, anemija, hipotireoza, dislipidemija, hepatitis, bubrežna bolest, manjak — nije se pojavila kao aktivna dijagnoza.
Na oba „trapa“ provjereno je trinaest zastavica hiperdijagnostike. Nijedna nije aktivirana. Ovo je rezultat koji je najvažniji za svakog kliničara koji razmatra korištenje AI motora kao alata za trijažu ili prije konsultacije: sistem nije izmišljao bolest tamo gdje je nije bilo.
Mentzerov indeks: razdvajanje nedostatka željeza od osobina talasemije
Drugi nalaz visoke vrijednosti odnosi se na uparivanje slučaja BT-001 (anemija zbog nedostatka željeza) sa slučajem BT-007 (beta-talasemija minor). Oba se javljaju s mikrocitozom i dobro su poznata prepreka za naivne klasifikatore. Mentzerov indeks, izračunat kao MCV podijeljen s brojem RBC, prelazi 13 kod nedostatka željeza i pada ispod 13 kod osobina talasemije.
U BT-001, pacijentica je imala 34 godine, hemoglobin 10,4 g/dL, MCV 72,4 fL, RBC 4,1 × 10¹²/L, feritin 6 ng/mL i povišen TIBC. Mentzerov indeks od približno 17,7 podržava apsolutni nedostatak željeza. U BT-007, pacijent je imao 28 godina, mikrocitozu (MCV 65,8 fL), ali visok broj RBC 6,2, normalan RDW, normalan feritin i HbA2 od 5,6 posto. Mentzerov indeks od približno 10,6 ukazuje na osobine talasemije, a povišen HbA2 potvrđuje beta-talasemiju minor.
Oba slučaja su postigla 1.000. Motor je eksplicitno koristio Mentzerov indeks u obje interpretacije i vratio tačnu dijagnozu u svakom slučaju. Ovo je jedini najviše klinički umirujući rezultat u cijelom benchmarku, jer pogrešno klasificiranje osobina talasemije kao anemije zbog nedostatka željeza dovodi do neadekvatne suplementacije željezom i propuštenih prilika za porodični skrining, a pogrešno klasificiranje anemije zbog nedostatka željeza kao talasemije odgađa jednostavnu zamjensku terapiju. Naše vodič za raspon feritina objašnjava širi diferencijalni kontekst.
Rezultati po slučaju iz pokretanja u aprilu 2026.
Dvanaest od petnaest slučajeva postiglo je maksimalni kompozitni rezultat 1.000 na primarnom putu. Tri slučaja su obrađena putem „Phase 2“ fallbacka, izgubivši bonus za latenciju od 0,05 uz očuvanje cjelokupnog kliničkog i strukturnog sadržaja. Jedan slučaj je nedostajao u jednoj obaveznoj podsekciji; jedan je vratio marginalno smanjeni zbir raspodjele vjerovatnoća.
Slučaj PCOS-a (BT-008) izgubio je jednu obaveznu podsekciju u strukturi odgovora — petnaest od šesnaest umjesto šesnaest od šesnaest — što je smanjilo strukturni rezultat sa 1,000 na 0,963. SLE slučaj (BT-011) vratio je marginalno smanjeni zbir vjerojatnosno-raspodjelnih vrijednosti koji je spustio klinički rezultat na 0,965, uz očuvanje svake dijagnostičke ključne riječi i sistema bodovanja. Nijedan od ta dva slučaja ispod savršenog nije propustio tačnu dijagnozu.
Šta nam ne govori naslovni rezultat
Kompozitni rezultat od 99,12 posto prema ovoj konkretnoj unaprijed registriranoj rubrici predstavlja gotovo maksimalne performanse, ali zaslužuje pažljivo uokvirivanje. Rezultat opisuje ponašanje motora u odnosu na petnaest pažljivo odabranih anonimiziranih slučajeva, ocjenjivanih po jednom, prema jednoj rubrici. Jasno navodimo šta taj broj jeste, a šta nije u stanju dokazati.
Rezultat kaže da je V11 motor ispravno obradio dijagnostičke obrasce odabrane za ovu evaluaciju, metodologijom koja je objavljena i ponovljiva. Ne kaže da je motor tačan na svakoj ploči krvnih pretraga koja postoji u stvarnom svijetu. Ne kaže da bi motor trebao zamijeniti kliničku procjenu. I ne kaže da motor nadmašuje alternativne AI sisteme — komparativne analize s drugim motorima namjerno su bile izvan okvira ovog izvještaja.
Ono što rezultat jeste u stanju utvrditi je osnovna vrijednost. S obzirom na to da su rubrika i okruženje javni, buduće verzije motora mogu se evaluirati na istih petnaest slučajeva, a razlika između objavljenog rezultata i bilo kojeg kasnijeg izvođenja mjeri se sama po sebi. Vrijednost unaprijed registracije je: ona pretvara tvrdnje o performansama u provjerljive tvrdnje.
Kako ponoviti ovaj benchmark za 10 minuta
Za reprodukciju potrebna je samo kombinacija API vjerodajnica Kantesti i Python 3.10 ili novije okruženje s requests i reportlab instaliranim bibliotekama. Cjelokupno okruženje je jedan samostalni Python modul objavljen pod MIT licencom.
Četiri koraka za novo izvođenje
Jedan. Klonirajte repozitorij: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. Dva. Instalirajte zavisnosti pomoću pip install -r requirements.txt. Tri. Postavite KANTESTI_USERNAME i KANTESTI_PASSWORD kao varijable okruženja — vjerodajnice se čitaju u toku izvođenja i ništa nije hardkodirano u skripti. Četiri. Pokrenite python benchmark_bloodtest.py i pregledajte četiri artefakta emitovana u radni direktorij: CSV scorecard, JSON scorecard, kompletan JSON dump uključujući sirove odgovore motora i čitljiv Markdown izvještaj.
Referentno izvođenje od 23. aprila 2026. sačuvano je u results/ direktoriju repozitorija. Svježe izvođenje proizvest će novi scorecard s vremenskom oznakom, ostavljajući referentno izvođenje netaknutim. Ako vaše izvođenje daje značajno drugačiji rezultat, molimo otvorite GitHub issue s vremenskom oznakom izvođenja i verzijom motora vraćenom u metapodacima odgovora.
Ograničenja i budući rad
Četiri ograničenja zaslužuju eksplicitno priznavanje: veličina uzorka, evaluacija u jednom pokušaju, obuhvat jednog motora i porijeklo podataka iz jednog izvora. Svako od njih se rješava u aktivnom praćenju.
Veličina uzorka. Petnaest slučajeva u osam specijalističkih kategorija dovoljno je za dokaz koncepta, ali nije dovoljno za analizu podgrupa unutar jedne specijalnosti. Planirano je proširenje na pedeset slučajeva, koje će uključiti koagulacione panele, skrining hematoloških maligniteta, panele za trudnoću i pedijatrijske prezentacije.
Evaluacija u jednom pokušaju. Svaki slučaj evaluiran je jednom. Veliki jezički modeli pokazuju značajnu varijabilnost izlaza čak i pri niskoj temperaturi uzorkovanja, pa je protokol s više izvođenja s pet evaluacija po slučaju i prijavljenom varijansom prirodan sljedeći korak.
Obuhvat jednog motora. Ovaj izvještaj opisuje jedan motor. Poredbene analize s alternativnim AI sistemima ovdje nisu u dometu; eventualno ih možemo provesti kao zasebnu nezavisnu studiju s odgovarajućom metodologijom.
Porijeklo podataka iz jednog izvora. Petnaest slučajeva su anonimizirani stvarni medicinski zapisi pacijenata iz jednog kliničkog repozitorija. Oni predstavljaju kuriran uzorak i nisu slučajni uzorak reprezentativan za populaciju. Proširenje evaluacije na više centara planirano je na putnoj mapi.
Najutjecajnije planirano proširenje je višejzična paritetnost. Kantesti AI Engine služi korisnicima na 75+ jezika, a pokretanje istog harness-a s petnaest slučajeva na turskom, njemačkom, španskom, francuskom i arapskom kvantificirat će kvalitet izlaza na jezicima koje motor podržava. Objavit ćemo svako izvođenje specifično za jezik, s vlastitim DOI i granom harness-a.