# Створення медичного застосунку

> Посібник: використовуйте Anpheros як бекенд медичних даних для медичного застосунку — пацієнти, вимірювання, стани, ліки, документи, лабораторні дослідження, згода, вебхуки та SDK.

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

Цей посібник демонструє, як медичний або лікарський застосунок може використовувати Anpheros Platform як свій бекенд медичних даних: де зберігаються записи пацієнтів, як вони читаються та записуються, як підключаються інші системи та як пацієнт зберігає контроль. Кожен виклик нижче є частиною публічного API ([довідник](https://developers.anpheros.com/docs)).

## Що ви створюєте

Типовий додаток для пацієнтів — трекер хронічних захворювань, сімейний додаток для здоров'я, компаньйон для дистанційного моніторингу — повинен:

1. вести запис для кожного пацієнта: вимірювання, стани, ліки, документи;
2. відображати цей запис у вигляді списків та хронології;
3. приймати дані з інших джерел (пристроїв, лабораторій, клінік);
4. ділитися частинами запису за згодою пацієнта;
5. реагувати на зміни.

З Anpheros ваш додаток зберігає власних користувачів, екрани та бізнес-логіку, а медичний запис делегує платформі:

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

Ваш бекенд зберігає API ключ; додаток спілкується з вашим бекендом. (Додатки, що діють від імені пацієнта, який вже має запис Anpheros, натомість використовують OAuth — див. крок 7.)

## 1. Отримайте ключ для пісочниці

Пісочниця надається самостійно: увійдіть за допомогою Google на панелі керування (`https://platform.anpheros.com/dashboard/`) та натисніть *Отримати ключ для пісочниці*. Ключі для пісочниці починаються з `sk_test_` і можуть досягати лише бази даних пісочниці, де ваш проєкт вже має власну копію 30 синтетичних пацієнтів.

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

## 2. Створення пацієнта

Кожен користувач вашого застосунку отримує запис пацієнта, який належить вашому проєкту.

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

Відповідь містить `id` пацієнта (ваш власний ідентифікатор для цієї особи — інші проєкти бачать інший) та його `fhir` посилання.

## 3. Запис вимірювань, станів та медикаментів

Вкажіть, звідки походять дані, за допомогою `author_type`: `patient`, `practitioner`, `device`, `import` або `ai`. Якщо ви пропустите це, платформа запише `import`, ніколи `patient` за замовчуванням.

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

Категорії спостережень: `vital-signs`, `laboratory`, `symptom`, `activity`, `survey`, `exam`, `imaging`, `social-history`. Кожен запис зберігається як ресурс FHIR і автоматично отримує запис `Provenance`.

## 4. Зберігання документів

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

Оригінал є незмінним після завантаження; значення, які ви витягуєте з нього, можуть вказувати на нього за допомогою `derived_from`.

## 5. Зчитування запису назад

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

Коли вам потрібна повна модель FHIR, ті самі дані доступні за адресою `/fhir/R4` з тими самими ідентифікаторами ([FHIR R4 API](https://developers.anpheros.com/uk/guides/fhir)).

## 6. Підключення лабораторій та пристроїв

- **Лабораторні звіти:** `POST /v1/patients/{id}/labs/import` з файлами CSV, HL7 v2 ORU^R01 або JSON перетворюють повний звіт на лабораторні спостереження (Observations) з кодами LOINC ([Лабораторний конектор](https://developers.anpheros.com/uk/guides/lab-connector)).
- **Пристрої та носимі пристрої:** записують спостереження (Observations) з `author_type: device` та кодом LOINC вимірювання (частота серцевих скорочень, SpO₂, кроки, тривалість сну та інші перелічені в [Системах кодування FHIR](https://developers.anpheros.com/uk/guides/fhir-code-systems)).

## 7. Досягнення запису, який пацієнт вже має (OAuth)

Якщо особа вже має запис в Anpheros (наприклад, через Anpheros Daily), ваш додаток може запитати доступ замість створення нового пацієнта: зареєструйте додаток, надішліть особу на сторінку згоди з потрібними вам областями дії (scopes), обміняйте код на токени та викличте API з токеном доступу. Пацієнт обирає тривалість і може відкликати доступ у будь-який час. Деталі: [Автентифікація та OAuth](https://developers.anpheros.com/uk/guides/authentication).

## 8. Реагуйте на зміни за допомогою вебхуків

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

Перевіряйте заголовок `Anpheros-Signature` кожного доставлення ([Вебхуки](https://developers.anpheros.com/uk/guides/webhooks)).

## 9. Використання SDK

Той самий потік у 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 });
```

Клієнт Dart / Flutter такої ж форми доступний як `anpheros_sdk` ([SDKs](https://developers.anpheros.com/uk/guides/sdks)).

## Перед виходом на продакшн

- Ключі для продакшну (`sk_live_`) видаються верифікованим організаціям з підписаною угодою про обробку даних.
- Ознайомтеся зі сторінками [Безпека, конфіденційність та місцезнаходження даних](https://developers.anpheros.com/uk/guides/security) та [обмеження](https://developers.anpheros.com/uk/guides/limits).
- Обробляйте помилки за їх типом та цитуйте заголовок `Anpheros-Request-Id` під час звернення до служби підтримки ([Помилки](https://developers.anpheros.com/uk/guides/errors)).

## Пов'язане

- [Як створити медичний API за допомогою TypeScript](https://developers.anpheros.com/uk/guides/healthcare-api-typescript): покроковий посібник з Express
- [Як створити медичний додаток за допомогою Flutter](https://developers.anpheros.com/uk/guides/healthcare-app-flutter): покроковий посібник з Dart SDK
- [Як створити медичний додаток зі штучним інтелектом та бекендом FHIR](https://developers.anpheros.com/uk/guides/build-ai-healthcare-app): покроковий посібник на TypeScript
- [Розробка з Anpheros](https://developers.anpheros.com/uk/guides/build-with-anpheros)
- [Бекенд та база даних медичного додатку](https://developers.anpheros.com/uk/guides/medical-app-backend)
- [API медичних даних](https://developers.anpheros.com/uk/guides/medical-data-api)
- [Розробка програмного забезпечення для охорони здоров'я](https://developers.anpheros.com/uk/guides/healthcare-software)
- [Як створити додаток для персональної медичної картки (PHR) з FHIR](https://developers.anpheros.com/uk/guides/personal-health-record-app)
