# Zdravotné vzory pre AI agentov (beta)

> Čo sa zmenilo v zázname pacienta a čo sa opakuje, vypočítané pevnými štatistickými pravidlami: trendy, odchýlky od bežnej úrovne osoby a opakovanie symptómov, každý so svojím obdobím, dôkazmi a obmedzeniami; nie diagnózy.

Source: https://developers.anpheros.com/sk/guides/health-patterns

**Anpheros vypočítava, čo sa zmenilo v zázname pacienta a čo sa opakuje, pomocou pevných štatistických pravidiel, a odovzdáva každý nález vašej aplikácii alebo AI agentovi s jeho obdobím, zdrojmi, na ktorých je založený, verziou metódy a jej obmedzeniami.** Model už nemusí hádať trend z hŕstky čísel: dostane trend, neistotu okolo neho a údaje, na ktoré sa môže odvolať.

Beta. V sandboxe funguje s akýmikoľvek sandboxovými povereniami (kľúče `sk_test_…` a sandboxové OAuth pripojenia). Na produkčných záznamoch beží iba pod OAuth súhlasom pacienta, ktorý zahŕňa samostatné povolenie `anpheros/patterns`; produkčné API kľúče dostanú 403.

## Čo zisťuje

| Typ | Na akú otázku odpovedá | Metóda |
|---|---|---|
| `trend` | Zvyšuje sa alebo znižuje meranie v rámci daného časového okna? | Theil–Sen slope s Mann–Kendall na jednu hodnotu za deň (týždenné mediány pre husté údaje sledovania), korigované, keď sú susedné dni rovnaké |
| `trend` (`change_between_results`) | Ako sa zmenil laboratórny test s dvoma až piatimi výsledkami? | Prvý a posledný výsledok, pričom najnovší je porovnaný s referenčným rozsahom správy; opísané, netestované |
| `trend` (`event_rate_change`) | Zaznamenáva sa symptóm častejšie alebo menej často? | Dni so symptómom voči dňom, kedy si osoba zaznamenala čokoľvek, posledných 30 dní oproti predchádzajúcim 90 dňom, presný test |
| `baseline_deviation` | Je posledný týždeň pre túto osobu neobvyklý? | Posledných 7 dní oproti dňom 8–60, Mann–Whitney alebo rozdiel priemerov korigovaný autokorelaciou |
| `recurrence` | Vracajú sa epizódy symptómov v pravidelných intervaloch? | Intervaly medzi začiatkami epizód, Monte Carlo simulácia voči náhodne umiestneným epizódam |
| `association` (`around_medication_start`, sandbox) | Zaznamenáva sa symptóm častejšie alebo menej často od začiatku liečby? | Dni so symptómom voči aktívnym dňom v 30 dňoch od začiatku liečby oproti až 90 dňom predtým, presný test |
| `association` (`after_short_sleep`, sandbox) | Zaznamenáva sa symptóm častejšie v dňoch po menej ako 6 hodinách spánku? | Dni s meraným spánkom a záznamom osoby, krátke oproti dlhším nociam, Fisherov presný test |
| `convergence` (`recent_changes_together`, sandbox) | Zmenilo sa niekoľko vecí v rovnakom nedávnom období? | Žiadny nový test: zoskupuje najmenej dve nedávne zmeny (neobvyklý týždeň, symptóm častejšie alebo menej často), ktoré sú každá štatisticky podložená; uvádza iba to, že sa stali spolu |

Všetky testy jedného behu sú korigované spolu (Benjamini–Hochberg). Nález je `statistically_supported` iba vtedy, keď je korigovaná q-hodnota nižšia ako 0.05 **a** zmena je aspoň prahová hodnota pre dané meranie.

## Čo to nie je

- **Nie je to diagnóza.** Nálezy opisujú záznam; nikdy neuvádzajú názov stavu ani neodporúčajú zmenu liečby. Každý nález nesie `safety.not_a_diagnosis = true` a `safety.causal_claim = false`.
- **Nie je to príčina.** Zmena po novom lieku alebo dve zaznamenané veci spolu nie sú dôkazom, že jedno spôsobilo druhé. Asociácie hovoria iba to, že sa dve veci stali približne v rovnakom čase; každá nesie `confounding_possible` a `not_causal` a iba začiatky liekov a spánok sú testované proti symptómom, nie každá dvojica. Zatiaľ iba s prihlasovacími údajmi do sandboxu.
- **Nie je to AI model a ešte nebol klinicky preskúmaný.** Každé číslo pochádza z pevných, verzovaných štatistických pravidiel; žiadny AI model nedekóduje dáta. Prahové hodnoty pre zmysluplnú zmenu boli nastavené s pomocou AI a ešte neboli preskúmané klinikom; každý nález to uvádza v `review.thresholds_reviewed_by_clinician`. Motor je validovaný na syntetických pacientoch so známymi zasadenými vzormi: nájde to, čo bolo zasadené, a zostáva ticho, keď nič nebolo. Toto nie je klinická validácia.

## Vyskúšajte to

Každý sandbox projekt má 30 syntetických pacientov a šiesti z nich majú zasadený vzor. Nájdite jedného s `GET /fhir/R4/Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|<key>`.

| Pacient | Čo bolo zasadené | Čo hlási motor |
|---|---|---|
| p01 Andrei Popescu | Denný domáci krvný tlak klesajúci o približne 8/5 mmHg počas šiestich mesiacov | `trend.decreasing` pre systolický (8480-6) a diastolický (8462-4) |
| p06 Giulia Rossi | Bolesť hlavy každých 7 dní, s odchýlkou jeden deň | `recurrence.intervals` pre bolesť hlavy (R51) |
| p17 Ciarán Murphy | Únava v približne polovici z posledných 30 dní, v porovnaní s 1 dňom z 12 predtým | `frequency.increased` pre únavu (R53) |
| p19 Felix Gruber | Pokojová srdcová frekvencia z hodiniek, približne o 9 bpm vyššia ako jeho obvyklá úroveň za posledný týždeň | `baseline.higher` pre pokojovú srdcovú frekvenciu (40443-4) |
| p20 Ivana Horvat | Pokojová srdcová frekvencia z hodiniek, klesajúca o približne 16 bpm počas šiestich mesiacov | `trend.decreasing` pre pokojovú srdcovú frekvenciu (40443-4) |
| p30 Jan Kowalczyk | Husté údaje z hodiniek a domáce údaje bez ničoho zasadeného | žiadny podporovaný nález: motor zostáva ticho |

Projekty vytvorené pred 16. októbrom 2026 získajú tieto vzory po resetovaní svojich syntetických pacientov z dashboardu; reset nahradí akékoľvek zmeny, ktoré sa na nich vykonali.

```bash
curl -s https://platform.anpheros.com/v1/patients/$PATIENT/patterns?window_days=180 \
  -H "Authorization: Bearer $ANPHEROS_KEY"
```

S TypeScript SDK (`@anpheros/sdk` 0.2.0 alebo novším):

```ts
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));
```

So serverom MCP sa spýtajte svojho agenta: „Čo sa zmenilo v zázname tohto pacienta za posledných šesť mesiacov?“: ten zavolá `get_health_patterns` a môže pokračovať s `get_pattern_evidence`, `get_series` a `compare_periods`. `POST /v1/context` pridáva sekciu `patterns` pre otázky o zmenách a vzťahoch, alebo keď požiadate o `patterns` potrebu.

## Koncové body (Endpoints)

| Koncový bod (Endpoint) | Čo vracia |
|---|---|
| `GET /v1/patients/{id}/patterns` | výsledok behu: zistenia, čo sa nedalo vypočítať a prečo, čo vynechal súhlas; filtre `window_days` (30–730), `end`, `types`, `min_strength` |
| `GET /v1/patients/{id}/patterns/{finding_id}` | jedno zistenie, prepočítané pre rovnaké časové okno |
| `GET /v1/patients/{id}/patterns/{finding_id}/evidence` | každý podporný zdroj, stránkovaný |
| `GET /v1/patients/{id}/series?code=…` | jedno meranie ako jedna hodnota za deň, s pokrytím, medzerami a zmenami zdroja |
| `POST /v1/patients/{id}/patterns/compare` | jedno meranie v dvoch obdobiach, ktoré si vyberiete |

## Čítanie nálezu

- `summary_text`: jedna jednoduchá veta, bezpečná na zobrazenie alebo citovanie.
- `strength`: `strong`, `moderate`, `weak` alebo `not_tested`. Slabé a netestované nálezy sú popisy, nie dôkazy.
- `window`, `comparison_window`: analyzované obdobia.
- `evidence` (až 20, rozložených počas obdobia) a `evidence_total`: zdroje za nálezom, s verziou, dátumom, hodnotou a typom autora.
- `limitations`: kódované, s textom. Zobrazte ich s nálezom.
- `review`: či lekár skontroloval prahové hodnoty (teraz `false`) a odkiaľ pochádzajú.
- `method`, `engine_version`, `input_fingerprint`: rovnaké údaje, konfigurácia a verzie dávajú rovnaký výsledok a rovnaké id.

## Pravidlá, ktoré sa oplatí poznať

- **Najprv súhlas.** V rámci OAuth grantu engine číta iba to, čo grant umožňuje; to, čo nemohol prečítať, je uvedené v `omitted`, bez obsahu.
- **ID.** Pacienti sa zobrazujú s párovým ID vášho projektu; nájdené ID sú odvodené na projekt. Keď sa záznam zmení, nález dostane nové ID a staré odpovie 404.
- **Čas.** Keď čas odčítania nesie explicitný offset (`2026-10-16T00:30:00+03:00`), počíta sa na vlastný deň osoby; časy v UTC (`Z`) alebo bez offsetu zostávajú v deň UTC. Každý nález uvádza, ktorý v `time_basis` (`record_offsets`, `partly_local` alebo `local_time_unknown`). Lokálne dni sa používajú na záznamoch v sandboxe a produkcii; vzory denného času sa zatiaľ nepočítajú.
- **Vyškrnuté.** Hodnoty zapísané AI, výsledky označené ako entered-in-error a dátumy známe iba do mesiaca sa nepoužívajú a započítavajú sa.
- **Limity.** 30 behov vzorov za minútu na poverenie, okrem bežných 600 požiadaviek za minútu.

## Často kladené otázky

### Používa jazykový model?
Nie. Každé číslo pochádza z fixných, verzovaných štatistických metód. Akýkoľvek model, hostovaný alebo lokálny, môže čítať výsledky.

### Prečo je jasná zmena v mojich údajoch označená ako slabá?
Pretože dôkazy neprežijú korekciu pre všetky testy v behu, séria je krátka alebo hlučná, alebo je zmena pod prahovou hodnotou pre dané meranie. Nález stále popisuje, čo záznam ukazuje.

### Funguje to na produkčných záznamoch?
Áno, od 16. októbra 2026, ale iba pod súhlasom pacienta pomocou OAuth, ktorý zahŕňa samostatné povolenie `anpheros/patterns`, ktoré sa na obrazovke súhlasu zobrazuje na vlastnom riadku. Požiadajte o scope vedľa vašich `patient/…` scopov; udelenie bez neho a akýkoľvek produkčný API kľúč dostane 403.

## Súvisiace

- [FHIR MCP server pre AI agentov](https://developers.anpheros.com/sk/guides/mcp)
- [LLM aplikácie a zdravotnícke dáta](https://developers.anpheros.com/sk/guides/llm-healthcare-data)
- [AI agenti a lekárske dáta](https://developers.anpheros.com/sk/guides/ai-agents-medical-data)
- [Zdravotnícke API s pacientovým súhlasom](https://developers.anpheros.com/sk/guides/healthcare-api-patient-consent)
