Skip to main content

Descripción general

LINA puede realizar llamadas telefónicas inteligentes a pacientes usando IA conversacional. Las llamadas son ideales para seguimiento post-operatorio, recordatorios de medicación, evaluaciones de bienestar y triaje inicial.

Coste en créditos

ConceptoCréditos
Inicio de llamada (base)15
Por minuto de conversación10
Una llamada de 5 minutos consume 15 + (5 × 10) = 65 créditos. La duración se redondea al minuto más cercano.

Flujo de una llamada

Iniciar una llamada

1

Realizar la petición

curl -X POST https://api.linahealthcareplatform.com/api/v1/voice/call \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "patientId": "pat_xyz789",
    "purpose": "Seguimiento post-operatorio día 3. Preguntar por nivel de dolor, movilidad y estado de la herida.",
    "language": "es",
    "maxDuration": 300
  }'
const response = await fetch('https://api.linahealthcareplatform.com/api/v1/voice/call', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    patientId: 'pat_xyz789',
    purpose: 'Seguimiento post-operatorio día 3. Preguntar por nivel de dolor, movilidad y estado de la herida.',
    language: 'es',
    maxDuration: 300
  })
});
const call = await response.json();
console.log(call.id); // call_abc123
import requests

response = requests.post(
    "https://api.linahealthcareplatform.com/api/v1/voice/call",
    headers={
        "Authorization": "Bearer YOUR_TOKEN",
        "Content-Type": "application/json"
    },
    json={
        "patientId": "pat_xyz789",
        "purpose": "Seguimiento post-operatorio día 3. Preguntar por nivel de dolor, movilidad y estado de la herida.",
        "language": "es",
        "maxDuration": 300
    }
)
call = response.json()
print(call["id"])  # call_abc123
Respuesta:
{
  "id": "call_abc123",
  "patientId": "pat_xyz789",
  "status": "queued",
  "purpose": "Seguimiento post-operatorio día 3...",
  "language": "es",
  "maxDuration": 300,
  "createdAt": "2026-05-14T10:30:00Z"
}
2

Monitorizar el estado

Consulta el estado de la llamada en cualquier momento:
curl -X GET https://api.linahealthcareplatform.com/api/v1/voice/calls/call_abc123 \
  -H "Authorization: Bearer YOUR_TOKEN"
Los estados posibles son:
EstadoDescripción
queuedLlamada en cola, pendiente de iniciar
ringingEl teléfono del paciente está sonando
in-progressConversación en curso
completedLlamada finalizada con éxito
failedError en la llamada (no contesta, número inválido, etc.)
3

Procesar los resultados

Una vez completada la llamada, recibirás el webhook call.ended con la transcripción y el resumen generado por IA:
{
  "event": "call.ended",
  "data": {
    "id": "call_abc123",
    "patientId": "pat_xyz789",
    "status": "completed",
    "duration": 187,
    "creditsConsumed": 55,
    "transcript": [
      { "role": "assistant", "content": "Hola María, soy LINA del equipo del Dr. García. ¿Cómo se encuentra hoy?" },
      { "role": "patient", "content": "Bien, aunque tengo algo de molestia en la zona de la operación." },
      { "role": "assistant", "content": "Entiendo. En una escala del 1 al 10, ¿cómo calificaría su nivel de dolor?" },
      { "role": "patient", "content": "Diría que un 4." }
    ],
    "summary": "Paciente refiere dolor 4/10 en zona quirúrgica. Movilidad limitada pero mejorando. Herida sin signos de infección. Recomienda seguimiento en 48h.",
    "completedAt": "2026-05-14T10:33:07Z"
  }
}

Parámetro purpose

El campo purpose es fundamental para la calidad de la llamada. Proporciona instrucciones claras sobre:
  • Objetivo de la llamada
  • Preguntas específicas a realizar
  • Contexto clínico relevante
  • Criterios de alerta si aplican
No incluyas información clínica sensible completa en el purpose. Usa identificadores internos y contexto general. LINA tiene acceso al historial del paciente de forma segura.

Gestión de errores

Si la llamada falla, el campo failureReason indica el motivo:
CódigoDescripción
no_answerEl paciente no contestó tras 30 segundos
busyLínea ocupada
invalid_numberNúmero de teléfono no válido
rejectedLlamada rechazada por el paciente
network_errorError de red del operador
Las llamadas con estado failed por no_answer o busy solo consumen 5 créditos. Las llamadas rechazadas o con error de red no consumen créditos.

Horarios de llamada

LINA respeta las franjas horarias adecuadas para llamadas médicas:
  • Lunes a viernes: 9:00 – 20:00 (hora local del paciente)
  • Sábados: 10:00 – 14:00
  • Domingos y festivos: No se realizan llamadas
Las llamadas fuera de horario se encolan automáticamente para la siguiente franja disponible.