AnpherosAnpheros PlatformDevelopers

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

Motorul de Simptome Anpheros: metodologie

Cum devin simptomele text liber în orice limbă concepte ICD-10 și ICD-11 ale OMS: normalizatorul AI, detectarea prezenței și a celui care experimentează, vocabularul verificat de OMS, rezultatele evaluării, potrivirea cazurilor similare și limitele.

Anpheros Symptom Engine transformă ceea ce scrie o persoană despre cum se simte, în propriile cuvinte și limbă, în concepte clinice internaționale: un identificator Anpheros stabil, un cod WHO ICD-10, un cod WHO ICD-11 și un sistem corporal, împreună cu informații despre dacă simptomul este prezent, rezolvat, ipotetic sau despre altcineva. Rulează în producție în spatele Anpheros Daily, publică rezultatele sale ca HL7 FHIR R4 Observations pe Anpheros Platform și expune aceeași terminologie oricărei aplicații printr-un API REST și FHIR. Această pagină descrie cum funcționează, cum a fost verificat, ce măsoară și unde sunt limitele sale.

Pe scurt

Concepte 274 (197 simptome, 77 constatări), identificatori SYM-0001…, niciodată reutilizați
Clasificări WHO ICD-10 (Versiunea 2019) și WHO ICD-11 MMS (2025-01), cu echivalența fiecărei mapări
Sisteme corporale 13, preluate din blocurile capitolului 21 ICD-11 (nervos, digestiv, respirator, piele…)
Limbi nume în 20 de limbi; text liber în limba proprie a persoanei
Semne de avertizare 32, pentru 14 concepte, citate cuvânt cu cuvânt de la CDC și NIDDK
Evaluarea Normalizatorului 5 limbi (română, engleză, spaniolă, germană, franceză): cod primar 97,5–100 %, prezență și subiect 92,5–98 %, simptome negate raportate ca prezente 0 % în fiecare limbă
Revizuire clinică încă nu: clinical_review: false la fiecare răspuns
Standarde HL7 FHIR R4 (CodeSystem, ValueSet, ConceptMap, Observation), ICD-10, ICD-11, LOINC pentru rezultate de laborator

1. Pipeline-ul

Un simptom trece prin patru etape. Textul persoanei nu este niciodată modificat; fiecare etapă adaugă date lângă el.

  1. Capturare. Înregistrarea brută este stocată așa cum a fost scrisă, împreună cu momentul în care a fost notată, fusul orar al telefonului, limba și, opțional, intensitatea (1–10), debutul și sfârșitul. Nimic ulterior nu o rescrie.
  2. Normalizare (AI). Un model lingvistic mare (Google Gemini pe Vertex AI) citește textul și returnează, pentru fiecare simptom menționat: un cod ICD-10 primar, coduri secundare opționale, o etichetă scurtă și două atribute, afirmare (prezent, absent, rezolvat, ipotetic, incert) și subiect (persoana sau altcineva). Modelul poate alege coduri doar din vocabularul Anpheros; orice alt răspuns, o intrare omisă sau un cod primar invalid este considerat o încercare eșuată, niciodată "simptom necunoscut".
  3. Mapare conceptuală (deterministică). Codul ICD-10 este mapat la conceptul Anpheros și, din acesta, la ICD-11 și sistemul corporal. Această etapă folosește tabele fixe, nu AI, deci același cod oferă întotdeauna același concept.
  4. Publicare. Doar simptomele care sunt prezente și despre persoană devin Observații FHIR în registrul persoanei, și numai după ce normalizarea reușește. Dacă o editare ulterioară sau o re-normalizare modifică acest lucru, Observația este retrasă; istoricul versiunilor rămâne.

2. Prezență, timp și experimentator

Textul clinic menționează adesea simptome pe care persoana nu le are. Procesarea limbajului natural clinic numește aceasta negare, temporalitate și experimentator (familia de metode NegEx și ConText). Motorul gestionează aceleași trei întrebări cu atributele de aserțiune și subiect ale modelului:

Scris Aserțiune / subiect Publicat ca simptom al persoanei?
"Am avut dureri de cap de marți" prezent / sine da
"capul meu nu mai doare" rezolvat / sine nu
"s-ar putea să fac febră mâine" ipotetic / sine nu
"mama mea are tuse" prezent / altcineva nu

O plângere a unei rude nu este niciodată transformată automat în istoricul familial.

3. Vocabularul și modul în care a fost verificat

Vocabularul acoperă capitolul XVIII din ICD-10 (R00–R94 și, începând cu versiunea 2026.10.3, subcategoriile sale non-reziduale, cum ar fi R06.0 dispnee) și, acolo unde OMS clasifică un simptom într-un alt capitol, codul OMS: constipație K59.0, tinitus H93.1, vedere dublă H53.2, vedere încețoșată H53.8, mâncărime L29.9, dureri articulare M25.5, dureri de spate M54, probleme de somn G47.

4. Evaluare

Normalizatorul este evaluat pe un set fix de 100 de cazuri sintetice scrise în limba română (limba majorității utilizatorilor actuali), fiecare cu codul primar, afirmația și subiectul așteptat. 32 dintre cazuri sunt în mod deliberat absente: negate, rezolvate, ipotetice, incerte sau despre o altă persoană. Rezultate cu promptul curent (versiunea 3, 15 octombrie 2026):

Metrică Rezultat Țintă
Cod primar corect 100 % ≥ 85 %
Afirmație și subiect ambele corecte 98 % —
Simptome negate raportate ca prezente 0 % ≤ 3 %

Cele două erori au fost înregistrări administrative („o programare la cardiolog marți”, „vreau să slăbesc 5 kg”) clasificate ca ipotetice în loc de prezente; niciuna nu este un simptom. Setul de testare nu a fost revizuit de un clinician, deci scorurile sunt indicative.

Alte limbi (16 octombrie 2026). 40 dintre cazuri, acoperind fiecare categorie, au fost traduse în engleză, spaniolă, germană și franceză, cu aceleași răspunsuri așteptate; cazurile informale au fost rescrie în stilul informal propriu fiecărei limbi. Instrucțiunile către model au rămas aceleași.

Limbă Cazuri Cod primar Prezență și subiect Negate raportate ca prezente
Română 100 100 % 98 % 0 %
Engleză 40 100 % 97.5 % 0 %
Spaniolă 40 97.5 % 92.5 % 0 %
Germană 40 100 % 97.5 % 0 %
Franceză 40 100 % 95 % 0 %

Majoritatea erorilor rămase sunt aceleași înregistrări administrative („programare la cardiolog marți”, „control, totul în regulă”) sau o alegere între două stări neprezente („fără febră astăzi” ca rezolvată în loc de absentă); niciuna dintre ele nu publică un simptom. Singura diferență de codificare a fost în spaniolă „escalofríos y malestar” (frisoane și stare de rău) codificată ca stare de rău (R53) cu frisoane (R68) ca un cod secundar, mai degrabă decât invers.

Numele afișate persoanelor urmează limba lor: aplicația afișează numele conceptului în limba utilizatorului (numele laic primul) și nota de prezență („rezolvat”, „altcineva”) în cele 20 de limbi ale aplicației.

În producție (16 octombrie 2026), după ce vocabularul a fost verificat în raport cu OMS, fiecare simptom stocat a fost re-normalizat. Pe înregistrările utilizatorilor reali: toate simptomele normalizate, 0 simptome prezente lăsate ca „neclare” și 0 simptome care nu sunt prezente publicate ca fiind ale persoanei (audit independent al Observațiilor publicate).

5. Cazuri similare (în curs de dezvoltare)

Următorul component compară persoane pe baza simptomelor și a rezultatelor anormale de laborator, pentru a sugera, doar cu consimțământ explicit, persoane care raportează ceva foarte similar.

Acesta nu sugerează un diagnostic sau o boală.

6. Cum folosesc aplicațiile

7. Limite

Conexe

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