# API danych objawów: koncepcje, terminologia FHIR i objawy zgłaszane przez pacjentów

> Stabilne identyfikatory objawów zmapowane do ICD-10, udostępniane jako REST oraz jako FHIR CodeSystem, ValueSet i ConceptMap; jak wygląda objaw zgłaszany przez pacjenta w formie Observation i jak go zweryfikować.

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

**Anpheros nadaje każdemu objawowi stabilny identyfikator (`SYM-0047` to ból głowy), mapuje go do ICD-10 i udostępnia listę za pośrednictwem punktu końcowego REST oraz jako terminologię FHIR R4 (`CodeSystem`, `ValueSet`, `ConceptMap`, `$lookup`). Objawy zgłaszane przez pacjentów są przechowywane jako `Observation` FHIR, które zawierają oba kody, własne słowa osoby, intensywność, a gdy są znane, czas rozpoczęcia i zakończenia objawu.** Ta strona pokazuje, jak znaleźć koncepcję, jak wygląda objaw zgłaszany przez pacjenta, jak sprawdzić taki, który sam napiszesz, i czego dane celowo nie zawierają.

## Co zawiera wydanie

| | |
|---|---|
| Wydanie | `2026.10.4` (każda odpowiedź wskazuje, które) |
| Koncepcje | 274: 197 objawów (ICD-10 R00–R69 i ich podkategorie inne niż resztkowe, takie jak R06.0 duszność lub R43.0 anosmia, plus kod WHO, jeśli WHO klasyfikuje objaw gdzie indziej: G47, H53.2, H53.8, H93.1, K59.0, L29.9, M25.5, M54) i 77 wyników (R65, R70–R94) |
| System identyfikatorów | `https://anpheros.com/fhir/CodeSystem/symptom` |
| Kody | sprawdzone pod kątem WHO ICD-10 Wersja 2019 (15 października 2026), z uwzględnieniem i wykluczeniem; tytuły WHO ICD-10 nie są udostępniane do momentu potwierdzenia licencji przez WHO (`icd10.display: null`), oficjalny tytuł angielski to tytuł ICD-11 |
| ICD-11 | każda koncepcja jest mapowana na kod ICD-11 MMS 2025-01 (kod objawu z rozdziału 21) i na system ciała |
| Etykiety udostępniane | angielski tytuł WHO ICD-11 (`source`), etykiety rumuńskie i terminy dopasowane używane przez Anpheros Daily (`in_use`) oraz etykiety laickie w 19 dodatkowych językach (`ai_reviewed`: tłumaczenia maszynowe przejrzane z pomocą AI, nie przez profesjonalnego tłumacza medycznego); dla 188 koncepcji dodanych w 2026.10.3 nazwa rumuńska jest również tłumaczeniem AI |
| Przegląd kliniczny | `clinical_review: false` — żadny lekarz nie dokonał przeglądu wydania; brak przyczyn ani powiązań z chorobami |
| Objawy ostrzegawcze | 32, dla 14 koncepcji, cytowane słowo w słowo ze stron CDC i NIDDK (`review: source_quoted`) |

Identyfikatory nigdy nie są ponownie używane. Koncepcja, która została wycofana, pozostaje na liście z `status: deprecated`.

## Znajdź koncepcję (REST)

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

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

`q` dopasowuje identyfikator koncepcji, kody ICD-10 i ICD-11, etykiety i terminy dopasowania. Inne parametry: `icd10=R51` (koncepcja dla jednego kodu), `icd11=MB4D`, `body_system=nervous`, `kind=symptom|finding|all`, `lang=de` (język `display`: preferowana etykieta, w przeciwnym razie etykieta potoczna, w przeciwnym razie angielski), `limit` i `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` wymienia każdą obsługiwaną etykietę (20 języków; skrócono tutaj). Jedna koncepcja: `GET $API/terminology/symptoms/SYM-0047`.

## Ta sama lista co terminologia 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` (wydanie nie zostało przejrzane przez lekarza); właściwości `kind`, `status`, `icd10`; etykiety rumuńskie, dopasowanie terminów i etykiet ogólnych jako `designation`.
- `ValueSet/anpheros-symptoms` — aktywne objawy (wykluczając ustalenia); `$expand` przyjmuje `filter`, `displayLanguage`, `count` i `offset`.
- `ConceptMap/anpheros-symptom-to-icd10` — `equivalent` lub `wider`, gdy kod ICD-10 obejmuje więcej niż koncepcję (H53.8 „Inne zaburzenia widzenia” jest szersze niż niewyraźne widzenie).
- Wszystkie są tylko do odczytu i wymienione w `CapabilityStatement` serwera (`GET $BASE/metadata`).

## Zgłoszony przez pacjenta objaw

Tak Anpheros Daily zapisuje objaw, który osoba zgłosiła jako obecny, dotyczący siebie:

```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` to zawsze własne słowa osoby, w jej języku (`Observation.language`); kody znajdują się obok.
- `effectivePeriod` jest używane, gdy osoba podała, kiedy objaw się zaczął lub zakończył; w przeciwnym razie `effectiveDateTime` to moment, w którym go odnotowano. Czasy zachowują przesunięcie telefonu, który je zarejestrował.
- `valueQuantity` to intensywność w skali 1–10; bez niej wartość nie istnieje.
- Gdy osoba edytuje objaw, ten sam zasób otrzymuje nową wersję — wcześniejsze odczytaj za pomocą `GET $BASE/Observation/{id}/_history`.
- Filtruj według kategorii za pomocą `?category=symptom`; zakresy zgody, takie jak `patient/Observation.rs?category=symptom`, działają w ten sam sposób.

### Co nigdy nie jest publikowane jako objaw

Tylko objawy, które są **obecne** i **dotyczą pacjenta**, stają się Obserwacjami, i to dopiero po znormalizowaniu wolnego tekstu. "Moja głowa już nie boli", "może jutro będę mieć gorączkę", "moja matka ma kaszel" lub tekst, którego normalizator nie mógł odczytać, nie stają się objawem pacjenta; jeśli opublikowany objaw zostanie później poprawiony na jeden z tych, jego Obserwacja zostanie wycofana (miękkie usunięcie — historia pozostaje). Skargi krewnych nie są automatycznie przekształcane w wywiad rodzinny.

## Sprawdź wpisany objaw

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

Profil `anpheros-symptom` (kanoniczny `https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation`) raportuje, jako `OperationOutcome`:

| Reguła | Poziom ważności |
|---|---|
| Kategoria `urn:anpheros:observation-category\|symptom` (system HL7 `observation-category` nie posiada kodu `symptom`) | błąd |
| `code.text` obecny | błąd |
| Koncept Anpheros, który istnieje i pasuje do kodu ICD-10 | błąd |
| `subject` jest Pacjentem; `status` ostateczny, poprawiony, skorygowany lub wprowadzony z błędem; `effective[x]` obecny; `effectivePeriod.end` nie wcześniej niż `start` | błąd |
| Intensywność jako UCUM `{score}` między 0 a 10 | błąd |
| Tylko tekst swobodny, bez kodów | informacja (nadal ważny) |

Podobnie jak inne profile, raportuje, a nie odrzuca zapisy. `meta.profile`, który wysyłasz, jest zachowywany w przechowywanym zasobie.

## Limity

- Wydanie nie zostało przejrzane przez lekarza; używaj go do kodowania i wyszukiwania, a nie do podejmowania decyzji medycznych.
- Ostrzeżenia są cytowane dosłownie ze stron federalnych w domenie publicznej USA (CDC: oznaki udaru i zawału serca; NIDDK: biegunka i zaparcie) i zostały sprawdzone z tymi stronami 15 października 2026 r. Każdy element zawiera własny nagłówek źródła (`context`), jego zalecenia (`quote`), grupę, do której się odnosi (`applies_to`), źródło z licencją i atrybucją (`review: source_verified`) oraz uwagę, że nie jest to diagnoza i nie zostało przejrzane przez lekarza. Źródła są amerykańskie: tam, gdzie cytat mówi 9-1-1, uwaga dodaje, że numer alarmowy w Europie to 112.
- Nie są udostępniane żadne przyczyny ani powiązania stanów chorobowych: `associations` pozostaje puste, dopóki lekarz nie przejrzy elementu. Powiązanie zawsze brzmi "może być powiązane z".
- Kody SNOMED CT są zapisywane tylko tam, gdzie licencja na to zezwala (patrz [systemy kodów FHIR](https://developers.anpheros.com/pl/guides/fhir-code-systems)).
- Wcześniejsze obserwacje objawów otrzymują kodowanie koncepcji Anpheros przy następnej aktualizacji.

## Powiązane

- [Anpheros Symptom Engine: metodologia](https://developers.anpheros.com/pl/guides/symptom-engine): jak przypisywane, sprawdzane i oceniane są koncepcje
- [Anpheros Search](https://developers.anpheros.com/pl/guides/anpheros-search): jedno wyszukiwanie objawów, schorzeń i terapii, wraz ze źródłami
- [Systemy kodowania FHIR](https://developers.anpheros.com/pl/guides/fhir-code-systems): każdy system kodowania dla typu zasobu
- [API danych pacjenta w czasie](https://developers.anpheros.com/pl/guides/longitudinal-patient-data-api)
- [Jak przechowywać dokumentację medyczną przy użyciu FHIR R4](https://developers.anpheros.com/pl/guides/store-medical-records-fhir)
- [Platforma FHIR](https://developers.anpheros.com/pl/guides/fhir)
