---
title: "Soporte de idiomas e internacionalización"
author: "Rodolfo Tasso Suazo"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Soporte de idiomas e internacionalización}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
## Idiomas soportados
El paquete `ciecl` trabaja principalmente en español de Chile, pero ofrece
búsqueda multilingüe cuando la fuente de datos lo permite. La tabla resume
el comportamiento por función.
| Función | Idioma dataset | Idioma búsqueda | Notas |
|-----------------|----------------------|------------------|-----------------------------------------|
| `cie_lookup()` | Español (Chile) | — | Búsqueda por código; idioma no aplica |
| `cie_search()` | Español (Chile) | Español | Descripciones en español chileno |
| `cie11_search()`| Español / Inglés | Español / Inglés | Configurable vía parámetro `lang` |
| `cie10_sql()` | Español (Chile) | SQL | Columna `descripcion` en español |
## Dataset CIE-10 Chile
El dataset `cie10_cl` contiene los códigos vigentes con descripciones en
español chileno según el catálogo oficial MINSAL/DEIS v2018. Ver
`?cie10_cl` para el detalle de columnas.
```{r}
library(ciecl)
head(cie10_cl[, c("codigo", "descripcion", "capitulo")])
```
La columna `descripcion` conserva tildes y eñes del catálogo original. Esto
es importante porque muchas rutinas de limpieza despojan los acentos; en
`ciecl` la normalización ocurre solo en la etapa de *búsqueda*, no en el
dato almacenado.
### Características del español chileno
- **Tildes preservadas en el dataset**: "Neumonía", "Riñón", "Corazón".
- **Terminología local**: Usa términos médicos comunes en Chile.
- **Sin anglicismos**: Traducciones oficiales del MINSAL.
## Búsqueda tolerante a tildes y eñes
`cie_search()` normaliza internamente la consulta para que el usuario pueda
escribir con o sin tildes. Esto es especialmente útil en datos clínicos
mezclados, donde el mismo término aparece con y sin acento.
```{r}
# Con o sin tilde: mismo resultado
cie_search("neumonia")
cie_search("neumonía")
cie_search("NEUMONIA")
```
La misma lógica aplica a la eñe: buscar `"rinon"` encuentra "Riñón" en el
catálogo.
```{r}
cie_search("rinon")
```
## Siglas médicas chilenas
El paquete incluye un diccionario de **siglas médicas** de uso clínico en
Chile. Esto permite que un analista escriba `IAM` en vez del código
completo y `ciecl` resuelva la sigla al término oficial del catálogo.
```{r}
# Listar todas las siglas disponibles
head(cie_short())
# Filtrar por categoría
cie_short(category = "cardiovascular")
# Usar la sigla directamente en búsqueda
cie_search("IAM") # Infarto Agudo del Miocardio
cie_search("EPOC") # Enfermedad Pulmonar Obstructiva Crónica
cie_search("DM2") # Diabetes Mellitus tipo 2
```
La tabla siguiente resume las categorías disponibles y su tamaño
aproximado. Los números pueden variar entre versiones del paquete.
| Categoría | Ejemplos |
|------------------|-------------------------------|
| Cardiovascular | IAM, HTA, ACV, FA, ICC |
| Respiratoria | TBC, EPOC, NAC, SDRA |
| Metabólica | DM, DM1, DM2, ERC, IRC |
| Gastrointestinal | HDA, HDB, RGE, DHC |
| Infecciosa | VIH, ITU, ITS, sepsis |
| Oncológica | CA, LMA, LMC, LLA, LLC |
| Neurológica | TEC, EPI, EM, ELA |
| Psiquiátrica | TDAH, TOC, TAG, TEPT |
## API CIE-11 multilingüe
`cie11_search()` consulta la API oficial de la OMS y sí acepta idioma,
porque el endpoint de la OMS está traducido a varios. En `ciecl` se expone
el parámetro `lang = "es"` (por defecto) o `lang = "en"`.
```{r eval=FALSE}
# Búsqueda en español (por defecto)
cie11_search("diabetes mellitus", lang = "es")
# Búsqueda en inglés
cie11_search("diabetes mellitus", lang = "en")
```
> Nota: esta sección requiere credenciales de la API OMS. Ver la vignette
> "Configuración de la API CIE-11" para cómo guardarlas con `keyring`.
## Encoding y caracteres especiales
El paquete está codificado en **UTF-8** y el dataset preserva todos los
caracteres del español (tildes, eñe, diéresis) y los símbolos de
codificación dual (daga †, asterisco \*) que aparecen en el catálogo
MINSAL. Al buscar, `cie_search()` y `cie_norm()` saben limpiarlos.
```{r}
Encoding(cie10_cl$descripcion[1])
```
## Referencias
- **CIE-10 Chile**:
- **CIE-11 OMS**:
- **API CIE-11**: