From 88f684a00666fc57f566288ebd18a4b16118147e Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Fri, 26 Jun 2026 20:03:03 -0500 Subject: [PATCH] Usa formato RIPS completo para numero TNS: LHXC03990-314522 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El numero del kardex en TNS ahora incluye el PREFIJO de Firebird y el NUM_FACTURA zero-padded a 5 dígitos, igual al numFactura del RIPS (ej: LHXC03404). Se agrega -{idrecepcion} al final para garantizar unicidad ya que múltiples IDRECEPCION comparten el mismo NUM_FACTURA. Co-Authored-By: Claude Sonnet 4.6 --- app/routes/test_rda.py | 7 ++++--- app/routes/transaccion.py | 8 ++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/routes/test_rda.py b/app/routes/test_rda.py index 84e56d8..ac5ffd0 100644 --- a/app/routes/test_rda.py +++ b/app/routes/test_rda.py @@ -270,9 +270,10 @@ async def test_enviar(request: Request, user: dict = Depends(get_current_user)): async with httpx.AsyncClient(timeout=30) as client: for id_rec, grupo_rows in grupos.items(): num_factura = str(grupo_rows[0].get("NUM_FACTURA") or "").strip() - # Usar siempre "{factura}-{idrecepcion}" para garantizar unicidad en TNS - # (múltiples IDRECEPCION comparten NUM_FACTURA en Firebird) - numero_override = f"{num_factura}-{id_rec}" if num_factura else str(id_rec) + prefijo_fb = str(grupo_rows[0].get("PREFIJO") or "").strip() + # Formato completo como RIPS: LHXC03990-314522 (único por IDRECEPCION) + num_fmt = f"{prefijo_fb}{num_factura.zfill(5)}" if prefijo_fb else num_factura + numero_override = f"{num_fmt}-{id_rec}" if num_fmt else str(id_rec) rda_json = generar_rda_paciente(grupo_rows, prof_def, esp_def, remis_def, prefijo_def, numero_override) examenes = [r.get("COD_EXAMEN", "") for r in grupo_rows] try: diff --git a/app/routes/transaccion.py b/app/routes/transaccion.py index 52b52f2..df9c543 100644 --- a/app/routes/transaccion.py +++ b/app/routes/transaccion.py @@ -147,7 +147,9 @@ async def send_one( endpoint = f"{TNS_BASE}/v2/rda/RdaPaciente/Insertar?codigosucursal={api_sucursal}" num_factura_one = str(grupo_rows[0].get("NUM_FACTURA") or "").strip() - numero_override_one = f"{num_factura_one}-{idrecepcion}" if num_factura_one else str(idrecepcion) + prefijo_one = str(grupo_rows[0].get("PREFIJO") or "").strip() + num_fmt_one = f"{prefijo_one}{num_factura_one.zfill(5)}" if prefijo_one else num_factura_one + numero_override_one = f"{num_fmt_one}-{idrecepcion}" if num_fmt_one else str(idrecepcion) rda_json = generar_rda_paciente( grupo_rows, cfg.get("profesional_default", ""), @@ -234,7 +236,9 @@ async def send_transaccion( async with httpx.AsyncClient(timeout=int(cfg.get("api_timeout", 30))) as client: for id_rec, grupo_rows in grupos.items(): num_factura = str(grupo_rows[0].get("NUM_FACTURA") or "").strip() - numero_override = f"{num_factura}-{id_rec}" if num_factura else str(id_rec) + prefijo_fb = str(grupo_rows[0].get("PREFIJO") or "").strip() + num_fmt = f"{prefijo_fb}{num_factura.zfill(5)}" if prefijo_fb else num_factura + numero_override = f"{num_fmt}-{id_rec}" if num_fmt else str(id_rec) rda_json = generar_rda_paciente( grupo_rows, cfg.get("profesional_default", ""),