Inicio

Referencia técnica · OPS

Documentación técnica

Hallazgos del piloto de morbilidad, modelo de referencia y soluciones del piloto extendido CIE-11 en Chile.

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