Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Yapay Zeka Araçları ve Tıbbi Veriler
Yapay zeka araçlarının hasta kayıtlarına kontrollü erişimi: OAuth kapsamları, bir aracın ihtiyaç duyduğu araçlar, denetim ve okuduğu ve yazdığı şeylerin kökeni ve olay güdümlü araçlar.
Yapay zeka ajanı, bir dil modelinin bir görevi tamamlamak için adım adım hangi eylemleri gerçekleştireceğine karar verdiği bir programdır — hangi veriyi okuyacağı, hangi aracı çağıracağı, ne yazacağı. Görev, hastanın tıbbi kaydını içerdiğinde, ajanın kontrollü erişime ihtiyacı vardır: yalnızca izin verilen kayıtlara, yalnızca ihtiyaç duyduğu kısımlarına ulaşmalı, okuduğu şeylerin izini bırakmalı ve yazdığı şeyleri yapay zeka tarafından oluşturulmuş olarak işaretlemelidir. Anpheros, bu kontrollü erişimi API'si aracılığıyla sağlar; ajan çerçevesi ve model sizindir.
Anpheros'un yerleşik bir ajan çalışma zamanı, Model Bağlam Protokolü (MCP) sunucusu ve herhangi bir ajan çerçevesi veya model sağlayıcısıyla resmi bir entegrasyonu yoktur. Ajanlar, herhangi bir uygulama gibi kullanır: REST ve FHIR API veya SDK'lar aracılığıyla.
Mimari
Patient ── grants access (OAuth scopes, duration) ────────────────┐
▼
Agent runtime (your code, any framework) ── tools ──► Anpheros API ──► the patient's FHIR record
│ ▲ │
│ └── context, search results ◄───────┘ every call: scope checks + access log
▼
The model you choose (hosted or local) ── plans the next step
Model eylemleri önerir; çalışma zamanınız, sahip olduğu kimlik bilgileriyle bunları yürütür. Modelin kendisi hiçbir zaman bir Anpheros anahtarı veya belirteci tutmaz.
Kontrollü Erişim
- Kimlerin Kayıtları. Bir API anahtarıyla, aracınız projenizin oluşturduğu hastaları görür. Birinin mevcut kaydı üzerinde işlem yapmak için, o kişiden bir OAuth izni alması gerekir — tek bir hasta için, 30 ila 365 gün boyunca.
- Hangi Veriler. Kapsamlar, kaynak türlerini ve eylemleri sınırlar, isteğe bağlı olarak bir kategoriye göre:
patient/Observation.rs?category=laboratory, bir aracının yalnızca laboratuvar sonuçlarını okumasını ve aramasını sağlar, başka hiçbir şeyi değil. Bir bağlam oluşturmak için, iznin gözlemler, durumlar, ilaçlar ve alerjiler okunmasına izin vermesi gerekir (örneğinpatient/*.rs). - Varsayılan Olarak Salt Okunur. Yazma kapsamlarını yalnızca aracının bir şey kaydetmesi amaçlandığında verin.
- Geri Alınabilir. Kişi izni istediği zaman geri alabilir; aracının bir sonraki çağrısı reddedilir.
Bir ajanın tipik olarak ihtiyaç duyduğu araçlar
| Araç | Anpheros çağrısı | Notlar |
|---|---|---|
| Bir görev için bağlam alma | POST /v1/context |
çoğu görev için ilk çağrı; bütçelenmiş ve kaynak etiketli (LLM uygulamaları ve sağlık verileri) |
| Son sonuçları listeleme | GET /v1/patients/{id}/observations?category=laboratory&from=… |
filtreler: category, code, from, to |
| Aktif ilaçlar | GET /v1/patients/{id}/medications?status=active |
|
| Ne zaman ne oldu | GET /v1/patients/{id}/timeline?from=… |
türler arasında tek bir kronolojik liste |
| Tam FHIR detayı | GET /fhir/R4/{type}?patient=… |
özet yeterli olmadığında |
| Standart bir özet | GET /fhir/R4/Patient/{id}/$summary |
International Patient Summary paketi |
| Bir kodu arama | GET /v1/terminology/loinc?q=… |
paketlenmiş LOINC alt kümesi; ilaçlar GET /v1/search aracılığıyla |
| Bir not kaydetme | POST /v1/patients/{id}/observations ile author_type: "ai" |
yalnızca yazma kapsamıyla |
OpenAPI spesifikasyonu (https://developers.anpheros.com/openapi.json), her uç noktayı açıklar ve araç tanımlarına dönüştürülebilir; TypeScript ve Dart SDK'ları doğrudan araç olarak sarılabilir.
Örnek: Hasta onayı ile bir ziyaret hazırlık ajanı
Anpheros'ta zaten bir kaydı bulunan bir hasta, kardiyoloji ziyareti için sorular hazırlaması amacıyla üçüncü taraf bir asistandan yardım ister. Ajanın, kayıtlarına sınırlı bir süre için okuma erişimine ihtiyacı vardır - bundan fazlası değil.
1. Onay (OAuth 2.1 + PKCE, SMART v2 kapsamları). Asistan, kişiyi, bağlamı (gözlemler, durumlar, ilaçlar ve alerjiler) sağlayan en dar kapsamlarla onay sayfasına yönlendirir:
import { Anpheros, OAuthAuth, OAuthFlow, generatePkce } from '@anpheros/sdk';
const flow = new OAuthFlow({ baseUrl: 'https://platform.anpheros.com', clientId: CLIENT_ID, redirectUri: REDIRECT_URI });
const pkce = await generatePkce();
const url = flow.authorizeUrl({
scopes: ['patient/Observation.rs', 'patient/Condition.rs', 'patient/MedicationStatement.rs',
'patient/AllergyIntolerance.rs', 'offline_access'],
state, pkce, purpose: 'treatment',
});
// … the person chooses the record and the duration (30–365 days) and allows; on the callback:
const tokens = await flow.exchange(code, pkce);
const anpheros = new Anpheros({ auth: new OAuthAuth({ tokens, onRefresh: flow.refresh }) });
const patient = tokens.patient!; // this application's own (pairwise) id for the person
2. Araçlar. Ajan çalışma zamanı, modele birkaç işlev sunar; her biri, erişim belirteci ile yapılan gerçek bir API çağrısıdır:
const tools = {
// POST /v1/context — relevant sections, within a budget, labelled with author type and source
get_context: (a: { question: string }) =>
anpheros.context.build({ patient, task: 'prepare a cardiology visit', question: a.question, budget_tokens: 2000, format: 'text' }),
// GET /v1/patients/{id}/observations?category=laboratory&code=…&from=…
list_lab_results: (a: { code?: string; from?: string }) =>
anpheros.observations.list(patient, { category: 'laboratory', code: a.code, from: a.from, limit: 20 }),
// GET /v1/patients/{id}/timeline?from=…
get_timeline: (a: { from: string }) => anpheros.timeline.list(patient, { from: a.from, limit: 50 }),
};
Bunları, model API'nizin kullandığı herhangi bir araç veya işlev çağırma biçiminde modele açıklayın; model bir çağrı önerir, çalışma zamanınız onu çalıştırır ve JSON'u döndürür. Model hiçbir zaman belirteci görmez.
3. Platformun zorunlu kıldıkları. Belirteç yalnızca o kişiye ait kayda ve yalnızca kapsam içindeki türlere ulaşır; bunun dışındaki her şey 403 (kapsam dışı bir tür) veya 404 (başka bir hasta) ile yanıtlanır. Her çağrı — manifest_id ile birlikte her bağlam isteği dahil — bu uygulama için kişinin erişim günlüğünde görünür. Kişi erişimi iptal ederse, bir sonraki çağrı 401 ile yanıtlanır ve ajan durmak zorundadır; yenileme belirteci onu geri getiremez.
4. Çıktı. Ajan, kullandığı kaynaklarla birlikte doktor için sorular döndürür. Geriye hiçbir şey yazmaz, çünkü yazma kapsamı verilmemiştir.
Denetim ve Kaynak Bilgisi
- Aracının yaptığı her çağrı, kayda bir erişimdir ve uygulamanızın hasta erişim günlüğünde görünür — her bağlam isteği de dahil olmak üzere, bu istek aynı zamanda kullanılan bölümlerin ve kaynakların bir manifestosunu da saklar.
- Aracının yazdığı her şey
Provenance'te Yapay Zeka tarafından yazılmış olarak kaydedilir. Daha sonra bir bağlam oluşturulduğunda, yapay zeka tarafından yazılan değerlerai_notesaltında listelenir, klinik gerçeklerden ayrı olarak, böylece bir aracı kendi önceki çıktısını kanıt olarak göstermez.
Olaylardan ajan başlatma
Webhook'lar, bir ajanın yoklama yapmak yerine bir şey değiştiğinde (yeni bir laboratuvar sonucu (resource.created), yeni bir onay (consent.granted)) çalışmasını sağlar. Olaylar yalnızca kimlikler taşır; ajan daha sonra kapsamlarının izin verdiği bilgileri okur. Webhook'lar
Saklanmaya Değer Tasarım Kuralları
- Göreve tamamlanan en dar kapsamları ajana verin.
- Ham toplu okumalardan değil, bir bağlamdan başlayın;
omittedvewarnings'a uyun. - Hastanın veri kaynaklarını ajanın yanıtında gösterin.
- Asla ajanın kendi başına bir teşhis sunmasına veya bir tedaviyi değiştirmesine izin vermeyin; bu tür çıktıları bir klinisyene yönlendirin.
- Bir kişinin daha sonra yanıtın neye dayandığını görebilmesi için, her bağlamın
manifest_id'ini ajanın yanıtının yanında günlüğe kaydedin.
İlgili Kaynaklar
- Bir Yapay Zeka Aracına Tıbbi Kayıtlara Erişim Nasıl Verilir: Python ile adım adım eğitim
- Yapay Zeka Araçları İçin FHIR MCP Sunucusu
- Yapay Zeka Sağlık Uygulamaları
- LLM Uygulamaları ve Sağlık Verileri
- Yapılandırılmış Verilerle Tıbbi Sohbet Botu Nasıl Oluşturulur
- Onay ve Erişim Modeli
- Kimlik Doğrulama ve OAuth
- Sağlık Uygulamaları ve Yapay Zeka Araçları İçin İlaç Verileri: hastanın listesi ve ilaç bilgi kaynakları
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card