Integra
Integra Builders Library
arquitectura

Datos clínicos sin candado: de PMS dentales legacy a FHIR R4 en AWS HealthLake

Contexto

Los datos clínicos de un consultorio dental en México viven presos en su PMS (practice management system, el software de gestión del consultorio): bases de datos locales, formatos propietarios, cero interoperabilidad. Si una cadena de clínicas quiere ver su operación completa — o un dentista quiere cambiar de software sin perder diez años de expedientes — no hay puerta de salida.

Integra Dental Bridge es nuestra respuesta: una plataforma que extrae los datos del PMS que sea, los convierte al estándar internacional FHIR R4 (el formato universal de datos de salud, el mismo que usan hospitales y aseguradoras) y los materializa en un almacén clínico gestionado en AWS. Este paper documenta las decisiones de arquitectura.

Problema

Tres restricciones definieron el diseño:

  1. Los PMS son legacy y on-premise. El software corre en la computadora del consultorio, con bases de datos locales (nuestro conector de referencia es OpenDental; el segundo, Dentalink). No hay APIs modernas ni webhooks: hay que extraer, detectar cambios y sincronizar sin romper la operación de la clínica.
  2. Cada PMS habla su propio idioma. El mismo concepto — paciente, cita, tratamiento — tiene estructura distinta en cada sistema. El mapeo no puede estar quemado en código: agregar un PMS nuevo no debe requerir reescribir la plataforma.
  3. Son datos de salud. Trazabilidad completa, secretos fuera del código, y un modelo canónico auditable no son features: son requisitos de entrada.

Arquitectura

Arquitectura de Integra Dental Bridge: PMS on-premise → Kafka MSK → servicios de sync y mapeo en Python → AWS HealthLake → APIs y dashboard; Snowflake como rama analítica y Temporal orquestando

Diagrama generado desde código (diagramas/generate_dental_bridge.py) con la librería diagrams + Graphviz — cada flecha entre servicios es un salto por el bus de eventos.

Decisiones

Resultados

MétricaValorFuente
Paquetes Python29 (conectores, mapeo, Kafka, cloud, CLI)monorepo py
Paquetes TypeScript13 (API, dashboard, Temporal, esquemas Kafka)monorepo ts
Conectores PMS2 (OpenDental como patrón de referencia, Dentalink)packages/
Modelo canónicoFHIR R4 completo vía AWS HealthLakebridge_fhir, bridge_cloud
Infra AWSHealthLake, MSK, S3, RDS Postgres, Secrets Managercuenta 041876399045
Python3.13 estricto, workspace uvpyproject.toml
Comunicación entre servicios100% eventos (cero llamadas directas)topics.py, namespace com.integradental

Lecciones

Autores: Jorge Iván Jiménez Reyes · 15/7/2026
Fuentes: repos PantherKit/integra-dental-bridge-py y -ts (29 paquetes Python + 13 TypeScript); AWS 041876399045