Add pre-servicios support in /transaccion + letter search fix
- Add 'RDA Pre-servicios por fecha' and 'RDA Pre-servicios por número' default queries joining PRESSERV_DIAN (ID_PS, PS_PREFIJO, PS_NUMERO) - Refactor _query_rows: only pass params the query actually uses; prefix filter works for both PREFIJO and PS_PREFIJO columns - Add _is_preserv(), _agrupar(), _build_rda() helpers that detect pre-servicio rows and produce correct prefijo/numero overrides - All 4 send endpoints (preview, send-one, send, send-direct) now group by ID_PS for pre-servicio queries and pass correct RDA fields - RCXC prefix still maps to '00' in the RDA codigoPrefijo Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
987959a975
commit
daa50a70cf
@@ -103,6 +103,90 @@ WHERE r.FECHA_RECEPCION BETWEEN :fecha_ini AND :fecha_fin
|
||||
ORDER BY r.IDRECEPCION""",
|
||||
"description": "Servicios en un rango de fechas (para RdaPaciente/Insertar)"
|
||||
},
|
||||
{
|
||||
"name": "RDA Pre-servicios por fecha",
|
||||
"query_type": "transaccion",
|
||||
"query_text": """SELECT
|
||||
ps.ID_PS,
|
||||
ps.PS_PREFIJO,
|
||||
ps.PS_NUMERO,
|
||||
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.HORAINICIORECEPCION,
|
||||
r.VALORTOTAL,
|
||||
r.VALORDESC,
|
||||
rel.COD_EXAMEN,
|
||||
COALESCE(NULLIF(TRIM(ex.NUM_ISS), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
|
||||
rel.PRECIO,
|
||||
COALESCE(t.VALOR, rel.PRECIO) AS PRECIO_TARIFA,
|
||||
rel.FECHA_REPORTADO,
|
||||
m.COD_ESPECIALIDAD,
|
||||
COALESCE(NULLIF(TRIM(m.CODIGO), ''), NULLIF(TRIM(r.USUARIO), ''), '') AS profesional,
|
||||
e.CODCONTRATO,
|
||||
TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO
|
||||
FROM PRESSERV_DIAN ps
|
||||
JOIN RECEPCION r ON r.IDRECEPCION = ps.ID_RECEP
|
||||
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
|
||||
LEFT JOIN EXAMEN ex ON TRIM(ex.CODIGO) = TRIM(rel.COD_EXAMEN)
|
||||
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
|
||||
LEFT JOIN EMPRESA e ON e.NIT = r.NIT_EMPRESA
|
||||
LEFT JOIN TARIFA t ON TRIM(t.COD_EXAMEN) = TRIM(rel.COD_EXAMEN) AND t.TARIFA = e.TARIFA
|
||||
WHERE r.FECHA_RECEPCION BETWEEN :fecha_ini AND :fecha_fin
|
||||
AND (ps.PS_ANULADA IS NULL OR ps.PS_ANULADA = 'F')
|
||||
ORDER BY ps.ID_PS, rel.COD_EXAMEN""",
|
||||
"description": "Pre-servicios RCXC/SC en un rango de fechas (agrupa por ID_PS)"
|
||||
},
|
||||
{
|
||||
"name": "RDA Pre-servicios por número",
|
||||
"query_type": "transaccion",
|
||||
"query_text": """SELECT
|
||||
ps.ID_PS,
|
||||
ps.PS_PREFIJO,
|
||||
ps.PS_NUMERO,
|
||||
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.HORAINICIORECEPCION,
|
||||
r.VALORTOTAL,
|
||||
r.VALORDESC,
|
||||
rel.COD_EXAMEN,
|
||||
COALESCE(NULLIF(TRIM(ex.NUM_ISS), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
|
||||
rel.PRECIO,
|
||||
COALESCE(t.VALOR, rel.PRECIO) AS PRECIO_TARIFA,
|
||||
rel.FECHA_REPORTADO,
|
||||
m.COD_ESPECIALIDAD,
|
||||
COALESCE(NULLIF(TRIM(m.CODIGO), ''), NULLIF(TRIM(r.USUARIO), ''), '') AS profesional,
|
||||
e.CODCONTRATO,
|
||||
TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO
|
||||
FROM PRESSERV_DIAN ps
|
||||
JOIN RECEPCION r ON r.IDRECEPCION = ps.ID_RECEP
|
||||
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
|
||||
LEFT JOIN EXAMEN ex ON TRIM(ex.CODIGO) = TRIM(rel.COD_EXAMEN)
|
||||
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
|
||||
LEFT JOIN EMPRESA e ON e.NIT = r.NIT_EMPRESA
|
||||
LEFT JOIN TARIFA t ON TRIM(t.COD_EXAMEN) = TRIM(rel.COD_EXAMEN) AND t.TARIFA = e.TARIFA
|
||||
WHERE ps.PS_NUMERO = :ps_numero
|
||||
AND (ps.PS_ANULADA IS NULL OR ps.PS_ANULADA = 'F')
|
||||
ORDER BY ps.ID_PS, rel.COD_EXAMEN""",
|
||||
"description": "Pre-servicio por número PS (buscar RCXC05291 → escribe solo el número)"
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user