diff --git a/api/lab/ingest_paciente.php b/api/lab/ingest_paciente.php index 5183594..6ee1e78 100644 --- a/api/lab/ingest_paciente.php +++ b/api/lab/ingest_paciente.php @@ -122,7 +122,13 @@ if (!empty($data['eps'])) { $campos['eps'] = trim($data['eps']); } -// ── UPSERT ─────────────────────────────────────────────────────────────────── +// ── Modo: "insertar" (solo nuevos) | "upsert" (crea o actualiza) ───────────── +$modo = trim($data['modo'] ?? 'upsert'); +if (!in_array($modo, ['insertar', 'upsert'], true)) { + $modo = 'upsert'; +} + +// ── UPSERT / INSERT-ONLY ───────────────────────────────────────────────────── try { $pac = new Paciente(); @@ -134,13 +140,22 @@ try { ob_clean(); if ($existente) { - $pac->actualizar($existente['id'], $campos, null); - echo json_encode([ - 'ok' => true, - 'action' => 'updated', - 'id' => $existente['id'], - 'message' => 'Paciente actualizado', - ]); + if ($modo === 'insertar') { + echo json_encode([ + 'ok' => true, + 'action' => 'skipped', + 'id' => $existente['id'], + 'message' => 'Paciente ya existe', + ]); + } else { + $pac->actualizar($existente['id'], $campos, null); + echo json_encode([ + 'ok' => true, + 'action' => 'updated', + 'id' => $existente['id'], + 'message' => 'Paciente actualizado', + ]); + } } elseif (!empty($campos['nombre_completo'])) { $id = $pac->crear($campos, null); echo json_encode([