---
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 permite especificar el
idioma, ya que el servidor de la OMS ofrece traducciones oficiales. En `ciecl`
se expone el parámetro `lang = "es"` (por defecto) o `lang = "en"`.

```{r eval=FALSE}
# Búsqueda en español (por defecto)
# Requiere API Key OMS
cie11_search("diabetes mellitus", lang = "es")
```

> Nota: esta sección requiere credenciales de la API OMS. Consulta la vignette
> [Guía de Instalación y Configuración](instalacion.html) para aprender a
> guardarlas de forma segura utilizando `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**: <https://deis.minsal.cl/centrofic/>
- **CIE-11 OMS**: <https://icd.who.int/>
- **API CIE-11**: <https://icd.who.int/icdapi>
