Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
AI 에이전트용 건강 패턴 (베타)
환자 기록에서 변경된 사항과 반복되는 사항, 고정된 통계 규칙으로 계산됨: 추세, 개인의 평소 수준에서의 편차 및 증상 재발, 각 항목별 기간, 증거 및 한계; 진단 아님.
Anpheros는 고정된 통계 규칙을 사용하여 환자 기록에서 변경된 내용과 반복되는 내용을 계산하고, 각 결과와 함께 주기, 해당 결과의 기반이 되는 리소스, 메서드 버전 및 제한 사항을 애플리케이션 또는 AI 에이전트에 전달합니다. 모델은 더 이상 몇 개의 숫자로 추세를 추측할 필요가 없습니다. 추세, 주변의 불확실성 및 인용할 데이터를 직접 얻을 수 있습니다.
베타. 샌드박스에서는 모든 샌드박스 자격 증명(sk_test_… 키 및 샌드박스 OAuth 연결)과 함께 작동합니다. 프로덕션 기록에서는 별도의 anpheros/patterns 권한을 포함하는 환자의 OAuth 동의 하에서만 실행됩니다. 프로덕션 API 키는 403 오류를 반환합니다.
무엇을 찾아내는지
| 유형 | 답하는 질문 | 방법 |
|---|---|---|
trend |
측정값이 기간 동안 증가하거나 감소하고 있습니까? | Mann–Kendall을 이용한 Theil–Sen 기울기 (일일 한 개의 값, 밀집된 관찰 데이터의 주간 중앙값), 인접한 날짜가 동일할 경우 보정 |
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가 포함됩니다. 또한, 증상에 대해 테스트되는 것은 약물 시작과 수면뿐이며, 모든 쌍이 테스트되는 것은 아닙니다. 현재는 샌드박스 자격 증명으로만 가능합니다. - AI 모델이 아니며, 아직 임상 검토를 거치지 않았습니다. 모든 숫자는 고정되고 버전이 관리되는 통계 규칙에서 나옵니다. AI 모델이 데이터를 분석하지 않습니다. 의미 있는 변화에 대한 임계값은 AI 지원으로 설정되었으며 아직 임상의의 검토를 거치지 않았습니다. 각 결과에는
review.thresholds_reviewed_by_clinician에 이 내용이 명시되어 있습니다. 엔진은 알려진 패턴이 삽입된 합성 환자를 대상으로 검증됩니다. 즉, 삽입된 패턴을 찾고 아무것도 없을 때는 조용히 유지됩니다. 이것은 임상 검증이 아닙니다.
사용해 보기
모든 샌드박스 프로젝트에는 30명의 합성 환자가 있으며, 그중 6명은 미리 설정된 패턴을 가지고 있습니다. GET /fhir/R4/Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|<key>를 가진 환자를 찾아보세요.
| 환자 | 설정된 내용 | 엔진 보고 내용 |
|---|---|---|
| p01 Andrei Popescu | 매일 가정 혈압, 6개월 동안 약 8/5 mmHg 하락 | 수축기(8480-6) 및 이완기(8462-4)에 대한 trend.decreasing |
| p06 Giulia Rossi | 7일마다 두통, +/- 1일 | 두통(R51)에 대한 recurrence.intervals |
| p17 Ciarán Murphy | 지난 30일 중 절반 정도의 피로, 이전에는 12일 중 1일 정도 | 피로(R53)에 대한 frequency.increased |
| p19 Felix Gruber | 시계에서 측정한 안정 시 심박수, 지난주 평소보다 약 9 bpm 높음 | 안정 시 심박수(40443-4)에 대한 baseline.higher |
| p20 Ivana Horvat | 시계에서 측정한 안정 시 심박수, 6개월 동안 약 16 bpm 하락 | 안정 시 심박수(40443-4)에 대한 trend.decreasing |
| 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 서버를 사용하여 에이전트에게 "지난 6개월 동안 이 환자의 기록에서 무엇이 변경되었습니까?"라고 질문하세요. 그러면 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를 반환합니다.
- 시간. 읽기 시간(reading's time)에 명시적 오프셋(
2026-10-16T00:30:00+03:00)이 포함된 경우, 해당 개인의 자체 날짜로 계산됩니다. UTC 시간(Z) 또는 오프셋이 없는 시간은 UTC 날짜로 유지됩니다. 각 발견 항목은time_basis(record_offsets,partly_local또는local_time_unknown)에 어떤 시간인지 명시합니다. 로컬 날짜는 샌드박스 및 프로덕션 레코드에 사용됩니다. 시간대 패턴은 아직 계산되지 않습니다. - 제외. AI가 기록한 값, entered-in-error로 표시된 결과, 월만 알려진 날짜는 사용되지 않으며 계산에 포함됩니다.
- 제한. 분당 30개의 패턴 실행 (자격 증명당), 일반적인 분당 600개 요청 외 추가입니다.
자주 묻는 질문
언어 모델을 사용하나요?
아니요. 모든 숫자는 고정되고 버전이 관리되는 통계적 방법에서 나옵니다. 호스팅되거나 로컬에 있는 모든 모델은 결과를 읽을 수 있습니다.
제 데이터의 명확한 변경 사항이 약함으로 표시되는 이유는 무엇인가요?
증거가 실행 중인 모든 테스트에 대한 보정을 견디지 못하거나, 시리즈가 짧거나 노이즈가 많거나, 변경 사항이 해당 측정값의 임계값보다 낮기 때문입니다. 이 결과는 여전히 기록이 보여주는 것을 설명합니다.
프로덕션 레코드에서도 작동하나요?
예, 2026년 10월 16일부터 가능하지만, 별도의 anpheros/patterns 권한을 포함하는 환자의 OAuth 동의 하에서만 가능하며, 동의 화면에 별도의 줄로 표시됩니다. patient/… 스코프 옆에 해당 스코프를 요청하십시오. 해당 스코프가 없고 프로덕션 API 키가 있는 경우 403 오류가 발생합니다.
관련 자료
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card