# Estado de Campos — rips_manager **Fecha:** 2026-06-25 | **Empresa:** 9002787299 | **Sucursal:** 81080 --- ## 1. RIPS — Resolución 2275/2023 (vigente desde 1-abr-2024) > Los PDFs en `/norma` son sobre RDA/IHCE (Res. 866/2021 y 1888/2025), **no sobre RIPS**. > La norma RIPS vigente es la **Res. 2275/2023 + Res. 558/2024 + Res. 1884/2024** (no están en la carpeta). > TNS recibe nuestros datos y genera el RIPS hacia MinSalud internamente. ### 1.1 Campos RIPS requeridos — nivel USUARIO (paciente) | Campo RIPS (Res. 2275) | Fuente Firebird | Estado | |---|---|---| | `tipoDocumentoIdentificacion` | `PACIENTE.TIPOIDENT` | ✅ Enviado como `tipoDocumento` en Tercero | | `numDocumentoIdentificacion` | `PACIENTE.DOCIDENT` | ✅ Enviado como `nit` en Tercero | | `fechaNacimiento` | `PACIENTE.F_NACIMIENTO` | ✅ Formato `dd/MM/yyyy` | | `codSexo` | `PACIENTE.SEXO` | ✅ Enviado como `sexo` | | `tipoUsuario` | `RECEPCION.TIPOUSUSISPRO` | ✅ Con fallback desde `TIPOUSU` | | `codMunicipioResidencia` | `PACIENTE.CIUDAD` | ✅ Enviado como `codigoCiudad` (DIVIPOLA, igual en FB y TNS) | | `codZonaTerritorialResidencia` | `PACIENTE.TIPORES` | ✅ Enviado como `zona` (U→`01`, R→`02`) | | `codPaisResidencia` | No existe en Firebird | ⚪ TNS lo completa con `170` (Colombia) | | `codPaisOrigen` | No existe en Firebird | ⚪ TNS lo completa con `170` | | `incapacidad` | No existe en Firebird | ⚪ TNS lo completa como `NO` | ### 1.2 Campos RIPS requeridos — nivel PROCEDIMIENTO (por examen) | Campo RIPS (Res. 2275) | Fuente Firebird | Estado | |---|---|---| | `codProcedimiento` | `RELACION.COD_EXAMEN` | ✅ Enviado como `codigoMaterial` | | `fechaInicioAtencion` | `RELACION.FECHA_REPORTADO` | ✅ Enviado como `fechaHoraRealizacion` | | `codDiagnosticoPrincipal` | `RECEPCION.DIAG_PPAL` | ✅ Enviado como `diagnosticoprincipal` | | `vrServicio` | `RELACION.PRECIO` | ✅ Enviado como `valor` | | `numAutorizacion` | `RECEPCION.AUTORIZACION` | ✅ Enviado como `numeroAutorizacion` | | `finalidadTecnologiaSalud` | **No existe en Firebird** | ⚠️ TNS lo gestiona internamente (confirmar) | | `viaIngresoServicioSalud` | **No existe en Firebird** | ⚠️ Fijo `"01"` — TNS lo completa | | `modalidadGrupoServicioTecSal` | **No existe en Firebird** | ⚠️ TNS lo gestiona internamente | | `grupoServicios` | **No existe en Firebird** | ⚠️ TNS lo gestiona internamente | | `codServicio` | **No existe en Firebird** | ⚠️ TNS lo gestiona internamente | | `valorPagoModerador` | **No existe en Firebird** | ⚪ TNS lo pone en `0` para particulares | | `conceptoRecaudo` | **No existe en Firebird** | ⚠️ TNS lo gestiona internamente | | `idMIPRES` | **No existe en Firebird** | ⚪ Opcional — solo para servicios MIPRES | | `tipoDoc/numDoc del profesional` | Solo username (`RECEPCION.USUARIO`) | ⚠️ TNS usa username, no CC del médico | --- ## 2. TNS API v2 — Estado del envío ### 2.1 POST /v2/tablas/Tercero/Crear | Campo TNS | Fuente | Estado | |---|---|---| | `codigo` | `PACIENTE.CODIGO` | ✅ | | `nit` | `PACIENTE.DOCIDENT` | ✅ | | `tipoDocumento` | `PACIENTE.TIPOIDENT` (mapeado) | ✅ | | `nombre`, `nombre1`, `nombre2` | `PACIENTE.NOMBRES` | ✅ | | `apellido1`, `apellido2` | `PACIENTE.APELLIDOS` | ✅ | | `direccion` | `PACIENTE.DIRECCION` | ✅ | | `codigoCiudad` | `PACIENTE.CIUDAD` | ✅ Validado: DIVIPOLA igual en FB y TNS | | `zona` | `PACIENTE.TIPORES` | ✅ U→`01`, R→`02` | | `sexo` | `PACIENTE.SEXO` | ✅ | | `fechaNacimiento` | `PACIENTE.F_NACIMIENTO` | ✅ | | `etnia` | `PACIENTE.CODETNIA` | ✅ | | `telefono` | `PACIENTE.TELEFONOS` | ✅ | | `email` | `PACIENTE.EMAIL` | ✅ Fallback: `doc@sinregistro.co` | | `natJuridica` | Hardcodeado `"N"` | ✅ Siempre Natural | | `cliente` | Hardcodeado `"S"` | ✅ Siempre cliente | | `zona1`, `clasificacion`, `codigoBarrio` | Hardcodeados `"00"` | ✅ Catálogos TNS sin config | | `enfermedadCronica` | Hardcodeado `false` | ⚠️ No existe campo en Firebird | | `noEnviarMinSalud` | Hardcodeado `false` | ⚠️ ¿Hay pacientes que no reportar? | ### 2.2 POST /v2/rda/RdaPaciente/Insertar | Campo TNS | Fuente | Estado | |---|---|---| | `codigoPrefijo` | `RECEPCION.PREFIJO` | ✅ | | `numero` | `RECEPCION.NUM_FACTURA` | ✅ Corregido (antes vacío) | | `fecha` | `RECEPCION.FECHA_RECEPCION` | ✅ | | `codTercero` | `RECEPCION.COD_PACIENTE` | ✅ | | `tipoIngreso` | `RECEPCION.CLASEPROC` | ✅ (`1`=Amb, `2`=Hosp, `3`=Urgencias) | | `fechaHoraIngreso` | `RECEPCION.HORAINICIORECEPCION` | ✅ Hora de inicio | | `fechaHoraEgreso` | `RELACION.FECHA_REPORTADO` (última) | ✅ Fecha del último examen reportado | | `diagnosticoprincipal` | `RECEPCION.DIAG_PPAL` | ✅ | | `tipousuario` | `RECEPCION.TIPOUSUSISPRO` | ✅ Con fallback desde `TIPOUSU` | | `numeroContrato` | `RECEPCION.NIT_EMPRESA` | ✅ NIT de EPS o `PART` | | `numeroAutorizacion` | `RECEPCION.AUTORIZACION` | ✅ | | `codFormaPago` | Derivado de `NIT_EMPRESA` | ✅ `PART`→`CLIP`, EPS→`INST` (validado en TNS) | | `modalidadAtencion` | Hardcodeado `"01"` | ⚠️ No existe campo en Firebird (intramural) | | `viaIngreso` | Hardcodeado `"01"` | ⚠️ No existe campo en Firebird (demanda espontánea) | | `codVendedor` | Hardcodeado `"00"` | ✅ Default TNS validado | | `codBanco` | Hardcodeado `"00"` | ✅ Default TNS validado | | `codigoCentroCosto` | Hardcodeado `"00"` | ✅ Sin centros de costo configurados en TNS | | `esTerapia` | Hardcodeado `false` | ✅ Es laboratorio | | `esProcedimiento` | Hardcodeado `false` | ✅ Es laboratorio | | **detallePedido:** | | | | `codigoMaterial` | `RELACION.COD_EXAMEN` | ⚠️ Sin validar: DOCUXER sin permiso de artículos | | `codigoBodega` | Hardcodeado `"00"` | ✅ Validado: única bodega en TNS es `"00"` | | `cantidad` | Hardcodeado `1` | ✅ 1 examen = 1 unidad | | `tipoUnidad` | Hardcodeado `"D"` | ✅ Default TNS | | `valor` | `RELACION.PRECIO` | ✅ | | `descuento` | Hardcodeado `0` | ✅ | | `porcentajeIva` | Hardcodeado `0` | ✅ Salud sin IVA | | `impConsumo` | Hardcodeado `0` | ✅ | | `profesional` | `RECEPCION.USUARIO` (con fallback `MEDICO.CODIGO`) | ✅ Opcional según doc TNS | | `especialidad` | `MEDICO.COD_ESPECIALIDAD` | ✅ Limpia valores basura (`.`, `-`, `00`) | | `diagnosticoprincipal` | `RECEPCION.DIAG_PPAL` | ✅ | | `fechaHoraRealizacion` | `RELACION.FECHA_REPORTADO` | ✅ Requerido — formato `dd/MM/yyyy HH:mm:ss` | --- ## 3. Hardcodeados — Resumen definitivo ### ✅ Correctos — defaults validados contra TNS | Campo | Valor | Razón | |---|---|---| | `codVendedor` | `"00"` | Default TNS documentado | | `codBanco` | `"00"` | Default TNS documentado | | `codigoCentroCosto` | `"00"` | Sin centros de costo en TNS | | `codigoBodega` | `"00"` | Única bodega existente en TNS (`PRINCIPAL`) | | `tipoUnidad` | `"D"` | Default TNS (Unidad) | | `cantidad` | `1` | 1 examen = 1 unidad lógica | | `descuento` | `0` | Sin descuentos | | `porcentajeIva` | `0` | Servicios de salud exentos | | `impConsumo` | `0` | Sin impuesto al consumo | | `esTerapia` | `false` | Es laboratorio clínico | | `esProcedimiento` | `false` | Es laboratorio clínico | | `natJuridica` | `"N"` | Paciente = persona Natural | | `cliente` | `"S"` | Siempre es cliente | | `zona1` / `clasificacion` / `codigoBarrio` | `"00"` | Catálogos TNS sin configurar | | `privada` / `mixta` | `"N"` | Laboratorio no es privado/mixto | | `comision` | `0` | Sin comisiones | ### ⚠️ Hardcodeados por ausencia de campo en Firebird — confirmar con operación | Campo | Valor fijo | Situación | |---|---|---| | `viaIngreso` | `"01"` Demanda Espontánea | **No existe** columna en `RECEPCION`. ¿Siempre es espontáneo? | | `modalidadAtencion` | `"01"` Intramural | **No existe** columna en `RECEPCION`. ¿Hacen domiciliarias? | | `enfermedadCronica` | `false` | **No existe** en Firebird | | `noEnviarMinSalud` | `false` | **No existe** en Firebird. ¿Hay pacientes sin reporte? | --- ## 4. Bugs corregidos en esta sesión | Bug | Causa | Fix | |---|---|---| | `Column unknown DOC_NUM / FECHA_INI` | `fdb` no soporta `:name` params | `firebird_service.py` convierte a `?` positional | | `"06: 08: 29"` (espacios en hora) | Firebird retorna TIME con espacios | `_fmt_datetime` limpia `": "` → `":"` | | `"numero": ""` (factura vacía) | Hardcodeado `""` | Ahora usa `RECEPCION.NUM_FACTURA` | | `"especialidad": "."` | `COD_ESPECIALIDAD` con basura en BD | Limpia `.`, `-`, `0`, `00` | | `"tipousuario": "12"` siempre | `TIPOUSUSISPRO` NULL en 96% de registros viejos | Fallback desde `TIPOUSU`: `1`→`11`, `5`→`07` | | `"codFormaPago": "CO"` | Código no existe en TNS de este lab | Cambiado a `CLIP` (particular) / `INST` (EPS) | | `fechaHoraEgreso` = fecha entrada | Usaba `FECHA_RECEPCION` como egreso | Ahora usa `max(FECHA_REPORTADO)` de exámenes | --- ## 5. Pendientes bloqueantes ### En portal.tns.co (requiere admin TNS) | Permiso | Para qué | Sin esto | |---|---|---| | **Insertar RDA Pacientes** (usuario DOCUXER) | Enviar `RdaPaciente/Insertar` | El envío retorna error 403 | | **Ver artículos** (usuario DOCUXER) | Validar que códigos de exámenes existen en TNS | Los códigos `TSH`, `903841`, etc. pueden no existir como materiales | ### En Firebird (validar con quien administra el LIS) | Campo | Acción | |---|---| | ¿`RECEPCION.VIAINGRESO` existe? | Consultar esquema — NO existe en la BD actual | | ¿`RECEPCION.MODALIDAD` existe? | Consultar esquema — NO existe en la BD actual | | ¿Hay exámenes sin `FECHA_REPORTADO` válida? | Verificar registros con año 1900 en `FECHA_REPORTADO` | ### En TNS (validar manualmente en portal.tns.co) | Validación | Cómo verificar | |---|---| | Códigos de exámenes (`TSH`, `903841`, etc.) existen como Materiales | Ir a Inventario → Artículos en el portal | | `finalidadTecnologiaSalud` que TNS genera para exámenes de laboratorio | Revisar un RDA ya creado en TNS | | `conceptoRecaudo` que TNS asigna | Revisar un RDA ya creado en TNS | --- ## 6. Normas de referencia | Norma | Sobre | En carpeta `/norma` | |---|---|---| | Res. 2275/2023 | **RIPS vigente** (formato de reporte a MinSalud) | ❌ Falta — agregar | | Res. 558/2024 | Actualización RIPS | ❌ Falta — agregar | | Res. 1884/2024 | Actualización RIPS | ❌ Falta — agregar | | Res. 866/2021 | Datos clínicos para interoperabilidad IHCE | ✅ Está | | Res. 1888/2025 | RDA — Resumen Digital de Atención (IHCE) | ✅ Está | | Res. 1995/1999 | Normas historia clínica | ✅ Está |