# Medikamentendaten für Apps und KI-Agenten

> Patientenmedikationslisten vs. Arzneimittelwissen: FHIR-Ressourcen, RxNorm, ATC, openFDA und EMA-Quellen sowie eine getestete Verknüpfung eines FHIR-Datensatzes mit RxNorm und FDA-Labels.

Source: https://developers.anpheros.com/de/guides/medication-data-ai-agents

**Gesundheitssoftware benötigt zwei verschiedene Arten von Medikamentendaten: die Medikationsliste des Patienten – was diese Person einnimmt, seit wann, in welcher Dosis, wer es aufgezeichnet hat – und Arzneimittelwissen – was ein Produkt enthält, sein offizielles Label, Warnungen und Wechselwirkungen.** Die erste gehört in die Patientenakte; die zweite stammt aus maßgeblichen Arzneimitteldatenbanken. Wenn diese vermischt werden, geben KI-Agenten Arzneimittelinformationen aus dem Modellspeicher wieder. Diese Seite erklärt beides, die beteiligten FHIR R4-Ressourcen und Codesysteme, welche öffentlichen Quellen in den USA und der EU existieren, und ein funktionierendes Beispiel, das die Liste eines Patienten aus einem FHIR-Datensatz mit RxNorm und dem FDA-Label verknüpft.

## Zwei Arten von Medikamentendaten

| | Patientenmedikationsliste | Arzneimittelwissen |
|---|---|---|
| Antworten | Was nimmt Ana, seit wann, wie oft? | Was ist Metformin 500 mg, wovor warnt das Etikett? |
| Änderungen | Wenn der Patient oder ein Kliniker sie aktualisiert | Wenn ein Regulierungsbehörde oder Herausgeber sie aktualisiert |
| Lebt in | Die Patientenakte (EHR, PHR, FHIR-Server) | Arzneimitteldatenbanken und Terminologien |
| FHIR | `MedicationStatement`, `MedicationRequest`, `MedicationAdministration`, `Medication` | Größtenteils außerhalb der Akte; Produktinformationen können selbst FHIR sein |
| Wer darf es lesen | Nur mit Zustimmung des Patienten | Öffentlich oder lizenziert |

Eine App oder ein Agent, der die Frage "Kann ich Ibuprofen zusammen mit meiner Blutdruckpille einnehmen?" beantwortet, benötigt beides: die Liste des Patienten, um zu wissen, welche Pille gemeint ist, und eine Arzneimittelwissensquelle, um zu wissen, was über die Kombination bekannt ist – plus einen Kliniker oder Apotheker für die Antwort.

## FHIR-Ressourcen für die Medikamentenliste

- **MedicationStatement:** Das Medikament, das eine Person einnimmt, eingenommen hat oder abgesetzt hat (vom Patienten berichtet oder von einem Kliniker erfasst). Die übliche Ressource für eine PHR oder eine Abgleichliste.
- **MedicationRequest:** Eine Verschreibung oder ein Auftrag.
- **MedicationAdministration:** Eine verabreichte oder eingenommene (oder übersprungene) Dosis, nützlich für die Therapietreue.
- **Medication:** Das Produkt selbst, wenn mehr Details als ein Code benötigt werden (Inhaltsstoffe, Form, Charge).

Das Medikament wird kodiert: in den USA mit **RxNorm** (von der National Library of Medicine) und NDC-Produktcodes; international mit der WHO **ATC**-Klassifikation; in Europa auch mit nationalen Produktcodes und zunehmend mit den FHIR-basierten elektronischen Produktinformationen der EMA. Eine Aussage kann mehrere Kodierungen für dasselbe Medikament enthalten.

## Arzneimittelwissensquellen

**Vereinigte Staaten**

- [RxNorm API](https://lhncbc.nlm.nih.gov/RxNav/APIs/RxNormAPIs.html) (NLM): normalisierte Namen und Identifikatoren (RXCUI) für klinische Arzneimittel; kostenlos und mit einer Ausnahme ist keine Lizenz erforderlich.
- [openFDA drug label API](https://open.fda.gov/apis/drug/label/) (FDA): die strukturierten Produktinformationen – Indikationen, Warnhinweise, Kontraindikationen, Abschnitte zu Wechselwirkungen – durchsuchbar nach RXCUI.
- DailyMed (NLM): dieselben Informationen für den menschlichen Leser.

**Europäische Union**

- Die Europäische Arzneimittel-Agentur veröffentlicht Produktinformationen für zentral zugelassene Arzneimittel, und ihre elektronischen Produktinformationen (ePI) basieren auf FHIR. National zugelassene Produkte sind in nationalen Registern enthalten.
- ATC-Codes und definierte Tagesdosen werden vom WHO Collaborating Centre for Drug Statistics Methodology gepflegt.

**Wechselwirkungen** sind der schwierigste Teil. NLM hat seine Arzneimittel-Wechselwirkungs-API um Januar 2024 eingestellt, und eine umfassende Wechselwirkungsprüfung stützt sich heute auf lizenzierte klinische Wissensdatenbanken. Der Abschnitt zu Wechselwirkungen in einer Produktinformation ist Text für Kliniker, kein Prüfwerkzeug.

## Verknüpfen des Datensatzes mit Arzneimittelinformationen

Das Beispiel liest die aktiven Medikamente eines Patienten aus Anpheros, löst jeden Namen in ein RxNorm-Konzept auf und ruft das FDA-Label ab. Es wurde gegen eine lokale Instanz der Plattform und die Live-RxNorm- und openFDA-APIs ausgeführt.

```ts
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 }));
}
```

Ausgabe für einen Patienten, der Metformin und Enalapril angegeben hat:

```
{"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}}
```

**Was wir beim Ausführen gelernt haben.** Mit dem Namen "Enalapril 10 mg tablet" gab die ungefähre Übereinstimmung von RxNorm RXCUI 328290 zurück, ein Konzept, das RxNorm nicht mehr beschreibt, ohne ein Label dahinter. Mit dem vollständigen klinischen Namen "enalapril maleate 10 mg oral tablet" gab es 858817 zurück, ein aktuelles klinisches Medikament mit einem Label. Von Menschen eingegebene Namen sind ungefähre Angaben; überprüfen Sie, worauf eine Übereinstimmung aufgelöst wird, speichern Sie den Code, sobald er bestätigt ist, und zeigen Sie der Person, was übereingestimmt hat.

## Regeln für KI-Agenten

1. **Lassen Sie das Modell niemals Medikamentendaten aus dem Gedächtnis liefern.** Geben Sie ihm die Patientenliste aus der Akte und den relevanten Text aus einer autoritativen Quelle und bitten Sie es, diese zu zitieren.
2. **Halten Sie die beiden Quellen sichtbar.** "Sie nehmen Metformin (Ihre Akte, von Ihnen am 3. März eingegeben)" und "Das FDA-Label warnt vor Laktatazidose (Label-Set 011de1a5…)" sind unterschiedliche Aussagen mit unterschiedlichen Eigentümern.
3. **Beschränken Sie den Geltungsbereich.** Ein Agent, der nur die Medikamentenliste benötigt, sollte Lesezugriff auf `MedicationStatement` erhalten, nicht auf die gesamte Akte. Bei Anpheros ist dies ein Zustimmungsumfang (consent scope) oder die schreibgeschützten Werkzeuge des MCP-Servers.
4. **Beantworten Sie nicht, was einen Kliniker erfordert.** Interaktionen, Dosisänderungen und das Absetzen eines Medikaments gehen an einen Apotheker oder Arzt; der Agent kann die Frage vorbereiten.

## Wo Anpheros passt

Anpheros speichert die Medikamentenliste: `MedicationStatement` und `MedicationAdministration` mit ATC- oder anderen Codes, wer jeden Eintrag erfasst hat, die Historie und die Zustimmung für andere Apps; die [Context API](https://developers.anpheros.com/de/guides/ai-healthcare) enthält aktive Medikamente in der Zusammenfassung, die sie für ein Modell vorbereitet, und der [MCP Server](https://developers.anpheros.com/de/guides/mcp) stellt sie Agenten schreibgeschützt zur Verfügung. Es bündelt eine kleine ATC-Teilmenge (ca. 50 gängige Medikamente), um Codes automatisch zu benennen; jeder andere Code wird akzeptiert, ohne automatische Benennung.

Es ist keine Medikamentendatenbank: Es liefert keine Beipackzettel, Wechselwirkungen, Dosierungen oder Kontraindikationen und unterstützt derzeit keine `MedicationRequest`- oder `Medication`-Ressourcen.

## Häufig gestellte Fragen

### Welche FHIR-Ressource sollte eine Medikamentenliste verwenden?
`MedicationStatement` für das, was eine Person einnimmt oder eingenommen hat, einschließlich patientenberichteter Medikamente. Verschreibungen sind `MedicationRequest`; einzelne Dosen sind `MedicationAdministration`.

### Gibt es eine kostenlose API für Medikamentendatenbanken?
In den USA sind RxNorm (NLM) für Medikamentenidentifikatoren und -namen sowie openFDA für offizielle Produktetiketten kostenlos. In Europa veröffentlichen die EMA und nationale Agenturen Produktinformationen. Eine umfassende Interaktionsprüfung erfordert im Allgemeinen eine lizenzierte Wissensdatenbank.

### Wie sollte ein KI-Agent Medikamenteninformationen abrufen?
Von zwei Tools: eines, das die Medikamentenliste des Patienten mit Zustimmung aus dessen Akte liest, und eines, das eine maßgebliche Medikamentenquelle abfragt. Der Agent sollte beide zitieren und klinische Entscheidungen einem Fachmann überlassen.

### Prüft Anpheros Medikamenteninteraktionen?
Nein. Es speichert, was eine Person einnimmt, mit Herkunft und Zustimmung. Die Interaktionsprüfung gehört zu einer Medikamentenwissensquelle und einem Kliniker.

## Verwandte Themen

- [KI-Agenten und medizinische Daten](https://developers.anpheros.com/de/guides/ai-agents-medical-data)
- [Wie man einem KI-Agenten Zugriff auf medizinische Akten gewährt](https://developers.anpheros.com/de/guides/ai-agent-access-medical-records)
- [FHIR MCP-Server für KI-Agenten](https://developers.anpheros.com/de/guides/mcp)
- [FHIR-Codesysteme](https://developers.anpheros.com/de/guides/fhir-code-systems)
- [FHIR R4 MedicationStatement Beispiel](https://developers.anpheros.com/tools/fhir-examples/medication-statement)
