-- Dataset 3 - Atualização 3 - jan/25 a abr/25

SELECT
    '06/2025' AS dt_atualizacao,
    tp_analise,
    dt_cmpt,
    co_cnes,
    no_razao_social,
    no_fantasia,
    nu_mun_hosp,
    co_proc_realizado,
    co_paciente_sexo,
    co_complexidade,
    co_financiamento,
    co_gestao,
    nu_idade,
    frequencia,
    nu_val_tot,
    st_idade_regular,
    st_sexo_regular,
    CASE
    WHEN st_idade_regular || st_sexo_regular = 'NS' THEN
    'Idade'
    WHEN st_idade_regular || st_sexo_regular = 'SN' THEN
    'Sexo'
    WHEN st_idade_regular || st_sexo_regular = 'NN' THEN
    'Ambos'
    ELSE
    'Verificar'
    END       AS irregularidade,
    nu_aih,   
    no_paciente_nome,
    dt_paciente_nascimento,
    nu_paciente_numero_cns,
    nu_paciente_numero_cpf    
FROM
    (
        SELECT
            tp_analise,
            r.dt_cmpt,
            r.co_cnes,
            r.no_razao_social,
            r.no_fantasia,
            r.nu_mun_hosp,
            r.co_proc_realizado,
            r.co_paciente_sexo,
            r.co_complexidade,
            r.co_financiamento,
            r.co_gestao,
            r.nu_idade,  
            r.no_paciente_nome,
            r.dt_paciente_nascimento,
            r.nu_paciente_numero_cns,
            r.nu_paciente_numero_cpf,
            r.nu_aih,
            COUNT(r.nu_aih)   AS frequencia,
            SUM(r.nu_val_tot) AS nu_val_tot,
            -- Coluna st_idade_regular
            CASE
            WHEN tp_analise = 'Parto'
                 AND ( r.nu_idade < 9
                       OR r.nu_idade > 60 ) THEN
            'N'
            WHEN tp_analise = 'Laqueadura'
                 AND ( r.nu_idade < 21
                       OR r.nu_idade > 60 ) THEN
            'N'
            ELSE
            'S'
            END               AS st_idade_regular,
            -- Coluna st_sexo_regular
            CASE
            WHEN r.co_paciente_sexo = 3 THEN
            'S'
            WHEN r.co_paciente_sexo = 1 THEN
            'N'
            ELSE
            NULL
            END               AS st_sexo_regular
        FROM
            (
                SELECT
                    'Parto' AS tp_analise,
                    r.dt_cmpt,
                    r.co_cnes,
                    e.no_razao_social,
                    e.no_fantasia,
                    r.nu_mun_hosp,
                    r.co_proc_realizado,
                    r.co_paciente_sexo,
                    r.co_complexidade,
                    r.co_financiamento,
                    r.co_gestao,
                    r.nu_idade,
                    r.no_paciente_nome,
                    r.dt_paciente_nascimento,
                    r.nu_paciente_numero_cns,
                    r.nu_paciente_numero_cpf,
                    r.nu_aih,                    
                    r.nu_val_tot
                FROM
                    aih.tb_reduz            r
                    LEFT JOIN cnes.tb_estabelecimento e ON e.co_cnes = r.co_cnes
                WHERE
                    r.co_proc_realizado IN ( 0303100028, 0303100036, 0303100044, 0303100052, 0310010012, 0310010039, 0310010047, 0409060011,
                    0409060070, 0411010018, 0411010026, 0411010034, 0411010050, 0411010077, 0411010085, 0411020013, 0411020021, 0411020030,
                    0411020048 )
                UNION ALL
                SELECT
                    'Laqueadura' AS tp_analise,
                    r.dt_cmpt,
                    r.co_cnes,
                    e.no_razao_social,
                    e.no_fantasia,
                    r.nu_mun_hosp,
                    r.co_proc_realizado,
                    r.co_paciente_sexo,
                    r.co_complexidade,
                    r.co_financiamento,
                    r.co_gestao,
                    r.nu_idade,
                    r.no_paciente_nome,
                    r.dt_paciente_nascimento,
                    r.nu_paciente_numero_cns,
                    r.nu_paciente_numero_cpf,
                    r.nu_aih,
                    r.nu_val_tot
                FROM
                    aih.tb_reduz            r
                    LEFT JOIN cnes.tb_estabelecimento e ON e.co_cnes = r.co_cnes
                WHERE
                    r.co_proc_realizado IN ( 0409060186, 0409060313, 0411010042 )
            ) r
        GROUP BY
            tp_analise,
            r.dt_cmpt,
            r.co_cnes,
            r.no_razao_social,
            r.no_fantasia,
            r.nu_mun_hosp,
            r.co_proc_realizado,
            r.co_paciente_sexo,
            r.co_complexidade,
            r.co_financiamento,
            r.co_gestao,
            r.nu_idade,
            r.no_paciente_nome,
            r.dt_paciente_nascimento,
            r.nu_paciente_numero_cns,
            r.nu_paciente_numero_cpf,
            r.nu_aih
    )
WHERE
    dt_cmpt >= 202501
    --dt_cmpt between 202501 and 202503
    AND ( st_idade_regular = 'N'
          OR st_sexo_regular = 'N' )