diff --git a/app/routes/envios.py b/app/routes/envios.py index 4120cd8..4392c0b 100644 --- a/app/routes/envios.py +++ b/app/routes/envios.py @@ -45,8 +45,11 @@ async def erp_sync_now( @router.post("/erp/sync-diagnosticos") -async def erp_sync_diagnosticos(user: dict = Depends(get_current_user)): - """Migra los 12.422 diagnósticos CIE-10 de Firebird → WhatsApp en lotes de 500.""" +async def erp_sync_diagnosticos( + user: dict = Depends(get_current_user), + start_from: int = Query(default=0, ge=0, description="Índice desde el que reanudar"), +): + """Migra los 12.422 diagnósticos CIE-10 de Firebird → WhatsApp en lotes de 200.""" try: conn = get_connection() configs = {row["key"]: row["value"] for row in conn.execute("SELECT * FROM config").fetchall()} @@ -72,14 +75,14 @@ async def erp_sync_diagnosticos(user: dict = Depends(get_current_user)): diagnosticos = [{"cod": r["COD_DIAG"], "concepto": r["CONCEPTO"]} for r in (rows or [])] total = len(diagnosticos) - batch_size = 500 + batch_size = 200 url = f"{wa_url}/api/lab/ingest_diagnosticos.php" headers = {"Content-Type": "application/json", "X-Lab-Key": wa_key} insertados = 0 errores = [] async with httpx.AsyncClient(timeout=60) as client: - for i in range(0, total, batch_size): + for i in range(start_from, total, batch_size): lote = diagnosticos[i:i + batch_size] try: resp = await client.post(url, json={"rows": lote}, headers=headers) diff --git a/app/templates/envios_erp.html b/app/templates/envios_erp.html index f40d328..e746a31 100644 --- a/app/templates/envios_erp.html +++ b/app/templates/envios_erp.html @@ -87,7 +87,7 @@ 12.422 diagnósticos de Firebird → WhatsApp
Ejecutar una vez para poblar la tabla cie10_diagnosticos en WhatsApp. Requiere correr la migración SQL primero.
Pobla la tabla cie10_diagnosticos en WhatsApp. Idempotente — se puede re-ejecutar. Si corta a la mitad, usa "Reanudar" para continuar desde donde quedó.