# API de dados de sintomas: conceitos, terminologia FHIR e sintomas relatados pelo paciente

> Identificadores de sintomas estáveis mapeados para ICD-10, servidos como REST e como FHIR CodeSystem, ValueSet e ConceptMap; como é um sintoma relatado pelo paciente Observation e como validar um.

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

**A Anpheros atribui a cada sintoma um identificador estável (`SYM-0047` é dor de cabeça), mapeia-o para ICD-10 e disponibiliza a lista através de um endpoint REST e como terminologia FHIR R4 (`CodeSystem`, `ValueSet`, `ConceptMap`, `$lookup`). Os sintomas que os pacientes relatam são armazenados como `Observation`s FHIR que contêm ambos os códigos, as palavras próprias da pessoa, a intensidade e, quando conhecidos, quando o sintoma começou e terminou.** Esta página mostra como encontrar um conceito, como é um sintoma relatado pelo paciente, como verificar um que você escreve, e o que os dados deliberadamente não contêm.

## O que está na versão

| | |
|---|---|
| Versão | `2026.10.4` (cada resposta indica qual) |
| Conceitos | 274: 197 sintomas (ICD-10 R00–R69 e as suas subcategorias não residuais como R06.0 dispneia ou R43.0 anosmia, mais o código da OMS onde a OMS classifica o sintoma noutro local: G47, H53.2, H53.8, H93.1, K59.0, L29.9, M25.5, M54) e 77 achados (R65, R70–R94) |
| Sistema de identificadores | `https://anpheros.com/fhir/CodeSystem/symptom` |
| Códigos | verificados contra a OMS ICD-10 Versão 2019 (15 de outubro de 2026), com as suas notas de inclusão e exclusão; os títulos oficiais da OMS ICD-10 não são servidos até que a OMS confirme a licença (`icd10.display: null`), o título oficial em inglês é o da ICD-11 |
| ICD-11 | cada conceito é mapeado para um código ICD-11 MMS 2025-01 (o código de sintoma do capítulo 21) e para um sistema corporal |
| Rótulos servidos | o título oficial em inglês da OMS ICD-11 (`source`), os rótulos em romeno e termos correspondentes usados pelo Anpheros Daily (`in_use`), e rótulos leigos em mais 19 idiomas (`ai_reviewed`: traduções automáticas revistas com assistência de IA, não por um tradutor médico profissional); para os 188 conceitos adicionados em 2026.10.3, o nome em romeno é também uma tradução de IA |
| Revisão clínica | `clinical_review: false` — nenhum clínico revisou a versão; sem causas ou associações de condições |
| Sinais de alerta | 32, para 14 conceitos, citados palavra por palavra das páginas do CDC e NIDDK (`review: source_quoted`) |

Os identificadores nunca são reutilizados. Um conceito que é retirado permanece na lista com `status: deprecated`.

## Encontrar um conceito (REST)

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

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

`q` corresponde ao ID do conceito, aos códigos ICD-10 e ICD-11, aos rótulos e aos termos de correspondência. Outros parâmetros: `icd10=R51` (o conceito para um código), `icd11=MB4D`, `body_system=nervous`, `kind=symptom|finding|all`, `lang=de` (o idioma de `display`: o rótulo preferido, caso contrário o rótulo leigo, caso contrário inglês), `limit` e `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` lista todos os rótulos servidos (20 idiomas; encurtados aqui). Um conceito: `GET $API/terminology/symptoms/SYM-0047`.

## A mesma lista que a 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` (a versão não foi revista por um clínico); propriedades `kind`, `status`, `icd10`; rótulos romenos, termos correspondentes e rótulos leigos como `designation`.
- `ValueSet/anpheros-symptoms` — os sintomas ativos (achados excluídos); `$expand` utiliza `filter`, `displayLanguage`, `count` e `offset`.
- `ConceptMap/anpheros-symptom-to-icd10` — `equivalent`, ou `wider` quando o código ICD-10 abrange mais do que o conceito (H53.8 "Outras perturbações visuais" é mais abrangente do que visão turva).
- Todos eles são somente leitura e listados no `CapabilityStatement` do servidor (`GET $BASE/metadata`).

## Um sintoma reportado pelo paciente

É assim que o Anpheros Daily regista um sintoma que uma pessoa reportou como presente, sobre si mesma:

```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` são sempre as palavras da própria pessoa, na sua língua (`Observation.language`); os códigos ficam ao lado.
- `effectivePeriod` é usado quando a pessoa disse quando começou ou terminou; caso contrário, `effectiveDateTime` é o momento em que o registou. As horas mantêm o offset do telefone que as gravou.
- `valueQuantity` é a intensidade numa escala de 1 a 10; sem ela não há valor.
- Quando a pessoa edita um sintoma, o mesmo recurso recebe uma nova versão — leia as anteriores com `GET $BASE/Observation/{id}/_history`.
- Filtre por categoria com `?category=symptom`; os âmbitos de consentimento, como `patient/Observation.rs?category=symptom`, funcionam da mesma forma.

### O que nunca é publicado como sintoma

Apenas os sintomas que estão **presentes** e **sobre o paciente** se tornam Observações, e apenas após o texto livre ter sido normalizado. "A minha cabeça já não dói", "talvez febre amanhã", "a minha mãe tem tosse" ou um texto que o normalizador não conseguiu ler não se tornam um sintoma do paciente; se um sintoma publicado for posteriormente corrigido para um destes, a sua Observação é retirada (eliminação lógica — o histórico permanece). As queixas de familiares não são automaticamente transformadas em histórico familiar.

## Verifique um sintoma que escreve

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

O perfil `anpheros-symptom` (canónico `https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation`) reporta, como um `OperationOutcome`:

| Regra | Severidade |
|---|---|
| Categoria `urn:anpheros:observation-category\|symptom` (o sistema HL7 `observation-category` não tem código `symptom`) | error |
| `code.text` presente | error |
| Um conceito Anpheros que existe e corresponde ao código ICD-10 | error |
| `subject` é um Paciente; `status` final, alterado, corrigido ou inserido com erro; `effective[x]` presente; `effectivePeriod.end` não antes de `start` | error |
| Intensidade como UCUM `{score}` entre 0 e 10 | error |
| Apenas texto livre, sem códigos | information (still valid) |

Tal como os outros perfis, reporta e não rejeita escritas. Um `meta.profile` que envia é mantido no recurso armazenado.

## Limites

- A versão não foi revista por um clínico; utilize-a para codificação e pesquisa, não para decisões médicas.
- Os sinais de alerta são citados palavra por palavra de páginas federais de domínio público dos EUA (CDC: sinais de AVC e ataque cardíaco; NIDDK: diarreia e obstipação) e foram verificados contra essas páginas em 15 de outubro de 2026. Cada item inclui o próprio cabeçalho da fonte (`context`), o seu conselho (`quote`), o grupo a que se aplica (`applies_to`), a fonte com licença e atribuição, `review: source_verified` e a nota de que não se trata de um diagnóstico e não foi revisto por um clínico. As fontes são americanas: onde uma citação diz 9-1-1, a nota acrescenta que o número de emergência na Europa é 112.
- Não são apresentadas causas nem associações de condições: `associations` permanece vazio até que um clínico revise um item. Uma associação é sempre "pode estar associada a".
- Os códigos SNOMED CT são escritos apenas onde a licença o permite (ver [Sistemas de código FHIR](https://developers.anpheros.com/pt/guides/fhir-code-systems)).
- As Observações de sintomas anteriores recebem a codificação de conceito Anpheros na próxima vez que forem atualizadas.

## Relacionado

- [Anpheros Symptom Engine: metodologia](https://developers.anpheros.com/pt/guides/symptom-engine): como os conceitos são atribuídos, verificados e avaliados
- [Anpheros Search](https://developers.anpheros.com/pt/guides/anpheros-search): uma pesquisa sobre sintomas, condições e tratamentos, com fontes
- [FHIR code systems](https://developers.anpheros.com/pt/guides/fhir-code-systems): todos os sistemas de código por tipo de recurso
- [API de dados longitudinais do paciente](https://developers.anpheros.com/pt/guides/longitudinal-patient-data-api)
- [Como armazenar registos médicos usando FHIR R4](https://developers.anpheros.com/pt/guides/store-medical-records-fhir)
- [Plataforma FHIR](https://developers.anpheros.com/pt/guides/fhir)
