Beispiel #1
0
def tub_sr():
    tubsr = TUB_Cursor.execute('''
        SELECT
            requisicao AS "Requisição",
            paciente AS "Paciente",
            ibge AS "IBGE",
            municipio AS "Município",
            regional AS "Regional",
            amostra AS "Amostra",
            material AS "Material",
            data_coleta AS "Data de Coleta",
            data_recebimento AS "Data de Recebimento",
            data_liberacao AS "Data de Liberação",
        CASE
            WHEN exame='Tuberculose, Baciloscopia'
                THEN REPLACE(exame, 'Tuberculose, Baciloscopia', 'Baciloscopia')
            WHEN exame='Tuberculose, Cultura'
                THEN REPLACE(exame, 'Tuberculose, Cultura', 'Cultura')
            WHEN exame='Tuberculose, Teste Rápido Molecular'
                THEN REPLACE(exame, 'Tuberculose, Teste Rápido Molecular', 'Teste Rápido Molecular')
        END AS "Exame",

            resultado AS "Resultado"

        FROM
        tuberculose
        WHERE
        (amostra = '0' OR amostra = '1')
        AND
        (resultado = 'Positiva para B.A.A.R.' OR
        resultado = 'Positiva para B.A.A.R. +' OR
        resultado = 'Positiva para B.A.A.R. +++' OR
        resultado = 'Positiva para B.A.A.R. +++' OR
        resultado = 'Encontrado 1 B.A.A.R. em 100 campos examinados.' OR
        resultado = 'Encontrados 2 B.A.A.R. em 100 campos examinados.' OR
        resultado = 'Encontrados 3 B.A.A.R. em 100 campos examinados.' OR
        resultado = 'Encontrados 4 B.A.A.R. em 100 campos examinados.' OR
        resultado = 'Encontrados 5 B.A.A.R. em 100 campos examinados.' OR
        resultado = 'Encontrados 6 B.A.A.R. em 100 campos examinados.' OR
        resultado = 'Encontrados 7 B.A.A.R. em 100 campos examinados.' OR
        resultado = 'Encontrados 8 B.A.A.R. em 100 campos examinados.' OR
        resultado = 'Encontrados 9 B.A.A.R. em 100 campos examinados.' OR
        resultado = 'Positiva' OR
        resultado = 'Positiva (+)' OR
        resultado = 'Positiva (++)' OR
        resultado = 'Positiva (+++)' OR
        resultado = 'Positiva (1 a 20 UFC)' OR
        resultado = 'Detectável')

        ''').fetchall()

    TUB_Cursor.execute('''
        INSERT OR REPLACE INTO sintomatico (requisicao, paciente, ibge,
        municipio, regional,  amostra, material, data_coleta, data_recebimento,
        data_liberacao, exame, resultado)
        VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', tubsr)
Beispiel #2
0
def tub_ts2():
    # Teste de Sensibilidade II
    tubts2 = GAL_Cursor.execute('''
        SELECT
            p.co_requisicao AS "Requisição",
            date (req.dt_cadastro) AS "Data Cadastro",
            p.no_paciente AS "Paciente",
            p.nu_idade AS "Idade",

            CASE
              WHEN p.tp_idade = '1'
                  THEN REPLACE(p.tp_idade, '1', 'Horas')
              WHEN p.tp_idade = '2'
                  THEN REPLACE(p.tp_idade, '2', 'Dias')
              WHEN p.tp_idade = '3'
                  THEN REPLACE(p.tp_idade, '3', 'Meses')
              WHEN p.tp_idade = '4'
                  THEN REPLACE(p.tp_idade, '4', 'Anos')
            END AS "Tipo",

            p.co_sexo AS "Sexo",
            m.co_municipio AS "Cod. Mun. Res.",
            m.no_municipio AS "Mun. Residência",
            l.nu_regional AS "Regional",
            l.no_unidade AS "Laboratório Executor",
            a.nu_amostra AS "Amostra",
            b.no_matbio AS "Material",
            date (a.dt_coleta) AS "Data de Coleta",
            date (e.dt_recebimento) AS "Data Recebimento",

            fn_bmh_inf_clinica_descricao(p.co_requisicao,'dt_inicio_sint') AS "Data Inicio Sintomas",

            CASE
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_fin_trat') = '1'
                  THEN REPLACE (fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_fin_trat'), '1', 'Diagnóstico')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_fin_trat') = '2'
                  THEN REPLACE (fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_fin_trat'), '2', 'Controle')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_fin_trat') = '9'
                  THEN REPLACE (fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_fin_trat'), '9', 'Ignorado')
            END AS "Finalidade",


            CASE
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_compl_trat') = '1'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_compl_trat'), '1', 'Nunca Tratou TB')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_compl_trat') = '2'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_compl_trat'), '2', 'Tratou TB')
            END AS "Tratamento",

            fn_bmh_inf_clinica_descricao(p.co_requisicao,'nu_peri_trat') AS "Tempo de Tratamento",

            CASE
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat') = '1'
                  THEN REPLACE (fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat'), '1', 'Dias')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat') = '2'
                  THEN REPLACE (fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat'), '2', 'Semana')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat') = '3'
                  THEN REPLACE (fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat'), '3', 'Mês')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat') = '4'
                  THEN REPLACE (fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat'), '1', 'Anos')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat') = '9'
                  THEN REPLACE (fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_peri_trat'), '9', 'Ignorado')
            END AS "Período de Tratamento",

            CASE
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '1'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '1', 'População Prisional')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '2'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '2', 'População em Situação de Rua')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '3'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '3', 'Internado/Institucionalizado')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '4'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '4', 'Profissional de Saúde/Sistema Penitenciário')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '5'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '5', 'HIV ou outra Imunodepressão')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '6'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '6', 'Indígena')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '7'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '7', 'Imigrante')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '8'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '8', 'Usuário de Drogas')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '9'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '9', 'Diabético')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '10'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '10', 'Tabagista')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao') = '99'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_populacao'), '99', 'Ignorado')
            END AS "População de Risco",

            CASE
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_tbdr') = '1'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_tbdr'), '1', 'Sim')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_tbdr') = '2'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_tbdr'), '2', 'Não')
              WHEN fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_tbdr') = '9'
                  THEN REPLACE(fn_bmh_inf_clinica_descricao(p.co_requisicao,'st_tbdr'), '9', 'Ignorado')
            END AS "TB Droga Resistência",

            te.no_exame AS "Exame",
            tm.no_metodo AS "Metodo",
            date (e.dt_resultado) AS "Data Resultado",
            date (e.dt_liberacao) AS "Data Liberação",
            DATE_PART('day', e.dt_recebimento::timestamp - req.dt_cadastro::timestamp) AS "Tempo Transporte",
            DATE_PART('day', e.dt_resultado::timestamp - e.dt_recebimento::timestamp) AS "Tempo Processamento",
            DATE_PART('day', e.dt_liberacao::timestamp - e.dt_recebimento::timestamp) AS "Tempo Liberacao",
            pl.ds_lpre AS "Resultado"

            FROM
            tb_bmh_exame_requisicao e
            JOIN tb_bmh_tipo_exame te ON e.co_exame = te.co_exame
            JOIN tb_bmh_tipo_metodologia tm ON e.co_metodo = tm.co_metodo
            JOIN tb_bmh_resultado r ON e.co_seq_examereq = r.co_examereq AND e.co_exame = r.co_exame AND e.co_metodo = r.co_metodo
            JOIN tb_bmh_amostra a ON e.co_amostra = a.co_seq_amostra
            JOIN tb_bmh_material_biologico b ON a.co_matbio = b.co_matbio
            JOIN tb_bmh_requisicao req ON req.co_requisicao = a.co_requisicao
            JOIN tb_lab_laboratorio l ON l.co_labor = req.co_labor_responsavel
            JOIN tb_bmh_paciente p ON req.co_requisicao = p.co_requisicao
            JOIN tb_bmh_pretabelado_linha pl on pl.co_lpre = r.co_lpre AND  pl.co_pretab = r.co_pretab
            LEFT JOIN tb_sus_municipio m ON m.co_municipio = p.co_municipio
            JOIN tb_sus_cnes cn ON req.co_cnes_requisitante = cn.co_cnes AND m.co_municipio = cn.co_municipio

            WHERE
            e.co_exame = 'TUBT' AND
            e.co_status = 5 AND
            r.co_campo = 'agente' AND
            --a.nu_amostra = 1 AND
            EXISTS (SELECT 1 FROM tb_bmh_inf_clinica ic WHERE ic.co_requisicao = p.co_requisicao AND ic.co_agravo = 4) AND
            e.dt_recebimento BETWEEN '2016-01-01 00:00:00' AND  '2016-12-31 23:59:59'

            ORDER BY
            p.co_requisicao ASC;
    ''').fetchall()
    ts2 = tubts2
    # Agrupando e gravando no BD local
    TUB_Cursor.execute('''INSERT OR REPLACE INTO tuberculose (requisicao, data_cadastro, paciente, idade, tipo_idade,
                    sexo, ibge, municipio, regional, laboratorio, amostra, material, data_coleta, data_recebimento,
                    data_sintomas, finalidade, tratamento, tempo_tratamento, periodo_tratamento, tipo_populacao,
                    droga_resistente, exame, metodo, data_resultado, data_liberacao, tempo_transporte,
                    tempo_processamento, tempo_liberacao, resultado)
                    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', ts2)