# Sistemas de código FHIR

> Quais sistemas de código cada tipo de recurso FHIR utiliza: LOINC para medições e resultados de laboratório, ICD-10 para condições, ATC para medicamentos, UCUM para unidades, e SNOMED CT com uma licença.

Source: https://developers.anpheros.com/pt/guides/fhir-code-systems

O que a plataforma armazena e o que o Anpheros Daily (a aplicação do paciente) escreve através da API. As aplicações podem usar qualquer
sistema de código que o FHIR permita; esta página indica quais a plataforma reconhece (pesquisa de exibição,
verificações IPS, motor de contexto) e quais o Anpheros utiliza. Última atualização em 22 de setembro de 2026.

| Recurso | Elemento | Sistemas de código | Notas |
|---|---|---|---|
| Observation (sinais vitais) | `code` | LOINC (`http://loinc.org`) | 8867-4 frequência cardíaca, 85354-9 painel de pressão arterial (8480-6 / 8462-4 componentes), 8310-5 temperatura corporal, 2339-0 glucose, 29463-7 peso corporal, 39156-5 IMC, 59408-5 SpO₂, 8302-2 altura |
| Observation (laboratório) | `code` | LOINC; local `urn:anpheros:lab` quando nenhum LOINC é conhecido | mapeado pelo Anpheros Daily; intervalo de referência em `referenceRange`, documento em `derivedFrom` |
| Observation (sintoma) | `code`, `category` | ICD-10 (`http://hl7.org/fhir/sid/icd-10`) capítulo R; categoria `urn:anpheros:observation-category\|symptom`; SNOMED CT com uma licença | texto livre permanece em `code.text`; intensidade 1–10 em `valueQuantity` (`{score}`). Recursos escritos antes de 13 de outubro de 2026 podem conter o sistema HL7 `observation-category` com o código `symptom`; filtrar por código (`category=symptom`), não por sistema. Apenas sintomas que o paciente relata como presentes, sobre si mesmo, são escritos |
| Observation (inquérito, bem-estar) | `code`, `component` | `urn:anpheros:wellbeing` (dimensão: emocional / mental / física) | intensidade como componente `valueQuantity` `{score}`; nota em `note` |
| Observation (atividade, resumos de acompanhamento diário) | `code` | LOINC: 40443-4 FC de repouso, 8867-4 FC (componentes min/média/máx), 80404-7 HRV (RMSSD), 59408-5 SpO₂, 41950-7 passos, 41981-2 energia, 93832-4 duração do sono, 93831-6 / 93830-8 fases do sono | `effectivePeriod` cobre o dia; categoria `activity` |
| Condition | `code`, `severity`, `clinicalStatus` | ICD-10; gravidade SNOMED CT (24484000 grave, 6736007 moderada, 255604002 leve); `condition-clinical` | categoria `problem-list-item` |
| MedicationStatement | `medicationCodeableConcept` | ATC (`http://www.whocc.no/atc`); `code.text` = nome do produto | extensão `daily-medication` para campos específicos da aplicação |
| MedicationAdministration | `medicationCodeableConcept`, `supportingInformation` | ATC; o plano de tratamento como `MedicationStatement/{id}` em `supportingInformation` (parâmetro de pesquisa `statement`) | um recurso por dose tomada ou saltada (`status` concluída / não realizada) |
| Immunization | `vaccineCode` | ATC J07 (`http://www.whocc.no/atc`) ou a nomenclatura nacional; `vaccineCode.text` sempre mantido | `occurrenceDateTime` necessário para a secção IPS; `protocolApplied.doseNumberPositiveInt` para a dose |
| AllergyIntolerance | `code`, `reaction.manifestation`, `criticality` | SNOMED CT (com uma licença) ou apenas `code.text`; ATC para alergias a medicamentos | categoria alimentar / medicamento / ambiente / biológico |
| DocumentReference | `type` | Tipos de documentos LOINC (`DOC_KIND_LOINC` em `/v1`) | |
| Encounter | `class`, `type` | Classe v3-ActCode; SNOMED CT tipo quando conhecido | `episodeOfCare` → o EpisodeOfCare de uma gravidez / doença crónica / tratamento |
| EpisodeOfCare | `type`, `diagnosis.condition` | `urn:anpheros:episode-type` (doença / tratamento / gravidez / outro); `diagnosis.condition` → a Condition | um por condição do Anpheros Daily ("dosar", 25 de setembro de 2026); `period` = início → fim. Recursos ligados apontam para a Condition: `Observation.focus`, `MedicationStatement.reasonReference`, `DocumentReference.context.related`, `Appointment.reasonReference` (pesquisa: `focus`, `reason-reference`, `related`, `condition`) |
| Appointment | `serviceType` | Sistema de código `service-type` | |
| RelatedPerson | `relationship` | v3-RoleCode (MTH, FTH, CHILD, SPS, …) | |
| QuestionnaireResponse | `questionnaire` | URLs canónicas sob `https://anpheros.com/fhir/Questionnaire/` | |
| Basic | `code` | `urn:anpheros:basic` | escape hatch; todo o código documentado aqui antes de usar |
| Provenance | `agent.type` | `provenance-participant-type` | |

## Identificadores e extensões

- Identificadores locais das linhas do Anpheros Daily: `urn:anpheros:daily:{vital|medication|condition|episode|lab|symptom|document|weight|wellbeing|intake|immunization|allergy|health-day}`.
- Extensão de condição `daily-condition` (25 Set 2026): `kind` (doença / tratamento / gravidez / outro), `color` (chave da paleta da aplicação), `source`, `due_date` (gravidez). Uma gravidez sem código escrito acarreta ICD-10 `Z33`.
- As extensões residem em `https://anpheros.com/fhir/StructureDefinition/daily-*` (`daily-medication`, `daily-symptom`, `daily-condition`, …).
- As unidades são UCUM (`http://unitsofmeasure.org`) sempre que uma quantidade é escrita.

## Conceitos de Sintomas (release 2026.10.2, 16 de Outubro de 2026)

`GET /v1/terminology/symptoms?q=&icd10=&kind=symptom|finding|all&lang=&limit=&offset=` e
`GET /v1/terminology/symptoms/{concept_id}` servem os conceitos de sintomas Anpheros: um identificador estável
(`SYM-0001`…, nunca reutilizado; sistema `https://anpheros.com/fhir/CodeSystem/symptom`), o mapeamento ICD-10 com a sua equivalência (`equivalent`, ou `broader` quando o código ICD-10 abrange mais do que o conceito), os rótulos e os termos de correspondência utilizados para encontrar o conceito em texto livre.

- 86 conceitos: 70 sintomas e 16 achados (R70–R94). Os sintomas utilizam ICD-10 R00–R69 e, onde a OMS classifica o
  sintoma noutro local, o código da OMS: G47 problemas de sono, H53.2 visão dupla, H53.8 visão turva (mais abrangente), H93.1
  acufenos, K59.0 obstipação, L29.9 prurido, M25.5 dor articular, M54 dor lombar.
- Cada código e título em inglês foi verificado contra o navegador WHO ICD-10 Versão 2019 em 15 de Outubro de 2026, incluindo
  as suas notas de inclusão e exclusão; `icd10.display` é o título da OMS.
- Cada conceito também mapeia para **ICD-11 MMS 2025-01** (`icd11`: código, título da OMS, equivalência `equivalent | wider |
  narrower | inexact`) and to a **body system** (`body_system`: the ICD-11 chapter 21 block of that code, e.g. `nervous`,
  `digestive`). O código de sintoma do capítulo 21 é utilizado em vez de um código de doença (dor de cabeça → MB4D, não 8A8Z); cada
  desvio da tabela de mapeamento WHO ICD-10 → ICD-11 está listado em `release.json` (`icd11_departures`). Filtrar com
  `?icd11=MB4D` ou `?body_system=digestive`.
- Os rótulos carregam um estado `review`: `source` (o título oficial em inglês da OMS), `in_use` (os rótulos romenos e termos de correspondência que Anpheros Daily utiliza) ou `ai_reviewed` (rótulos leigos em 19 idiomas: traduções automáticas revistas termo a termo
  contra os títulos da OMS com assistência de IA, **não** por um clínico ou um tradutor médico profissional). `display`
  é o rótulo preferido em `lang`, caso contrário o rótulo leigo, caso contrário em inglês; `display_lang` indica qual.
- Sinais de alerta: 32 itens para 14 conceitos, citados palavra por palavra de páginas de domínio público da CDC e NIDDK, cada um com a sua fonte,
  `review: source_verified` e uma nota de não-diagnóstico. Sem causas ou associações de condições. Cada conceito carrega
  `clinical_review: false` até que um clínico qualificado reveja a versão.
- Os dados residem em `app/terminology/symptoms/` (`concepts.csv`, `labels.csv`, `release.json` com fontes); uma alteração
  é um commit revisto e um novo número de versão.
- Anpheros Daily adiciona o conceito como uma segunda codificação ao lado do ICD-10 em Observações de sintomas.
- Demonstração com pedidos e respostas: [API de dados de sintomas](https://developers.anpheros.com/pt/guides/symptom-data-api).

### Os mesmos conceitos como terminologia FHIR (15 de Outubro de 2026)

Apenas leitura, da mesma versão, com a mesma regra de publicação (apenas rótulos revistos):

| Recurso | Leitura | Notas |
|---|---|---|
| CodeSystem | `GET /fhir/R4/CodeSystem/anpheros-symptom`, `GET /fhir/R4/CodeSystem?url=https://anpheros.com/fhir/CodeSystem/symptom` | `content: complete`, `status: draft` até ser clinicamente revisto; propriedades `kind`, `status`, `icd10`, `icd11`, `body_system`; rótulos romenos, termos de correspondência e os rótulos leigos como designações |
| CodeSystem/$lookup | `GET /fhir/R4/CodeSystem/$lookup?system=https://anpheros.com/fhir/CodeSystem/symptom&code=SYM-0047&displayLanguage=ro` | `Parameters` com display, designações e propriedades |
| ValueSet | `GET /fhir/R4/ValueSet/anpheros-symptoms`, `GET /fhir/R4/ValueSet/$expand?url=https://anpheros.com/fhir/ValueSet/anpheros-symptoms&filter=&displayLanguage=&count=&offset=` | sintomas ativos (achados excluídos) |
| ConceptMap | `GET /fhir/R4/ConceptMap/anpheros-symptom-to-icd10` | `equivalent`, ou `wider` quando o código ICD-10 abrange mais do que o conceito (H53.8) |
| ConceptMap | `GET /fhir/R4/ConceptMap/anpheros-symptom-to-icd11` | ICD-11 MMS 2025-01 (`http://id.who.int/icd/release/11/mms`), com `equivalent`, `wider`, `narrower` ou `inexact` |

**Perfil `anpheros-symptom`** (`POST /fhir/R4/Observation/$validate?profile=anpheros-symptom`, canónico
`https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation`): categoria
`urn:anpheros:observation-category|symptom` (o código HL7 `observation-category` é rejeitado), as palavras da pessoa em
`code.text`, o conceito Anpheros consistente com o código ICD-10, sujeito = Paciente, estado final / alterado /
corrigido / inserido-com-erro, effective[x] com `effectivePeriod.end` não antes de `start`, intensidade como UCUM `{score}`
0–10. Tal como os outros perfis, reporta problemas e não rejeita escritas.

## Licenças

LOINC, ATC (WHO), ICD-10 (WHO) e UCUM são utilizados sob as suas licenças públicas. SNOMED CT requer uma
licença nacional ou de afiliado: as tabelas de mapeamento são fornecidas com o código, mas os códigos SNOMED só são escritos quando `TERMINOLOGY_SNOMED_ENABLED` está ativo (pendente a licença para a Roménia).

Como mapear dados de diferentes fontes para estes sistemas de códigos, com unidades, datas e validação: [Como normalizar dados médicos](https://developers.anpheros.com/pt/guides/normalize-medical-data).

Onde consultar estes sistemas de códigos e o que o conjunto incluído abrange: [API de terminologia médica](https://developers.anpheros.com/pt/guides/medical-terminology-api).
