Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Anpheros Symptom Engine: metodika
Jak se volný text symptomů v jakémkoli jazyce stává koncepty WHO ICD-10 a ICD-11: normalizační AI, detekce přítomnosti a prožívajícího subjektu, slovník ověřený WHO, výsledky hodnocení, porovnávání podobných případů a limity.
Anpheros Symptom Engine převádí to, co osoba napíše o tom, jak se cítí, vlastními slovy a jazykem, na mezinárodní klinické koncepty: stabilní identifikátor Anpheros, kód WHO ICD-10, kód WHO ICD-11 a systém těla, spolu s informací, zda je symptom přítomen, vyřešen, hypotetický nebo se týká někoho jiného. Běží v produkci za Anpheros Daily, publikuje své výsledky jako HL7 FHIR R4 Observations na Anpheros Platform a zpřístupňuje stejnou terminologii jakékoli aplikaci prostřednictvím REST a FHIR API. Tato stránka popisuje, jak funguje, jak byl ověřen, co měří a jaká jsou jeho omezení.
Stručný přehled
| Koncepty | 274 (197 symptomů, 77 nálezů), identifikátory SYM-0001…, nikdy znovu nepoužity |
| Klasifikace | WHO ICD-10 (verze 2019) a WHO ICD-11 MMS (2025-01), s ekvivalencí každého mapování |
| Tělesné systémy | 13, převzato z bloků kapitoly 21 ICD-11 (nervový, trávicí, dýchací, kožní atd.) |
| Jazyky | názvy ve 20 jazycích; volný text v jazyce osoby |
| Varovné příznaky | 32, pro 14 konceptů, citováno slovo od slova z CDC a NIDDK |
| Vyhodnocení normalizátoru | 5 jazyků (rumunština, angličtina, španělština, němčina, francouzština): primární kód 97,5–100 %, přítomnost a subjekt 92,5–98 %, negované symptomy hlášené jako přítomné 0 % v každém jazyce |
| Klinické hodnocení | zatím žádné: clinical_review: false na každou odpověď |
| Standardy | HL7 FHIR R4 (CodeSystem, ValueSet, ConceptMap, Observation), ICD-10, ICD-11, LOINC pro laboratorní výsledky |
1. Pipeline
Příznak prochází čtyřmi kroky. Text osoby se nikdy nezmění; každý krok přidává data vedle něj.
- Zachycení. Surový záznam je uložen tak, jak byl napsán, s okamžikem jeho zaznamenání, časovým pásmem telefonu, jazykem a volitelně intenzitou (1–10), začátkem a koncem. Nic v navazujících krocích jej nepřepisuje.
- Normalizace (AI). Velký jazykový model (Google Gemini na Vertex AI) přečte text a pro každý zmíněný příznak vrátí: primární kód ICD-10, volitelné sekundární kódy, krátký popisek a dva atributy, assertion (přítomný, nepřítomný, vyřešený, hypotetický, nejistý) a subject (osoba, nebo někdo jiný). Model si může vybírat kódy pouze z Anpheros slovníku; jakákoli jiná odpověď, vynechaný záznam nebo neplatný primární kód se počítá jako neúspěšný pokus, nikdy jako "neznámý příznak".
- Mapování konceptů (deterministické). Kód ICD-10 je namapován na Anpheros koncept a z něj na ICD-11 a tělesný systém. Tento krok používá pevné tabulky, nikoli AI, takže stejný kód vždy poskytne stejný koncept.
- Publikace. Pouze příznaky, které jsou přítomné a týkají se osoby, se stanou FHIR Observations v záznamu osoby, a to pouze po úspěšné normalizaci. Pokud pozdější úprava nebo re-normalizace toto změní, Observation je stažena; historie verzí zůstává.
2. Přítomnost, čas a původce
Klinický text často zmiňuje příznaky, které daná osoba nemá. Zpracování přirozeného jazyka v klinické oblasti to nazývá detekcí negace, temporality a experiencer (rodina metod NegEx a ConText). Tento engine zpracovává stejné tři otázky pomocí atributů assertion a subject modelu:
| Zapsáno | Assertion / subject | Publikováno jako příznak osoby? |
|---|---|---|
| "I've had a headache since Tuesday" | present / self | yes |
| "my head doesn't hurt any more" | resolved / self | no |
| "I might get a fever tomorrow" | hypothetical / self | no |
| "my mother has a cough" | present / other | no |
Stížnost příbuzného se nikdy automaticky nepřemění na rodinnou anamnézu.
3. Slovní zásoba a její kontrola
Slovní zásoba pokrývá kapitolu XVIII ICD-10 (R00–R94 a od verze 2026.10.3 její nezařazené podkategorie, jako je R06.0 dušnost) a tam, kde WHO klasifikuje symptom v jiné kapitole, kód WHO: zácpa K59.0, tinnitus H93.1, dvojité vidění H53.2, rozmazané vidění H53.8, svědění L29.9, bolest kloubů M25.5, bolest zad M54, problémy se spánkem G47.
- ICD-10. Každý kód a anglický název byl zkontrolován proti prohlížeči WHO ICD-10 verze 2019, včetně poznámek o zahrnutí a vyloučení ke každému kódu. Tam, kde poznámky přesunuly symptom jinam (například R19.4 vylučuje zácpu), slovní zásoba následovala WHO.
- ICD-11. Každý koncept je namapován na kód ICD-11 MMS 2025-01 převzatý z WHO Simple Tabulation a porovnán s oficiální mapovací tabulkou WHO ICD-10 → ICD-11. Motor používá kód symptomu z kapitoly 21 symptom namísto kódu nemoci (bolest hlavy → MB4D, nikoli 8A8Z „poruchy bolesti hlavy“); každé z 21 odchylek od statistické tabulky WHO je uvedeno s důvodem v souboru vydání. 67 mapování je ekvivalentních, zbytek je označen jako širší, užší nebo nepřesné.
- Dokumentovaná rozhodnutí. „Migréna“ napsaná osobou je kódována jako bolest hlavy (R51) a nespecifikovaný průjem jako R19, protože alternativní kódy WHO (G43, A09) jsou diagnózy; motor zaznamenává hlášené symptomy, nikoli diagnózy.
- Překlady. Anglické názvy jsou názvy WHO. Názvy v 18 dalších jazycích jsou strojové překlady revidované termín po termínu s pomocí AI oproti názvům WHO (
review: ai_reviewed); pět bylo přepsáno v každém jazyce, kde význam neodpovídal kódu. Žádný profesionální lékařský překladatel je zatím nezkontroloval. - Varovné příznaky. Citováno slovo od slova, nikdy parafrázováno, z veřejně dostupných stránek CDC (mrtvice, infarkt) a NIDDK (průjem, zácpa), každý s uvedením zdroje, licence a poznámky, že se nejedná o diagnózu. Tam, kde citace uvádí 9-1-1, poznámka přidává evropské 112.
4. Vyhodnocení
Normalizátor je hodnocen na pevné sadě 100 syntetických případů napsaných v rumunštině (jazyk většiny současných uživatelů), každý s očekávaným primárním kódem, tvrzením a subjektem. 32 případů záměrně není přítomno: negované, vyřešené, hypotetické, nejisté nebo se týkající jiné osoby. Výsledky s aktuálním promptem (verze 3, 15. října 2026):
| Metrika | Výsledek | Cíl |
|---|---|---|
| Primární kód správně | 100 % | ≥ 85 % |
| Tvrzení a subjekt oba správně | 98 % | — |
| Negované příznaky hlášené jako přítomné | 0 % | ≤ 3 % |
Dvě chyby byly administrativní záznamy („návštěva kardiologa v úterý“, „chci zhubnout 5 kg“) klasifikované jako hypotetické místo jako přítomné; ani jeden není příznak. Testovací sada nebyla přezkoumána lékařem, takže skóre jsou pouze orientační.
Jiné jazyky (16. října 2026). 40 případů, pokrývajících všechny kategorie, bylo přeloženo do angličtiny, španělštiny, němčiny a francouzštiny se stejnými očekávanými odpověďmi; neformální případy byly přepsány ve vlastním neformálním stylu každého jazyka. Pokyny pro model zůstaly stejné.
| Jazyk | Případy | Primární kód | Přítomnost a subjekt | Negované hlášené jako přítomné |
|---|---|---|---|---|
| Rumunština | 100 | 100 % | 98 % | 0 % |
| Angličtina | 40 | 100 % | 97.5 % | 0 % |
| Španělština | 40 | 97.5 % | 92.5 % | 0 % |
| Němčina | 40 | 100 % | 97.5 % | 0 % |
| Francouzština | 40 | 100 % | 95 % | 0 % |
Většina zbývajících chyb jsou stejné administrativní záznamy („návštěva kardiologa v úterý“, „kontrola, vše v pořádku“) nebo volba mezi dvěma nepřítomnými stavy („dnes žádná horečka“ jako vyřešená spíše než nepřítomná); žádný z nich nepublikuje příznak. Jediný rozdíl v kódování byl ve španělštině „escalofríos y malestar“ (zimnice a nevolnost) kódovaný jako nevolnost (R53) s zimnicí (R68) jako sekundárním kódem, spíše než naopak.
Jména zobrazovaná lidem odpovídají jejich jazyku: aplikace zobrazuje název konceptu v jazyce uživatele (nejprve laický název) a poznámku o přítomnosti („vyřešeno“, „někdo jiný“) ve 20 jazycích aplikace.
V produkci (16. října 2026), po kontrole slovníku proti WHO, byly všechny uložené příznaky znovu normalizovány. Na záznamech skutečných uživatelů: všechny příznaky normalizovány, 0 přítomných příznaků ponecháno jako „nejasné“ a 0 příznaků, které nejsou přítomny, publikováno jako vlastní osoby (nezávislý audit publikovaných Observations).
5. Podobné případy (ve vývoji)
Další komponenta porovnává lidi na základě jejich symptomů a abnormálních laboratorních výsledků, aby navrhla, pouze s výslovným souhlasem, lidi, kteří hlásí něco velmi podobného.
- Profil. Prezentace vlastních hlášených symptomů za posledních 90 dní podle konceptu Anpheros a laboratorních výsledků za posledních 180 dní mimo referenční rozsah tisknutý laboratoří, podle kódu LOINC. Profily jsou nezávislé na jazyce a zemi: laboratorní zpráva v rumunštině a zpráva v angličtině odpovídají stejnému kódu LOINC.
- Skóre. Vážený Jaccardův index: sdílené příznaky děleno všemi příznaky obou osob. Velmi běžné symptomy (bolest hlavy, bolest břicha, únava, horečka, kašel, závratě…) váží 0,25, specifické symptomy 1, abnormální laboratorní výsledek 1,5. Od 50 účastníků jsou váhy také škálovány podle toho, jak vzácný je příznak v populaci (inverzní frekvence dokumentu). Dva různé příznaky ve stejném tělním systému získávají částečné kredity.
- Pravidlo. Pár je zvažován pouze s alespoň třemi sdílenými specifickými symptomy, nebo dvěma plus sdíleným abnormálním laboratorním výsledkem: běžné stížnosti samy o sobě nikdy nečiní dvě osoby „podobnými“. Pozvánka je nabídnuta od skóre 0,70; osoba vidí podobné případy od 0,80.
- Soukromí. Pouze dospělí držitelé účtu, výslovný souhlas (GDPR čl. 9), kdykoli odvolatelný s okamžitým smazáním. Osoba vidí počty a sdílené příznaky, nikdy nevidí, kdo jsou ostatní.
Nenavrhuje diagnózu ani onemocnění.
6. Jak aplikace používají
- Anpheros Daily (iOS, Android, Mac, web): každý symptom, který osoba zaznamená, prochází výše uvedeným procesem; osoba může vidět a opravit výsledek.
- Anpheros Platform: symptomy jsou ukládány jako FHIR
Observations s kategoriíurn:anpheros:observation-category|symptom, jak kódy, tak text osoby. Jakákoli aplikace se souhlasem osoby si je může přečíst. - Vaše aplikace: vyhledávejte koncepty pomocí
GET /v1/terminology/symptoms, rozšiřte FHIRValueSet, překládejte kódy pomocíConceptMaps do ICD-10 a ICD-11 a validujte Observations proti profiluanpheros-symptom. Viz Symptom data API pro požadavky a odpovědi. - AI asistenti a agenti čtou stejná strukturovaná data prostřednictvím Context API namísto volného textu, takže jejich odpovědi mohou citovat kódy.
7. Omezení
- Motor jmenuje a kóduje symptomy; nediagnostikuje, nehodnotí příčiny ani nespojuje symptomy s nemocemi.
- Žádný klinický pracovník zatím nezkontroloval slovník, překlady ani varovné příznaky.
- Evaluační sady jsou syntetické; 15 z 20 jazyků zatím nemá evaluační sadu.
- ICD-11 je licencován WHO pod licencí CC BY-ND 3.0 IGO; kódy a názvy jsou reprodukovány beze změny.
Související
- API pro data symptomů: koncepty, terminologie FHIR a symptomy hlášené pacientem
- Anpheros Search: stejné symptomy spolu s diagnózami a léčbami v jednom veřejném katalogu, každá položka se svými zdroji
- Kódové systémy FHIR
- API pro longitudinální data pacienta
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card