Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Шаблони здоров'я для ШІ-агентів (бета)
Що змінилося в записі пацієнта та що повторюється, обчислене за допомогою фіксованих статистичних правил: тенденції, відхилення від звичайного рівня особи та повторення симптомів, кожне зі своїм періодом, доказами та обмеженнями; не діагнози.
Anpheros обчислює, що змінилося в історії хвороби пацієнта та що повторюється, за фіксованими статистичними правилами, і передає кожен результат вашому додатку або ШІ-агенту з його періодом, ресурсами, що стоять за ним, версією методу та його обмеженнями. Моделі більше не потрібно вгадувати тенденцію за жменькою чисел: вона отримує тенденцію, невизначеність навколо неї та дані для цитування.
Бета. У пісочниці він працює з будь-якими обліковими даними пісочниці (ключі sk_test_… та з'єднання OAuth пісочниці). На виробничих записах він працює лише за згодою пацієнта OAuth, яка включає окремий дозвіл anpheros/patterns; ключі API виробничої версії отримують 403.
Що воно знаходить
| Тип | На яке питання відповідає | Метод |
|---|---|---|
trend |
Чи вимірювання зростає чи спадає протягом вікна? | Нахил Тейла-Сена з тестом Манна-Кендалла для одного значення на день (щотижневі медіани для щільних даних спостереження), скориговано, коли сусідні дні однакові |
trend (change_between_results) |
Як змінився лабораторний тест з двома-п'ятьма результатами? | Перший і останній результат, з останнім порівняно з референсним діапазоном звіту; описано, не протестовано |
trend (event_rate_change) |
Чи симптом реєструється частіше чи рідше? | Дні з симптомами за дні, коли людина щось записувала, останні 30 днів проти попередніх 90, точний тест |
baseline_deviation |
Чи минулий тиждень незвичний для цієї людини? | Останні 7 днів проти днів 8–60, тест Манна-Уітні або різниця середніх, скоригована автокореляцією |
recurrence |
Чи епізоди симптомів повертаються через регулярні проміжки часу? | Проміжки між початками епізодів, Монте-Карло з початковими умовами проти епізодів, розміщених випадково |
association (around_medication_start, sandbox) |
Чи симптом реєструється частіше чи рідше з початку прийому ліків? | Дні з симптомами за активні дні протягом 30 днів з початку проти до 90 днів до цього, точний тест |
association (after_short_sleep, sandbox) |
Чи симптом реєструється частіше в дні після менш ніж 6 годин сну? | Дні зі виміряним сном та записом людини, короткі проти довших ночей, точний тест Фішера |
convergence (recent_changes_together, sandbox) |
Чи змінилося кілька речей за один і той самий нещодавній період? | Новий тест відсутній: групує щонайменше дві нещодавні зміни (незвичний тиждень, симптом частіше чи рідше), кожна з яких статистично підтверджена; вказує лише на те, що вони сталися разом |
Усі тести одного запуску коригуються разом (Бенджаміні-Хохберга). Знахідка statistically_supported вважається такою лише тоді, коли скориговане q-значення нижче 0.05 і зміна становить щонайменше поріг для цього вимірювання.
Чим це не є
- Не діагноз. Результати описують запис; вони ніколи не називають стан і не рекомендують зміну лікування. Кожен результат містить
safety.not_a_diagnosis = trueтаsafety.causal_claim = false. - Не причина. Зміна після нового медикаменту або два записані разом факти не є доказом того, що одне спричинило інше. Асоціації лише вказують на те, що дві події сталися приблизно одночасно; кожна містить
confounding_possibleтаnot_causal, і лише початок прийому медикаментів та сон перевіряються на наявність симптомів, а не кожна пара. Наразі лише з обліковими даними пісочниці. - Не модель ШІ та ще не пройшла клінічну перевірку. Кожне число походить від фіксованих, версіонованих статистичних правил; жодна модель ШІ не аналізує дані. Пороги для значущої зміни були встановлені за допомогою ШІ і ще не були переглянуті клініцистом; кожен результат вказує на це в
review.thresholds_reviewed_by_clinician. Рушій валідується на синтетичних пацієнтах із відомими введеними шаблонами: він знаходить те, що було введено, і мовчить, коли нічого не було. Це не клінічна валідація.
Спробуйте
Кожен проєкт пісочниці має 30 синтетичних пацієнтів, а шість з них мають вбудований шаблон. Знайдіть один з GET /fhir/R4/Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|<key>.
| Пацієнт | Що було вбудовано | Що повідомляє двигун |
|---|---|---|
| p01 Andrei Popescu | Щоденний домашній артеріальний тиск, що падає приблизно на 8/5 мм рт. ст. протягом шести місяців | trend.decreasing для систолічного (8480-6) та діастолічного (8462-4) |
| p06 Giulia Rossi | Головний біль кожні 7 днів, плюс-мінус один | recurrence.intervals для головного болю (R51) |
| p17 Ciarán Murphy | Втома приблизно в половині останніх 30 днів, порівняно з 1 днем з 12 раніше | frequency.increased для втоми (R53) |
| p19 Felix Gruber | Частота серцевих скорочень у стані спокою з годинника, приблизно на 9 уд/хв вище його звичайного рівня за останній тиждень | baseline.higher для частоти серцевих скорочень у стані спокою (40443-4) |
| p20 Ivana Horvat | Частота серцевих скорочень у стані спокою з годинника, що знижується приблизно на 16 уд/хв протягом шести місяців | trend.decreasing для частоти серцевих скорочень у стані спокою (40443-4) |
| p30 Jan Kowalczyk | Щільні дані з годинника та домашні дані без вбудованих шаблонів | немає підтримуваного виявлення: двигун залишається тихим |
Проєкти, створені до 16 жовтня 2026 року, отримують ці шаблони після скидання своїх синтетичних пацієнтів з панелі керування; скидання замінює будь-які внесені до них зміни.
curl -s https://platform.anpheros.com/v1/patients/$PATIENT/patterns?window_days=180 \
-H "Authorization: Bearer $ANPHEROS_KEY"
З TypeScript SDK (@anpheros/sdk 0.2.0 або новішої версії):
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));
За допомогою сервера MCP запитайте свого агента: "Що змінилося в записі цього пацієнта за останні шість місяців?": він викликає get_health_patterns і може продовжити з get_pattern_evidence, get_series та compare_periods. POST /v1/context додає розділ patterns для запитань про зміни та взаємозв'язки, або коли ви запитуєте про patterns потребу.
Кінцеві точки (Endpoints)
| Кінцева точка (Endpoint) | Що повертає |
|---|---|
GET /v1/patients/{id}/patterns |
результат виконання: виявлені дані, що не вдалося обчислити та чому, що було виключено через згоду; фільтри window_days (30–730), end, types, min_strength |
GET /v1/patients/{id}/patterns/{finding_id} |
одне виявлення, переобчислене для того самого вікна |
GET /v1/patients/{id}/patterns/{finding_id}/evidence |
кожен допоміжний ресурс, сторінками |
GET /v1/patients/{id}/series?code=… |
одне вимірювання як одне значення на день, з покриттям, пропусками та змінами джерела |
POST /v1/patients/{id}/patterns/compare |
одне вимірювання за два вибрані вами періоди |
Читання результату
summary_text: одне просте речення, яке безпечно показувати або цитувати.strength:strong,moderate,weakабоnot_tested. Невизначені та неперевірені результати є описами, а не доказами.window,comparison_window: періоди, що аналізувалися.evidence(до 20, розподілені за періодом) таevidence_total: ресурси, що стоять за результатом, з версією, датою, значенням та типом автора.limitations: кодовані, з текстом. Показуйте їх разом із результатом.review: чи переглядав клініцист порогові значення (наразіfalse) та звідки вони походять.method,engine_version,input_fingerprint: ті самі дані, конфігурація та версії дають однаковий результат та однаковий ідентифікатор.
Правила, які варто знати
- Спочатку згода. В рамках OAuth-дозволу рушій читає лише те, що дозволяє дозвіл; те, що він не зміг прочитати, перелічено в
omitted, без вмісту. - Ідентифікатори. Пацієнти з'являються з парним ідентифікатором вашого проєкту; ідентифікатори пошуку виводяться для кожного проєкту. Коли запис змінюється, знахідка отримує новий ідентифікатор, а старий повертає 404.
- Час. Коли час зчитування має явний зміщення (
2026-10-16T00:30:00+03:00), він враховується в день особи; час у UTC (Z) або без зміщення залишається в день UTC. Кожна знахідка вказує, який саме вtime_basis(record_offsets,partly_localабоlocal_time_unknown). Місцеві дні використовуються в записах sandbox та production; шаблони часу доби ще не обчислюються. - Виключено. Значення, написані ШІ, результати, позначені як введені з помилкою, та дати, відомі лише до місяця, не використовуються і враховуються.
- Обмеження. 30 запусків шаблонів на хвилину на обліковий запис, на додаток до звичайних 600 запитів на хвилину.
Часті запитання
Чи використовується мовна модель?
Ні. Кожне число походить із фіксованих, версіонованих статистичних методів. Будь-яка модель, розміщена або локальна, може читати результати.
Чому чітка зміна в моїх даних позначена як слабка?
Оскільки докази не витримують корекції для всіх тестів у запуску, серія коротка або шумна, або зміна нижче порогу для цього вимірювання. Знайдений результат все ще описує те, що показує запис.
Чи працює це на виробничих записах?
Так, з 16 жовтня 2026 року, але лише за згодою пацієнта OAuth, яка включає окремий дозвіл anpheros/patterns, який екран згоди показує окремим рядком. Запитуйте область дії поруч із вашими областями дії patient/…; надання без неї та будь-який виробничий ключ API призведе до помилки 403.
Пов'язане
- Сервер FHIR MCP для ШІ-агентів
- LLM-додатки та медичні дані
- ШІ-агенти та медичні дані
- API охорони здоров'я зі згодою пацієнта
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card