AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Anpheros Symptom Engine: metodologia

Jak objawy w dowolnym języku, zapisane tekstem swobodnym, stają się koncepcjami WHO ICD-10 i ICD-11: normalizator AI, wykrywanie obecności i podmiotu doświadczającego, słownik sprawdzony przez WHO, wyniki ewaluacji, dopasowanie podobnych przypadków i ograniczenia.

Anpheros Symptom Engine przekształca to, co osoba pisze o swoich odczuciach, własnymi słowami i językiem, w międzynarodowe koncepcje kliniczne: stabilny identyfikator Anpheros, kod WHO ICD-10, kod WHO ICD-11 i system ciała, wraz z informacją, czy objaw jest obecny, ustąpił, jest hipotetyczny czy dotyczy kogoś innego. Działa w produkcji za Anpheros Daily, publikuje swoje wyniki jako obserwacje HL7 FHIR R4 na Anpheros Platform i udostępnia tę samą terminologię każdej aplikacji za pośrednictwem API REST i FHIR. Ta strona opisuje, jak działa, jak został sprawdzony, co mierzy i jakie są jego ograniczenia.

W skrócie

Koncepcje 274 (197 objawów, 77 wyników), identyfikatory SYM-0001…, nigdy nie są ponownie używane
Klasyfikacje WHO ICD-10 (Wersja 2019) i WHO ICD-11 MMS (2025-01), z równoważnością każdego mapowania
Układy organizmu 13, zaczerpnięte z bloków rozdziału 21 ICD-11 (nerwowy, trawienny, oddechowy, skóra…)
Języki nazwy w 20 językach; tekst swobodny w języku osoby
Objawy ostrzegawcze 32, dla 14 koncepcji, cytowane słowo w słowo z CDC i NIDDK
Ocena normalizatora 5 języków (rumuński, angielski, hiszpański, niemiecki, francuski): kod podstawowy 97,5–100 %, obecność i podmiot 92,5–98 %, objawy zaprzeczone zgłoszone jako obecne 0 % w każdym języku
Przegląd kliniczny jeszcze brak: clinical_review: false w każdej odpowiedzi
Standardy HL7 FHIR R4 (CodeSystem, ValueSet, ConceptMap, Observation), ICD-10, ICD-11, LOINC dla wyników laboratoryjnych

1. Potok przetwarzania

Objaw przechodzi przez cztery etapy. Tekst wprowadzony przez użytkownika nigdy nie jest zmieniany; każdy etap dodaje dane obok niego.

  1. Przechwytywanie. Surowe dane wejściowe są przechowywane w postaci, w jakiej zostały zapisane, wraz z momentem ich odnotowania, strefą czasową telefonu, językiem oraz opcjonalnie natężeniem (1–10), początkiem i końcem. Żaden kolejny etap przetwarzania ich nie nadpisuje.
  2. Normalizacja (AI). Duży model językowy (Google Gemini na Vertex AI) odczytuje tekst i zwraca dla każdego wymienionego objawu: główny kod ICD-10, opcjonalne kody dodatkowe, krótki opis oraz dwa atrybuty: stwierdzenie (obecny, nieobecny, rozwiązany, hipotetyczny, niepewny) i podmiot (osoba, o której mowa, lub ktoś inny). Model może wybierać kody tylko ze słownika Anpheros; każda inna odpowiedź, pominięte pole lub nieprawidłowy kod główny jest traktowany jako nieudana próba, nigdy jako „nieznany objaw”.
  3. Mapowanie koncepcji (deterministyczne). Kod ICD-10 jest mapowany na koncepcję Anpheros, a z niej na ICD-11 i system ciała. Ten etap wykorzystuje stałe tabele, a nie AI, więc ten sam kod zawsze daje tę samą koncepcję.
  4. Publikacja. Tylko objawy, które są obecne i dotyczą osoby, stają się obserwacjami FHIR w rekordzie osoby, i to tylko po pomyślnej normalizacji. Jeśli późniejsza edycja lub ponowna normalizacja to zmieni, obserwacja zostanie wycofana; historia wersji pozostaje.

2. Obecność, czas i podmiot

Tekst kliniczny często wspomina o objawach, których dana osoba nie ma. Kliniczne przetwarzanie języka naturalnego nazywa to wykrywaniem negacji, temporalności i podmiotu (rodzina metod NegEx i ConText). Silnik obsługuje te same trzy pytania za pomocą atrybutów assertion i subject modelu:

Zapis Assertion / subject Opublikowano jako objaw pacjenta?
"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

Skarga krewnego nigdy nie jest automatycznie przekształcana w historię choroby rodziny.

3. Słownictwo i sposób jego weryfikacji

Słownictwo obejmuje rozdział XVIII ICD-10 (R00–R94, a od wersji 2026.10.3 także jego podkategorie inne niż resztkowe, takie jak R06.0 duszność) oraz, w przypadkach gdy WHO klasyfikuje objaw w innym rozdziale, kod WHO: zaparcie K59.0, szum w uszach H93.1, podwójne widzenie H53.2, niewyraźne widzenie H53.8, swędzenie L29.9, ból stawów M25.5, ból pleców M54, problemy ze snem G47.

4. Ewaluacja

Normalizator jest oceniany na stałym zestwie 100 syntetycznych przypadków napisanych w języku rumuńskim (język większości obecnych użytkowników), każdy z oczekiwanym kodem głównym, stwierdzeniem i podmiotem. 32 z tych przypadków celowo nie występują: są negowane, rozwiązane, hipotetyczne, niepewne lub dotyczą innej osoby. Wyniki z obecnym promptem (wersja 3, 15 października 2026):

Metryka Wynik Cel
Kod główny poprawny 100 % ≥ 85 %
Stwierdzenie i podmiot oba poprawne 98 % —
Negowane objawy zgłoszone jako obecne 0 % ≤ 3 %

Dwa błędy dotyczyły wpisów administracyjnych („wizyta u kardiologa we wtorek”, „chcę schudnąć 5 kg”), sklasyfikowanych jako hipotetyczne zamiast obecne; żaden z nich nie jest objawem. Zestaw testowy nie został przejrzany przez lekarza, więc wyniki są orientacyjne.

Inne języki (16 października 2026). 40 przypadków, obejmujących każdą kategorię, zostało przetłumaczonych na angielski, hiszpański, niemiecki i francuski, z tymi samymi oczekiwanymi odpowiedziami; przypadki nieformalne zostały przepisane w nieformalnym stylu każdego języka. Instrukcje dla modelu pozostały takie same.

Język Przypadki Kod główny Obecność i podmiot Negowane zgłoszone jako obecne
Rumuński 100 100 % 98 % 0 %
Angielski 40 100 % 97.5 % 0 %
Hiszpański 40 97.5 % 92.5 % 0 %
Niemiecki 40 100 % 97.5 % 0 %
Francuski 40 100 % 95 % 0 %

Większość pozostałych błędów to te same wpisy administracyjne („wizyta u kardiologa we wtorek”, „badanie kontrolne, wszystko w porządku”) lub wybór między dwoma nieobecnymi stanami („brak gorączki dzisiaj” jako rozwiązany zamiast nieobecny); żaden z nich nie publikuje objawu. Jedyna różnica w kodowaniu dotyczyła hiszpańskiego „escalofríos y malestar” (dreszcze i złe samopoczucie) zakodowanego jako złe samopoczucie (R53) z dreszczami (R68) jako kodem dodatkowym, zamiast odwrotnie.

Nazwy wyświetlane użytkownikom są zgodne z ich językiem: aplikacja wyświetla nazwę koncepcji w języku użytkownika (najpierw nazwa potoczna) oraz notatkę o obecności („rozwiązany”, „ktoś inny”) w 20 językach aplikacji.

W produkcji (16 października 2026), po sprawdzeniu słownictwa pod kątem zgodności z WHO, wszystkie przechowywane objawy zostały ponownie znormalizowane. W rekordach rzeczywistych użytkowników: wszystkie objawy znormalizowane, 0 obecnych objawów pozostało jako „niejasne” i 0 objawów, które nie są obecne, opublikowano jako własne dane osoby (niezależny audyt opublikowanych Obserwacji).

5. Podobne przypadki (w trakcie rozwoju)

Następny komponent porównuje osoby na podstawie ich objawów i nieprawidłowych wyników badań laboratoryjnych, aby zaproponować, wyłącznie za wyraźną zgodą, osoby zgłaszające coś bardzo podobnego.

Nie sugeruje diagnozy ani choroby.

6. Jak aplikacje z tego korzystają

7. Ograniczenia

Powiązane

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy