English summary below
Primera versión del paquete aprobada en la revisión por pares de rOpenSci y transferida a la organización ropensci. El paquete se instala además desde el R-universe de rOpenSci y su documentación se publica en https://docs.ropensci.org/ciecl/.
Cambios al usuario consolidados de la revisión:
ciecl_invalid_input (mensajes claros en lugar de errores
base de R): cie_search() valida
threshold/max_results;
cie_lookup() exige extract escalar;
cie_expand() valida code (con NA
abortando en lugar de retornar character(0)
silenciosamente); cie_table() exige un único código y
rechaza NA; cie_short() valida
category; cie_describe() valida y coacciona
default.cie_lookup(): el
modo vector exacto (IN (...)) ahora incluye
ORDER BY codigo, igual que los demás caminos de la
función.cie_lookup(): un
rango como "E10-E14" ya no excluye silenciosamente las
subcategorías del límite superior.cie10_sql(): una consulta
SELECT legítima que comienza con un comentario ya no aborta
como “no SELECT”.cie_search() con texto de solo
símbolos (p. ej. "!!"): ya no deriva en un error
interno.First package version approved at rOpenSci
peer review and transferred to the ropensci organization. The
package can also be installed from the rOpenSci R-universe and its
documentation is published at https://docs.ropensci.org/ciecl/. Consolidated
user-facing changes from the review: invalid inputs now abort with typed
errors of class ciecl_invalid_input across public
functions; cie_lookup() is deterministic
(ORDER BY codigo) in exact vector mode and its ranges now
include the upper limit’s subcategories; cie10_sql() no
longer rejects a legitimate SELECT starting with a comment;
and cie_search() handles symbol-only text.
El ciclo de desarrollo previo (0.9.8 en desarrollo, 2026-04-25 → 2026-09-16) se publica íntegramente como 1.0.0; su detalle se conserva en las secciones fechadas siguientes.
Sin cambios en la API pública; dos cambios de comportamiento
acotados: cie_short() ahora valida category y
cie_table(NA) aborta como input inválido en lugar de
reportar “código no encontrado: NA”.
ciecl_invalid_input): cie_short() valida que
category sea NULL o un string escalar no-NA (antes un
vector o numérico derivaba en un error duro no tipado);
cie_table() rechaza code = NA como input
inválido (antes caía en “Código no encontrado: NA”).cie_lookup(): el
modo vector exacto (IN (...)) ahora incluye
ORDER BY codigo, igual que los demás caminos de la
función.@returns de sigla_to_codigo() refleja que
retorna el primer código (string de longitud 1) o NULL.@importFrom dplyr select sin uso real (los usos en
R/ ya eran calificados dplyr::select());
writexl sale de Suggests (sin uso ejecutable
en el paquete) y de las tablas de instalación de las viñetas; se
verificó que Config/roxygen2/version en DESCRIPTION es el
mecanismo estándar del roxygen2 vigente (reemplaza a
RoxygenNote; document() la re-escribe
automáticamente) y se mantiene con el valor correcto;
codemeta.json registra dateModified.cie_lookup(), los errores tipados de
threshold/max_results en
cie_search(), la coerción de
default = NA_real_/NaN en
cie_describe() y el NULL del camino sin match de
sigla_to_codigo(); literales non-ASCII de
test-encoding.R convertidos a escapes
\uXXXX.Input validation hardened (class
ciecl_invalid_input): cie_short() requires
category to be NULL or a non-NA length-1 string, and
cie_table(NA) now aborts as invalid input instead of
reporting “code not found: NA”. Exact vector mode in
cie_lookup() now sorts by codigo for
deterministic output. Metadata cleanup: the unused
@importFrom dplyr select removal is completed (all uses
were already qualified dplyr::select()),
writexl leaves Suggests (no executable use in
the package), Config/roxygen2/version in DESCRIPTION was
verified to be the standard mechanism of the current roxygen2 (it
replaces RoxygenNote and is rewritten automatically by
document()) and is kept with its correct value, and
codemeta.json records dateModified. README
install and comorbidity chunks now follow the language conditional, and
the English vignette’s closing heading matches the Spanish register
(“Collaboration and Support”). Tests added for the inverted-range
warning, typed threshold/max_results errors,
default coercion in cie_describe(), and the
NULL no-match path of sigla_to_codigo().
Sin cambios en la API pública; un cambio de comportamiento acotado:
cie_table() ahora requiere un único código; pasar un vector
de largo >1 (uso nunca documentado) aborta con error claro en lugar
del error de gt.
cie10_sql(): una consulta
SELECT legítima que comenzaba con un comentario
(-- o /* */) abortaba como “no SELECT”; la
validación ahora corre después de remover comentarios y strings.ciecl_invalid_input): cie_table() valida que
code sea un string de longitud 1;
cie_describe() valida que default sea
character escalar o NA.Bug fix: cie10_sql() no longer rejects a legitimate
SELECT that starts with a comment (-- or
/* */); the check now runs after stripping comments and
string literals. Input validation hardened (class
ciecl_invalid_input): cie_table() requires
code to be a length-1 string (a behavior change: a length
>1 vector, never a documented use, now aborts with a clear error
instead of the gt error) and cie_describe()
requires default to be a scalar character or
NA.
Primera tanda (Fase A) de la auditoría interna de R/.
Sin cambios en la API pública; un cambio de comportamiento acotado:
cie_expand(NA) ahora aborta con error claro en lugar de
retornar character(0) silenciosamente.
cie_lookup(): un
rango como "E10-E14" excluía silenciosamente las
subcategorías del límite superior
(E14.0–E14.9), porque BETWEEN con
collation BINARY compara lexicográficamente
('E14.9' > 'E14'). La consulta ahora cubre el prefijo
del límite superior, por lo que el rango incluye todas las
subcategorías.ciecl_invalid_input en lugar de errores base de R):
cie_lookup() aborta si extract = TRUE recibe
más de un código (el contrato documentado es escalar);
cie_expand() valida que code sea un string
escalar; cie_search() valida tipo y ausencia de
NA en threshold y max_results;
cie11_search() valida NA en
max_results.cie_search() — esquema de salida
estable: la columna uso_cl ahora está presente en
todos los caminos internos (FTS y fallbacks), y
only_uso_cl = TRUE filtra los códigos legado
antes de aplicar el límite max_results
(antes podían consumir cupo del límite y truncar resultados
vigentes).cie_lookup() vectorial: los códigos
con caracteres inválidos o no encontrados se informan en un mensaje
agregado (como ya hacía el modo escalar), en lugar de descartarse en
silencio.cie_guide(): la tabla de orientación
recomendaba el argumento deprecado expandir = TRUE; ahora
indica el vigente expand = TRUE.Segunda tanda (Fase B) de la misma auditoría: ítems menores de bajo riesgo. Sin cambios en la API pública.
cie10_sql(): el escaneo
de palabras clave bloqueadas ahora se aplica sobre la consulta ya limpia
de literales de texto y comentarios, eliminando falsos positivos en
SELECT legítimas (p. ej. LIKE '%drop%'); las
protecciones vigentes no cambian.CIECL_CACHE_DIR="": una variable de
entorno definida pero vacía ahora se trata como no definida (fallback a
tools::R_user_dir()); antes derivaba en escribir la caché
en el directorio de trabajo.cie_norm(): "E11.X"
(convención “no especificada”) ya no queda como "E11."
malformado; al remover la X final se remueve también el
punto previo si lo hay.file.rename()/file.remove() y advierten con un
mensaje informativo si el sistema operativo rechaza la operación (típico
lock de archivo en Windows), en lugar de continuar en silencio.cie_comorbid(): la documentación del
valor de retorno ahora indica correctamente tibble (antes
decía data.frame), y data, id y
code se validan al inicio con errores tipados
ciecl_invalid_input.cie_search() con texto de solo
símbolos (p. ej. "!!"): el camino sin candidatos
para la búsqueda difusa ahora retorna de inmediato un tibble vacío con
el esquema correcto; antes calculaba mean(numeric(0)) y
propagaba un NaN silencioso en los scores.@importFrom sin uso real (pull,
rowwise, tribble, matches,
select); NAMESPACE regenerado.Bug fix: code ranges in cie_lookup()
(e.g. "E10-E14") now include the upper bound’s
subcategories (E14.x), previously dropped silently by the
lexicographic BETWEEN. Input validation hardened
(extract = TRUE scalar-only, scalar
cie_expand() — with NA now aborting instead of
silently returning character(0) —, typed
threshold/max_results with explicit
NA guards in cie_search() and
cie11_search()). cie_search() output schema is
now stable (uso_cl present on every internal path) and
only_uso_cl = TRUE filters legacy codes before the
max_results cap. Vector-mode cie_lookup()
reports invalid/not-found codes in a single aggregate message, and
cie_guide() now points to the current expand
argument instead of the deprecated expandir.
Phase B (same audit, low-risk items): cie10_sql()
keyword scanning now ignores string literals and comments (no more false
positives on legitimate SELECTs, same protections); an
empty CIECL_CACHE_DIR falls back to
tools::R_user_dir() instead of writing to the working
directory; cie_norm("E11.X") no longer leaves a dangling
dot; cache build/clear now warn if
file.rename()/file.remove() fail;
cie_comorbid() docs correctly state the tibble return and
data/id/code are validated up
front; cie_search() with a symbols-only text returns an
empty tibble with the correct schema instead of a silent
NaN; unused @importFrom entries
removed.
Cambios derivados del comentario de Maëlle del 2026-09-07. Sin cambios en la API pública.
rlang::is_interactive() || identical(Sys.getenv("IN_PKGDOWN"), "true")),
de modo que las páginas de referencia muestran la salida real de las
funciones. Los ejemplos de cie11_search() usan cassettes de
vcr (sin red ni credenciales); se agregó un cassette con
causas frecuentes de egreso en Chile (diabetes mellitus, hipertensión
esencial, neumonía).testthat::local_mocked_bindings() sobre
utils::packageVersion() y verifica que la caché se
reconstruye (sugerencia de la revisora).Config/Needs/website ahora incluye vcr
explícitamente, garantizando su instalación en el build del sitio.Examples on the pkgdown site now run at build time (interactive
or IN_PKGDOWN), reference pages show real output,
cie11_search() examples replay enriched vcr cassettes, and
a new test pins the cache-rebuild-on-version-mismatch behaviour using
testthat::local_mocked_bindings().
Reestructuración completa de la suite de tests, en el contexto de la
revisión rOpenSci #765. Sin cambios en R/ ni en la API
pública.
R/ perdidas, verificado con
covr línea por línea en cada fase de la poda.httr2; el único test
con red real queda protegido con skip_on_cran() +
skip_if_offline() + credencial de la API.CIECL_CACHE_DIR + withr; los tests de ciclo de
vida del caché viven en test-cie-sql-cache.R.expect_gte(), conteos genéricos) reemplazadas por valores
exactos verificados empíricamente contra el paquete
comorbidity; duplicados y flujos E2E redundantes
eliminados; un snapshot por mensaje de error.tests/testthat/setup.R; cada archivo clave mantiene al
menos un test ligero que corre también en CRAN (sin red, sin paquetes
opcionales, escribiendo solo en tempdir).test-cie-map-comorbid.R con los tests de
cie_map_comorbid(), extraídos de
test-cie-comorbid.R (que baja del límite de 600
líneas).Tercera tanda, a partir del seguimiento de @maelle en el issue rOpenSci #765. Sin cambios en la API pública.
mutate() quedó en lenguaje simple; el cruce entre la
búsqueda difusa y los códigos presentes en la base ahora se muestra con
código ejecutable (intersect()), explicitando de dónde
salen E11.9 y E14.9; la guía cierra el caso de
uso filtrando los egresos y resumiéndolos por tipo de diabetes. Los
mismos cambios se aplicaron a la gemela en inglés
case-study-discharges.Rmd, que queda sincronizada con
ciecl.Rmd.cie10_clear_cache() ahora indica que la reconstrucción tras
una actualización del paquete es automática (la caché guarda la versión
del paquete en la tabla cie10_meta y se reconstruye sola en
el primer uso si difiere); los casos de uso manual que quedan son caché
corrupta o liberación de disco. La ayuda de
cie10_disconnect() aclara que la desconexión manual solo es
necesaria al borrar el .db por fuera del paquete o al
cerrar procesos batch largos. Tres tests nuevos cubren el ciclo de
reconstrucción por versión.cie11_search(): la condición del
ejemplo con vcr se movió a @examplesIf, de
modo que ya no aparece en la documentación visible.Segunda tanda de correcciones de la revisión formal en el issue rOpenSci #765, a partir de los comentarios de @maelle. Cierra todos los ítems pendientes de la revisión.
cie11_search(): nuevo argumento
api_key = get_icd_api_key() con la nueva función exportada
get_icd_api_key(), que centraliza la lectura de las
credenciales de la API OMS siguiendo el patrón de httr2. La
ayuda gana una subsección “Seguridad de la API key” y las viñetas de
instalación (ES/EN) agregan la nota correspondiente (ms17).vcr: los ejemplos
de cie11_search() ahora corren sin conexión usando
cassettes de vcr (>= 2.0.0, agregado a
Suggests); cassette en
inst/_vcr/cie11_search.yml y
tests/testthat/setup-vcr.R con
filter_sensitive_data (ms19).cli (ms01–ms08).pak;
nueva guía de inicio con caso de uso real que reemplaza a
caso-uso-egresos.Rmd; nueva viñeta en inglés
vignettes/ciecl-en.Rmd (ms10–ms13)._pkgdown.yml
corregido según el PR #15 de la revisora (developed_by
escalar) (ms09).anyNA(), nzchar() y variables explicativas en
las funciones revisadas (ms15, ms16, ms18).expect_named(), expect_length(),
expect_type(), expect_all_false()) y
eliminación de ::: en la suite de tests (ms20).Tanda de correcciones a partir de la revisión formal de empaquetado de @yabellini en el issue rOpenSci #765. Sin cambios en la API pública: no se agregan ni eliminan funciones exportadas, no cambian firmas ni se rompe compatibilidad.
cie10_cl): la
columna uso_cl estaba documentada como lógica, pero en
realidad es character con las categorías
"principal", "legado",
"etiologico", "causa_externa" y
"causa_externa | principal". Corregido el
@format y el ejemplo roto
subset(cie10_cl, uso_cl == TRUE), que devolvía un conjunto
vacío (ybs08, ybs09).cie10_empty_tibble(): se agrega la
columna uso_cl al esquema del tibble vacío interno,
evitando inconsistencias al concatenar resultados (ybs36).cie_norm(), cie_validate_vector(),
cie_expand(), cie_table(),
cie_lookup() y cie_search() ahora emiten un
error en castellano vía cli::cli_abort() cuando se las
llama sin su argumento obligatorio, en lugar del mensaje en inglés de
rlang/R base (ybs19, ybs22, ybs24, ybs27, ybs30).cie10_sql(): validación explícita de
query (tipo character, longitud 1, no NA), captura de
errores de DBI::dbGetQuery() con tryCatch()
relanzados como clase ciecl_sql_error, descripción y
documentación de query ampliadas (FROM,
ORDER BY, GROUP BY, HAVING) y
@seealso [cie10_cl] (ybs12–ybs17). Terminología de los
mensajes homogeneizada al castellano (consulta/palabra clave/sentencias)
(ybs14).cie_norm(),
cie_normalizar(), cie_validate_vector(),
cie_expand(), cie_search(),
cie_lookup(), cie_table(),
cie_guide(), cie_describe() y
cie11_search() (ybs18, ybs20, ybs21, ybs23, ybs29, ybs32,
ybs33, ybs35). Las tildes de cie_siglas() —deprecated pero
exportada— corresponden a ybs25, y las de cie_short() y
cie_search() a ybs26.cie10_clear_cache() /
cie10_disconnect(): ayuda ampliada explicando qué
es la caché SQLite, cuándo conviene forzar la reconstrucción, qué es el
bloqueo del archivo .db, por qué ocurre y qué pasa si no se
libera (ybs10, ybs11).cie_short() y cie_validate_vector() el listado
de valores usa el conector " y " en lugar del
" and " que cli aplica por defecto al colapsar
vectores; el mensaje de cie_validate_vector() reemplaza
"DB" por "base de datos" y agrega la tilde de
"Códigos" mediante escape unicode, según lo sugerido en la
revisión (ybs14, ybs20, ybs27).cie_map_comorbid(): ahora emite un
cli::cli_warn() cuando alguna entrada no tiene formato
CIE-10 válido (p. ej. "hola" o 35), indicando
cuántas se clasificaron como "Otra". El comportamiento de
clasificación no cambia: los códigos CIE-10 válidos no mapeados siguen
en "Otra" (ybs34).cie_guide(): se mantiene como función,
se agrega un enlace cruzado desde el README hacia ella y
@seealso a ella desde las ayudas de las funciones de
búsqueda (ybs31).cie10_sql() y refuerzo de las aserciones de las dos ramas
“sin palabras válidas” de cie_search(), que ahora verifican
que la consulta de respaldo devuelve datos reales, no solo que no falla
(ybs17, ybs28).Trabajo preparado originalmente el 2026-05-29, comiteado recien el
2026-06-20: quedo guardado en git stash desde el 2026-06-09
hasta su recuperacion. Sin cambios en la API publica.
CONTRIBUTING.md (antes se mencionaba sin enlazar).question, que el
usuario no puede aplicar al crear un issue; ahora remite a la plantilla
Consulta. Tambien se sincronizo la politica de idioma y
la regla de encoding entre las secciones EN y ES, que estaban
desactualizadas entre si.Sin cambios en la API pública.
cie10_cl: documentación roxygen
completada — columna uso_cl documentada, descripción de
dominio para las 11 columnas, tildes corregidas,
@family datasets,
@seealso [cie_lookup()], [cie_search()], [cie10_sql()] y
ejemplos adicionales.texto renombrados
a text en las funciones internas
normalizar_tildes() y expandir_sigla() (no
exportadas, sin impacto en API).\(x) en cie-siglas.R y
cie-table.R.include_uso_cl / only_uso_cl
(2026-05-20)Expone la columna uso_cl del dataset CIE-10 MINSAL/DEIS
v2018 como filtro y como salida opcional en las dos funciones de
busqueda principales.
cie_lookup(include_uso_cl = TRUE, only_uso_cl = FALSE):
include_uso_cl = TRUE (default) preserva el contrato
historico: la columna uso_cl sigue apareciendo en el
output.only_uso_cl = TRUE filtra a codigos vigentes en Chile
excluyendo uso_cl == "legado".cie_search(include_uso_cl = FALSE, only_uso_cl = FALSE):
include_uso_cl = FALSE (default) preserva el contrato
historico (no incluye uso_cl en el output). Pasarlo a
TRUE agrega la columna.only_uso_cl = TRUE filtra el resultado a codigos
vigentes (excluye legado) en cualquier field
(descripcion o inclusion).uso_cl (textual, no
booleano): principal (8.898), legado (27.335),
causa_externa (3.295), etiologico (330),
causa_externa | principal (19).
only_uso_cl = TRUE conserva todo lo que NO es
legado (12.542 codigos vigentes).cie_lookup (TRUE) y cie_search (FALSE) para no
romper backward compat. El roxygen de ambas funciones lo menciona
explicitamente.tests/testthat/test-uso-cl-flags.R cubre los 4
paths (default, include solo, only solo, ambos) en ambas funciones. +18
tests, sin regresion sobre los 1069 existentes.Recuperación de cobertura sobre los paths agregados en Bloque A y
refactor de mocks de API CIE-11 al patrón canónico de
httr2. Sin cambios de API pública.
R/cie-sql.R: 81,07 → 96,60; R/cie-api.R:
90,76 → 100,00). Suite: 1069 tests (+20), 0 fails.R/cie-sql.R:
interactive() → rlang::is_interactive() (2
sitios) para que rlang::local_interactive(TRUE) pueda
activar el path cli_progress en tests sin TTY real.R/cie-api.R:
who_error_body() extraído del cuerpo de
cie11_search() como helper interno @noRd
testeable directamente. Misma lógica de extracción
(error_description → error →
message).tryCatch externo pasa de
{e$message} a {conditionMessage(e)},
propagando al usuario el detalle del body OMS cuando la API responde 4xx
(antes se mostraba solo "HTTP 401 ...").tests/testthat/test-api-mock.R migrado
al patrón canónico:
local_mocked_bindings(req_perform, .package = "httr2")
→ httr2::local_mocked_responses(mock_who_api(...)). El flow
real de httr2 corre hasta handle_resp() →
resp_failure_cnd(), lo que permite verificar end-to-end el
callback req_error(body = who_error_body).httr2::response_json()
/ httr2::response() en lugar de
structure(list(), class = "httr2_response") (resistente a
cambios internos de httr2).mock_who_api() que distingue por URL el
endpoint OAuth de token del endpoint de búsqueda OMS.Iteración técnica sobre patrones r-lib identificados en auditoría post-revisión. Sin cambios de API pública.
cie11_search() simplificado
(R/cie-api.R):
Authorization armado a mano) a
httr2::oauth_client() +
httr2::req_oauth_client_credentials(). httr2
ahora gestiona la obtención, cacheo y refresh del token de acceso de
forma transparente.httr2::resp_check_status() y
httr2::req_error(body = ...), exponiendo
error_description / error /
message del cuerpo de respuesta cuando viene en JSON.R/cie-sql.R):
build_cache_atomic() muestra ahora cuatro pasos vía
cli::cli_progress_step() (cargar dataset, escribir tabla,
construir índices, crear FTS5) durante la primera invocación (~16 s). En
sesiones no interactivas se mantiene completamente silencioso.cie-api.R, cie-search.R,
cie-comorbid.R): rlang::check_required()
estandariza el mensaje cuando faltan args obligatorios
(text, data, id,
code, codes).testthat::local_reproducible_output() en cada
test_that() que usa expect_snapshot, aislando
ancho de terminal, color y locale para evitar falsos positivos
cross-platform.cie_describe(),
cie_guide() y cie_guia_busqueda() (+42
tests).lifecycle::expect_deprecated() en lugar de
expect_warning(class = ...),
withr::local_db_connection() en lugar de helpers custom,
llamadas directas a internos en lugar de
getFromNamespace()..github/workflows/pkgcheck.yaml
(ropensci-review-tools/pkgcheck-action) con
post-to-issue: false para evitar 403 en creación de
issue..github/workflows/urlchecker.yaml con scheduled run
mensual..github/workflows/codemeta.yaml regenera
codemeta.json cuando cambia DESCRIPTION.test-coverage.yaml en
lugar de un porcentaje hardcoded.cie_search(): sigla
IRA desambiguada (ver detalle más abajo). Aliases
IRA_RESP e IRA_RENAL agregados.@importFrom duplicado eliminado en
cie-search.R.sapply() reemplazado por
vapply(..., logical(1)) en cie_table().cie_guia_busqueda()
(línea en blanco entre bloque roxygen y firma).Versión de cumplimiento editorial y técnico tras la revisión de Maëlle Salmon. Esta versión unifica la interfaz del paquete bajo estándares internacionales de R, manteniendo la documentación pedagógica en español para el contexto local.
IRA desambiguada
(cie_search()): la sigla IRA es ambigua en
contexto clínico chileno (puede ser infección respiratoria
aguda o insuficiencia renal aguda). Ahora
cie_search("IRA") mantiene el default respiratorio (uso más
frecuente en pediatría y atención primaria) pero emite una advertencia
explícita orientando al usuario hacia los nuevos alias inequívocos
IRA_RESP (respiratoria) e IRA_RENAL (renal).
Cierra bug detectado durante auditoría de seguridad post-split.lintr agregado en
.github/workflows/lint.yaml (template oficial r-lib).
Reporta lints sin bloquear el CI..lintr modernizado a sintaxis lintr
3.x (linters_with_defaults), removiendo el deprecado
with_defaults y el linter inexistente
cyclocomp_linter.cli: Todos los
errores, advertencias y mensajes informativos usan ahora
cli::cli_abort(), cli_warn() y
cli_inform() con clases de error personalizadas
(ciecl_invalid_input, ciecl_api_error, etc.)
para captura programática.@return a
@returns.[fun()]).@family a snake_case sin
tildes.cie-search.R se ha dividido en 4 módulos
(cie-search.R, cie-siglas.R,
cie-lookup.R, cie-guide.R) para mejorar la
mantenibilidad.%>% al
pipe nativo de R |> en todo el paquete (código,
vignettes y tests).withr para garantizar que las pruebas no contaminen el
cache del usuario, utilizando directorios temporales aislados.testthat::expect_snapshot() para asegurar la consistencia
de los mensajes en español generados por el paquete.usethis y litedown de Suggests:
por no ser referenciados en código, tests ni vignettes del paquete.Internacionalización de la API: Todos los
argumentos de las funciones públicas han sido migrados al inglés para
consistencia con el ecosistema tidyverse (dplyr, httr2). Los argumentos
antiguos en español emiten lifecycle::deprecate_warn() y
serán eliminados en la versión 1.0.0.
cie_lookup(): codigo ->
code, expandir -> expand,
normalizar -> normalize.cie_search(): texto ->
text, campo -> field,
solo_fuzzy -> only_fuzzy.cie_short(): Reemplaza a cie_siglas().
Argumento category.El script generador del dataset (generar_cie10_cl(),
parsear_cie10_minsal()) se movió a data-raw/
siguiendo la convención de R packages. No afecta el uso del paquete:
data(cie10_cl) sigue funcionando igual.
Tests del generador trasladados a sanity-check ejecutable desde
data-raw/.
Eliminación masiva de ciecl::: en tests para
favorecer devtools::load_all().
cie11_search(): texto ->
text.Motor de Normalización Único: Se establece
cie_norm() como la función canónica.
cie_normalize() y cie_normalizar() están ahora
deprecadas.
cie_describe(): Nueva función
vectorizada para obtener descripciones CIE-10 directamente, facilitando
su uso dentro de dplyr::mutate() sin necesidad de cruces
manuales.cie11_search() usando httr2 con mejores
prácticas de consumo web:
User-Agent.req_retry) para fallas
temporales.req_throttle) para respetar servidores
de la OMS.httr2 promovido de Suggests a
Imports.withr para la gestión de variables de entorno.Case Study,
Installation Guide) para consistencia en el sitio
pkgdown.README.Rmd para generar versiones sincronizadas en español
e inglés. El README principal es ahora en español.Complete restructuring of the test suite, in the context of rOpenSci
review #765. No changes to R/ or the public API.
R/ lines lost, verified line by line with covr
at each phase.httr2 mocks; the single live-network test is gated by
skip_on_cran() + skip_if_offline() + API
credentials.CIECL_CACHE_DIR + withr; cache lifecycle tests
live in test-cie-sql-cache.R.expect_gte(), generic counts) replaced with exact values
empirically verified against the comorbidity package;
duplicate and redundant end-to-end flows removed; one snapshot per error
message.tests/testthat/setup.R; each key test file keeps at least
one lightweight test that also runs on CRAN (no network, no optional
packages, writes only to tempdir).test-cie-map-comorbid.R file holding the
cie_map_comorbid() tests, split out of
test-cie-comorbid.R (now under the 600-line limit).mutate() wording, an executable intersect()
step showing where E11.9/E14.9 come from, and
a closing section that filters and summarizes discharges by diabetes
type. The English twin case-study-discharges.Rmd is now in
sync with ciecl.Rmd.cie10_clear_cache() docs
now state that rebuilding after a package update is automatic (cache
stores the package version in cie10_meta and rebuilds on
first use when it differs); cie10_disconnect() docs clarify
when manual disconnection is actually needed. Three new tests cover the
version-based rebuild cycle.cie11_search(): the vcr
example guard moved to @examplesIf, so it no longer shows
in the visible documentation.Comprehensive update focused on API consistency and technical compliance following rOpenSci peer review.
code, expand,
normalize, text) using the
lifecycle package. Old Spanish arguments remain functional
but emit warnings.cie_norm()
is now the single canonical normalization motor.cie_describe() for
direct, vectorized description lookup within mutate()
calls.cie11_search() now uses httr2 with
User-Agent, retry, and throttle policies.httr2 promoted to Imports.withr.pkgdown site
navigation localized to Spanish.English summary below
Version candidata para submission a rOpenSci. Cumple con rOpenSci Dev Guide 2025 (Capitulos 1, 5, 6, 20). R CMD check: 0 errors, 0 warnings. Tests: 1148 PASS, 95.6% cobertura.
Connection pooling SQLite: Cache atomico con
versionado en get_cie10_db(). Reutiliza conexiones activas,
reconstruye si la BD esta corrupta o desactualizada.
Vectorizacion mejorada:
cie_map_comorbid() y cie_normalizar()
refactorizados para procesamiento batch eficiente.
pkgdown site: Tema limpio compatible con rOpenSci, modo oscuro (light-switch), logo hexagonal, favicons.
Vignette caso de uso:
caso-uso-egresos con datos simulados de egresos
hospitalarios usando columnas esenciales DEIS.
@family y @seealso en todas las funciones
exportadas%>% (magrittr) en todo el
paquete.gitignorecodemeta.json con DESCRIPTION_pkgdown.yml lang alineado con contenido (es)inst/extdata/cie10.db bundled (causaba NOTE de
21.3MB)generar_cie10_cl() ya no
exportada (marcada @noRd)comorbidity y gt movidos de Imports a
Suggestsif (interactive()))generar_cie10_cl(): prioriza XLSX completo (39K+) sobre
XLS legadocie_guia_busqueda(): corregida referencia a funcion
inexistenteRelease candidate for rOpenSci submission. Complies with rOpenSci Dev Guide 2025 (Chapters 1, 5, 6, 20). R CMD check: 0 errors, 0 warnings. Tests: 1148 PASS, 95.6% coverage.
cie_map_comorbid() and
cie_normalizar()%>%), gitignore fixes,
codemeta sync