feat(ingest_paciente): modo insertar/upsert — migración inicial no pisa existentes
Nuevo campo 'modo' en el body: - "insertar": si la cédula ya existe devuelve skipped sin tocar la BD - "upsert" (default): crea o actualiza como antes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
3204671edc
commit
046803bd15
@@ -122,7 +122,13 @@ if (!empty($data['eps'])) {
|
|||||||
$campos['eps'] = trim($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 {
|
try {
|
||||||
$pac = new Paciente();
|
$pac = new Paciente();
|
||||||
|
|
||||||
@@ -134,13 +140,22 @@ try {
|
|||||||
ob_clean();
|
ob_clean();
|
||||||
|
|
||||||
if ($existente) {
|
if ($existente) {
|
||||||
$pac->actualizar($existente['id'], $campos, null);
|
if ($modo === 'insertar') {
|
||||||
echo json_encode([
|
echo json_encode([
|
||||||
'ok' => true,
|
'ok' => true,
|
||||||
'action' => 'updated',
|
'action' => 'skipped',
|
||||||
'id' => $existente['id'],
|
'id' => $existente['id'],
|
||||||
'message' => 'Paciente actualizado',
|
'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'])) {
|
} elseif (!empty($campos['nombre_completo'])) {
|
||||||
$id = $pac->crear($campos, null);
|
$id = $pac->crear($campos, null);
|
||||||
echo json_encode([
|
echo json_encode([
|
||||||
|
|||||||
Reference in New Issue
Block a user