2026-04-27 04:25:52 +00:00
2026-04-27 04:25:52 +00:00
2026-04-27 04:25:52 +00:00
2026-04-27 04:25:52 +00:00
2026-04-27 04:25:52 +00:00
2026-04-27 04:25:52 +00:00
2026-04-27 04:25:52 +00:00
2026-04-27 04:25:52 +00:00

IPS Dominio Backend

Proyecto Docker Compose con los servicios necesarios para el nodo de dominio IPS (International Patient Summary).

Servicios

Servicio Imagen / Fuente Descripción
hapi-fhir hapiproject/hapi:latest Servidor FHIR R4 (implementación Spring Boot)
hapi-db postgres:14.6 Base de datos PostgreSQL para HAPI FHIR
bus-gateway ./bus-gateway Gateway hacia el Bus de salud (MPI y Document Registry)
nginx nginx:alpine Proxy inverso — punto de entrada HTTP/HTTPS

Routing nginx

Ruta Destino
/bus-gateway/* bus-gateway:3000
todo lo demás hapi-fhir:8080

Requisitos

  • Docker >= 20.10.8
  • Docker Compose >= 1.29.2

Configuración

1. Variables de entorno

Copia el archivo de ejemplo y completa los valores:

cp .env.example .env
Variable Descripción
BUS_URL URL base del Bus de salud
BUS_JWT_SECRET Secreto compartido para JWT con el Bus
BUS_ISSUER Issuer del token JWT
MPI_URL URL del servicio MPI (default: BUS_URL)
DOCUMENT_REGISTRY_URL URL del Document Registry (default: BUS_URL)
MPI_SCOPE Scopes OAuth para MPI
DOCUMENT_REGISTRY_SCOPE Scopes OAuth para Document Registry
BUS_DEBUG Habilita logs de requests al Bus (true / false)
SPRING_DATASOURCE_URL JDBC URL de la BD — debe usar puerto 5433 (jdbc:postgresql://hapi-db:5433/root)
SPRING_DATASOURCE_USERNAME Usuario de la base de datos
SPRING_DATASOURCE_PASSWORD Contraseña de la base de datos
POSTGRES_DB Nombre de la base de datos PostgreSQL
POSTGRES_USER Usuario PostgreSQL
POSTGRES_PASSWORD Contraseña PostgreSQL

2. Configuración de nginx (HTTP o HTTPS)

La variable NGINX_CONF en el .env selecciona el modo:

HTTP (por defecto):

NGINX_CONF=http

HTTPS (requiere certificados):

NGINX_CONF=https
SSL_CERT_PATH=./certs/server.crt
SSL_KEY_PATH=./certs/server.key

Los certificados se inyectan como Docker secrets y nginx los lee desde /run/secrets/ssl_cert y /run/secrets/ssl_key. En modo HTTPS el tráfico HTTP (puerto 80) se redirige automáticamente a HTTPS (443).

Los archivos de configuración están en nginx/http.conf y nginx/https.conf.

3. Configuración HAPI FHIR

Los parámetros del servidor FHIR se ajustan en hapi-config/application.yaml. El servidor usa Lucene como backend de búsqueda (índice local, no requiere servicio externo).

Levantar los servicios

docker compose up -d

HAPI FHIR tarda aproximadamente 30-40 segundos en arrancar completamente.

Verificar el despliegue

# Estado de los contenedores (hapi-db debe aparecer "healthy")
docker compose ps

# CapabilityStatement FHIR a través de nginx
curl http://localhost/fhir/metadata

# Bus Gateway a través de nginx
curl http://localhost/bus-gateway/health

Detener los servicios

# Solo detener
docker compose down

# Detener y eliminar volúmenes (borra datos de la BD)
docker compose down -v
Description
Nodo Dominio que encapsula la integración con la plataforma interoperable del Ministerio de Salud de la Nación
Readme 407 KiB
Languages
JavaScript 90.4%
Mermaid 9.3%
Dockerfile 0.3%