feat: módulos de envío TNS/ERP Lab + sync de médico, empresa y valor total
- Hub /envios/tns con 5 sub-tabs (Terceros, Transacción RIPS, Facturas Venta, Prueba RDA, Automatización) via iframe lazy - Hub /envios/erp con sub-tabs Pacientes y Sync Automático (historial scheduler) - Modo embed (?embed=1) en base.html para cargar páginas sin sidebar/header dentro de iframes - Sidebar simplificado: 6 ítems individuales reemplazados por módulos TNS y ERP Lab - Scheduler y endpoint /pacientes/examenes ahora incluyen médico ordenante (DOCIDMEDICO), empresa/EPS (NIT_EMPRESA) y valor total (VALORTOTAL) desde Firebird Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
31c0b71c90
commit
8e27225326
+25
-13
@@ -39,14 +39,21 @@ _SQL_EXAMENES_CEDULA = """
|
||||
SELECT
|
||||
r.IDRECEPCION,
|
||||
r.HORAINICIORECEPCION,
|
||||
TRIM(rel.COD_EXAMEN) AS COD_EXAMEN,
|
||||
TRIM(ex.NOMBRE) AS NOM_EXAMEN,
|
||||
COALESCE(NULLIF(TRIM(ex.NUM_ISS), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
|
||||
rel.PRECIO
|
||||
TRIM(rel.COD_EXAMEN) AS COD_EXAMEN,
|
||||
TRIM(ex.NOMBRE) AS NOM_EXAMEN,
|
||||
COALESCE(NULLIF(TRIM(ex.NUM_ISS), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
|
||||
rel.PRECIO,
|
||||
TRIM(r.DIAG_PPAL) AS DIAG_PPAL,
|
||||
TRIM(d.CONCEPTO) AS DIAG_CONCEPTO,
|
||||
TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO,
|
||||
TRIM(r.NIT_EMPRESA) AS NIT_EMPRESA,
|
||||
r.VALORTOTAL
|
||||
FROM RECEPCION r
|
||||
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
|
||||
LEFT JOIN EXAMEN ex ON TRIM(ex.CODIGO) = TRIM(rel.COD_EXAMEN)
|
||||
JOIN PACIENTE p ON p.CODIGO = r.COD_PACIENTE
|
||||
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
|
||||
LEFT JOIN EXAMEN ex ON TRIM(ex.CODIGO) = TRIM(rel.COD_EXAMEN)
|
||||
LEFT JOIN DIAGNOSTICO d ON TRIM(d.COD_DIAG) = TRIM(r.DIAG_PPAL)
|
||||
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
|
||||
JOIN PACIENTE p ON p.CODIGO = r.COD_PACIENTE
|
||||
WHERE TRIM(p.DOCIDENT) = :cedula
|
||||
AND r.FECHA_RECEPCION = CURRENT_DATE
|
||||
ORDER BY r.IDRECEPCION DESC
|
||||
@@ -123,12 +130,17 @@ async def examenes_paciente(request: Request, cedula: str = ""):
|
||||
if hora_dt and hora_dt < limite:
|
||||
continue
|
||||
examenes.append({
|
||||
"recepcion_id": row.get("IDRECEPCION"),
|
||||
"hora": row.get("HORAINICIORECEPCION"),
|
||||
"cod_examen": (row.get("COD_EXAMEN") or "").strip(),
|
||||
"nombre": (row.get("NOM_EXAMEN") or "").strip(),
|
||||
"cups": (row.get("CUPS") or "").strip(),
|
||||
"precio": row.get("PRECIO"),
|
||||
"recepcion_id": row.get("IDRECEPCION"),
|
||||
"hora": row.get("HORAINICIORECEPCION"),
|
||||
"cod_examen": (row.get("COD_EXAMEN") or "").strip(),
|
||||
"nombre": (row.get("NOM_EXAMEN") or "").strip(),
|
||||
"cups": (row.get("CUPS") or "").strip(),
|
||||
"precio": row.get("PRECIO"),
|
||||
"diagnostico_cod": (row.get("DIAG_PPAL") or "").strip(),
|
||||
"diagnostico_nombre": (row.get("DIAG_CONCEPTO") or "").strip(),
|
||||
"medico_docidmedico": (row.get("DOCIDMEDICO") or "").strip(),
|
||||
"nit_empresa": (row.get("NIT_EMPRESA") or "").strip(),
|
||||
"valor_total": row.get("VALORTOTAL"),
|
||||
})
|
||||
|
||||
return JSONResponse({"ok": True, "examenes": examenes})
|
||||
|
||||
Reference in New Issue
Block a user