Módulo para consultar la sistematización de hallazgos de implementación, el modelo técnico de referencia CIE-11 y la orientación de soluciones del piloto extendido en establecimientos de salud.
Sección activa
Hallazgos del PoC
Contexto del Piloto
El piloto de CIE-11 en morbilidad y mortalidad en Chile implementó una API ICD-11 para la codificación de diagnósticos y una herramienta para consultar la API desde los registros médicos electrónicos, junto al uso de la plataforma Deisy-CIE11 como sistema de captura de datos y capacitación.
Caso de uso
Los médicos, desde la ventana habitual de definición de diagnósticos, codifican en CIE-11 (diagnósticos principales, causas externas y secundarios) mediante una funcionalidad que consulta servidores con la API de CIE-11. Se dispone de dos instancias de la API instaladas, una de ellas con alta disponibilidad. Todos los datos se envían a la plataforma Deisy-CIE11 para su análisis y recodificación por codificadores expertos.
CIE-11 y su API
La CIE-11 representa una mejora significativa respecto a versiones anteriores, al estar diseñada nativamente para entornos digitales. Permite una codificación más precisa y flexible gracias a su estructura jerárquica y al uso de códigos postcoordinados.
CIE-11 implementa una API que permite acceder programáticamente a la codificación a través del protocolo HTTP, definiendo URIs como identificadores únicos para entidades de clasificación.
Instalación vía Docker
docker run -p 80:80 \ -e acceptLicense=true \ -e saveAnalytics=true \ -e include=2024-01_es-en \ whoicd/icd-api
Docker Compose
services:
icd_api_minsal:
image: whoicd/icd-api:latest
container_name: icd_api_container_minsal
ports:
- "80:80"
environment:
- include=2024-01_es-en
- acceptLicense=true
- saveAnalytics=true
restart: unless-stopped
Plataforma Deisy
Software desarrollado para capturar datos asociados a pilotos de implementación de CIE-11 en el ámbito de morbilidad y mortalidad en Hospitales de la región del Maule, Chile. Diseñado para capturar, evaluar y validar codificaciones diagnósticas realizadas en registros clínicos electrónicos.
Arquitectura
Modelo de tres capas MVC (Modelo-Vista-Controlador) que garantiza escalabilidad, mantenibilidad y separación de responsabilidades. Interactúa con organizaciones locales, APIs de CIE-11 y el motor de bases de datos.
Perfiles de usuario
- Administrador: Gestión completa de usuarios, instituciones y configuraciones
- Estadístico: Primera validación de códigos enviados
- GRD: Segunda evaluación de codificaciones
- GS (Gold Standard): Evaluación final y definitiva
- RCE: Envío automatizado de datos desde registros clínicos electrónicos
Funcionalidades Clave
El sistema cubre el ciclo de ingreso y validación de codificaciones CIE-11: primero la captura desde los registros y la herramienta de capacitación; luego la evaluación en cadena por perfiles clínicos y estadísticos.
Flujo funcional
Captura de datos
- Recepción automática de datos desde registros clínicos electrónicos
- Módulo de capacitación para práctica en codificación CIE-11
- Validación en tiempo real de formatos y completitud de datos
- Gestión de duplicados y control de integridad
- API local como conexión primaria; API global MINSAL como respaldo automático
Evaluación de codificación
- Evaluación de codificación diagnóstica a distintos niveles (Estadístico, GRD y GS)
- Niveles de completitud de la revisión
- Categorización de errores de codificación para estadística
- Separación por especialidad
Calidad y seguridad del sistema
Seguridad
Protección frente a inyección SQL y Cross-Site Scripting (XSS), con lógica de negocio separada del front-end.
Escalabilidad
Diseño modular para ampliar la implementación sin comprometer el rendimiento.
Rendimiento y trazabilidad
Flujos de codificación y evaluación optimizados y auditables.
Mantenibilidad
Separación clara de responsabilidades en el patrón MVC.
Arquitectura de Dos Niveles
El modelo de referencia establece una arquitectura basada en dos niveles de servidores para la codificación de diagnósticos con CIE-11, garantizando alta disponibilidad y redundancia.
Servidor de Nivel Central
Habilitado por el equipo TIC de la institución responsable (ej. MINSAL). Proporciona el servicio de codificación con alta disponibilidad para todas las instituciones conectadas.
Servidor de Nivel Local
Instalado en cada institución participante. Garantiza disponibilidad independiente de la red y actúa como instancia primaria de consulta, con fallback al servidor central.
Requerimientos
Software
- Docker v28+ (imagen
whoicd/icd-api, 35.51 MB, arquitectura amd64) - Nginx como proxy inverso
- PostgreSQL como motor de base de datos
- PHP 8.2 + Laravel 11
- Node.js para compilar assets frontend
Hardware
- Servidor para plataforma Deisy (contenedor Docker + BD)
- Servidor para API ICD-11 local
- Servidor para API ICD-11 global (alta disponibilidad)
- Sistema para respaldo de datos y configuraciones
Seguridad
- Certificación SSL (Certbot + Let's Encrypt)
- Firewalls: UFW, ModSecurity, Fail2ban
Instalación API vía Docker
La API de CIE-11 se despliega como contenedor Docker. Funciona de forma casi idéntica a la instancia pública de la OMS.
1. Instalar Docker (Debian/Ubuntu)
sudo apt update sudo apt install -y apt-transport-https \ ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ | sudo gpg --dearmor -o \ /usr/share/keyrings/docker-archive-keyring.gpg sudo apt install -y docker-ce docker-ce-cli containerd.io
2. Crear contenedor con versión en español
docker run -p 80:80 \ -e acceptLicense=true \ -e saveAnalytics=true \ -e include=2024-01_es-en \ whoicd/icd-api
3. Docker Compose (recomendado)
services:
icd_api_minsal:
image: whoicd/icd-api:latest
container_name: icd_api_container_minsal
ports:
- "80:80"
environment:
- include=2024-01_es-en
- acceptLicense=true
- saveAnalytics=true
restart: unless-stopped
docker compose up -d
4. Actualización
docker compose down docker compose pull docker compose up -d --build
Ingeniería de Software
Arquitectura MVC
El sistema se basa en el patrón Modelo-Vista-Controlador con tres capas bien diferenciadas:
- Capa de Presentación (Vista): Interfaz web con Blade y Tailwind CSS
- Capa de Lógica de Negocio (Controlador): Autenticación, registro de casos, validación de diagnósticos y estadísticas
- Capa de Persistencia (Modelo): Almacenamiento seguro y estructurado en PostgreSQL
Modelo de Datos
Las tablas centrales son records y api_records, asociadas al registro de una atención. Se vinculan con datos del paciente, observaciones, médico y causa externa. Las tablas diagnostics y api_diagnostics registran los diagnósticos y sus evaluaciones.
Framework: Laravel 11
Elegido por su productividad, seguridad integrada (protección contra SQL injection y XSS), arquitectura MVC y herramientas como Eloquent ORM, migraciones y middleware.
Despliegue
Ambiente de Desarrollo
Datos enviados mediante clientes HTTP (Postman, Thunder Client). Instancias de API ICD-11 locales para pruebas.
Ambiente de Producción
- Plataforma Deisy en nube (DigitalOcean, Ubuntu Server 24.02 LTS)
- API ICD-11 local y global con alta disponibilidad
- Respaldo duplicado: servidor local + nube con respaldo periódico
Despliegue con Laravel Sail
git clone git@github.com:sguinezm/icd11-data-lib.git composer require laravel/sail --dev ./vendor/bin/sail up ./vendor/bin/sail artisan migrate ./vendor/bin/sail artisan db:seed ./vendor/bin/sail npm install && npm run build
Plan de Contingencia
Recuperación del Sistema
Códigos fuentes disponibles en GitHub (rama main). Archivos de configuración (.env, default.conf de Nginx) respaldados por separado.
Recuperación de Datos
Respaldos automáticos de la base de datos cada hora vía pg_dump con CronTab. Almacenamiento en repositorio seguro local y réplica en la nube.
Monitoreo
- Reporte de errores en envío de datos e integración con RCE
- Monitoreo periódico de respaldos (local y nube)
- Disponibilidad de APIs de codificación
- Métricas de diagnósticos por institución/especialidad
- Alertas para diagnósticos fuera de rango (edad/sexo)
Control de Versiones API
Las actualizaciones del estándar CIE-11 son generalmente anuales. Se establece un plan de actualizaciones periódicas guiado por la liberación de nuevas versiones de la OMS.
Aspectos de Seguridad
- VPNs: Red privada para comunicación segura entre plataformas
- HTTPS/SSL/TLS: Transferencia segura de datos
- Autenticación: Basada en tokens con actualización periódica
- Firewalls y proxys: Control de solicitudes a servicios de codificación
- Anti-DDoS: Medidas de mitigación y distribución de carga
Integración con Registros Clínicos Electrónicos
La integración de CIE-11 en los RCE requiere modificaciones en las vistas de captura de datos para habilitar la codificación de diagnósticos. Se consideran dos niveles de consulta de la API: uno a nivel local y otro a nivel central como respaldo.
Campos a incorporar en las vistas del RCE
- Input de texto para búsqueda de diagnóstico principal
- Input(s) de texto para búsqueda de diagnóstico(s) secundario(s)
- Campo de texto para observaciones/detalles del clínico
- Campo de texto para definir causa externa
Librería ECT (Embedded Classification Tool)
Herramienta JavaScript de la OMS (v1.7) compatible con todos los navegadores web. Incluye las funcionalidades de ICD-11 Coding Tool e ICD-11 Browser.
Instalación vía CDN
<head>
<link rel="stylesheet"
href="https://icdcdn.who.int/embeddedct/icd11ect-1.7.1.css">
</head>
<script
src="https://icdcdn.who.int/embeddedct/icd11ect-1.7.1.js">
</script>
Instalación vía NPM
npm install @whoicd/icd11ect
import * as ECT from '@whoicd/icd11ect'; import '@whoicd/icd11ect/style.css';
Elementos HTML necesarios
<!-- Input de búsqueda --> <input type="text" class="ctw-input" autocomplete="off" data-ctw-ino="1"> <!-- Contenedor de resultados --> <div class="ctw-window" data-ctw-ino="1"></div>
Configuración y Conexión
Configuración del servidor
var CONFIG = {
"cie11": {
"local": "http://127.0.0.1:90",
"global": "https://servidor-central/icd-api/"
},
"data": {
"url": "http://127.0.0.1:84",
"token": "TOKEN_AUTENTICACION",
"specialty": "CIR"
},
"timeoutms": 5000
};
Inicialización del ECT
const mySettings = {
apiServerUrl: "",
autoBind: false
};
const myCallbacks = {
selectedEntityFunction: (selectedEntity) => {
// Manejar selección de diagnóstico
},
getNewTokenFunction: async () => {
// Obtener token de autenticación
},
searchStartedFunction: () => { ... },
searchEndedFunction: () => { ... }
};
ECT.Handler.configure(mySettings, myCallbacks);
ECT.Handler.overwriteConfiguration("1", {
language: "es", wordsAvailable: false
});
ECT.Handler.bind("1");
Fallback automático (local → central)
El sistema evalúa la disponibilidad del servidor local con un timeout configurable (por defecto 5 segundos). Si no responde, redirige automáticamente al servidor central.
Plataforma de Captura y Evaluación
La plataforma Deisy es un sistema web que permite registrar, revisar y analizar datos de diagnósticos utilizando CIE-11.
Perfiles de usuario
- Administrador: Gestión de usuarios, instituciones, especialidades y configuraciones del sistema
- Clínico: Ingreso de datos simulando un RCE, o carga desde formularios de capacitación
- Estadístico: Revisión, corrección y análisis estadístico de diagnósticos
Componentes principales
- Dashboard: Pantalla principal con información del último acceso
- Mantenedor de usuarios: Tabla con nombre, institución, roles y correo
- Mantenedor de instituciones: Nombre, correo, observaciones y usuario de validación por token
- Codificación ICD-11: Vista con bloques de información del paciente, diagnósticos y médico tratante
- Validación: Previsualización y evaluación de registros con 3 estados (pendiente, correcto, incorrecto)
- Análisis: Reportes y gráficos comparativos de codificaciones
Generalización y Estimación de Esfuerzos
La generalización de Deisy a otros ambientes depende de adaptar el modelo de datos para captura desde fuentes heterogéneas, mantener las funcionalidades de evaluación de codificación y alinear con normativas locales.
Ajustes necesarios
- Formularios clínicos: Adaptar el modelo de datos (actualmente basado en el informe de egreso hospitalario chileno) a otras realidades
- Interfaz: Traducción a inglés y homologación a español neutro
- Normativas de codificación: Deisy se ajusta naturalmente a CIE-11, sin modificaciones necesarias
- Interoperabilidad: Habilitar capa de intercambio con HL7 FHIR
- Protección de datos: Adaptación a leyes locales, datos anónimos del paciente
Estimación de tiempo: ~14 semanas
- Modificaciones del modelo de datos: 5 semanas
- Ajustes a normativas de protección de datos: 2 semanas
- Mecanismos de interoperabilidad (FHIR): 4 semanas
- Traducción y verificación de conceptos: 1 semana
- Ejecución de pruebas: 2 semanas