AnpherosAnpheros PlatformDevelopers

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

Data o lécích pro aplikace a AI agenty

Seznamy léků pacienta vs. znalosti o lécích: FHIR zdroje, RxNorm, ATC, openFDA a EMA zdroje a otestované spojení FHIR záznamu s RxNorm a FDA štítky.

Zdravotnický software potřebuje dva různé druhy dat o lécích: seznam léků pacienta – co tato osoba užívá, od kdy, v jaké dávce, kdo to zaznamenal – a znalosti o lécích – co produkt obsahuje, jeho oficiální označení, varování a interakce. První patří do záznamu pacienta; druhé pochází z autoritativních databází léků. Jejich záměna je důvodem, proč agenti AI uvádějí fakta o lécích z paměti modelu. Tato stránka vysvětluje obojí, zúčastněné FHIR R4 zdroje a kódové systémy, které veřejné zdroje existují v USA a EU, a funkční příklad, který spojuje seznam pacienta z FHIR záznamu s RxNorm a štítkem FDA.

Dva druhy dat o lécích

Seznam léků pacienta Znalosti o léčivech
Odpovídá na Co Ana užívá, od kdy, jak často? Co je metformin 500 mg, na co jeho příbalový leták upozorňuje?
Změny Když jej aktualizuje pacient nebo lékař Když jej aktualizuje regulátor nebo vydavatel
Nachází se v Záznamu pacienta (EHR, PHR, FHIR server) Databáze léčiv a terminologie
FHIR MedicationStatement, MedicationRequest, MedicationAdministration, Medication Většinou mimo záznam; informace o produktu mohou být samy o sobě FHIR
Kdo si to může přečíst Pouze se souhlasem pacienta Veřejné nebo licencované

Aplikace nebo agent, který odpovídá na otázku "mohu užívat ibuprofen s mým lékem na vysoký krevní tlak?", potřebuje obojí: seznam pacienta, aby věděl, o jaký lék se jedná, a zdroj znalostí o léčivech, aby věděl, co je o kombinaci známo — plus lékaře nebo lékárníka pro odpověď.

FHIR zdroje pro seznam léků

Lék je kódován: v USA pomocí RxNorm (z National Library of Medicine) a kódů produktů NDC; mezinárodně pomocí klasifikace WHO ATC; v Evropě také pomocí národních kódů produktů a stále častěji elektronických informací o produktech EMA založených na FHIR. Statement může obsahovat několik kódování pro stejný lék.

Zdroje znalostí o léčivech

Spojené státy americké

Evropská unie

Interakce jsou nejobtížnější částí. NLM ukončilo své API pro lékové interakce kolem ledna 2024 a komplexní kontrola interakcí dnes spoléhá na licencované databáze klinických znalostí. Sekce interakcí v popisku je text napsaný pro kliniky, nikoli pro kontrolu.

Spojení záznamu s daty o léčivech

Příklad načítá aktivní léky pacienta z Anpheros, překládá každý název na koncept RxNorm a načítá štítek FDA. Byl spuštěn proti lokální instanci platformy a živým API RxNorm a openFDA.

import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });

// 1. What the person takes: from their record (ATC codes, names as they were entered)
const { data: meds } = await anpheros.medications.list(patientId, { status: 'active' });

// 2. What each medicine is: RxNorm (US National Library of Medicine), free, no key
async function rxcui(name: string): Promise<string | null> {
  const r = await fetch(`https://rxnav.nlm.nih.gov/REST/approximateTerm.json?term=${encodeURIComponent(name)}&maxEntries=1`);
  const j: any = await r.json();
  const id = j.approximateGroup?.candidate?.[0]?.rxcui;
  if (!id) return null;
  // An approximate match can be an outdated concept: keep it only if RxNorm still describes it as a drug
  const props: any = await (await fetch(`https://rxnav.nlm.nih.gov/REST/rxcui/${id}/properties.json`)).json();
  return ['SCD', 'SBD', 'GPCK', 'BPCK'].includes(props.properties?.tty) ? id : null;
}

// 3. What the official label says: openFDA drug label API (US FDA), free
async function label(id: string) {
  const r = await fetch(`https://api.fda.gov/drug/label.json?search=openfda.rxcui:%22${id}%22&limit=1`);
  if (!r.ok) return null;
  const doc: any = (await r.json()).results?.[0];
  return doc && { set_id: doc.set_id, boxed_warning: doc.boxed_warning?.[0]?.slice(0, 120), has_interactions_section: !!doc.drug_interactions };
}

for (const m of meds) {
  const id = await rxcui(m.display);
  console.log(JSON.stringify({ record: { display: m.display, atc: m.code, dosage: m.dosage }, rxnorm: id, fda_label: id ? await label(id) : null }));
}

Výstup pro pacienta, který nahlásil metformin a enalapril:

{"record":{"display":"Metformin 500 mg tablet","atc":"A10BA02","dosage":"500 mg twice a day"},"rxnorm":"861007",
 "fda_label":{"set_id":"011de1a5-…","boxed_warning":"BOXED WARNING WARNING: LACTIC ACIDOSIS …","has_interactions_section":true}}
{"record":{"display":"Enalapril maleate 10 mg oral tablet","atc":"C09AA02","dosage":"10 mg once a day"},"rxnorm":"858817",
 "fda_label":{"set_id":"074fe718-…","boxed_warning":"WARNING: FETAL TOXICITY …","has_interactions_section":true}}

Co jsme se naučili při jeho spouštění. Při zadání názvu jako "Enalapril 10 mg tablet" vrátil přibližný shodu RxNorm RXCUI 328290, koncept, který RxNorm již nepopisuje, bez přiřazeného štítku. Při použití plného klinického názvu "enalapril maleate 10 mg oral tablet" vrátil 858817, aktuální klinické léčivo se štítkem. Názvy zadané lidmi jsou přibližné; zkontrolujte, na co se shoda přeloží, uložte kód, jakmile je potvrzen, a ukažte osobě, co bylo shodováno.

Pravidla pro agenty AI

  1. Nikdy nenechte model dodávat fakta o lécích z paměti. Poskytněte mu seznam pacienta ze záznamu a relevantní text z autoritativního zdroje a požádejte ho, aby je citoval.
  2. Udržujte oba zdroje viditelné. „Užíváte metformin (váš záznam, zadáno vámi 3. března)“ a „štítek FDA varuje před laktátovou acidózou (štítek nastaven 011de1a5…)" jsou odlišná tvrzení s různými vlastníky.
  3. Zúžení rozsahu. Agent, který potřebuje pouze seznam léků, by měl získat přístup pro čtení k MedicationStatement, nikoli k celému záznamu. S Anpheros je to rozsah souhlasu nebo nástroje MCP serveru pouze pro čtení.
  4. Neodpovídejte na to, co vyžaduje klinický pracovník. Interakce, změny dávkování a ukončení užívání léku patří lékárníkovi nebo lékaři; agent může otázku připravit.

Kam Anpheros zapadá

Anpheros ukládá seznam léků: MedicationStatement a MedicationAdministration s kódy ATC nebo jinými kódy, kdo každou položku zaznamenal, historii a souhlas pro jiné aplikace; API kontextu zahrnuje aktivní léky v souhrnu, který připravuje pro model, a MCP server je zpřístupňuje agentům pouze pro čtení. Obsahuje malou podmnožinu ATC (asi 50 běžných léků) pro automatické pojmenování kódů; jakýkoli jiný kód je přijat bez automatického názvu.

Není to databáze léků: neposkytuje příbalové letáky, interakce, dávkování nebo kontraindikace a dnes nepodporuje zdroje MedicationRequest ani Medication.

Často kladené dotazy

Který FHIR zdroj by měl být použit pro seznam léků?

MedicationStatement pro to, co osoba užívá nebo užívala, včetně léků hlášených pacientem. Předpisy jsou MedicationRequest; jednotlivé dávky jsou MedicationAdministration.

Existuje bezplatné API pro databázi léků?

V USA jsou zdarma RxNorm (NLM) pro identifikátory a názvy léků a openFDA pro oficiální produktové informace. V Evropě EMA a národní agentury publikují informace o produktech. Komplexní kontrola interakcí obecně vyžaduje licencovanou databázi znalostí.

Jak by měl AI agent získávat informace o lécích?

Z dvou nástrojů: jeden, který s povolením čte seznam léků pacienta z jeho záznamu, a jeden, který vyhledává v autoritativním zdroji léků. Agent by měl citovat oba a ponechat klinická rozhodnutí na profesionálovi.

Kontroluje Anpheros interakce léků?

Ne. Ukládá, co osoba užívá, s uvedením původu a souhlasu. Kontrola interakcí patří ke zdroji znalostí o lécích a klinickému lékaři.

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