# Zdravotní vzorce pro agenty AI (beta)

> Co se změnilo v záznamu pacienta a co se opakuje, vypočítané pevnými statistickými pravidly: trendy, odchylky od obvyklé úrovně osoby a opakování symptomů, každý se svým obdobím, důkazy a omezeními; nikoli diagnózy.

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

**Anpheros vypočítává, co se změnilo v záznamu pacienta a co se opakuje, pomocí pevných statistických pravidel, a předává každý nález vaší aplikaci nebo agentovi AI s jeho obdobím, zdroji, na kterých je založen, verzí metody a jejími omezeními.** Model již nemusí hádat trend z hrstky čísel: dostane trend, nejistotu kolem něj a data, na která se může odvolat.

Beta. V sandboxu funguje s jakýmikoli sandboxovými pověřeními (klíče `sk_test_…` a sandboxová OAuth připojení). Na produkčních záznamech běží pouze pod souhlasem pacienta s OAuth, který zahrnuje samostatné oprávnění `anpheros/patterns`; produkční API klíče obdrží 403.

## Co nachází

| Typ | Na jakou otázku odpovídá | Metoda |
|---|---|---|
| `trend` | Zvyšuje se nebo snižuje měření v daném okně? | Theil–Senův sklon s Mann–Kendallovým testem na jednu hodnotu denně (týdenní mediány pro hustá data sledování), korigováno, když jsou sousední dny stejné |
| `trend` (`change_between_results`) | Jak se změnila laboratorní zkouška se dvěma až pěti výsledky? | První a poslední výsledek, s nejnovějším proti referenčnímu rozsahu zprávy; popsáno, netestováno |
| `trend` (`event_rate_change`) | Zaznamenává se symptom častěji nebo méně často? | Dny se symptomem oproti dnům, kdy si osoba něco zaznamenala, posledních 30 dní oproti předchozím 90 dnům, přesný test |
| `baseline_deviation` | Je poslední týden pro tuto osobu neobvyklý? | Posledních 7 dní oproti dnům 8–60, Mann–Whitneyův test nebo rozdíl průměrů korigovaný autokorelací |
| `recurrence` | Vrátí se epizody symptomů v pravidelných intervalech? | Intervaly mezi začátky epizod, seedovaný Monte Carlo proti epizodám umístěným náhodně |
| `association` (`around_medication_start`, sandbox) | Zaznamenává se symptom častěji nebo méně často od začátku medikace? | Dny se symptomem oproti aktivním dnům ve 30 dnech od začátku oproti až 90 dnům předtím, přesný test |
| `association` (`after_short_sleep`, sandbox) | Zaznamenává se symptom častěji ve dnech po méně než 6 hodinách spánku? | Dny se změřeným spánkem a záznamem od osoby, krátké oproti delším nocím, Fisherův přesný test |
| `convergence` (`recent_changes_together`, sandbox) | Změnilo se několik věcí ve stejném nedávném období? | Žádný nový test: seskupuje alespoň dvě nedávné změny (neobvyklý týden, symptom častěji nebo méně často), které jsou každá statisticky podpořena; říká pouze, že se staly společně |

Všechny testy jednoho běhu jsou korigovány společně (Benjamini–Hochberg). Nález je `statistically_supported` pouze tehdy, když je korigovaná q-hodnota nižší než 0.05 **a** změna je alespoň prahová hodnota pro dané měření.

## Co to není

- **Není to diagnóza.** Nálezy popisují záznam; nikdy nepojmenovávají stav ani nedoporučují změnu léčby. Každý nález nese `safety.not_a_diagnosis = true` a `safety.causal_claim = false`.
- **Není to příčina.** Změna po novém léku nebo dvě zaznamenané věci společně nejsou důkazem, že jedno způsobilo druhé. Asociace říkají pouze to, že se dvě věci staly přibližně ve stejnou dobu; každá nese `confounding_possible` a `not_causal` a pouze začátky medikace a spánek jsou testovány proti symptomům, nikoli každý pár. Zatím pouze s přihlašovacími údaji do sandboxu.
- **Není to model umělé inteligence a zatím nebyl klinicky přezkoumán.** Každé číslo pochází z pevných, verzovaných statistických pravidel; žádný model umělé inteligence data neanalyzuje. Prahy pro smysluplnou změnu byly nastaveny s pomocí umělé inteligence a dosud nebyly přezkoumány klinickým lékařem; každý nález to uvádí v `review.thresholds_reviewed_by_clinician`. Engine je validován na syntetických pacientech se známými implantovanými vzory: nachází to, co bylo implantováno, a zůstává tichý, když nic nebylo. To není klinická validace.

## Vyzkoušejte

Každý sandbox projekt má 30 syntetických pacientů a šest z nich má zasazený vzor. Najděte jednoho s `GET /fhir/R4/Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|<key>`.

| Pacient | Co bylo zasazeno | Co hlásí engine |
|---|---|---|
| p01 Andrei Popescu | Denní domácí krevní tlak, klesající o přibližně 8/5 mmHg během šesti měsíců | `trend.decreasing` pro systolický (8480-6) a diastolický (8462-4) |
| p06 Giulia Rossi | Bolest hlavy každých 7 dní, s odchylkou jednoho dne | `recurrence.intervals` pro bolest hlavy (R51) |
| p17 Ciarán Murphy | Únava přibližně v polovině posledních 30 dnů, oproti 1 dni z 12 předtím | `frequency.increased` pro únavu (R53) |
| p19 Felix Gruber | Klidová srdeční frekvence z hodinek, přibližně o 9 tepů za minutu vyšší než obvykle za poslední týden | `baseline.higher` pro klidovou srdeční frekvenci (40443-4) |
| p20 Ivana Horvat | Klidová srdeční srdeční frekvence z hodinek, klesající o přibližně 16 tepů za minutu během šesti měsíců | `trend.decreasing` pro klidovou srdeční frekvenci (40443-4) |
| p30 Jan Kowalczyk | Hustá data z hodinek a domácnosti bez ničeho zasazeného | žádný podporovaný nález: engine zůstává tichý |

Projekty vytvořené před 16. říjnem 2026 získají tyto vzory po resetování svých syntetických pacientů z dashboardu; reset nahradí jakékoli provedené změny.

```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 nebo novější):

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

Pomocí MCP serveru se zeptejte svého agenta: "Co se změnilo v záznamu tohoto pacienta za posledních šest měsíců?": zavolá `get_health_patterns` a může navázat s `get_pattern_evidence`, `get_series` a `compare_periods`. `POST /v1/context` přidává sekci `patterns` pro dotazy ohledně změn a vztahů, nebo když požádáte o `patterns` potřebu.

## Koncové body (Endpoints)

| Koncový bod (Endpoint) | Co vrací |
|---|---|
| `GET /v1/patients/{id}/patterns` | běh: zjištění, co nebylo možné spočítat a proč, co bylo vynecháno kvůli souhlasu; filtry `window_days` (30–730), `end`, `types`, `min_strength` |
| `GET /v1/patients/{id}/patterns/{finding_id}` | jedno zjištění, přepočítané pro stejné časové okno |
| `GET /v1/patients/{id}/patterns/{finding_id}/evidence` | všechny podpůrné zdroje, stránkované |
| `GET /v1/patients/{id}/series?code=…` | jedno měření jako jedna hodnota za den, s pokrytím, mezerami a změnami zdroje |
| `POST /v1/patients/{id}/patterns/compare` | jedno měření ve dvou obdobích, které si vyberete |

## Čtení nálezu

- `summary_text`: jedna prostá věta, bezpečná k zobrazení nebo citaci.
- `strength`: `strong`, `moderate`, `weak` nebo `not_tested`. Slabé a netestované nálezy jsou popisy, nikoli důkazy.
- `window`, `comparison_window`: analyzovaná období.
- `evidence` (až 20, rozložených přes období) a `evidence_total`: zdroje stojící za nálezem, s verzí, datem, hodnotou a typem autora.
- `limitations`: kódované, s textem. Zobrazte je s nálezem.
- `review`: zda lékař zkontroloval prahové hodnoty (prozatím `false`) a odkud pocházejí.
- `method`, `engine_version`, `input_fingerprint`: stejná data, konfigurace a verze dávají stejný výsledek a stejné ID.

## Pravidla, která stojí za to znát

- **Nejprve souhlas.** V rámci udělení OAuth motor čte pouze to, co udělení povoluje; to, co nemohl přečíst, je uvedeno v `omitted`, bez obsahu.
- **ID.** Pacienti se zobrazují s párovým ID vašeho projektu; nalezená ID jsou odvozena na projekt. Když se záznam změní, nález získá nové ID a staré odpoví 404.
- **Čas.** Když čas čtení nese explicitní posun (`2026-10-16T00:30:00+03:00`), počítá se na vlastní den osoby; časy v UTC (`Z`) nebo bez posunu zůstávají ve dne v UTC. Každý nález uvádí, který v `time_basis` (`record_offsets`, `partly_local` nebo `local_time_unknown`). Lokální dny se používají na záznamech v sandboxu a produkci; vzory denní doby se zatím nepočítají.
- **Vynecháno.** Hodnoty zapsané AI, výsledky označené jako entered-in-error a data známá pouze do měsíce se nepoužívají a jsou započítána.
- **Limity.** 30 spuštění vzorů za minutu na přihlašovací údaje, navíc k obvyklým 600 požadavkům za minutu.

## Často kladené dotazy

### Používá jazykový model?
Ne. Každé číslo pochází z pevných, verzovaných statistických metod. Jakýkoli model, hostovaný nebo lokální, může výsledky číst.

### Proč je zřetelná změna v mých datech označena jako slabá?
Protože důkazy nepřežijí korekci pro všechny testy v běhu, série je krátká nebo zašuměná, nebo je změna pod prahovou hodnotou pro dané měření. Zjištění stále popisuje, co záznam ukazuje.

### Funguje to na produkčních záznamech?
Ano, od 16. října 2026, ale pouze pod souhlasem pacienta s OAuth, který zahrnuje samostatné oprávnění `anpheros/patterns`, které se na obrazovce souhlasu zobrazuje na samostatném řádku. Požádejte o rozsah vedle vašich `patient/…` rozsahů; udělení bez něj a jakýkoli produkční API klíč vrátí chybu 403.

## Související

- [FHIR MCP server pro agenty AI](https://developers.anpheros.com/cs/guides/mcp)
- [Aplikace LLM a zdravotnická data](https://developers.anpheros.com/cs/guides/llm-healthcare-data)
- [Agenti AI a lékařská data](https://developers.anpheros.com/cs/guides/ai-agents-medical-data)
- [API pro zdravotnictví s pacientovým souhlasem](https://developers.anpheros.com/cs/guides/healthcare-api-patient-consent)
