Visor de imágenes médicas basado en web, zero-footprint, que funciona 100% en el navegador. OHIF (Open Health Imaging Foundation) es una plataforma open source para visualización avanzada de imágenes médicas DICOM.
- Zero-footprint: No requiere instalación en el cliente
- Basado en Web: Funciona en cualquier navegador moderno
- DICOMweb: Protocolo estándar para comunicación
- Extensible: Soporta plugins y modos personalizados
- Multi-modalidad: CT, MRI, PET, US, y más
- Herramientas Avanzadas: Mediciones, anotaciones, MPR, 3D
- Docker
- Docker Compose
- Servidor PACS con DICOMweb (Orthanc o dcm4chee)
-
Crear cuenta en Railway: Ve a railway.app y crea una cuenta
-
Crear nuevo proyecto:
- Click en "New Project"
- Selecciona "Deploy from GitHub repo"
- Conecta tu repositorio
-
Configurar variables de entorno: En el dashboard de Railway, agrega las siguientes variables:
PACS_SOURCE_NAME=orthanc PACS_FRIENDLY_NAME=Orthanc PACS PACS_WADO_URI_ROOT=https://tu-servidor-pacs.com/wado PACS_QIDO_ROOT=https://tu-servidor-pacs.com/dicom-web PACS_WADO_ROOT=https://tu-servidor-pacs.com/dicom-web -
Desplegar: Railway detectará automáticamente el
Dockerfiley desplegará la aplicación -
Acceder: Railway generará una URL pública para tu aplicación
Para Orthanc (por defecto):
# Ya está configurado en app-config.js
docker-compose up -dPara dcm4chee:
# Reemplazar el archivo de configuración
cp app-config-dcm4chee.js app-config.js
docker-compose up -dAcceder al visor: http://localhost:3000
Edita app-config.js:
dataSources: [
{
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'orthanc',
configuration: {
friendlyName: 'Orthanc PACS',
name: 'orthanc',
wadoUriRoot: 'http://localhost:8042/wado',
qidoRoot: 'http://localhost:8042/dicom-web',
wadoRoot: 'http://localhost:8042/dicom-web',
},
},
]Edita app-config.js:
dataSources: [
{
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dcm4chee',
configuration: {
friendlyName: 'dcm4chee PACS',
name: 'dcm4chee',
wadoUriRoot: 'http://localhost:8081/dcm4chee-arc/aets/DCM4CHEE/wado',
qidoRoot: 'http://localhost:8081/dcm4chee-arc/aets/DCM4CHEE/rs',
wadoRoot: 'http://localhost:8081/dcm4chee-arc/aets/DCM4CHEE/rs',
},
},
]Puedes configurar múltiples servidores PACS:
dataSources: [
{
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'orthanc',
configuration: {
friendlyName: 'Orthanc Local',
// ... configuración Orthanc
},
},
{
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dcm4chee',
configuration: {
friendlyName: 'dcm4chee Hospital',
// ... configuración dcm4chee
},
},
]| Puerto | Descripción |
|---|---|
| 3000 | OHIF Viewer |
┌─────────────────────────────────────┐
│ Navegador Web (Cliente) │
│ ┌───────────────────────────────┐ │
│ │ OHIF Viewer (React) │ │
│ │ - Renderizado de imágenes │ │
│ │ - Herramientas de medición │ │
│ │ - Interfaz de usuario │ │
│ └───────────────────────────────┘ │
└─────────────────────────────────────┘
│
│ DICOMweb (HTTP/REST)
▼
┌─────────────────────────────────────┐
│ Servidor PACS │
│ (Orthanc o dcm4chee) │
│ - Almacenamiento DICOM │
│ - APIs DICOMweb │
│ - Gestión de estudios │
└─────────────────────────────────────┘
# Iniciar el visor
docker-compose up -d
# Ver logs
docker-compose logs -f
# Detener el visor
docker-compose down
# Reiniciar el visor
docker-compose restart
# Ver estado
docker-compose ps- Lista de Estudios: Vista inicial con todos los estudios disponibles
- Búsqueda: Filtrar por nombre, ID, fecha, modalidad
- Abrir Estudio: Click en un estudio para visualizar
- Zoom: Rueda del mouse o herramienta de zoom
- Pan: Click derecho + arrastrar
- Window/Level: Click izquierdo + arrastrar
- Mediciones: Longitud, área, ángulos
- Anotaciones: Texto, flechas
- MPR: Reconstrucción multiplanar
- 3D: Renderizado volumétrico
| Tecla | Acción |
|---|---|
W |
Window/Level |
Z |
Zoom |
P |
Pan |
L |
Medición de longitud |
R |
Reset viewport |
I |
Invertir colores |
# Terminal 1: Iniciar Orthanc
cd ../orthanc-pacs
docker-compose up -d
# Terminal 2: Iniciar OHIF
cd ../ohif-viewer
docker-compose up -dAcceder a:
- OHIF: http://localhost:3000
- Orthanc: http://localhost:8042
# Terminal 1: Iniciar dcm4chee
cd ../dcm4chee-pacs
docker-compose up -d
# Terminal 2: Iniciar OHIF (con config dcm4chee)
cd ../ohif-viewer
cp app-config-dcm4chee.js app-config.js
docker-compose restartAcceder a:
- OHIF: http://localhost:3000
- dcm4chee: http://localhost:8081/dcm4chee-arc/ui2
Si tienes problemas de CORS, asegúrate de que el servidor PACS permita solicitudes desde el origen de OHIF.
Para Orthanc, agrega a orthanc.json:
{
"RemoteAccessAllowed": true,
"HttpsCACertificates": "",
"HttpsVerifyPeers": false
}Para dcm4chee, configura CORS en WildFly.
Edita app-config.js:
window.config = {
// ... otras configuraciones
theme: {
primaryColor: '#5ACCE6',
backgroundColor: '#1E1E1E',
},
}extensions: [
'@ohif/extension-cornerstone',
'@ohif/extension-measurement-tracking',
// Agrega más extensiones aquí
]- Verifica que el servidor PACS esté corriendo
- Verifica la configuración de URLs en
app-config.js - Revisa la consola del navegador (F12) para errores CORS
- Verifica que haya estudios cargados en el PACS
# Ver logs del navegador
# Presiona F12 → Console
# Verificar conectividad al PACS
curl http://localhost:8042/dicom-web/studies- Verifica que el PACS soporte DICOMweb
- Verifica las URLs de WADO en la configuración
- Revisa los logs del PACS
- Cuenta en Railway
- Repositorio Git con el código
- Servidor PACS accesible públicamente con DICOMweb
-
Conectar Repositorio:
- Ve a railway.app
- Click en "New Project" → "Deploy from GitHub repo"
- Selecciona tu repositorio
-
Configurar Variables de Entorno: Railway necesita las siguientes variables para conectarse a tu PACS:
Variable Descripción Ejemplo PACS_SOURCE_NAMENombre del origen PACS orthancodcm4cheePACS_FRIENDLY_NAMENombre amigable Orthanc PACSPACS_WADO_URI_ROOTURL WADO URI https://pacs.ejemplo.com/wadoPACS_QIDO_ROOTURL QIDO-RS https://pacs.ejemplo.com/dicom-webPACS_WADO_ROOTURL WADO-RS https://pacs.ejemplo.com/dicom-web -
Despliegue Automático:
- Railway detectará el
Dockerfileautomáticamente - El build comenzará inmediatamente
- El despliegue toma aproximadamente 2-3 minutos
- Railway detectará el
-
Obtener URL Pública:
- Railway generará una URL como
https://tu-app.up.railway.app - Puedes configurar un dominio personalizado en Settings
- Railway generará una URL como
Para Orthanc:
PACS_SOURCE_NAME=orthanc
PACS_FRIENDLY_NAME=Orthanc PACS
PACS_WADO_URI_ROOT=https://tu-orthanc.com/wado
PACS_QIDO_ROOT=https://tu-orthanc.com/dicom-web
PACS_WADO_ROOT=https://tu-orthanc.com/dicom-webPara dcm4chee:
PACS_SOURCE_NAME=dcm4chee
PACS_FRIENDLY_NAME=dcm4chee PACS
PACS_WADO_URI_ROOT=https://tu-dcm4chee.com/dcm4chee-arc/aets/DCM4CHEE/wado
PACS_QIDO_ROOT=https://tu-dcm4chee.com/dcm4chee-arc/aets/DCM4CHEE/rs
PACS_WADO_ROOT=https://tu-dcm4chee.com/dcm4chee-arc/aets/DCM4CHEE/rsEl proyecto incluye los siguientes archivos para Railway:
railway.toml: Configuración de build y deployDockerfile: Imagen Docker optimizadastart.sh: Script de inicio con sustitución de variablesapp-config-template.js: Template con variables de entorno.railwayignore: Archivos excluidos del build
Error: No se conecta al PACS
- Verifica que las URLs del PACS sean accesibles públicamente
- Revisa que las variables de entorno estén correctamente configuradas
- Verifica los logs en Railway Dashboard
Error: CORS
- Asegúrate de que tu PACS permita solicitudes desde el dominio de Railway
- Configura CORS en tu servidor PACS para permitir el origen de Railway
Ver Logs:
# En Railway Dashboard → Deployments → View LogsRailway se actualiza automáticamente con cada push a tu rama principal:
git add .
git commit -m "Actualización de configuración"
git push origin mainRailway ofrece:
- Plan Hobby: $5/mes de crédito gratuito
- Plan Pro: $20/mes con más recursos
- El visor OHIF consume recursos mínimos (~512MB RAM)
Para producción:
- HTTPS: Usa certificados SSL/TLS (Railway lo provee automáticamente)
- Autenticación: Implementa login de usuarios
- CORS: Configura orígenes permitidos específicos en tu PACS
- Firewall: Restringe acceso a puertos del PACS
- Cumplimiento: HIPAA/GDPR según jurisdicción
- Variables de Entorno: Nunca expongas credenciales en el código
- OHIF es solo un visor, no almacena imágenes
- Requiere un servidor PACS con DICOMweb
- Funciona 100% en el navegador del cliente
- No requiere instalación en el cliente
- Compatible con todos los navegadores modernos
OHIF es software libre bajo licencia MIT.