# Vytvořte zdravotnickou aplikaci

> Návod: Použijte Anpheros jako backend pro zdravotnická data ve vaší aplikaci — pacienti, měření, diagnózy, léky, dokumenty, laboratorní výsledky, souhlasy, webhooks a SDK.

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

Tento návod ukazuje, jak může zdravotnická nebo lékařská aplikace použít Anpheros Platform jako svůj backend pro zdravotnická data: kde jsou uloženy záznamy pacientů, jak se čtou a zapisují, jak jsou propojeny další systémy a jak si pacient udržuje kontrolu. Každý níže uvedený volání je součástí veřejného API ([reference](https://developers.anpheros.com/docs)).

## Co budujete

Typická aplikace pro pacienta – sledování chronických onemocnění, aplikace pro rodinné zdraví, společník pro vzdálené monitorování – musí:

1. vést záznam pro každého pacienta: měření, onemocnění, léky, dokumenty;
2. zobrazit tento záznam zpět jako seznamy a časovou osu;
3. přijímat data z jiných zdrojů (zařízení, laboratoře, kliniky);
4. sdílet části záznamu se souhlasem pacienta;
5. reagovat, když se něco změní.

S Anpheros si vaše aplikace uchovává své vlastní uživatele, obrazovky a obchodní logiku a deleguje lékařský záznam na platformu:

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

Váš backend drží API klíč; aplikace komunikuje s vaším backendem. (Aplikace, které jednají jménem pacienta, který již má záznam v Anpheros, místo toho používají OAuth – viz krok 7.)

## 1. Získání klíče pro sandbox

Sandbox je samoobslužný: přihlaste se pomocí Googlu na ovládacím panelu (`https://platform.anpheros.com/dashboard/`) a stiskněte *Získat klíč pro sandbox*. Klíče pro sandbox začínají na `sk_test_` a mohou přistupovat pouze do databáze sandboxu, kde váš projekt již má svou vlastní kopii 30 syntetických pacientů.

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

## 2. Vytvoření pacienta

Každý uživatel vaší aplikace získá záznam pacienta vlastněný vaším projektem.

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

Odpověď obsahuje `id` pacienta (váš vlastní identifikátor pro tuto osobu — jiné projekty vidí jiný) a jeho odkaz `fhir`.

## 3. Zápis měření, diagnóz a léků

Uveďte, odkud data pocházejí, pomocí `author_type`: `patient`, `practitioner`, `device`, `import` nebo `ai`. Pokud toto pole vynecháte, platforma zaznamená `import`, nikdy ne `patient` z předpokladu.

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

Kategorie pozorování: `vital-signs`, `laboratory`, `symptom`, `activity`, `survey`, `exam`, `imaging`, `social-history`. Každý zápis je uložen jako FHIR resource a automaticky získá záznam `Provenance`.

## 4. Ukládání dokumentů

```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
```

Originál je po nahrání neměnný; hodnoty, které z něj extrahujete, na něj mohou odkazovat pomocí `derived_from`.

## 5. Zpětné načtení záznamu

```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
```

Když potřebujete plný FHIR model, stejná data jsou dostupná na `/fhir/R4` se stejnými ID ([FHIR R4 API](https://developers.anpheros.com/cs/guides/fhir)).

## 6. Připojení laboratoří a zařízení

- **Laboratorní zprávy:** `POST /v1/patients/{id}/labs/import` ve formátu CSV, HL7 v2 ORU^R01 nebo JSON převede celou zprávu na laboratorní pozorování (Observations) s kódy LOINC ([Lab connector](https://developers.anpheros.com/cs/guides/lab-connector)).
- **Zařízení a nositelná elektronika:** zapisují pozorování (Observations) s `author_type: device` a kódem LOINC pro měření (srdeční frekvence, SpO₂, kroky, délka spánku a další jsou uvedeny v [FHIR code systems](https://developers.anpheros.com/cs/guides/fhir-code-systems)).

## 7. Získání záznamu, který pacient již má (OAuth)

Pokud osoba již vede záznam v Anpheros (například prostřednictvím Anpheros Daily), vaše aplikace může požádat o přístup namísto vytvoření nového pacienta: zaregistrujte aplikaci, odešlete osobu na stránku souhlasu s požadovanými rozsahy (scopes), vyměňte kód za tokeny a zavolejte API s přístupovým tokenem. Pacient si zvolí dobu trvání a může kdykoli odvolat přístup. Podrobnosti: [Authentication and OAuth](https://developers.anpheros.com/cs/guides/authentication).

## 8. Reagujte na změny pomocí webhooků

```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"]}'
```

Ověřte hlavičku `Anpheros-Signature` každého doručení ([Webhooks](https://developers.anpheros.com/cs/guides/webhooks)).

## 9. Použití SDK

Stejný postup v TypeScriptu:

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

Klient pro Dart / Flutter se stejnou strukturou je k dispozici jako `anpheros_sdk` ([SDKs](https://developers.anpheros.com/cs/guides/sdks)).

## Před nasazením do produkce

- Produkční klíče (`sk_live_`) jsou vydávány ověřeným organizacím s podepsanou dohodou o zpracování dat.
- Přečtěte si stránku [Bezpečnost, soukromí a umístění dat](https://developers.anpheros.com/cs/guides/security) a [limity](https://developers.anpheros.com/cs/guides/limits).
- Zpracovávejte chyby podle jejich typu a při kontaktování podpory uveďte hlavičku `Anpheros-Request-Id` ([Chyby](https://developers.anpheros.com/cs/guides/errors)).

## Související

- [Jak vytvořit zdravotnické API pomocí TypeScript](https://developers.anpheros.com/cs/guides/healthcare-api-typescript): podrobný návod s Express
- [Jak vytvořit zdravotnickou aplikaci pomocí Flutter](https://developers.anpheros.com/guides/healthcare-app-flutter): podrobný návod s Dart SDK
- [Jak vytvořit zdravotnickou aplikaci s umělou inteligencí a backendem FHIR](https://developers.anpheros.com/cs/guides/build-ai-healthcare-app): podrobný návod v TypeScript
- [Tvorba s Anpheros](https://developers.anpheros.com/cs/guides/build-with-anpheros)
- [Backend a databáze pro lékařské aplikace](https://developers.anpheros.com/cs/guides/medical-app-backend)
- [API pro lékařská data](https://developers.anpheros.com/cs/guides/medical-data-api)
- [Vývoj zdravotnického softwaru](https://developers.anpheros.com/cs/guides/healthcare-software)
- [Jak vytvořit aplikaci pro osobní zdravotní záznamy (PHR) s FHIR](https://developers.anpheros.com/cs/guides/personal-health-record-app)
