Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
AI 代理的健康模式(测试版)
患者记录中发生的变化和重复出现的模式,由固定的统计规则计算得出:趋势、与个人通常水平的偏差以及症状复发,每种都有其周期、证据和局限性;非诊断。
Anpheros 通过固定的统计规则计算患者记录中发生的变化以及可复现的模式,并将每项发现及其周期、支持资源、方法版本和局限性提供给您的应用程序或 AI 代理。 模型不再需要从少量数字中猜测趋势:它会获得趋势、围绕趋势的不确定性以及可引用的数据。
Beta 版。在沙盒环境中,它可与任何沙盒凭证(sk_test_… 密钥和沙盒 OAuth 连接)配合使用。在生产记录上,它仅在患者的 OAuth 同意下运行,该同意包含单独的 anpheros/patterns 权限;生产 API 密钥将收到 403 错误。
发现内容
| 类型 | 回答的问题 | 方法 |
|---|---|---|
trend |
在指定时间窗口内,测量值是上升还是下降? | Theil–Sen 斜率结合 Mann–Kendall 测试(每天一个值,密集观察数据使用每周中位数),当相邻日期相同时进行校正 |
trend (change_between_results) |
具有两到五次结果的实验室检测结果如何变化? | 第一次和最后一次结果,以及最新结果与报告的参考范围进行比较;描述性说明,非测试 |
trend (event_rate_change) |
症状记录的频率是增加还是减少? | 记录了任何内容的日子的症状天数,最近 30 天与之前的 90 天进行比较,精确检验 |
baseline_deviation |
过去一周对这个人来说是否不寻常? | 最近 7 天与第 8-60 天进行比较,Mann–Whitney 检验或自相关调整的均值差 |
recurrence |
症状发作是否以规律的间隔复发? | 症状发作开始之间的间隔,种子蒙特卡洛模拟与随机放置的症状发作进行比较 |
association (around_medication_start, sandbox) |
从开始服用药物起,症状记录的频率是增加还是减少? | 从开始服用药物后的 30 天内的症状天数与之前的最多 90 天进行比较,精确检验 |
association (after_short_sleep, sandbox) |
在睡眠少于 6 小时的日子里,症状是否更频繁地被记录? | 记录了睡眠和本人记录的日子,短睡眠与长睡眠进行比较,Fisher 精确检验 |
convergence (recent_changes_together, sandbox) |
在最近的同一时期是否发生了几件事情的变化? | 无新测试:将至少两个近期变化(不寻常的一周,症状频率增减)进行分组,每个变化都有统计学支持;仅说明它们同时发生 |
一次运行的所有测试将一起进行校正(Benjamini–Hochberg)。当校正后的 q 值低于 0.05 且 变化至少达到该测量值的阈值时,才算作 statistically_supported 发现。
它不是什么
- 不是诊断。 发现描述的是记录,而不是命名疾病或建议更改治疗方案。每个发现都带有
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 mmHg | trend.decreasing 收缩压 (8480-6) 和舒张压 (8462-4) |
| p06 Giulia Rossi | 每 7 天一次头痛,误差一天左右 | recurrence.intervals 头痛 (R51) |
| p17 Ciarán Murphy | 过去 30 天约有一半时间感到疲劳,而之前是每 12 天一次 | frequency.increased 疲劳 (R53) |
| p19 Felix Gruber | 手表记录的静息心率,比上周的正常水平高约 9 bpm | baseline.higher 静息心率 (40443-4) |
| p20 Ivana Horvat | 手表记录的静息心率,六个月内下降约 16 bpm | trend.decreasing 静息心率 (40443-4) |
| p30 Jan Kowalczyk | 致密的手表和家庭数据,无预设内容 | 无支持的发现:引擎保持静默 |
在 2026 年 10 月 16 日之前创建的项目,在从仪表板重置其合成患者后将获得这些模式;重置将替换对其所做的任何更改。
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 需求时。
接口
| 接口 | 返回内容 |
|---|---|
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:相同的数据、配置和版本会产生相同的结果和相同的 ID。
须知事項
- 优先考虑同意。 在 OAuth 授权下,引擎仅读取授权允许的内容;无法读取的内容会在
omitted中列出,但无内容。 - ID。 患者会显示您项目的成对 ID;查找 ID 是按项目派生的。当记录更改时,一个查找会获得一个新 ID,旧 ID 会返回 404。
- 时间。 当读取的时间带有明确的偏移量(
2026-10-16T00:30:00+03:00)时,它会根据个人的本地时间计算;UTC 时间(Z)或无偏移量的时间则按 UTC 时间计算。每个查找会在time_basis中说明是哪个(record_offsets、partly_local或local_time_unknown)。本地时间用于沙盒和生产记录;尚未计算一天中的时间模式。 - 排除项。 AI 写入的值、标记为“输入错误”的结果以及仅知道月份的日期不会被使用,但会被计数。
- 限制。 每个凭证每分钟 30 次模式运行,外加通常的每分钟 600 次请求。
常见问题解答
是否使用语言模型?
否。每个数字都来自固定的、版本化的统计方法。任何模型,无论是托管的还是本地的,都可以读取结果。
为什么我的数据中一个明显的更改被标记为“弱”?
因为证据在所有测试的校正后仍然存在,但序列很短或有噪声,或者更改低于该测量的阈值。该发现仍然描述了记录所显示的内容。
是否适用于生产记录?
是的,从 2026 年 10 月 16 日开始,但前提是患者的 OAuth 同意中包含单独的 anpheros/patterns 权限,该权限在同意屏幕上单独显示一行。在您的 patient/… 范围旁边请求该范围;没有该范围的授权以及任何生产 API 密钥将收到 403 错误。
相关资源
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card