# Egészségügyi alkalmazás fejlesztése

> Oktatóanyag: az Anpheros használata orvosi adatháttérként egy egészségügyi alkalmazásban – betegek, mérések, állapotok, gyógyszerek, dokumentumok, laboreredmények, hozzájárulások, webhookok és SDK-k.

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

Ez az oktatóanyag bemutatja, hogyan használhat egy egészségügyi vagy orvosi alkalmazás az Anpheros Platformot orvosi adatháttérként: hol tárolódnak a betegrekordok, hogyan olvashatók és írhatók, hogyan csatlakoznak más rendszerek, és hogyan marad a beteg ellenőrzése alatt. Az alábbi hívások mindegyike a nyilvános API ([referencia](https://developers.anpheros.com/docs)) részét képezi.

## Mit építesz

Egy tipikus, páciens-orientált alkalmazásnak – krónikus betegségek nyomon követésére, családi egészségügyi alkalmazásnak, távfelügyeleti kiegészítőnek – a következőkre van szüksége:

1.  minden pácienshez nyilvántartást vezetni: mérések, állapotok, gyógyszerek, dokumentumok;
2.  ezt a nyilvántartást listákban és idővonalon megjeleníteni;
3.  adatokat fogadni más forrásokból (eszközök, laborok, klinikák);
4.  a nyilvántartás részeit megosztani, a páciens beleegyezésével;
5.  reagálni, ha valami megváltozik.

Az Anpheros segítségével az alkalmazás megtartja saját felhasználóit, képernyőit és üzleti logikáját, míg az orvosi nyilvántartást a platformra bízza:

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

A backend tárolja az API kulcsot; az alkalmazás a backenddel kommunikál. (Azok az alkalmazások, amelyek egy már Anpheros nyilvántartással rendelkező páciens nevében járnak el, ehelyett OAuth-ot használnak – lásd a 7. lépést.)

## 1. Sandbox kulcs igénylése

A sandbox önkiszolgáló: jelentkezzen be a Google-lal a dashboardon (`https://platform.anpheros.com/dashboard/`), és nyomja meg a *Get a sandbox key* gombot. A sandbox kulcsok `sk_test_`-nel kezdődnek, és csak a sandbox adatbázisát érhetik el, ahol a projektje már rendelkezik 30 szintetikus beteg saját példányával.

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

## 2. Beteg létrehozása

Az alkalmazás minden felhasználója rendelkezik egy betegrekorddal, amely a projekt tulajdonában van.

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

A válasz tartalmazza a beteg `id` (az Ön azonosítója erre a személyre – más projektek eltérő azonosítót látnak) és annak `fhir` referenciáját.

## 3. Mérések, állapotok és gyógyszerek írása

Adja meg, honnan származik az adat a `author_type`: `patient`, `practitioner`, `device`, `import` vagy `ai` segítségével. Ha ezt kihagyja, a platform `import`-et rögzít, soha nem `patient`-et feltételezés alapján.

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

Megfigyelési kategóriák: `vital-signs`, `laboratory`, `symptom`, `activity`, `survey`, `exam`, `imaging`, `social-history`. Minden írás FHIR erőforrásként kerül tárolásra, és automatikusan kap egy `Provenance` bejegyzést.

## 4. Dokumentumok tárolása

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

Az eredeti dokumentum feltöltés után nem módosítható; az abból kinyert értékek visszautalhatnak rá a `derived_from` segítségével.

## 5. Az adatok visszaolvasása

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

Amikor a teljes FHIR modellre van szüksége, ugyanazok az adatok érhetők el a `/fhir/R4` címen, ugyanolyan azonosítókkal ([FHIR R4 API](https://developers.anpheros.com/hu/guides/fhir)).

## 6. Laboratóriumok és eszközök csatlakoztatása

- **Laboratóriumi jelentések:** `POST /v1/patients/{id}/labs/import` CSV, HL7 v2 ORU^R01 vagy JSON formátumban egy teljes jelentést laboratóriumi megfigyelésekké (Observations) alakít át LOINC kódokkal ([Lab connector](https://developers.anpheros.com/hu/guides/lab-connector)).
- **Eszközök és viselhető eszközök:** Observations írása `author_type: device` és a mérés LOINC kódja (pulzus, SpO₂, lépésszám, alvásidőtartam és mások a [FHIR kódrendszerekben](https://developers.anpheros.com/hu/guides/fhir-code-systems) találhatók).

## 7. Elérni egy már meglévő beteg rekordját (OAuth)

Ha a személynek már van rekordja az Anpheros rendszerében (például az Anpheros Daily-n keresztül), az Ön alkalmazása kérhet hozzáférést az új beteg létrehozása helyett: regisztráljon egy alkalmazást, küldje el a személyt a beleegyezési oldalra a szükséges scope-okkal, cserélje be a kódot tokenekre, és hívja meg az API-t az access token segítségével. A beteg kiválaszthatja a hozzáférés időtartamát, és bármikor visszavonhatja azt. Részletek: [Hitelesítés és OAuth](https://developers.anpheros.com/hu/guides/authentication).

## 8. Reagálás változásokra webhookokkal

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

Ellenőrizze minden kézbesítés `Anpheros-Signature` fejlécét ([Webhooks](https://developers.anpheros.com/hu/guides/webhooks)).

## 9. SDK használata

Ugyanez az áramlás TypeScriptben:

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

Egy hasonló felépítésű Dart / Flutter kliens is elérhető a `anpheros_sdk` alatt ([SDK-k](https://developers.anpheros.com/hu/guides/sdks)).

## Production előtti teendők

- A production kulcsokat (`sk_live_`) igazolt szervezetek kaphatják meg, aláírt adatfeldolgozási megállapodással.
- Olvassa el a [Biztonság, adatvédelem és adattárolás](https://developers.anpheros.com/hu/guides/security) oldalt és a [korlátokat](https://developers.anpheros.com/hu/guides/limits).
- Kezelje a hibákat típusuk szerint, és idézze a `Anpheros-Request-Id` fejlécet, amikor kapcsolatba lép a támogatással ([Hibák](https://developers.anpheros.com/hu/guides/errors)).

## Kapcsolódó

- [Egészségügyi API építése TypeScript segítségével](https://developers.anpheros.com/hu/guides/healthcare-api-typescript): lépésről lépésre útmutató Express-szel
- [Egészségügyi alkalmazás építése Flutter segítségével](https://developers.anpheros.com/guides/healthcare-app-flutter): lépésről lépésre útmutató a Dart SDK-val
- [AI alapú egészségügyi alkalmazás építése FHIR backenddel](https://developers.anpheros.com/hu/guides/build-ai-healthcare-app): lépésről lépésre útmutató TypeScriptben
- [Fejlesszen az Anpheros segítségével](https://developers.anpheros.com/hu/guides/build-with-anpheros)
- [Orvosi alkalmazás backend és adatbázis](https://developers.anpheros.com/hu/guides/medical-app-backend)
- [Egészségügyi adat API](https://developers.anpheros.com/hu/guides/medical-data-api)
- [Egészségügyi szoftverfejlesztés](https://developers.anpheros.com/hu/guides/healthcare-software)
- [Személyes egészségügyi nyilvántartás (PHR) alkalmazás építése FHIR segítségével](https://developers.anpheros.com/hu/guides/personal-health-record-app)
