API

IPS WORKLIST

Manual de integración HIS

Documentación v1.0

Manual de integración HIS

Guía para el equipo del sistema HIS que integrará altas, consultas, modificaciones y cancelaciones de estudios en la worklist DICOM de Instituto Privado de Salud.

Paciente

DNI

Búsqueda y datos demográficos

Estudio

Accession Number

Clave única por orden

Seguridad

Bearer Token

Sanctum · 24 h de vigencia

Servidor de pruebas

Todas las URLs deben apuntar al entorno acordado con el administrador del PACS.

URL base aplicación https://docs.ipsalud.com.ar
API REST (v1) https://api.ipsalud.com.ar
Swagger UI https://docs.ipsalud.com.ar/integracion/swagger
Formato JSON · Content-Type: application/json · Accept: application/json
HTTPS Recomendado en producción. En laboratorio puede usarse HTTP interno.

Credenciales de prueba

Usuario dedicado con rol integracion y permisos API.

Email his@worklist.local
Contraseña Solicitar al administrador del sistema (no expuesta en documentación pública).

Autenticación

Usuario y contraseña → token Bearer en todas las peticiones protegidas.

1. Login

POST https://api.ipsalud.com.ar/auth/login
{
  "email": "his@worklist.local",
  "password": "<contraseña>"
}

2. Usar el token

Authorization: Bearer <access_token>

Endpoints de sesión

  • GET /auth/me — perfil y client_id
  • POST /auth/logout — revoca el token actual

Límite login: 10 intentos/min por IP · API: 120 req/min por usuario.

Identificadores

DNI — Paciente

GET /patients?dni= o GET /patients/{dni}

Accession Number — Estudio

GET/PATCH/DELETE /worklist/{accession_number}

Generado en el alta (ej. RES2505210001).

Flujo recomendado

  1. 1

    Login

    POST /auth/login → guardar access_token

  2. 2

    Catálogo

    GET /catalog/procedures y /catalog/devices (códigos reales)

  3. 3

    Alta

    POST /worklist con procedure_code + station_aet del catálogo

  4. 4

    Consulta

    GET /worklist/{accession_number} para confirmar estado

  5. 5

    Cambios

    PATCH /worklist/{accession} si reprograman

  6. 6

    Cancelación

    DELETE /worklist/{accession} (baja lógica)

En altas repetidas use header Idempotency-Key (UUID del HIS) para evitar duplicados.

Worklist

Método Ruta Acción
GET/worklistListar (filtros: dni, fecha, modalidad, status)
POST/worklistAlta + envío MWL
GET/worklist/{accession}Detalle
PATCH/worklist/{accession}Modificar
DELETE/worklist/{accession}Cancelar
POST/worklist/{accession}/mwl/resendReenviar MWL

Estados de orden

scheduled · sent_to_mwl · modified · started · completed · cancelled

Códigos de error

HTTPSignificadoAcción sugerida
401No autenticadoRenovar token (login)
403Sin permiso APIVerificar rol integracion
404No encontradoRevisar DNI o accession
409Conflicto de estadoNo cancelar estudios iniciados
422Validación / catálogoConsultar GET /catalog/*
429Rate limitReintentar con backoff
500Error internoContactar soporte con hora y payload

Ejemplos curl

Reemplazá TOKEN, PROC_CODE y STATION_AET por valores del catálogo.

Login + token

TOKEN=$(curl -s -X POST https://api.ipsalud.com.ar/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"his@worklist.local","password":"***"}' \
  | jq -r '.data.access_token')

Catálogo CT

curl -s "https://api.ipsalud.com.ar/catalog/procedures?modality=CT" \
  -H "Authorization: Bearer $TOKEN" | jq .

curl -s "https://api.ipsalud.com.ar/catalog/devices?site_code=RES&modality=CT" \
  -H "Authorization: Bearer $TOKEN" | jq .

Alta worklist

curl -s -X POST https://api.ipsalud.com.ar/worklist \
  -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: his-$(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "site_code": "RES",
    "patient": {
      "dni": "30123456",
      "last_name": "GARCIA",
      "first_name": "JUAN",
      "birth_date": "1980-05-10",
      "sex": "M"
    },
    "order": {
      "scheduled_at": "2026-05-21 10:30:00",
      "priority": "routine",
      "requesting_physician": "DR. PEREZ"
    },
    "studies": [{
      "procedure_code": "PROC_CODE",
      "station_aet": "STATION_AET",
      "scheduled_start_at": "2026-05-21 10:30:00"
    }]
  }'

Checklist de pruebas

  • Login exitoso y token válido
  • GET /catalog/procedures devuelve al menos un código
  • GET /catalog/devices devuelve station_aet
  • POST /worklist crea orden (201) con accession_number
  • GET /worklist/{accession} refleja paciente y estudios
  • PATCH cambia prioridad o fecha
  • POST mwl/resend sin error
  • DELETE cancela orden no iniciada
  • DELETE sobre orden started devuelve 409
  • Reintento POST con mismo Idempotency-Key no duplica

Referencia interactiva

Probá cada endpoint desde el navegador con Swagger UI.

Abrir Swagger UI