AnpherosAnpheros PlatformDevelopers

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

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

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ı

  1. Göreve tamamlanan en dar kapsamları ajana verin.
  2. Ham toplu okumalardan değil, bir bağlamdan başlayın; omitted ve warnings'a uyun.
  3. Hastanın veri kaynaklarını ajanın yanıtında gösterin.
  4. 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.
  5. 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

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy