feat: use ITEM.CUPS_DETALLE as codigoMaterial in RDA
LEFT JOIN ITEM on COD_EXAMEN to get CUPS_DETALLE. Falls back to COD_EXAMEN if CUPS is empty. Applied to automation, test_rda, and saved queries in SQLite. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
ebd45446a4
commit
ff08c1b3a8
@@ -59,6 +59,7 @@ SELECT
|
|||||||
r.HORAINICIORECEPCION,
|
r.HORAINICIORECEPCION,
|
||||||
r.VALORTOTAL,
|
r.VALORTOTAL,
|
||||||
rel.COD_EXAMEN,
|
rel.COD_EXAMEN,
|
||||||
|
COALESCE(NULLIF(TRIM(it.CUPS_DETALLE), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
|
||||||
rel.PRECIO,
|
rel.PRECIO,
|
||||||
rel.DESCUENTO,
|
rel.DESCUENTO,
|
||||||
rel.FECHA_REPORTADO,
|
rel.FECHA_REPORTADO,
|
||||||
@@ -68,6 +69,7 @@ SELECT
|
|||||||
TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO
|
TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO
|
||||||
FROM RECEPCION r
|
FROM RECEPCION r
|
||||||
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
|
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
|
||||||
|
LEFT JOIN ITEM it ON TRIM(it.CODIGO) = TRIM(rel.COD_EXAMEN)
|
||||||
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
|
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
|
||||||
LEFT JOIN EMPRESA e ON e.NIT = r.NIT_EMPRESA
|
LEFT JOIN EMPRESA e ON e.NIT = r.NIT_EMPRESA
|
||||||
WHERE r.FECHA_RECEPCION BETWEEN :fecha_ini AND :fecha_fin
|
WHERE r.FECHA_RECEPCION BETWEEN :fecha_ini AND :fecha_fin
|
||||||
|
|||||||
@@ -20,13 +20,16 @@ _SQL_RDA_BY_WHERE = """
|
|||||||
SELECT
|
SELECT
|
||||||
r.IDRECEPCION, r.PREFIJO, r.NUM_FACTURA, r.FECHA_RECEPCION, r.COD_PACIENTE,
|
r.IDRECEPCION, r.PREFIJO, r.NUM_FACTURA, r.FECHA_RECEPCION, r.COD_PACIENTE,
|
||||||
r.NIT_EMPRESA, r.DIAG_PPAL, r.TIPOUSU, r.TIPOUSUSISPRO, r.AUTORIZACION, r.CLASEPROC,
|
r.NIT_EMPRESA, r.DIAG_PPAL, r.TIPOUSU, r.TIPOUSUSISPRO, r.AUTORIZACION, r.CLASEPROC,
|
||||||
r.HORAINICIORECEPCION, r.VALORTOTAL, rel.COD_EXAMEN, rel.PRECIO, rel.DESCUENTO, rel.FECHA_REPORTADO,
|
r.HORAINICIORECEPCION, r.VALORTOTAL, rel.COD_EXAMEN,
|
||||||
|
COALESCE(NULLIF(TRIM(it.CUPS_DETALLE), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
|
||||||
|
rel.PRECIO, rel.DESCUENTO, rel.FECHA_REPORTADO,
|
||||||
m.COD_ESPECIALIDAD,
|
m.COD_ESPECIALIDAD,
|
||||||
COALESCE(NULLIF(TRIM(m.CODIGO), ''), NULLIF(TRIM(r.USUARIO), ''), '') AS profesional,
|
COALESCE(NULLIF(TRIM(m.CODIGO), ''), NULLIF(TRIM(r.USUARIO), ''), '') AS profesional,
|
||||||
e.CODCONTRATO,
|
e.CODCONTRATO,
|
||||||
TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO
|
TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO
|
||||||
FROM RECEPCION r
|
FROM RECEPCION r
|
||||||
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
|
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
|
||||||
|
LEFT JOIN ITEM it ON TRIM(it.CODIGO) = TRIM(rel.COD_EXAMEN)
|
||||||
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
|
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
|
||||||
LEFT JOIN EMPRESA e ON e.NIT = r.NIT_EMPRESA
|
LEFT JOIN EMPRESA e ON e.NIT = r.NIT_EMPRESA
|
||||||
WHERE {where}
|
WHERE {where}
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ def generar_rda_paciente(rows: list, default_profesional: str = "", default_espe
|
|||||||
_doc = str(row.get("DOCIDMEDICO") or "").strip()
|
_doc = str(row.get("DOCIDMEDICO") or "").strip()
|
||||||
cedula_medico = _re.sub(r"[^0-9]", "", _doc)
|
cedula_medico = _re.sub(r"[^0-9]", "", _doc)
|
||||||
detalle_pedido.append({
|
detalle_pedido.append({
|
||||||
"codigoMaterial": str(row.get("COD_EXAMEN") or "").strip(),
|
"codigoMaterial": str(row.get("CUPS") or row.get("COD_EXAMEN") or "").strip(),
|
||||||
"codigoBodega": "00",
|
"codigoBodega": "00",
|
||||||
"cantidad": 1,
|
"cantidad": 1,
|
||||||
"tipoUnidad": "D",
|
"tipoUnidad": "D",
|
||||||
|
|||||||
Reference in New Issue
Block a user