SELECT 
    P.per_Consecutivo,
    P.per_TipoId AS Tipo_documento,
    REPLACE(REPLACE(REPLACE(REPLACE(P.per_Id, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Numero_Documento,
	REPLACE(REPLACE(REPLACE(REPLACE(P.per_CertNacVivo, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Certifido_Nacido,
    REPLACE(REPLACE(REPLACE(REPLACE(P.per_Nombre1, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Primer_Nombre,
    REPLACE(REPLACE(REPLACE(REPLACE(P.per_Nombre2, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Segundo_Nombre,
    REPLACE(REPLACE(REPLACE(REPLACE(P.per_Apellido1, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Primer_Apellido,
    REPLACE(REPLACE(REPLACE(REPLACE(P.per_Apellido2, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Segundo_Apellido,
    REPLACE(REPLACE(REPLACE(REPLACE(P.per_FechaNac, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Fecha_Nacimiento,
    DATEDIFF(YEAR, P.per_FechaNac, GETDATE()) AS Edad,
	PS.pes_Peso AS Peso,
	P.per_tipoidM AS Tipo_documento_madre,
	P.per_idM AS Numero_Documento_madre,
	REPLACE(REPLACE(REPLACE(CONCAT(PM.per_Nombre1,' ',PM.per_Nombre2,' ',PM.per_Apellido1,' ',PM.per_Apellido2), CHAR(9), ''), CHAR(10), ''), CHAR(13), '') AS Datos_de_la_madre,
    AP.reg_Nombre AS Regimen,
    AP.ase_Id AS Codigo_Aseguradora,
    REPLACE(REPLACE(REPLACE(REPLACE(AP.ase_Nombre, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Aseguradora,
    REPLACE(REPLACE(REPLACE(REPLACE(DE.dep_Descripcion, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Depar_Residencia,
    REPLACE(REPLACE(REPLACE(REPLACE(MU.mun_Descripcion, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Mun_Residencia,
    REPLACE(REPLACE(REPLACE(REPLACE(UP.loc_Nombre, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Localidad,
    REPLACE(REPLACE(REPLACE(REPLACE(UP.bar_Nombre, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Barrio,
    UP.upz_Nombre AS UPZ,
    REPLACE(REPLACE(REPLACE(REPLACE(TZ.zon_Descripcion, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Zona,
    REPLACE(REPLACE(REPLACE(REPLACE(UP.dir_Direccion, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Direccion,
    REPLACE(REPLACE(REPLACE(REPLACE(UP.cor_correo, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS correo_electronico,
    REPLACE(REPLACE(REPLACE(REPLACE(UP.tel_Telefono, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Telefono_1,
    REPLACE(REPLACE(REPLACE(REPLACE(UP.tel_Contacto, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Telefono_2,
    GP.gru_Nombre AS Grupo_Poblacional,
    GR.gdr_Descripcion AS Grupo_Riesgo,
    CS.cds_Descripcion AS Condicion_Salud,
    P.per_EdadGestacional AS Edad_Gestacion,
	E.est_Descripcion AS Estado,
	CNV.cnv_Descripcion AS Causa_No_Vacuna,
    MAX(SE.seg_fechaSeguimientoRsp) AS Fecha_Seg_Personal,  -- Usamos MAX para traer la última fecha
    MAX(SE.seg_FechaAlmacenamiento) AS Fecha_Almacena_Seguimiento,  -- Usamos MAX para traer la última fecha
    REPLACE(REPLACE(REPLACE(REPLACE(MAX(SE.seg_Observaciones), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(124), '') AS Observacion_Seg
FROM PERSONA P 
LEFT JOIN vsUbicacionPersona UP ON P.per_Consecutivo = UP.per_Consecutivo 
LEFT JOIN vsAfiliacionPersona AP ON P.per_Consecutivo = AP.per_Consecutivo
LEFT JOIN DEPARTAMENTO DE ON DE.dep_Id = UP.dir_dep_Id
LEFT JOIN MUNICIPIO MU ON MU.mun_Id = UP.dir_mun_id
LEFT JOIN TIPO_ZONA TZ ON TZ.zon_Id = UP.dir_zon_Id
LEFT JOIN GRUPO_POBLACIONAL GP ON GP.gru_IdGrupo = P.per_IdGrupoPoblacional
LEFT JOIN COMPLEMENTO_CUESTIONARIO CCP ON CCP.Per_Consecutivo = P.per_Consecutivo
LEFT JOIN CONDICION_DE_SALUD CS ON CS.cds_Id = CCP.Cds_ID
LEFT JOIN GRUPO_RIESGO GR ON GR.gdr_Id = P.gdr_id
LEFT JOIN PERSONA PM ON PM.per_Consecutivo=P.per_ConsecutivoMama
LEFT JOIN PESO PS ON PS.per_Consecutivo=P.per_Consecutivo
LEFT JOIN ESTADO E ON E.est_Id=P.per_Estado
LEFT JOIN CAUSA_NO_VACUNA_PERSONA CNVP ON CNVP.per_Consecutivo=P.per_Consecutivo AND CNVP.vac_Id='58'
LEFT JOIN CAUSA_NO_VACUNA CNV ON CNV.cnv_Id=CNVP.cnv_Id
LEFT JOIN Lugar_Nacimiento_Persona LNP ON LNP.per_consecutivo=P.per_Consecutivo --AND LNP.nac_dep_Id='11001000'
LEFT JOIN (
    SELECT seg_per_consecutivo, MAX(seg_FechaAlmacenamiento) AS Fecha_Almacena_Seguimiento
    FROM SEGUIMIENTO
    GROUP BY seg_per_consecutivo
) US ON US.seg_per_consecutivo = P.per_Consecutivo
LEFT JOIN SEGUIMIENTO SE ON SE.seg_per_consecutivo = P.per_Consecutivo
    AND SE.seg_FechaAlmacenamiento = US.Fecha_Almacena_Seguimiento
WHERE --CS.cds_Id IN ('22','23','24','25','26','27','28','29') 
	LNP.nac_dep_Id='11001000' AND LNP.nac_mun_id='11001000'
    AND 
	P.per_FechaNac BETWEEN CONVERT(DATETIME, '2026-02-23 19:00:00', 102) 
                          AND CONVERT(DATETIME, '2026-06-29 23:59:59', 102)
    AND NOT EXISTS (
        SELECT 1 
        FROM VACUNA_PERSONA VP2 
        WHERE VP2.per_Consecutivo = P.per_Consecutivo 
            AND VP2.vac_Id = 58
    )
GROUP BY 
    P.per_Consecutivo, P.per_TipoId, P.per_CertNacVivo,P.per_Id, P.per_Nombre1, P.per_Nombre2, 
    P.per_Apellido1, P.per_Apellido2, P.per_FechaNac, PS.pes_Peso, P.per_tipoidM,
	P.per_idM, PM.per_Nombre1, PM.per_Nombre2, PM.per_Apellido1, PM.per_Apellido2,AP.reg_Nombre, AP.ase_Id, 
    AP.ase_Nombre, DE.dep_Descripcion, MU.mun_Descripcion, UP.loc_Nombre, 
    UP.bar_Nombre, UP.upz_Nombre, TZ.zon_Descripcion, UP.dir_Direccion, 
    UP.cor_correo, UP.tel_Telefono, UP.tel_Contacto, GP.gru_Nombre, 
    GR.gdr_Descripcion, CS.cds_Descripcion, P.per_EdadGestacional, E.est_Descripcion,CNV.cnv_Descripcion