# Sistemas de códigos FHIR

> Qué sistemas de códigos utiliza cada tipo de recurso FHIR: LOINC para mediciones y resultados de laboratorio, ICD-10 para condiciones, ATC para medicamentos, UCUM para unidades, y SNOMED CT detrás de un indicador de licencia.

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

Lo que la plataforma almacena y lo que Anpheros Daily (la aplicación del paciente) escribe a través de la API. Las aplicaciones pueden usar cualquier sistema de códigos que FHIR permita; esta página indica cuáles reconoce la plataforma (búsqueda de visualización, comprobaciones de IPS, motor de contexto) y cuáles utiliza Anpheros. Última actualización: 22 de septiembre de 2026.

| Recurso | Elemento | Sistemas de códigos | Notas |
|---|---|---|---|
| Observation (signos vitales) | `code` | LOINC (`http://loinc.org`) | 8867-4 frecuencia cardíaca, 85354-9 panel de presión arterial (8480-6 / 8462-4 componentes), 8310-5 temperatura corporal, 2339-0 glucosa, 29463-7 peso corporal, 39156-5 IMC, 59408-5 SpO₂, 8302-2 altura |
| Observation (laboratorio) | `code` | LOINC; local `urn:anpheros:lab` cuando no se conoce LOINC | mapeado por Anpheros Daily; rango de referencia en `referenceRange`, documento en `derivedFrom` |
| Observation (síntoma) | `code`, `category` | ICD-10 (`http://hl7.org/fhir/sid/icd-10`) capítulo R; categoría `urn:anpheros:observation-category\|symptom`; SNOMED CT detrás de un indicador | texto libre permanece en `code.text`; intensidad 1–10 en `valueQuantity` (`{score}`). Los recursos escritos antes del 13 de octubre de 2026 pueden llevar el sistema HL7 `observation-category` con código `symptom`; filtrar por código (`category=symptom`), no por sistema. Solo se registran los síntomas que el paciente informa como presentes, sobre sí mismo |
| Observation (encuesta, bienestar) | `code`, `component` | `urn:anpheros:wellbeing` (dimensión: emocional / mental / física) | intensidad como componente `valueQuantity` `{score}`; nota en `note` |
| Observation (actividad, resúmenes de seguimiento diario) | `code` | LOINC: 40443-4 FC en reposo, 8867-4 FC (componentes min/prom/max), 80404-7 HRV (RMSSD), 59408-5 SpO₂, 41950-7 pasos, 41981-2 energía, 93832-4 duración del sueño, 93831-6 / 93830-8 etapas del sueño | `effectivePeriod` cubre el día; categoría `activity` |
| Condition | `code`, `severity`, `clinicalStatus` | ICD-10; gravedad SNOMED CT (24484000 grave, 6736007 moderada, 255604002 leve); `condition-clinical` | categoría `problem-list-item` |
| MedicationStatement | `medicationCodeableConcept` | ATC (`http://www.whocc.no/atc`); `code.text` = nombre del producto | extensión `daily-medication` para campos específicos de la aplicación |
| MedicationAdministration | `medicationCodeableConcept`, `supportingInformation` | ATC; el plan de tratamiento como `MedicationStatement/{id}` en `supportingInformation` (parámetro de búsqueda `statement`) | un recurso por dosis tomada u omitida (`status` completada / no realizada) |
| Immunization | `vaccineCode` | ATC J07 (`http://www.whocc.no/atc`) o la nomenclatura nacional; `vaccineCode.text` siempre se mantiene | `occurrenceDateTime` requerido para la sección IPS; `protocolApplied.doseNumberPositiveInt` para la dosis |
| AllergyIntolerance | `code`, `reaction.manifestation`, `criticality` | SNOMED CT (detrás de un indicador) o `code.text` solamente; ATC para alergias a medicamentos | categoría alimento / medicamento / entorno / biológico |
| DocumentReference | `type` | Tipos de documentos LOINC (`DOC_KIND_LOINC` en `/v1`) | |
| Encounter | `class`, `type` | Clase v3-ActCode; SNOMED CT tipo cuando se conoce | `episodeOfCare` → el EpisodeOfCare de un embarazo / enfermedad crónica / tratamiento |
| EpisodeOfCare | `type`, `diagnosis.condition` | `urn:anpheros:episode-type` (enfermedad / tratamiento / embarazo / otro); `diagnosis.condition` → la Condition | uno por condición de Anpheros Daily ("dosar", 25 de septiembre de 2026); `period` = inicio → fin. Los recursos enlazados apuntan a la Condition: `Observation.focus`, `MedicationStatement.reasonReference`, `DocumentReference.context.related`, `Appointment.reasonReference` (búsqueda: `focus`, `reason-reference`, `related`, `condition`) |
| Appointment | `serviceType` | Sistema de códigos `service-type` | |
| RelatedPerson | `relationship` | v3-RoleCode (MTH, FTH, CHILD, SPS, …) | |
| QuestionnaireResponse | `questionnaire` | URLs canónicas bajo `https://anpheros.com/fhir/Questionnaire/` | |
| Basic | `code` | `urn:anpheros:basic` | escape hatch; cada código documentado aquí antes de su uso |
| Provenance | `agent.type` | `provenance-participant-type` | |

## Identificadores y extensiones

- Identificadores locales de filas de Anpheros Daily: `urn:anpheros:daily:{vital|medication|condition|episode|lab|symptom|document|weight|wellbeing|intake|immunization|allergy|health-day}`.
- Extensión de condición `daily-condition` (25 Sep 2026): `kind` (enfermedad / tratamiento / embarazo / otro), `color` (clave de paleta de aplicaciones), `source`, `due_date` (embarazo). Un embarazo sin código escrito lleva ICD-10 `Z33`.
- Las extensiones residen en `https://anpheros.com/fhir/StructureDefinition/daily-*` (`daily-medication`, `daily-symptom`, `daily-condition`, …).
- Las unidades son UCUM (`http://unitsofmeasure.org`) en todos los lugares donde se escribe una cantidad.

## Conceptos de síntomas (versión 2026.10.2, 16 de octubre de 2026)

`GET /v1/terminology/symptoms?q=&icd10=&kind=symptom|finding|all&lang=&limit=&offset=` y `GET /v1/terminology/symptoms/{concept_id}` sirven a los conceptos de síntomas de Anpheros: un identificador estable (`SYM-0001`…, nunca reutilizado; sistema `https://anpheros.com/fhir/CodeSystem/symptom`), el mapeo ICD-10 con su equivalencia (`equivalent`, o `broader` cuando el código ICD-10 cubre más que el concepto), las etiquetas y los términos de búsqueda utilizados para encontrar el concepto en texto libre.

- 86 conceptos: 70 síntomas y 16 hallazgos (R70–R94). Los síntomas utilizan ICD-10 R00–R69 y, cuando la OMS clasifica el síntoma en otro lugar, el código de la OMS: G47 problemas del sueño, H53.2 visión doble, H53.8 visión borrosa (más amplia), H93.1 tinnitus, K59.0 estreñimiento, L29.9 picazón, M25.5 dolor articular, M54 dolor de espalda.
- Cada código y título en inglés se verificó contra el navegador WHO ICD-10 Versión 2019 el 15 de octubre de 2026, incluidas sus notas de inclusión y exclusión; `icd10.display` es el título de la OMS.
- Cada concepto también se mapea a **ICD-11 MMS 2025-01** (`icd11`: código, título de la OMS, equivalencia `equivalent | wider | narrower | inexact`) and to a **body system** (`body_system`: the ICD-11 chapter 21 block of that code, e.g. `nervous`, `digestive`). Se utiliza el código de síntoma del capítulo 21 en lugar de un código de enfermedad (dolor de cabeza → MB4D, no 8A8Z); cada desviación de la tabla de mapeo WHO ICD-10 → ICD-11 se enumera en `release.json` (`icd11_departures`). Filtre con `?icd11=MB4D` o `?body_system=digestive`.
- Las etiquetas tienen un estado `review`: `source` (el título oficial en inglés de la OMS), `in_use` (las etiquetas rumanas y los términos de búsqueda que utiliza Anpheros Daily) o `ai_reviewed` (etiquetas laicas en 19 idiomas: traducciones automáticas revisadas término por término contra los títulos de la OMS con asistencia de IA, **no** por un médico o un traductor médico profesional). `display` es la etiqueta preferida en `lang`, de lo contrario la etiqueta laica, de lo contrario en inglés; `display_lang` indica cuál.
- Señales de advertencia: 32 elementos para 14 conceptos, citados palabra por palabra de páginas de dominio público de CDC y NIDDK, cada uno con su fuente, `review: source_verified` y una nota de "no es un diagnóstico". Sin causas ni asociaciones de condiciones. Cada concepto lleva `clinical_review: false` hasta que un médico cualificado revise la versión.
- Los datos residen en `app/terminology/symptoms/` (`concepts.csv`, `labels.csv`, `release.json` con fuentes); un cambio es un commit revisado y un nuevo número de versión.
- Anpheros Daily añade el concepto como una segunda codificación junto a ICD-10 en las Observaciones de síntomas.
- Recorrido con solicitudes y respuestas: [API de datos de síntomas](https://developers.anpheros.com/es/guides/symptom-data-api).

### Los mismos conceptos que la terminología FHIR (15 de octubre de 2026)

Solo lectura, de la misma versión, con la misma regla de publicación (solo etiquetas revisadas):

| Recurso | Lectura | Notas |
|---|---|---|
| CodeSystem | `GET /fhir/R4/CodeSystem/anpheros-symptom`, `GET /fhir/R4/CodeSystem?url=https://anpheros.com/fhir/CodeSystem/symptom` | `content: complete`, `status: draft` hasta que se revisen clínicamente; propiedades `kind`, `status`, `icd10`, `icd11`, `body_system`; etiquetas rumanas, términos de búsqueda y etiquetas laicas como designaciones |
| CodeSystem/$lookup | `GET /fhir/R4/CodeSystem/$lookup?system=https://anpheros.com/fhir/CodeSystem/symptom&code=SYM-0047&displayLanguage=ro` | `Parameters` con visualización, designaciones y propiedades |
| ValueSet | `GET /fhir/R4/ValueSet/anpheros-symptoms`, `GET /fhir/R4/ValueSet/$expand?url=https://anpheros.com/fhir/ValueSet/anpheros-symptoms&filter=&displayLanguage=&count=&offset=` | síntomas activos (hallazgos excluidos) |
| ConceptMap | `GET /fhir/R4/ConceptMap/anpheros-symptom-to-icd10` | `equivalent`, o `wider` cuando el código ICD-10 cubre más que el concepto (H53.8) |
| ConceptMap | `GET /fhir/R4/ConceptMap/anpheros-symptom-to-icd11` | ICD-11 MMS 2025-01 (`http://id.who.int/icd/release/11/mms`), con `equivalent`, `wider`, `narrower` o `inexact` |

**Perfil `anpheros-symptom`** (`POST /fhir/R4/Observation/$validate?profile=anpheros-symptom`, canónico `https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation`): categoría `urn:anpheros:observation-category|symptom` (se rechaza el código HL7 `observation-category`), las palabras de la persona en `code.text`, el concepto Anpheros consistente con el código ICD-10, sujeto = Paciente, estado final / modificado / corregido / ingresado-con-error, effective[x] con `effectivePeriod.end` no antes de `start`, intensidad como UCUM `{score}` 0–10. Al igual que los otros perfiles, informa problemas y no rechaza escrituras.

## Licencias

LOINC, ATC (WHO), ICD-10 (WHO) y UCUM se utilizan bajo sus licencias públicas. SNOMED CT requiere una
licencia nacional o de afiliado: las tablas de mapeo se envían con el código, pero los códigos SNOMED solo se escriben cuando `TERMINOLOGY_SNOMED_ENABLED` está activado (pendiente de la licencia para Rumanía).

Cómo mapear datos de diferentes fuentes a estos sistemas de códigos, con unidades, fechas y validación: [Cómo normalizar datos médicos](https://developers.anpheros.com/es/guides/normalize-medical-data).

Dónde buscar estos sistemas de códigos y qué cubre el subconjunto incluido: [API de terminología médica](https://developers.anpheros.com/es/guides/medical-terminology-api).
