Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Gyógyszeradatok alkalmazásoknak és AI ügynököknek
Beteg gyógyszerlisták vs. gyógyszerismeret: FHIR erőforrások, RxNorm, ATC, openFDA és EMA források, valamint egy FHIR rekord és RxNorm és FDA címkék tesztelt összekapcsolása.
Az egészségügyi szoftvereknek kétféle gyógyszeradatra van szükségük: a beteg gyógyszerlistájára – mit szed ez a személy, mióta, milyen dózisban, ki rögzítette – és a gyógyszerismeretre – mit tartalmaz egy termék, annak hivatalos címkéje, figyelmeztetések és kölcsönhatások. Az előbbi a beteg rekordjába tartozik; az utóbbi hiteles gyógyszeradatbázisokból származik. Ezek összekeverése az oka annak, hogy az AI-ügynökök a modell memóriájából származó gyógyszerinformációkat közölnek. Ez az oldal mindkettőt elmagyarázza, az érintett FHIR R4 erőforrásokat és kódrendszereket, az USA-ban és az EU-ban létező nyilvános forrásokat, valamint egy működő példát, amely egy FHIR rekordból származó beteglistát összekapcsol az RxNormmal és az FDA címkével.
Kétféle gyógyszeradat
| Beteg gyógyszerlistája | Gyógyszerismeret | |
|---|---|---|
| Válaszok | Mit szed Ana, mióta, milyen gyakran? | Mi a metformin 500 mg, mire figyelmeztet a címkéje? |
| Változások | Amikor a beteg vagy egy orvos frissíti | Amikor egy szabályozó vagy kiadó frissíti |
| Hol található | A beteg rekordjában (EHR, PHR, FHIR szerver) | Gyógyszeradatbázisok és terminológiák |
| FHIR | MedicationStatement, MedicationRequest, MedicationAdministration, Medication |
Többnyire a rekordon kívül; a termékinformáció maga is lehet FHIR |
| Ki olvashatja | Csak a beteg beleegyezésével | Nyilvános vagy licencelt |
Egy olyan alkalmazás vagy ügynök, amely arra válaszol, hogy "szedhetek-e ibuprofent a vérnyomáscsökkentő tablettám mellé?", mindkettőre szüksége van: a beteg listájára, hogy tudja, melyik tablettáról van szó, és egy gyógyszerismereti forrásra, hogy tudja, mi ismert a kombinációról – plusz egy orvosra vagy gyógyszerészre a válaszhoz.
FHIR erőforrások a gyógyszerlistához
- MedicationStatement: a személy szedi, szedett vagy abbahagyott egy gyógyszert (beteg által jelentett vagy klinikus által rögzített). A szokásos erőforrás PHR vagy egyeztetési listához.
- MedicationRequest: egy recept vagy rendelés.
- MedicationAdministration: egy adag beadva vagy bevéve (vagy kihagyva), hasznos a betartás szempontjából.
- Medication: maga a termék, ha a kódnál több részletre van szükség (összetevők, forma, tétel).
A gyógyszer kódolva van: az USA-ban RxNorm (a National Library of Medicine-től) és NDC termékkódokkal; nemzetközileg a WHO ATC osztályozásával; Európában nemzeti termékkódokkal és egyre inkább az EMA FHIR-alapú elektronikus termékinformációival. Egy állítás több kódolást is tartalmazhat ugyanarra a gyógyszerre.
Gyógyszerismereti források
Amerikai Egyesült Államok
- RxNorm API (NLM): normalizált nevek és azonosítók (RXCUI) klinikai gyógyszerekhez; ingyenes, és egy kivétellel nem igényel licencet.
- openFDA drug label API (FDA): a strukturált termékcímkék — indikációk, dobozolt figyelmeztetések, ellenjavallatok, gyógyszerkölcsönhatások szekciók — RXCUI alapján kereshetők.
- DailyMed (NLM): ugyanazok a címkék emberek számára olvasható formában.
Európai Unió
- Az Európai Gyógyszerügynökség teszi közzé a központilag engedélyezett gyógyszerek termékinformációit, és az elektronikus termékinformációja (ePI) FHIR alapú. A nemzeti engedéllyel rendelkező termékek nemzeti nyilvántartásokban találhatók.
- Az ATC kódokat és a meghatározott napi adagokat a WHO Gyógyszerstatisztikai Módszertani Együttműködő Központja tartja karban.
Kölcsönhatások a legnehezebb rész. Az NLM 2024 januárja körül nyugdíjazta gyógyszer-gyógyszer kölcsönhatási API-ját, és a kimerítő kölcsönhatás-ellenőrzés ma már licencelt klinikai tudásbázisokra támaszkodik. Egy címke kölcsönhatások szekciója orvosoknak írt szöveg, nem pedig egy ellenőrző.
Rekordok összekapcsolása gyógyszertudással
A példa a beteg aktív gyógyszereit olvassa be az Anpherosból, minden nevet RxNorm koncepcióra old fel, és lekéri az FDA címkét. A platform helyi példányán, valamint az élő RxNorm és openFDA API-kon futott.
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 }));
}
Kimenet egy olyan beteg esetében, aki metformint és enalaprilt jelentett:
{"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}}
Amit futtatás közben tanultunk. Az "Enalapril 10 mg tablet" néven az RxNorm közelítő találata az RXCUI 328290-et adta vissza, egy olyan koncepciót, amelyet az RxNorm már nem ír le, és nincs hozzá címke. A teljes klinikai névvel, az "enalapril maleate 10 mg oral tablet" néven, a 858817-et adta vissza, egy jelenlegi klinikai gyógyszert címkével. Az emberek által beírt nevek közelítőek; ellenőrizze, mire oldódik fel egy találat, tárolja a kódot, amint megerősítést nyert, és mutassa meg a személynek, mi lett párosítva.
Szabályok AI ügynökök számára
- Soha ne engedje meg a modellnek, hogy gyógyszerinformációkat memóriából adjon meg. Adja meg a beteg listáját a rekordból és a releváns szöveget egy hiteles forrásból, és kérje meg, hogy hivatkozzon rájuk.
- Tartsa láthatóan a két forrást. A „Szed metformint (a rekordod, amit március 3-án adtál meg)” és „az FDA címke figyelmeztet a tejsavas acidózisra (címke beállítva 011de1a5…)” eltérő állítások, eltérő tulajdonosokkal.
- Szűkítse a hatóköröket. Egy olyan ügynök, akinek csak a gyógyszerlistára van szüksége, olvasási hozzáférést kapjon a
MedicationStatement-hez, nem a teljes rekordhoz. Az Anpheros esetében ez egy hozzájárulási hatókör vagy az MCP szerver csak olvasható eszközei. - Ne válaszoljon olyan kérdésekre, amelyekhez orvosra van szükség. Interakciók, dózismódosítások és gyógyszer abbahagyása gyógyszerészhez vagy orvoshoz tartozik; az ügynök előkészítheti a kérdést.
Hol helyezkedik el az Anpheros
Az Anpheros tárolja a gyógyszerlistát: MedicationStatement és MedicationAdministration ATC vagy más kódokkal, ki rögzítette az egyes tételeket, a történetet és a hozzájárulást más alkalmazások számára; a kontext API tartalmazza az aktív gyógyszereket az összefoglalóban, amelyet egy modell számára készít, és az MCP szerver csak olvasható módon teszi elérhetővé azokat az ügynökök számára. Tartalmaz egy kis ATC alhalmazt (körülbelül 50 gyakori gyógyszert) a kódok automatikus elnevezéséhez; minden más kód elfogadásra kerül, automatikus név nélkül.
Nem gyógyszeradatbázis: nem ad meg címkéket, interakciókat, adagolást vagy ellenjavallatokat, és jelenleg nem támogatja a MedicationRequest vagy Medication erőforrásokat.
Gyakran ismételt kérdések
Melyik FHIR erőforrást kell használni a gyógyszerlistához?
A MedicationStatement erőforrást arra használjuk, amit egy személy szed vagy szedett, beleértve a beteg által jelentett gyógyszereket is. A vények MedicationRequest erőforrásba tartoznak; az egyes dózisok pedig MedicationAdministration erőforrásba.
Van ingyenes gyógyszeradatbázis API?
Az USA-ban az RxNorm (NLM) a gyógyszerazonosítókhoz és nevekhez, az openFDA pedig a hivatalos termékcímkékhez ingyenes. Európában az EMA és a nemzeti ügynökségek teszik közzé a termékinformációkat. Az átfogó interakcióellenőrzés általában licencelt tudásbázist igényel.
Hogyan szerezzen gyógyszerinformációt egy AI ügynök?
Két eszközből: egy, amely a beteg beleegyezésével elolvassa a beteg gyógyszerlistáját a rekordjából, és egy, amely egy hiteles gyógyszerforrást keres fel. Az ügynöknek mindkettőt meg kell említenie, és a klinikai döntéseket szakemberre kell bíznia.
Az Anpheros ellenőrzi a gyógyszerinterakciókat?
Nem. Tárolja, hogy mit szed egy személy, származási adatokkal és beleegyezéssel. Az interakcióellenőrzés egy gyógyszertudásforráshoz és egy klinikushoz tartozik.
Kapcsolódó
- AI ügynökök és orvosi adatok
- Hogyan adjunk hozzáférést egy AI ügynöknek orvosi nyilvántartásokhoz
- FHIR MCP szerver AI ügynökök számára
- FHIR kódrendszerek
- FHIR R4 MedicationStatement példa
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card