# Медицинские данные API

> Куда попадают различные типы медицинских данных в Anpheros API, как они кодируются, и как их записывать, фильтровать, отслеживать, исправлять и удалять — с рабочими примерами.

Source: https://developers.anpheros.com/ru/guides/medical-data-api

**API медицинских данных предоставляет программному обеспечению структурированный доступ к содержимому записей пациентов: создать пациента, записать показание артериального давления, перечислить активные лекарства, прикрепить лабораторный отчет, отследить, кто что написал.** Эта страница описывает операции с данными Anpheros API — куда попадают различные типы медицинских данных, как они кодируются и как их прочитать — с примерами, работающими в песочнице.

Приложения используют эти операции для того, чтобы рассматривать Anpheros как медицинскую базу данных своего продукта: записи пациентов хранятся в HL7 FHIR R4 хранилище платформы, и приложение читает и записывает их через API вместо того, чтобы вести собственные таблицы медицинских данных.

Для более широкого контекста (аутентификация, согласие, события) см. [Healthcare API](https://developers.anpheros.com/ru/guides/healthcare-api).

## Куда помещаются различные виды медицинских данных

| Медицинские данные | REST v1 | Ресурс FHIR | Кодирование |
|---|---|---|---|
| Человек | `POST /v1/patients` | `Patient` | имя, дата рождения, пол, идентификаторы |
| Жизненно важные показатели, результаты лабораторных исследований, симптомы, активность, опросы | `/v1/patients/{id}/observations` | `Observation` | LOINC (симптомы: глава R по ICD-10); единицы UCUM |
| Диагнозы и проблемы | `/v1/patients/{id}/conditions` | `Condition` | ICD-10 |
| Лекарства | `/v1/patients/{id}/medications` | `MedicationStatement` | ATC, название продукта сохраняется в виде текста |
| Документы (PDF, изображения) | `/v1/patients/{id}/documents` | `DocumentReference` | типы документов LOINC |
| Полный отчет лаборатории | `POST /v1/patients/{id}/labs/import` | `Observation` (laboratory) | LOINC, если известно, в противном случае собственный код лаборатории |
| Принятые или пропущенные дозы, вакцинации, аллергии, процедуры, отчеты, планы лечения, цели, направления, визиты, приемы, команды по уходу, семейный анамнез, опросники | `/fhir/R4/{type}` | `MedicationAdministration`, `Immunization`, `AllergyIntolerance`, `Procedure`, `DiagnosticReport`, `CarePlan`, `Goal`, `ServiceRequest`, `Encounter`, `Appointment`, `CareTeam`, `FamilyMemberHistory`, `QuestionnaireResponse` | согласно [системам кодирования FHIR](https://developers.anpheros.com/ru/guides/fhir-code-systems) |

Объекты REST v1 и ресурсы FHIR представляют собой одни и те же записи с одинаковыми идентификаторами; каждый объект v1 несет ссылку `fhir`.

## Запись медицинских данных

```bash
# a lab result with its reference range, linked to the report it came from
curl -X POST https://platform.anpheros.com/v1/patients/$PID/observations \
     -H "Authorization: Bearer $KEY" -H 'content-type: application/json' -H "Idempotency-Key: $(uuidgen)" -d '{
  "code": "4548-4", "display": "Hemoglobin A1c", "category": "laboratory",
  "value": 6.4, "unit": "%", "effective_at": "2026-09-01T08:00:00Z",
  "reference_range": {"low": 4.0, "high": 5.6},
  "derived_from": ["DocumentReference/'$DOC'"], "author_type": "import"
}'
```

- **Категории наблюдений:** `vital-signs`, `laboratory`, `symptom`, `activity`, `survey`, `exam`, `imaging`, `social-history`.
- **Составные измерения**, такие как артериальное давление, используют `components` (систолическое `8480-6`, диастолическое `8462-4` внутри панели `85354-9`).
- **Типы авторов:** `patient`, `practitioner`, `device`, `import`, `ai`. Без одного из них платформа записывает `import`.
- **Коды, которые вы не знаете наизусть:** `GET /v1/terminology/loinc?q=hba1c` выполняет поиск по включенному подмножеству LOINC, а `GET /v1/search?q=metformin` — по каталогу симптомов, состояний и лекарств; наблюдение, записанное без отображаемого имени, автоматически получает название LOINC.

## Чтение медицинских данных

```bash
curl "https://platform.anpheros.com/v1/patients/$PID/observations?category=laboratory&code=4548-4&from=2026-01-01" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/patients/$PID/conditions?clinical_status=active" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/patients/$PID/timeline?from=2026-06-01" -H "Authorization: Bearer $KEY"
```

| Конечная точка | Фильтры |
|---|---|
| observations | `category`, `code`, `from`, `to` |
| conditions | `clinical_status` |
| medications | `status` |
| documents | `kind` |
| timeline | `from`, `to`, `types` |

Списки постранично разбиваются с помощью `limit` и `cursor`. **timeline** объединяет наблюдения, состояния, медикаменты, документы, визиты, приемы, вакцинации и эпизоды оказания медицинской помощи в один хронологический список — естественный ввод для экрана истории болезни пациента.

Для всего, что не покрывается REST-фильтрами, используйте поиск FHIR: `GET /fhir/R4/Observation?patient=$PID&code=http://loinc.org|4548-4&_sort=-date` ([FHIR platform](https://developers.anpheros.com/ru/guides/fhir)).

## Трассировка и исправление данных

- **Кто написал:** `GET /v1/patients/{id}/provenance/{type}/{resourceId}` — одна запись на версию, с указанием типа автора, проекта, организации и исходной системы.
- **Каждая версия:** `GET /fhir/R4/{type}/{id}/_history`; обновляйте с помощью `If-Match`, чтобы избежать перезаписи изменений, внесенных кем-то другим.
- **Владение:** с согласия вы можете читать данные, написанные другими организациями, но изменять или удалять только то, что написал ваш проект (иначе `403`).
- **Удаление:** `DELETE /v1/{observations|conditions|medications}/{id}`; удаление `Patient` удаляет всю запись.

## Документы

Создайте документ (вы получите целевой URL для загрузки), загрузите байты через платформу или напрямую в хранилище, а затем завершите. После завершения оригинал становится неизменяемым; его SHA-256 и размер записываются. До 25 МиБ на файл.

## Связанные материалы

- [Как нормализовать медицинские данные](https://developers.anpheros.com/ru/guides/normalize-medical-data): коды, единицы измерения, даты, дубликаты, валидация
- [Происхождение медицинских данных: объяснение](https://developers.anpheros.com/ru/guides/medical-data-provenance): кто что написал и как это записать
- [Healthcare API](https://developers.anpheros.com/ru/guides/healthcare-api)
- [Медицинская карта пациента](https://developers.anpheros.com/ru/guides/patient-medical-record)
- [Создание медицинского приложения](https://developers.anpheros.com/ru/guides/build-a-healthcare-app)
- [Справочник по API (OpenAPI)](https://developers.anpheros.com/docs) · [Начало работы](https://developers.anpheros.com/ru/guides/getting-started)
