# Eine Gesundheits-App erstellen

> Tutorial: Anpheros als Backend für medizinische Daten einer Gesundheits-App nutzen – Patienten, Messungen, Diagnosen, Medikamente, Dokumente, Laborergebnisse, Einwilligungen, Webhooks und SDKs.

Source: https://developers.anpheros.com/de/guides/build-a-healthcare-app

Dieses Tutorial zeigt, wie eine Gesundheits- oder medizinische Anwendung die Anpheros Platform als Backend für medizinische Daten nutzen kann: wo Patientenakten gespeichert werden, wie sie gelesen und geschrieben werden, wie andere Systeme angebunden werden und wie der Patient die Kontrolle behält. Jeder Aufruf unten ist Teil der öffentlichen API ([Referenz](https://developers.anpheros.com/docs)).

## Was Sie erstellen

Eine typische patientenorientierte App – ein Tracker für chronische Erkrankungen, eine Familien-Gesundheits-App, ein Begleiter für die Fernüberwachung – muss:

1.  einen Datensatz pro Patient führen: Messungen, Zustände, Medikamente, Dokumente;
2.  diesen Datensatz als Listen und Zeitachse anzeigen;
3.  Daten von anderen Quellen (Geräte, Labore, Kliniken) akzeptieren;
4.  Teile des Datensatzes mit Zustimmung des Patienten teilen;
5.  reagieren, wenn sich etwas ändert.

Mit Anpheros behält Ihre App ihre eigenen Benutzer, Bildschirme und Geschäftslogik bei und delegiert den medizinischen Datensatz an die Plattform:

```
Mobile / web app ──► your backend ──► Anpheros Platform API ──► FHIR R4 record of each patient
                         ▲                                              │
                         └──────────── signed webhooks ◄────────────────┘
```

Ihr Backend speichert den API-Schlüssel; die App spricht mit Ihrem Backend. (Apps, die für einen Patienten handeln, der bereits einen Anpheros-Datensatz hat, verwenden stattdessen OAuth – siehe Schritt 7.)

## 1. Sandbox-Schlüssel erhalten

Die Sandbox ist Self-Service: Melden Sie sich im Dashboard (`https://platform.anpheros.com/dashboard/`) mit Google an und klicken Sie auf *Sandbox-Schlüssel erhalten*. Sandbox-Schlüssel beginnen mit `sk_test_` und können nur auf die Sandbox-Datenbank zugreifen, in der Ihr Projekt bereits eine eigene Kopie von 30 synthetischen Patienten hat.

```bash
export BASE=https://platform.anpheros.com
export KEY=sk_test_…
curl $BASE/v1/patients -H "Authorization: Bearer $KEY"
```

## 2. Patient erstellen

Jeder Benutzer Ihrer App erhält einen Patienten-Datensatz, der Ihrem Projekt gehört.

```bash
curl -X POST $BASE/v1/patients -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -H "Idempotency-Key: $(uuidgen)" \
     -d '{"given": "Elena", "family": "Ionescu", "birth_date": "1985-09-03", "gender": "female"}'
```

Die Antwort enthält den Patienten `id` (Ihre eigene Kennung für diese Person – andere Projekte sehen eine andere) und dessen `fhir` Referenz.

## 3. Messungen, Zustände und Medikamente schreiben

Geben Sie an, woher die Daten stammen, mit `author_type`: `patient`, `practitioner`, `device`, `import` oder `ai`. Wenn Sie dies weglassen, erfasst die Plattform `import`, niemals `patient` per Annahme.

```bash
# a blood-pressure reading from a connected device (LOINC panel with two components)
curl -X POST $BASE/v1/patients/$PID/observations -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -H "Idempotency-Key: $(uuidgen)" -d '{
  "code": "85354-9", "display": "Blood pressure panel", "category": "vital-signs",
  "effective_at": "2026-09-28T08:00:00Z", "author_type": "device",
  "components": [
    {"code": "8480-6", "display": "Systolic", "value": 128, "unit": "mm[Hg]"},
    {"code": "8462-4", "display": "Diastolic", "value": 82, "unit": "mm[Hg]"}
  ]}'

# a diagnosis (ICD-10 by default)
curl -X POST $BASE/v1/patients/$PID/conditions -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"code": "I10", "display": "Essential hypertension", "onset": "2024-03-01", "author_type": "practitioner"}'

# a medication (ATC by default)
curl -X POST $BASE/v1/patients/$PID/medications -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"display": "Amlodipine 5 mg", "code": "C08CA01", "dosage": "1 tablet in the morning", "start": "2024-03-01", "author_type": "patient"}'
```

Kategorien von Beobachtungen: `vital-signs`, `laboratory`, `symptom`, `activity`, `survey`, `exam`, `imaging`, `social-history`. Jeder Schreibvorgang wird als FHIR-Ressource gespeichert und erhält automatisch einen `Provenance`-Eintrag.

## 4. Dokumente speichern

```bash
# create the document, then upload the bytes
curl -X POST $BASE/v1/patients/$PID/documents -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"title": "Blood tests 2026-09-14", "kind": "lab_report", "content_type": "application/pdf", "date": "2026-09-14"}'
curl -X PUT $BASE/v1/documents/$DOC/content -H "Authorization: Bearer $KEY" -H 'content-type: application/pdf' --data-binary @report.pdf
```

Das Original ist nach dem Hochladen unveränderlich; Werte, die Sie daraus extrahieren, können mit `derived_from` darauf verweisen.

## 5. Den Datensatz zurücklesen

```bash
curl "$BASE/v1/patients/$PID/observations?category=vital-signs&limit=20" -H "Authorization: Bearer $KEY"
curl "$BASE/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $KEY"
curl "$BASE/v1/patients/$PID/timeline?from=2026-06-01" -H "Authorization: Bearer $KEY"   # everything, chronologically
```

Wenn Sie das vollständige FHIR-Modell benötigen, sind dieselben Daten unter `/fhir/R4` mit denselben IDs verfügbar ([FHIR R4 API](https://developers.anpheros.com/de/guides/fhir)).

## 6. Labore und Geräte verbinden

- **Laborberichte:** `POST /v1/patients/{id}/labs/import` mit CSV, HL7 v2 ORU^R01 oder JSON wandeln einen vollständigen Bericht in Labor-Observations mit LOINC-Codes um ([Lab connector](https://developers.anpheros.com/de/guides/lab-connector)).
- **Geräte und Wearables:** schreiben Observations mit `author_type: device` und dem LOINC-Code der Messung (Herzfrequenz, SpO₂, Schritte, Schlafdauer und andere sind in [FHIR code systems](https://developers.anpheros.com/de/guides/fhir-code-systems) aufgeführt).

## 7. Erreichen eines Datensatzes, den der Patient bereits hat (OAuth)

Wenn die Person bereits einen Datensatz in Anpheros führt (z. B. über Anpheros Daily), kann Ihre App um Zugriff bitten, anstatt einen neuen Patienten anzulegen: Registrieren Sie eine Anwendung, senden Sie die Person mit den benötigten Scopes zur Einwilligungsseite, tauschen Sie den Code gegen Tokens und rufen Sie die API mit dem Access Token auf. Der Patient wählt die Dauer und kann den Zugriff jederzeit widerrufen. Details: [Authentifizierung und OAuth](https://developers.anpheros.com/de/guides/authentication).

## 8. Auf Änderungen mit Webhooks reagieren

```bash
curl -X POST $BASE/v1/webhooks -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"url": "https://your.app/anpheros/hook", "events": ["resource.created", "consent.revoked"]}'
```

Verifizieren Sie den `Anpheros-Signature`-Header jeder Zustellung ([Webhooks](https://developers.anpheros.com/de/guides/webhooks)).

## 9. Ein SDK verwenden

Der gleiche Ablauf in TypeScript:

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

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
const { data: patients } = await anpheros.patients.list();
const vitals = await anpheros.observations.list(patients[0].id, { category: 'vital-signs', limit: 20 });
```

Ein Dart / Flutter Client mit der gleichen Struktur ist verfügbar als `anpheros_sdk` ([SDKs](https://developers.anpheros.com/de/guides/sdks)).

## Vor dem Produktivgang

- Produktionsschlüssel (`sk_live_`) werden an verifizierte Organisationen mit einem unterzeichneten Datenverarbeitungsvertrag ausgegeben.
- Lesen Sie die Seite [Sicherheit, Datenschutz und Datenresidenz](https://developers.anpheros.com/de/guides/security) und die [Limits](https://developers.anpheros.com/de/guides/limits).
- Behandeln Sie Fehler nach ihrem Typ und zitieren Sie den Header `Anpheros-Request-Id`, wenn Sie den Support kontaktieren ([Fehler](https://developers.anpheros.com/de/guides/errors)).

## Verwandte Themen

- [Erstellen einer Healthcare-API mit TypeScript](https://developers.anpheros.com/de/guides/healthcare-api-typescript): Schritt-für-Schritt-Anleitung mit Express
- [Erstellen einer Healthcare-App mit Flutter](https://developers.anpheros.com/de/guides/healthcare-app-flutter): Schritt-für-Schritt-Anleitung mit dem Dart SDK
- [Erstellen einer KI-Healthcare-App mit einem FHIR-Backend](https://developers.anpheros.com/de/guides/build-ai-healthcare-app): Schritt-für-Schritt-Anleitung in TypeScript
- [Entwickeln mit Anpheros](https://developers.anpheros.com/de/guides/build-with-anpheros)
- [Backend und Datenbank für medizinische Apps](https://developers.anpheros.com/de/guides/medical-app-backend)
- [API für medizinische Daten](https://developers.anpheros.com/de/guides/medical-data-api)
- [Softwareentwicklung im Gesundheitswesen](https://developers.anpheros.com/de/guides/healthcare-software)
- [Erstellen einer Personal Health Record (PHR)-App mit FHIR](https://developers.anpheros.com/de/guides/personal-health-record-app)
