Fix profesional/especialidad: use MEDICO.CODIGO first, add config defaults

- SQL query now prioritizes MEDICO.CODIGO over RECEPCION.USUARIO as profesional
  (USUARIO is the billing clerk; MEDICO is the medical professional)
- Add profesional_default and especialidad_default config keys for when
  Firebird data is empty or contains invalid values (e.g. especialidad = ".")
- generar_rda_paciente accepts default_profesional and default_especialidad params
- ensure_defaults in queries.py now updates existing query records on startup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-06-26 16:12:16 -05:00
co-authored by Claude Sonnet 4.6
parent fbdce1c790
commit c70f0f1062
5 changed files with 22 additions and 9 deletions
+6 -2
View File
@@ -76,7 +76,9 @@ async def preview_transaccion(
return JSONResponse({"success": False, "message": error})
grupos = agrupar_por_recepcion(rows)
json_result = [generar_rda_paciente(grupo) for grupo in grupos.values()]
prof_def = configs.get("profesional_default", "")
esp_def = configs.get("especialidad_default", "")
json_result = [generar_rda_paciente(grupo, prof_def, esp_def) for grupo in grupos.values()]
return JSONResponse({
"success": True,
@@ -153,10 +155,12 @@ async def send_transaccion(
total_enviados = 0
total_errores = 0
resultados = []
prof_def = configs.get("profesional_default", "")
esp_def = configs.get("especialidad_default", "")
async with httpx.AsyncClient(timeout=int(configs.get("api_timeout", 30))) as client:
for id_recepcion, grupo_rows in grupos.items():
trans_json = generar_rda_paciente(grupo_rows)
trans_json = generar_rda_paciente(grupo_rows, prof_def, esp_def)
status_ok = False
response_text = ""