Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Wzorce zdrowotne dla agentów AI (beta)
Co się zmieniło w rekordzie pacjenta i co się powtarza, obliczone przez ustalone reguły statystyczne: trendy, odchylenia od zwykłego poziomu osoby i nawrót objawów, każdy ze swoim okresem, dowodami i ograniczeniami; nie diagnozy.
Anpheros oblicza, co się zmieniło w dokumentacji pacjenta i co się powtarza, według ustalonych reguł statystycznych, i przekazuje każde odkrycie do Twojej aplikacji lub agenta AI wraz z jego okresem, zasobami, na których się opiera, wersją metody i jej ograniczeniami. Model nie musi już zgadywać trendu na podstawie garści liczb: otrzymuje trend, niepewność wokół niego i dane do cytowania.
Beta. W piaskownicy działa z dowolnymi poświadczeniami piaskownicy (klucze sk_test_… i połączenia OAuth piaskownicy). W przypadku rekordów produkcyjnych działa tylko w ramach zgody pacjenta na OAuth, która obejmuje oddzielne uprawnienie anpheros/patterns; klucze API produkcyjne zwracają 403.
Co znajduje
| Typ | Na jakie pytanie odpowiada | Metoda |
|---|---|---|
trend |
Czy pomiar rośnie czy maleje w danym okresie? | Nachylenie Theila–Sena z testem Manna–Kendalla dla jednej wartości dziennie (tygodniowe mediany dla gęstych danych obserwacji), skorygowane, gdy sąsiednie dni są podobne |
trend (change_between_results) |
Jak zmienił się wynik badania laboratoryjnego z dwoma do pięciu rezultatami? | Pierwszy i ostatni wynik, z najnowszym w odniesieniu do zakresu referencyjnego raportu; opisane, nie testowane |
trend (event_rate_change) |
Czy objaw jest rejestrowany częściej czy rzadziej? | Dni z objawami w stosunku do dni, w których osoba coś zarejestrowała, ostatnie 30 dni w porównaniu do 90 dni wcześniej, dokładny test |
baseline_deviation |
Czy ostatni tydzień jest nietypowy dla tej osoby? | Ostatnie 7 dni w porównaniu do dni 8–60, test Manna–Whitneya lub różnica średnich skorygowana o autokorelację |
recurrence |
Czy epizody objawów powracają w regularnych odstępach czasu? | Odstępy między początkami epizodów, symulacja Monte Carlo z losowo rozmieszczonymi epizodami |
association (around_medication_start, sandbox) |
Czy objaw jest rejestrowany częściej czy rzadziej od początku przyjmowania leku? | Dni z objawami w stosunku do dni aktywnych w ciągu 30 dni od początku przyjmowania leku w porównaniu do maksymalnie 90 dni wcześniej, dokładny test |
association (after_short_sleep, sandbox) |
Czy objaw jest częściej rejestrowany w dniach po mniej niż 6 godzinach snu? | Dni ze zmierzonym snem i wpisem osoby, krótkie noce w porównaniu do dłuższych, dokładny test Fishera |
convergence (recent_changes_together, sandbox) |
Czy kilka rzeczy zmieniło się w tym samym niedawnym okresie? | Brak nowego testu: grupuje co najmniej dwie niedawne zmiany (nietypowy tydzień, objaw częściej lub rzadziej), które są statystycznie potwierdzone; mówi tylko, że wystąpiły razem |
Wszystkie testy jednego przebiegu są korygowane razem (Benjamini–Hochberg). Wynik jest statistically_supported tylko wtedy, gdy skorygowana wartość q jest poniżej 0.05 i zmiana jest co najmniej na poziomie progu dla danego pomiaru.
Czym nie jest
- Nie jest diagnozą. Wyniki opisują rekord; nigdy nie nazywają schorzenia ani nie zalecają zmiany leczenia. Każdy wynik zawiera
safety.not_a_diagnosis = trueisafety.causal_claim = false. - Nie jest przyczyną. Zmiana po nowym leku lub dwie zarejestrowane razem rzeczy nie są dowodem na to, że jedno spowodowało drugie. Powiązania mówią tylko o tym, że dwie rzeczy wydarzyły się mniej więcej w tym samym czasie; każde z nich zawiera
confounding_possibleinot_causal, a tylko rozpoczęcie przyjmowania leków i sen są testowane w odniesieniu do objawów, a nie każdej pary. Obecnie tylko z poświadczeniami piaskownicy. - Nie jest modelem AI i nie został jeszcze poddany przeglądowi klinicznemu. Każda liczba pochodzi ze stałych, wersjonowanych reguł statystycznych; żaden model AI nie analizuje danych. Progi dla znaczącej zmiany zostały ustalone przy pomocy AI i nie zostały jeszcze przejrzane przez lekarza; każdy wynik mówi o tym w
review.thresholds_reviewed_by_clinician. Silnik jest walidowany na syntetycznych pacjentach ze znanymi, zasianymi wzorcami: znajduje to, co zostało zasiane, i milczy, gdy nic nie zostało zasiane. To nie jest walidacja kliniczna.
Wypróbuj
Każdy projekt sandbox zawiera 30 syntetycznych pacjentów, a sześciu z nich ma zasiane wzorce. Znajdź jednego z GET /fhir/R4/Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|<key>.
| Pacjent | Co zostało zasiane | Co raportuje silnik |
|---|---|---|
| p01 Andrei Popescu | Codzienne domowe ciśnienie krwi, spadające o około 8/5 mmHg w ciągu sześciu miesięcy | trend.decreasing dla skurczowego (8480-6) i rozkurczowego (8462-4) |
| p06 Giulia Rossi | Ból głowy co 7 dni, z tolerancją jednego dnia | recurrence.intervals dla bólu głowy (R51) |
| p17 Ciarán Murphy | Zmęczenie w około połowie ostatnich 30 dni, w porównaniu do 1 dnia na 12 wcześniej | frequency.increased dla zmęczenia (R53) |
| p19 Felix Gruber | Spoczynkowe tętno z zegarka, około 9 uderzeń na minutę powyżej jego zwykłego poziomu w ostatnim tygodniu | baseline.higher dla spoczynkowego tętna (40443-4) |
| p20 Ivana Horvat | Spoczynkowe tętno z zegarka, stabilizujące się o około 16 uderzeń na minutę w ciągu sześciu miesięcy | trend.decreasing dla spoczynkowego tętna (40443-4) |
| p30 Jan Kowalczyk | Gęste dane z zegarka i domu bez niczego zasianego | brak obsługiwanego znaleziska: silnik pozostaje cichy |
Projekty utworzone przed 16 października 2026 r. otrzymają te wzorce po zresetowaniu swoich syntetycznych pacjentów z poziomu pulpitu; reset zastępuje wszelkie wprowadzone w nich zmiany.
curl -s https://platform.anpheros.com/v1/patients/$PATIENT/patterns?window_days=180 \
-H "Authorization: Bearer $ANPHEROS_KEY"
Z TypeScript SDK (@anpheros/sdk 0.2.0 lub nowszy):
const run = await anpheros.patterns.run(patientId, { window_days: 180, min_strength: 'moderate' });
for (const f of run.findings) console.log(f.summary_text, f.strength, f.limitations.map(l => l.code));
Z serwerem MCP, zapytaj swojego agenta: "Co zmieniło się w rekordzie tego pacjenta w ciągu ostatnich sześciu miesięcy?": wywoła on get_health_patterns i może kontynuować z get_pattern_evidence, get_series i compare_periods. POST /v1/context dodaje sekcję patterns dla pytań o zmiany i relacje, lub gdy poprosisz o patterns potrzebę.
Punkty końcowe (Endpoints)
| Punkt końcowy (Endpoint) | Co zwraca |
|---|---|
GET /v1/patients/{id}/patterns |
wynik wykonania: wyniki, co nie mogło zostać obliczone i dlaczego, jakie zgody zostały pominięte; filtry window_days (30–730), end, types, min_strength |
GET /v1/patients/{id}/patterns/{finding_id} |
pojedynczy wynik, przeliczony dla tego samego okna czasowego |
GET /v1/patients/{id}/patterns/{finding_id}/evidence |
każdy zasób pomocniczy, stronicowany |
GET /v1/patients/{id}/series?code=… |
pojedynczy pomiar jako jedna wartość dziennie, z pokryciem, lukami i zmianami źródła |
POST /v1/patients/{id}/patterns/compare |
pojedynczy pomiar w dwóch wybranych przez Ciebie okresach |
Odczytywanie wyniku
summary_text: jedno proste zdanie, bezpieczne do wyświetlenia lub cytowania.strength:strong,moderate,weaklubnot_tested. Słabe i nieprzetestowane wyniki to opisy, a nie dowody.window,comparison_window: analizowane okresy.evidence(do 20, rozłożone w okresie) ievidence_total: zasoby stojące za wynikiem, z wersją, datą, wartością i typem autora.limitations: zakodowane, z tekstem. Wyświetl je wraz z wynikiem.review: czy lekarz przejrzał progi (falsena razie) i skąd pochodzą.method,engine_version,input_fingerprint: te same dane, konfiguracja i wersje dają ten sam wynik i ten sam identyfikator.
Zasady, o których warto wiedzieć
- Najpierw zgoda. W ramach przyznanej licencji OAuth silnik odczytuje tylko to, na co zezwala licencja; to, czego nie mógł odczytać, jest wymienione w
omitted, bez zawartości. - Identyfikatory. Pacjenci pojawiają się z identyfikatorem parzystym Twojego projektu; znalezione identyfikatory są generowane dla każdego projektu. Gdy rekord ulegnie zmianie, znalezisko otrzymuje nowy identyfikator, a stary zwraca 404.
- Czas. Gdy czas odczytu zawiera jawne przesunięcie (
2026-10-16T00:30:00+03:00), jest on liczony według dnia osoby; czasy w UTC (Z) lub bez przesunięcia pozostają w dniu UTC. Każde znalezisko określa, który dzień wtime_basis(record_offsets,partly_locallublocal_time_unknown). Dni lokalne są używane w rekordach sandbox i produkcyjnych; wzorce pory dnia nie są jeszcze obliczane. - Pominięte. Wartości zapisane przez AI, wyniki oznaczone jako błąd wprowadzony i daty znane tylko do miesiąca nie są używane i są zliczane.
- Limity. 30 uruchomień wzorców na minutę na poświadczenie, oprócz zwykłych 600 żądań na minutę.
Często zadawane pytania
Czy używa modelu językowego?
Nie. Każda liczba pochodzi ze stałych, wersjonowanych metod statystycznych. Dowolny model, hostowany lub lokalny, może odczytać wyniki.
Dlaczego wyraźna zmiana w moich danych jest oznaczona jako słaba?
Ponieważ dowody nie przetrwały korekty dla wszystkich testów w przebiegu, seria jest krótka lub zaszumiona, lub zmiana jest poniżej progu dla danego pomiaru. Wynik nadal opisuje to, co pokazuje rekord.
Czy działa na rekordach produkcyjnych?
Tak, od 16 października 2026 r., ale tylko za zgodą pacjenta w ramach OAuth, która obejmuje oddzielne uprawnienie anpheros/patterns, wyświetlane na ekranie zgody w osobnym wierszu. Poproś o zakres obok swoich zakresów patient/…; przyznanie bez niego i dowolny klucz API produkcyjny spowoduje błąd 403.
Powiązane
- Serwer FHIR MCP dla agentów AI
- Aplikacje LLM i dane medyczne
- Agenci AI i dane medyczne
- API medyczne z zgodą pacjenta
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card