API de Carga de Pacientes

Suba registros de pacientes directamente a su workspace de Arkangel mediante API

por Arkangel AI Team•2 min de lectura

La API de Carga de Pacientes permite a las instituciones enviar registros de pacientes directamente a su workspace de Arkangel de forma programática, sin intervención manual. Una vez cargados, los archivos se procesan automáticamente y los resultados aparecen en el workspace Pandora de su equipo.

Requisitos previos

Contacte a Arkangel para recibir:

  • API key — usada para autenticar cada solicitud
  • Team ID — identifica a su organización dentro de Arkangel

Formatos soportados

Formato Descripción Notas
PDF Historias clínicas, resúmenes de alta, reportes de laboratorio 1 archivo = 1 paciente
TXT Notas clínicas en texto plano 1 archivo = 1 paciente
CSV Datos estructurados de pacientes o eventos Ver formato CSV abajo

Tamaño máximo por archivo: 3MB.

Formato CSV

Los archivos CSV deben tener patient_id como encabezado de la primera columna. El encabezado de la segunda columna determina el tipo de archivo:

Archivo de pacientes (1 fila = 1 paciente)

La segunda columna puede ser cualquier cosa u omitirse.

patient_id,nombre,fecha_nacimiento,diagnostico
p-001,Ana García,1980-03-12,EPOC
p-002,Carlos López,1975-07-22,Asma

Archivo de eventos (varias filas = 1 paciente)

La segunda columna debe llamarse event_id. Todas las filas con el mismo patient_id se agrupan en un solo registro de paciente.

patient_id,event_id,fecha,tipo_evento,valor,unidad
p-001,e-001,2026-01-10,SpO2,94,%
p-001,e-002,2026-01-10,frecuencia_cardiaca,88,lpm
p-002,e-001,2026-01-11,SpO2,97,%

Cargar un archivo

Endpoint

POST /api/pandora/upload-v2/upload

Headers

Authorization: Bearer su_api_key

Campos del formulario

Campo Requerido Descripción
file Sí El archivo a cargar (PDF, TXT o CSV)
teamId Sí Su Team ID
groupId Sí ID del grupo Pandora al que se agregarán los pacientes
anonymize No Envíe true para anonimizar los registros tras la extracción (por defecto: false)

Solicitud

curl -X POST https://api.arkangel.ai/api/pandora/upload-v2/upload \
  -H "Authorization: Bearer su_api_key" \
  -F "file=@pacientes.csv" \
  -F "teamId=su_team_id" \
  -F "groupId=su_group_id" \
  -F "anonymize=false"

Ejemplo en JavaScript

const formData = new FormData();
formData.append('file', file);
formData.append('teamId', 'su_team_id');
formData.append('groupId', 'su_group_id');
formData.append('anonymize', 'false');

const response = await fetch('https://api.arkangel.ai/api/pandora/upload-v2/upload', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer su_api_key'
  },
  body: formData
});

const result = await response.json();

Respuesta

{
  "success": true,
  "patientCount": 3
}

patientCount refleja el número de pacientes ingresados correctamente. Para PDF y TXT siempre es 1. Para CSV corresponde al número de filas (archivo de pacientes) o valores únicos de patient_id (archivo de eventos).

Si algún paciente no pudo ser ingresado por un error de almacenamiento, también se devuelve expectedCount para que pueda detectar la discrepancia y reenviar las filas faltantes:

{
  "success": true,
  "patientCount": 2,
  "expectedCount": 3
}

Manejo de errores

Código Error Descripción
400 invalid_file_type Formato de archivo no soportado
400 file_too_large El archivo supera el límite de 3MB
400 invalid_csv_format La primera columna no es patient_id
400 missing_patient_id Una o más filas tienen patient_id vacío
401 unauthorized API key ausente o inválida
403 forbidden La API key no tiene acceso a este equipo
413 payload_too_large El cuerpo de la solicitud supera el límite del servidor
500 internal_error Error inesperado del servidor — contacte a soporte

Resultado

No se requieren llamadas adicionales. Una vez cargados, los datos de los pacientes se procesan y quedan disponibles automáticamente en el workspace Pandora de su equipo.

Próximos pasos