Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Údaje o liekoch pre aplikácie a AI agentov
Zoznamy liekov pacienta verzus znalosti o liekoch: FHIR zdroje, RxNorm, ATC, zdroje openFDA a EMA, a otestované spojenie FHIR záznamu s RxNorm a FDA štítkami.
Zdravotnícky softvér potrebuje dva rôzne druhy liekových dát: zoznam liekov pacienta — čo táto osoba užíva, od kedy, v akej dávke, kto to zaznamenal — a znalosti o liekoch — čo produkt obsahuje, jeho oficiálny štítok, varovania a interakcie. Prvé patrí do záznamu pacienta; druhé pochádza z autoritatívnych databáz liekov. Ich zmiešanie je dôvodom, prečo AI agenti uvádzajú fakty o liekoch z pamäte modelu. Táto stránka vysvetľuje obe, zúčastnené FHIR R4 zdroje a kódové systémy, ktoré verejné zdroje existujú v USA a EÚ, a funkčný príklad, ktorý spája zoznam pacienta z FHIR záznamu s RxNorm a FDA štítkom.
Dva druhy údajov o liekoch
| Zoznam liekov pacienta | Informácie o lieku | |
|---|---|---|
| Odpovede | Čo Ana užíva, odkedy, ako často? | Čo je metformín 500 mg, na čo upozorňuje jeho príbalový leták? |
| Zmeny | Keď ho aktualizuje pacient alebo lekár | Keď ho aktualizuje regulátor alebo vydavateľ |
| Nachádza sa v | Zázname pacienta (EHR, PHR, FHIR server) | Databázy liekov a terminológie |
| FHIR | MedicationStatement, MedicationRequest, MedicationAdministration, Medication |
Väčšinou mimo záznamu; informácie o produkte môžu byť samy osebe FHIR |
| Kto si to môže prečítať | Len s pacientovým súhlasom | Verejne alebo na základe licencie |
Aplikácia alebo agent, ktorý odpovedá na otázku „Môžem užívať ibuprofén s mojimi liekmi na krvný tlak?“, potrebuje oboje: zoznam pacienta, aby vedel, o aký liek ide, a zdroj informácií o lieku, aby vedel, čo je o kombinácii známe – plus lekára alebo lekárnika pre samotnú odpoveď.
FHIR zdroje pre zoznam liekov
- MedicationStatement: osoba užíva, užívala alebo prestala užívať liek (hlásené pacientom alebo zaznamenané lekárom). Bežný zdroj pre PHR alebo zoznam na reconciliáciu.
- MedicationRequest: predpis alebo objednávka.
- MedicationAdministration: podaná alebo užitá (alebo vynechaná) dávka, užitočné pre adherenciu.
- Medication: samotný produkt, ak je potrebných viac detailov ako kód (zložky, forma, šarža).
Lieky sú kódované: v USA pomocou RxNorm (z National Library of Medicine) a NDC produktových kódov; medzinárodne pomocou klasifikácie WHO ATC; v Európe tiež pomocou národných produktových kódov a čoraz častejšie elektronických informácií o produktoch EMA založených na FHIR. Vyhlásenie môže niesť niekoľko kódovaní pre ten istý liek.
Zdroje liekových poznatkov
Spojené štáty americké
- RxNorm API (NLM): normalizované názvy a identifikátory (RXCUI) pre klinické lieky; bezplatné a s jednou výnimkou nevyžaduje licenciu.
- openFDA drug label API (FDA): štruktúrované produktové štítky — indikácie, upozornenia v rámčeku, kontraindikácie, sekcie liekových interakcií — vyhľadávateľné podľa RXCUI.
- DailyMed (NLM): rovnaké štítky na čítanie pre ľudí.
Európska únia
- Európska lieková agentúra zverejňuje informácie o produktoch pre centrálne autorizované lieky a jej elektronické informácie o produkte (ePI) sú založené na FHIR. Národne autorizované produkty sú v národných registroch.
- ATC kódy a definované denné dávky spravuje WHO Collaborating Centre for Drug Statistics Methodology.
Interakcie sú najťažšou časťou. NLM ukončil podporu svojho API pre liekové interakcie okolo januára 2024 a komplexná kontrola interakcií sa dnes spolieha na licencované klinické znalostné bázy. Sekcia interakcií v štítku je text napísaný pre klinických lekárov, nie kontrolný nástroj.
Spojenie záznamu s liekovými znalosťami
Príklad číta aktívne lieky pacienta z Anpheros, rozlíši každý názov na RxNorm koncept a získa FDA štítok. Bol spustený proti lokálnej inštancii platformy a živým RxNorm a openFDA API.
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 pre pacienta, ktorý hlásil metformín 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}}
Čo sme sa naučili pri jeho spustení. Pri názve napísanom ako "Enalapril 10 mg tablet", RxNorm aproximatívne zhodnotenie vrátilo RXCUI 328290, koncept, ktorý RxNorm už nepopisuje, bez štítku. S plným klinickým názvom "enalapril maleate 10 mg oral tablet" vrátil 858817, aktuálny klinický liek so štítkom. Názvy zadané ľuďmi sú aproximatívne; skontrolujte, na čo sa zhodnotenie rozlíši, uložte kód po jeho potvrdení a ukážte osobe, čo bolo zhodnotené.
Pravidlá pre AI agentov
- Nikdy nedovoľte modelu poskytovať informácie o liekoch z pamäte. Poskytnite mu zoznam pacienta zo záznamu a relevantný text z autoritatívneho zdroja a požiadajte ho, aby ich citoval.
- Udržujte oba zdroje viditeľné. "Užívate metformín (váš záznam, zadaný vami 3. marca)" a "štítok FDA varuje pred laktátovou acidózou (štítok nastavený na 011de1a5…)" sú odlišné tvrdenia s odlišnými vlastníkmi.
- Zúžte rozsahy. Agent, ktorý potrebuje iba zoznam liekov, by mal mať prístup na čítanie k
MedicationStatement, nie k celému záznamu. S Anpherosom je to rozsah súhlasu alebo nástroje na čítanie iba v rámci MCP servera. - Neodpovedajte na to, čo vyžaduje lekár. Interakcie, zmeny dávkovania a ukončenie užívania lieku patria lekárnikovi alebo lekárovi; agent môže pripraviť otázku.
Kam Anpheros zapadá
Anpheros ukladá zoznam liekov: MedicationStatement a MedicationAdministration s ATC alebo inými kódmi, kto zaznamenal každú položku, históriu a súhlas pre iné aplikácie; API kontextu zahŕňa aktívne lieky v súhrne, ktorý pripravuje pre model, a MCP server ich sprístupňuje agentom iba na čítanie. Obsahuje malú podmnožinu ATC (asi 50 bežných liekov) na automatické pomenovanie kódov; akýkoľvek iný kód je akceptovaný bez automatického názvu.
Nie je to databáza liekov: neposkytuje príbalové letáky, interakcie, dávkovanie ani kontraindikácie a dnes nepodporuje zdroje MedicationRequest ani Medication.
Často kladené otázky
Ktorý FHIR zdroj by mal byť použitý pre zoznam liekov?
MedicationStatement pre to, čo osoba užíva alebo užívala, vrátane liekov nahlásených pacientom. Predpisy sú MedicationRequest; jednotlivé dávky sú MedicationAdministration.
Existuje bezplatné API pre databázu liekov?
V USA sú RxNorm (NLM) pre identifikátory a názvy liekov a openFDA pre oficiálne produktové štítky bezplatné. V Európe EMA a národné agentúry zverejňujú informácie o produktoch. Komplexná kontrola interakcií vo všeobecnosti vyžaduje licencovanú znalostnú bázu.
Ako by mal AI agent získať informácie o liekoch?
Z dvoch nástrojov: jeden, ktorý si prečíta zoznam liekov pacienta z jeho záznamu so súhlasom, a jeden, ktorý vyhľadá autoritatívny zdroj liekov. Agent by mal citovať oba a klinické rozhodnutia nechať na profesionála.
Kontroluje Anpheros interakcie liekov?
Nie. Ukladá, čo osoba užíva, s uvedením pôvodu a súhlasu. Kontrola interakcií patrí k zdroju znalostí o liekoch a ku klinickému lekárovi.
Súvisiace
- AI agenti a lekárske dáta
- Ako udeliť AI agentovi prístup k lekárskym záznamom
- FHIR MCP server pre AI agentov
- FHIR kódové systémy
- Príklad FHIR R4 MedicationStatement
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card