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
+7 -2
View File
@@ -51,7 +51,7 @@ WHERE p.DOCIDENT = :doc_num""",
rel.PRECIO,
rel.FECHA_REPORTADO,
m.COD_ESPECIALIDAD,
COALESCE(NULLIF(TRIM(r.USUARIO), ''), TRIM(m.CODIGO), '') AS profesional
COALESCE(NULLIF(TRIM(m.CODIGO), ''), NULLIF(TRIM(r.USUARIO), ''), '') AS profesional
FROM RECEPCION r
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
@@ -79,7 +79,7 @@ WHERE r.NUM_FACTURA = :num_factura""",
rel.PRECIO,
rel.FECHA_REPORTADO,
m.COD_ESPECIALIDAD,
COALESCE(NULLIF(TRIM(r.USUARIO), ''), TRIM(m.CODIGO), '') AS profesional
COALESCE(NULLIF(TRIM(m.CODIGO), ''), NULLIF(TRIM(r.USUARIO), ''), '') AS profesional
FROM RECEPCION r
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
@@ -101,6 +101,11 @@ def ensure_defaults():
"INSERT INTO queries (name, query_type, query_text, description) VALUES (?, ?, ?, ?)",
(q["name"], q["query_type"], q["query_text"], q["description"]),
)
else:
conn.execute(
"UPDATE queries SET query_text = ?, description = ? WHERE name = ?",
(q["query_text"], q["description"], q["name"]),
)
conn.commit()
conn.close()