# API симптомів: концепції, термінологія FHIR та симптоми, повідомлені пацієнтом

> Стабільні ідентифікатори симптомів, зіставлені з ICD-10, надаються як REST та як FHIR CodeSystem, ValueSet і ConceptMap; як виглядає симптом, повідомлений пацієнтом Observation, і як його перевірити.

Source: https://developers.anpheros.com/uk/guides/symptom-data-api

**Anpheros надає кожному симптому стабільний ідентифікатор (`SYM-0047` – головний біль), зіставляє його з ICD-10 і надає список через REST endpoint, а також як термінологію FHIR R4 (`CodeSystem`, `ValueSet`, `ConceptMap`, `$lookup`). Симптоми, про які повідомляють пацієнти, зберігаються як FHIR `Observation`, які містять як коди, власні слова людини, інтенсивність, а коли відомо – коли симптом почався і закінчився.** Ця сторінка показує, як знайти концепцію, як виглядає симптом, повідомлений пацієнтом, як перевірити той, який ви пишете самі, і чого навмисно не містять дані.

## Що міститься у випуску

| | |
|---|---|
| Випуск | `2026.10.4` (у кожній відповіді зазначено, який саме) |
| Концепції | 274: 197 симптомів (ICD-10 R00–R69 та їхні не залишкові підкатегорії, як-от R06.0 задишка або R43.0 аносмія, плюс код ВООЗ, де ВООЗ класифікує симптом інакше: G47, H53.2, H53.8, H93.1, K59.0, L29.9, M25.5, M54) та 77 знахідок (R65, R70–R94) |
| Система ідентифікаторів | `https://anpheros.com/fhir/CodeSystem/symptom` |
| Коди | перевірено відповідно до WHO ICD-10 Версія 2019 (15 жовтня 2026 року) з примітками щодо включення та виключення; назви WHO ICD-10 не надаються до підтвердження ліцензії ВООЗ (`icd10.display: null`), офіційна англійська назва є назвою ICD-11 |
| ICD-11 | кожна концепція відображається до коду ICD-11 MMS 2025-01 (код симптому з розділу 21) та до системи органів |
| Надані мітки | англійська назва WHO ICD-11 (`source`), румунські мітки та терміни, що відповідають термінам Anpheros Daily (`in_use`), а також загальнодоступні мітки 19 додатковими мовами (`ai_reviewed`: машинні переклади, переглянуті за допомогою ШІ, а не професійним медичним перекладачем); для 188 концепцій, доданих у 2026.10.3, румунська назва також є перекладом ШІ |
| Клінічний огляд | `clinical_review: false` — жоден клініцист не переглядав випуск; немає причин чи асоціацій станів |
| Попереджувальні знаки | 32, для 14 концепцій, цитовані дослівно зі сторінок CDC та NIDDK (`review: source_quoted`) |

Ідентифікатори ніколи не повторюються. Концепція, яка була вилучена, залишається у списку з `status: deprecated`.

## Знайти концепцію (REST)

```bash
export API=https://platform.anpheros.com/v1
export KEY=sk_test_…

curl "$API/terminology/symptoms?q=headache" -H "Authorization: Bearer $KEY"
```

`q` відповідає ідентифікатору концепції, кодам ICD-10 та ICD-11, міткам та термінам співпадіння. Інші параметри: `icd10=R51` (концепція для одного коду), `icd11=MB4D`, `body_system=nervous`, `kind=symptom|finding|all`, `lang=de` (мова `display`: бажана мітка, інакше загальнодоступна мітка, інакше англійська), `limit` та `offset`.

```json
{
  "data": [{
    "concept_id": "SYM-0047",
    "system": "https://anpheros.com/fhir/CodeSystem/symptom",
    "kind": "symptom",
    "status": "active",
    "display": "Headache, not elsewhere classified",
    "display_lang": "en",
    "icd10": {"system": "http://hl7.org/fhir/sid/icd-10", "code": "R51", "display": null, "equivalence": "equivalent"},
    "icd11": {"system": "http://id.who.int/icd/release/11/mms", "code": "MB4D", "display": "Headache, not elsewhere classified", "equivalence": "equivalent"},
    "body_system": {"code": "nervous", "display": "Symptoms, signs or clinical findings of the nervous system", "icd11_block": "BlockL1-MB4"},
    "labels": [
      {"lang": "ro", "use": "preferred", "text": "Durere de cap (cefalee)", "review": "in_use"},
      {"lang": "de", "use": "lay", "text": "Kopfschmerzen", "review": "ai_reviewed"}
    ],
    "match_terms": [{"lang": "ro", "text": "durere de cap"}, {"lang": "ro", "text": "cefalee"}],
    "clinical_review": false,
    "release": "2026.10.2"
  }],
  "total": 1,
  "release": "2026.10.2"
}
```

`labels` перелічує кожну надану мітку (20 мов; скорочено тут). Одна концепція: `GET $API/terminology/symptoms/SYM-0047`.

## Той самий список, що й термінологія FHIR

```bash
export BASE=https://platform.anpheros.com/fhir/R4

curl "$BASE/CodeSystem/anpheros-symptom" -H "Authorization: Bearer $KEY"
curl "$BASE/CodeSystem/\$lookup?system=https://anpheros.com/fhir/CodeSystem/symptom&code=SYM-0047&displayLanguage=ro" -H "Authorization: Bearer $KEY"
curl "$BASE/ValueSet/\$expand?url=https://anpheros.com/fhir/ValueSet/anpheros-symptoms&filter=cough" -H "Authorization: Bearer $KEY"
curl "$BASE/ConceptMap/anpheros-symptom-to-icd10" -H "Authorization: Bearer $KEY"
curl "$BASE/ConceptMap/anpheros-symptom-to-icd11" -H "Authorization: Bearer $KEY"
```

- `CodeSystem/anpheros-symptom` — `content: complete`, `status: draft` (реліз не був переглянутий клініцистом); властивості `kind`, `status`, `icd10`; румунські мітки, відповідні терміни та мітки для неспеціалістів як `designation`.
- `ValueSet/anpheros-symptoms` — активні симптоми (виключаючи знахідки); `$expand` приймає `filter`, `displayLanguage`, `count` та `offset`.
- `ConceptMap/anpheros-symptom-to-icd10` — `equivalent`, або `wider`, коли код ICD-10 охоплює більше, ніж концепція (H53.8 "Інші зорові розлади" ширше, ніж розмите бачення).
- Усі вони доступні лише для читання та перелічені в `CapabilityStatement` сервера (`GET $BASE/metadata`).

## Симптом, повідомлений пацієнтом

Ось як Anpheros Daily записує симптом, який людина повідомила як присутній, щодо себе:

```json
{
  "resourceType": "Observation",
  "status": "final",
  "meta": {"profile": ["https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation"]},
  "category": [{"coding": [{"system": "urn:anpheros:observation-category", "code": "symptom"}]}],
  "code": {
    "text": "Mă doare capul de 3 zile",
    "coding": [
      {"system": "http://hl7.org/fhir/sid/icd-10", "code": "R51"},
      {"system": "https://anpheros.com/fhir/CodeSystem/symptom", "code": "SYM-0047", "display": "Headache"}
    ]
  },
  "subject": {"reference": "Patient/…"},
  "effectivePeriod": {"start": "2026-10-11T08:00:00+03:00", "end": "2026-10-14T18:00:00+03:00"},
  "valueQuantity": {"value": 6, "unit": "1-10", "system": "http://unitsofmeasure.org", "code": "{score}"}
}
```

- `code.text` — це завжди власні слова людини, її мовою (`Observation.language`); коди розташовані поруч.
- `effectivePeriod` використовується, коли людина вказала, коли симптом почався або закінчився; в іншому випадку `effectiveDateTime` — це момент, коли вона його зафіксувала. Час зберігає зміщення телефону, який його записав.
- `valueQuantity` — це інтенсивність за шкалою від 1 до 10; без цього значення немає.
- Коли людина редагує симптом, той самий ресурс отримує нову версію — попередні читайте за допомогою `GET $BASE/Observation/{id}/_history`.
- Фільтруйте за категорією за допомогою `?category=symptom`; області згоди, такі як `patient/Observation.rs?category=symptom`, працюють так само.

### Що ніколи не публікується як симптом

Тільки симптоми, які **присутні** і **стосуються пацієнта**, стають Observations, і тільки після нормалізації вільного тексту. "Мій головний біль більше не турбує", "можливо, завтра буде температура", "у моєї матері кашель" або текст, який нормалізатор не зміг прочитати, не стають симптомом пацієнта; якщо опублікований симптом пізніше виправляється на один із цих, його Observation відкликається (м'яке видалення — історія залишається). Скарги родичів автоматично не перетворюються на сімейний анамнез.

## Перевірка симптому, який ви вводите

```bash
curl -X POST "$BASE/Observation/\$validate?profile=anpheros-symptom" -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/fhir+json" -d @symptom.json
```

Профіль `anpheros-symptom` (канонічний `https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation`) повідомляє, як `OperationOutcome`:

| Правило | Серйозність |
|---|---|
| Категорія `urn:anpheros:observation-category\|symptom` (система HL7 `observation-category` не має коду `symptom`) | error |
| `code.text` присутній | error |
| Концепція Anpheros, яка існує та відповідає коду ICD-10 | error |
| `subject` є Пацієнтом; `status` остаточний, змінений, виправлений або позначений як помилковий; `effective[x]` присутній; `effectivePeriod.end` не раніше `start` | error |
| Інтенсивність як UCUM `{score}` між 0 і 10 | error |
| Тільки вільний текст, без кодів | information (still valid) |

Як і інші профілі, він повідомляє, а не відхиляє записи. `meta.profile`, який ви надсилаєте, зберігається в ресурсі.

## Обмеження

- Реліз не був переглянутий клініцистом; використовуйте його для кодування та пошуку, а не для медичних рішень.
- Попереджувальні знаки цитуються дослівно з публічних сторінок федерального уряду США (CDC: ознаки інсульту та серцевого нападу; NIDDK: діарея та запор) і були перевірені на відповідність цим сторінкам 15 жовтня 2026 року. Кожен пункт містить власний заголовок джерела (`context`), його рекомендації (`quote`), групу, до якої він застосовується (`applies_to`), джерело з ліцензією та атрибуцією (`review: source_verified`) та примітку про те, що це не діагноз і не було переглянуто клініцистом. Джерела є американськими: там, де в цитаті вказано 9-1-1, у примітці додається, що номер екстреної допомоги в Європі — 112.
- Причини або асоціації станів не надаються: `associations` залишається порожнім до тих пір, поки клініцист не перегляне пункт. Асоціація завжди означає "може бути пов'язана з".
- Коди SNOMED CT вказуються лише там, де це дозволено ліцензією (див. [Системи кодів FHIR](https://developers.anpheros.com/uk/guides/fhir-code-systems)).
- Раніші спостереження симптомів отримують кодування концепції Anpheros наступного разу, коли вони будуть оновлені.

## Пов'язане

- [Anpheros Symptom Engine: методологія](https://developers.anpheros.com/uk/guides/symptom-engine): як концепції призначаються, перевіряються та оцінюються
- [Anpheros Search](https://developers.anpheros.com/uk/guides/anpheros-search): єдиний пошук за симптомами, станами та лікуваннями з джерелами
- [FHIR code systems](https://developers.anpheros.com/uk/guides/fhir-code-systems): кожна система кодів для типу ресурсу
- [Longitudinal patient data API](https://developers.anpheros.com/uk/guides/longitudinal-patient-data-api)
- [Як зберігати медичні записи за допомогою FHIR R4](https://developers.anpheros.com/uk/guides/store-medical-records-fhir)
- [FHIR platform](https://developers.anpheros.com/uk/guides/fhir)
