AnpherosAnpheros PlatformDevelopers

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

AI agenti a lékařská data

Řízený přístup pro AI agenty k záznamům pacientů: OAuth rozsahy, nástroje, které agent potřebuje, audit a původ toho, co čte a zapisuje, a agenti řízení událostmi.

AI agent je program, ve kterém jazykový model krok za krokem rozhoduje, jaké akce provede — jaká data přečte, jaký nástroj zavolá, co zapíše — k dokončení úkolu. Pokud úkol zahrnuje lékařský záznam pacienta, agent potřebuje řízený přístup: měl by dosáhnout pouze na záznamy, ke kterým má povolení, pouze na jejich části, které potřebuje, zanechat stopu toho, co přečetl a označit to, co zapsal, jako vygenerované AI. Anpheros poskytuje tento řízený přístup prostřednictvím svého API; framework agenta a model jsou vaše.

Anpheros nemá žádný vestavěný runtime agenta, žádný server Model Context Protocol (MCP) a žádnou oficiální integraci s žádným frameworkem agenta nebo poskytovatelem modelu. Agenti jej používají stejně jako jakákoli aplikace: prostřednictvím REST a FHIR API nebo SDK.

Architektura

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 navrhuje akce; vaše runtime je provádí s přihlašovacími údaji, které drží. Samotný model nikdy nedrží klíč nebo token Anpheros.

Řízený přístup

Nástroje, které agent typicky potřebuje

Nástroj Volání Anpheros Poznámky
Získat kontext pro úkol POST /v1/context první volání pro většinu úkolů; rozpočtované a označené zdrojem (LLM applications and healthcare data)
Seznam posledních výsledků GET /v1/patients/{id}/observations?category=laboratory&from=… filtry: category, code, from, to
Aktivní léky GET /v1/patients/{id}/medications?status=active
Co se stalo kdy GET /v1/patients/{id}/timeline?from=… jeden chronologický seznam napříč typy
Plné FHIR detaily GET /fhir/R4/{type}?patient=… když souhrn nestačí
Standardní souhrn GET /fhir/R4/Patient/{id}/$summary balíček International Patient Summary
Vyhledat kód GET /v1/terminology/loinc?q=… přiložená podmnožina LOINC; léky přes GET /v1/search
Zaznamenat poznámku POST /v1/patients/{id}/observations s author_type: "ai" pouze s rozsahem zápisu

Specifikace OpenAPI (https://developers.anpheros.com/openapi.json) popisuje každý koncový bod a lze ji převést na definice nástrojů; TypeScript a Dart SDK lze zabalit přímo jako nástroje.

Příklad: Agent pro přípravu návštěvy se souhlasem pacienta

Pacient, který již vede záznam v Anpheros, požádá externího asistenta o přípravu otázek pro kardiologickou návštěvu. Agent potřebuje přístup ke čtení záznamu po omezenou dobu – nic víc.

1. Souhlas (OAuth 2.1 + PKCE, rozsahy SMART v2). Asistent přesměruje osobu na stránku souhlasu s nejužšími rozsahy, které stále umožňují kontext (pozorování, stavy, léky a alergie):

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. Nástroje. Runtime agenta zpřístupňuje modelu několik funkcí; každá z nich je skutečným voláním API provedeným s přístupovým tokenem:

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 }),
};

Popište je modelu v jakémkoli formátu nástrojů nebo volání funkcí, který vaše API modelu používá; model navrhne volání, váš runtime jej spustí a vrátí JSON. Model nikdy nevidí token.

3. Co platforma vynucuje. Token se dostane pouze k záznamu dané osoby a pouze k typům v rozsahu; cokoli jiného odpoví 403 (typ mimo rozsahy) nebo 404 (jiný pacient). Každé volání – včetně každého požadavku na kontext s jeho manifest_id – se objeví v přístupovém logu dané osoby pro tuto aplikaci. Pokud osoba odvolá přístup, další volání odpoví 401 a agent musí přestat; obnovovací token jej nemůže vrátit zpět.

4. Výstup. Agent vrátí otázky pro lékaře se zdroji, které použil. Nic nezapisuje zpět, protože mu nebyl udělen rozsah zápisu.

Audit a původ

Spouštění agentů na základě událostí

Webhooks umožňují agentovi spustit se, když dojde ke změně — nový laboratorní výsledek (resource.created), nový souhlas (consent.granted) — místo pravidelného dotazování. Události nesou pouze ID; agent si pak přečte, co mu jeho rozsahy dovolují. Webhooks

Pravidla návrhu, která stojí za to dodržovat

  1. Udělte agentovi nejužší možné rozsahy oprávnění, které splňují požadavky úkolu.
  2. Začínejte s kontextem, nikoli s nefiltrovanými hromadnými čteními; respektujte omitted a warnings.
  3. V odpovědi agenta uveďte zdroje dat pacienta.
  4. Nikdy nenechte agenta samostatně prezentovat diagnózu nebo měnit léčbu; takové výstupy směřujte na klinického lékaře.
  5. Zaznamenejte manifest_id každého kontextu vedle odpovědi agenta, aby osoba mohla později vidět, na čem byla odpověď založena.

Související

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