Ejemplo n.º 1
0
def usuario():
    ''' Usuários por status '''

    # Cadastrados
    usuario = GAL_Cursor.execute('''
        SELECT COUNT(co_seq_usuario) FROM tb_usr_usuario ''').fetchone()
    for cad in usuario:
        cad = cad
    # Ativos
    ativos = GAL_Cursor.execute('''
        SELECT COUNT(st_usuario_ativo) FROM tb_usr_usuario WHERE st_usuario_ativo='A' ''').fetchone()
    for atv in ativos:
        atv = atv
    # Inativos
    inativos = GAL_Cursor.execute('''
        SELECT COUNT(st_usuario_ativo) FROM tb_usr_usuario WHERE st_usuario_ativo='I' ''').fetchone()
    for itv in inativos:
        itv = itv
    # Não Ativados
    naoativos = GAL_Cursor.execute('''
        SELECT COUNT(st_usuario_ativo) FROM tb_usr_usuario WHERE st_usuario_ativo='1' ''').fetchone()
    for ntv in naoativos:
        ntv = ntv
    # Agrupando e gravando no BD local
    usuarios = (cad, atv, itv, ntv)
    APP_Cursor.execute('''INSERT OR REPLACE INTO usuario (cadastrado, ativo, inativo, nao_ativado)
                     VALUES (?, ?, ?, ?)''', usuarios)
Ejemplo n.º 2
0
def municipio():
    """ Regionais de Saúde """

    mun = GAL_Cursor.execute('''
        SELECT co_municipio, no_municipio
        FROM public.tb_sus_municipio
        WHERE co_uf = '41' ''').fetchall()
    REP_Cursor.execute('''INSERT OR REPLACE INTO municipio (codigo, municipio) VALUES (?, ?)''', mun)
Ejemplo n.º 3
0
def exames_liberados():
    # 2009 - Total de liberados
    a09_lib = GAL_Cursor.execute('''
        SELECT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 AND dt_status BETWEEN
        '2009-01-01 00:00:00' AND '2009-12-31 23:59:59' ''').fetchone()
    for l09 in a09_lib:
        l09 = l09
    # 2010 - Total de liberados
    a10_lib = GAL_Cursor.execute('''
        SELECT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 AND dt_status BETWEEN
        '2010-01-01 00:00:00' AND '2010-12-31 23:e59:59' ''').fetchone()
    for l10 in a10_lib:
        l10 = l10
    # 2011 - Total de liberados
    a11_lib = GAL_Cursor.execute('''
        SELECT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 AND dt_status BETWEEN
        '2011-01-01 00:00:00' AND '2011-12-31 23:59:59' ''').fetchone()
    for l11 in a11_lib:
        l11 = l11
    # 2012 - Total de liberados
    a12_lib = GAL_Cursor.execute('''
        SELECT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 AND dt_status BETWEEN
        '2012-01-01 00:00:00' AND '2012-12-31 23:59:59' ''').fetchone()
    for l12 in a12_lib:
        l12 = l12
    # 2013 - Total de liberados
    a13_lib = GAL_Cursor.execute('''
        SELECT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 AND dt_status BETWEEN
        '2013-01-01 00:00:00' AND '2013-12-31 23:59:59' ''').fetchone()
    for l13 in a13_lib:
        l13 = l13
    # 2014 - Total de liberados
    a14_lib = GAL_Cursor.execute('''
        SELECT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 AND dt_status BETWEEN
        '2014-01-01 00:00:00' AND '2014-12-31 23:59:59' ''').fetchone()
    for l14 in a14_lib:
        l14 = l14
    # 2015 - Total de liberados
    a15_lib = GAL_Cursor.execute('''
        SELECT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 AND dt_status BETWEEN
        '2015-01-01 00:00:00' AND '2015-12-31 23:59:59' ''').fetchone()
    for l15 in a15_lib:
        l15 = l15
    # 2016 - Total de liberados
    a16_lib = GAL_Cursor.execute('''
        SELECT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 AND dt_status BETWEEN
        '2016-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for l16 in a16_lib:
        l16 = l16

    # Agrupando e gravando no BD local
    exames_liberados = (l09, l10, l11, l12, l13, l14, l15, l16)
    APP_Cursor.execute('''
        INSERT OR REPLACE INTO bmh_exame_liberado (
        ano_2009, ano_2010, ano_2011, ano_2012, ano_2013, ano_2014, ano_2015, ano_2016)
        VALUES (?, ?, ?, ?, ?, ?, ?, ?) ''', exames_liberados)
Ejemplo n.º 4
0
def classificacao():
    """ Classificação"""

    cla = GAL_Cursor.execute('''
        SELECT co_classificacao, ds_classificacao
        FROM tb_lab_classificacao
        ORDER BY co_classificacao ''').fetchall()
    REP_Cursor.execute('''INSERT OR REPLACE INTO classificacao (codigo, classificacao)
        VALUES(?, ?)''', cla)
Ejemplo n.º 5
0
def exames_nao_conformidade():
    ex_nc = GAL_Cursor.execute('''
        SELECT COUNT (rl_bmh_nao_conformidade_exame.co_examereq), tb_bmh_nao_conformidade.ds_nconf
        FROM rl_bmh_nao_conformidade_exame, tb_bmh_nao_conformidade
        WHERE rl_bmh_nao_conformidade_exame.co_nconf = tb_bmh_nao_conformidade.co_nconf
        GROUP BY tb_bmh_nao_conformidade.ds_nconf ''').fetchall()
    APP_Cursor.execute('''
        INSERT OR REPLACE INTO bmh_exame_nao_conformidade (exames, nao_conformidade)
        VALUES (?, ?) ''', ex_nc)
Ejemplo n.º 6
0
def regional():
    ''' Laboratórios po Regional '''

    reg_lab = GAL_Cursor.execute('''
        SELECT DISTINCT (nu_regional) AS REG,
        CASE
          WHEN nu_regional = '00'
            THEN REPLACE (nu_regional, '00', 'Externo (outra UF)')
          WHEN nu_regional = '01'
            THEN REPLACE (nu_regional, '01', '1ª R.S. - Paranaguá')
          WHEN nu_regional = '02'
            THEN REPLACE (nu_regional, '02', '2ª R.S. - Metropolitana')
          WHEN nu_regional = '03'
            THEN REPLACE (nu_regional, '03', '3ª R.S. - Ponta Grossa')
          WHEN nu_regional = '04'
            THEN REPLACE (nu_regional, '04', '4ª R.S. - Irati')
          WHEN nu_regional = '05'
            THEN REPLACE (nu_regional, '05', '5ª  R.S. - Guarapuava')
          WHEN nu_regional = '06'
            THEN REPLACE (nu_regional, '06', '6ª R.S. - União da Vitória')
          WHEN nu_regional = '07'
            THEN REPLACE (nu_regional, '07', '7ª R.S. - Pato Branco')
          WHEN nu_regional = '08'
            THEN REPLACE (nu_regional, '08', '8ª R.S. - Francisco Beltrão')
          WHEN nu_regional = '09'
            THEN REPLACE (nu_regional, '09', '9ª R.S. - Foz do Iguaçu')
          WHEN nu_regional = '10'
            THEN REPLACE (nu_regional, '10', '10ª R.S. - Cascavel')
          WHEN nu_regional = '11'
            THEN REPLACE (nu_regional, '11', '11ª R.S. - Campo Mourão')
          WHEN nu_regional = '12'
            THEN REPLACE (nu_regional, '12', '12ª R.S. - Umuarama')
          WHEN nu_regional = '13'
            THEN REPLACE (nu_regional, '13', '13ª R.S. - Cianorte')
          WHEN nu_regional = '14'
            THEN REPLACE (nu_regional, '14', '14ª R.S. - Paranavaí')
          WHEN nu_regional = '15'
            THEN REPLACE (nu_regional, '15', '15ª R.S. - Maringá')
          WHEN nu_regional = '16'
            THEN REPLACE (nu_regional, '16', '16ª R.S. - Apucarana')
          WHEN nu_regional = '17'
            THEN REPLACE (nu_regional, '17', '17ª R.S. - Londrina')
          WHEN nu_regional = '18'
            THEN REPLACE (nu_regional, '18', '18ª R.S. - Cornélio Procópio')
          WHEN nu_regional = '19'
            THEN REPLACE (nu_regional, '19', '19ª R.S. - Jacarezinho')
          WHEN nu_regional = '20'
            THEN REPLACE (nu_regional, '20', '20ª R.S. - Toledo')
          WHEN nu_regional = '21'
            THEN REPLACE (nu_regional, '21', '21ª R.S. - Telêmaco Borba')
          WHEN nu_regional = '22'
            THEN REPLACE (nu_regional, '22', '22ª R.S. - Ivaiporã')
        END AS REG,
        COUNT(co_labor) AS LAB FROM tb_lab_laboratorio GROUP BY nu_regional
        ORDER BY nu_regional ''').fetchall()
    # Gravando no BD local
    APP_Cursor.execute('''INSERT OR REPLACE INTO regional (codigo, regional, laboratorio) VALUES (?, ?, ?)''', reg_lab)
Ejemplo n.º 7
0
def classificacao():
    ''' Laboratórios por Classificação '''

    classificacao = GAL_Cursor.execute('''
        SELECT DISTINCT (l.co_classificacao), c.ds_classificacao, COUNT(l.co_labor) FROM tb_lab_laboratorio AS L
        INNER JOIN tb_lab_classificacao AS c ON c.co_classificacao = l.co_classificacao
        GROUP BY l.co_classificacao, c.ds_classificacao ORDER BY l.co_classificacao ''').fetchall()
     # Gravando no BD local
    APP_Cursor.execute('''INSERT OR REPLACE INTO classificacao (codigo, descricao, laboratorio)
                     VALUES (?, ?, ?)''', classificacao)
Ejemplo n.º 8
0
def requisicao():
    # Cadastradas
    cadastradas = GAL_Cursor.execute('''
        SELECT COUNT(co_requisicao) FROM tb_bmh_requisicao ''').fetchone()
    for cad in cadastradas:
        cad = cad
    # Fechadas
    fechadas = GAL_Cursor.execute('''
        SELECT COUNT(co_requisicao) FROM tb_bmh_requisicao WHERE dt_fechamento IS NOT NULL ''').fetchone()
    for fec in fechadas:
        fec = fec
    # Correlativos
    correlativo = GAL_Cursor.execute('''
        SELECT COUNT(st_correlativo) FROM tb_bmh_requisicao where st_correlativo = 1 ''').fetchone()
    for crl in correlativo:
        crl = crl
    # Agrupando e gravando no BD local
    reqs = (cad, fec, crl)
    APP_Cursor.execute('INSERT OR REPLACE INTO bmh_requisicao (cadastrada, fechada, correlativo) VALUES (?, ?, ?)', reqs)
Ejemplo n.º 9
0
def exame_nao_conformidade(ano):
    """ Recupera os exames descartados de acordo com o motivo por ano/mês """

    if ano not in anos:
        print("Ano inválido!")
        exit()

    mes = 1

    while mes <= 10:

        if mes == 2:
            dia = 28
        elif mes in (4, 6, 9, 11):
            dia = 30
        elif mes in (1, 3, 5, 7, 8, 10, 12):
            dia = 31

        if mes not in (10, 11, 12):
            mes = "0" + str(mes)

        select = """ SELECT tb_bmh_nao_conformidade.co_nconf, tb_bmh_nao_conformidade.ds_nconf,
            COUNT (rl_bmh_nao_conformidade_exame.co_examereq)
            FROM
            rl_bmh_nao_conformidade_exame, tb_bmh_nao_conformidade, tb_bmh_exame_requisicao """
        where = """ WHERE rl_bmh_nao_conformidade_exame.co_examereq = tb_bmh_exame_requisicao.co_seq_examereq
            AND rl_bmh_nao_conformidade_exame.co_nconf = tb_bmh_nao_conformidade.co_nconf
            AND tb_bmh_exame_requisicao.dt_status BETWEEN """
        date_ini = "'" + str(ano) + "-" + str(mes) + "-01 " + time_ini + "'"
        date_end = "'" + str(ano) + "-" + str(mes) + "-" + str(dia) + " " + time_end + "'"
        group = " GROUP BY tb_bmh_nao_conformidade.co_nconf"
        sql = select + where + date_ini + ' AND ' + date_end + group + '; '
        execute = GAL_Cursor.execute(sql).fetchall()
        for res in execute:
            if mes not in (10, 11, 12):
                mes = mes.lstrip('0')
            data = int(ano), int(mes)
            print(data)
            updata = res
            print(updata)

        insert = " INSERT OR IGNORE INTO exame_nao_conformidade ( ano, mes) VALUES (?, ?)"
        upd_data = "UPDATE exame_nao_conformidade SET "
        upd_value = "codigo=?, motivo=?, total=? "
        upd_where = "WHERE ano=" + str(ano) + " AND mes=" + str(mes)
        sql_upd = upd_data + upd_value + upd_where
        print(sql_upd)

        APP_Cursor.execute(insert, data)
        APP_Cursor.execute(sql_upd, updata)

        mes = int(mes)
        mes += 1
Ejemplo n.º 10
0
def versao():
    ''' Versão do GAL, do aplicativo e data de atualização '''

    versao = GAL_Cursor.execute('''
        SELECT co_versao, dt_versao FROM tb_versao_bd ORDER BY co_seq_versao DESC LIMIT 1 ''').fetchall()
    for v in versao:
        codigo = v.co_versao
        atualizacao = v.dt_versao
    # Data da atualização do BD local
    from datetime import date
    dt = date.today()
    sistema = (str(dt.day) + '/' + str(dt.month) + '/' + str(dt.year))
    # Agrupando e gravando no BD local
    versoes = (codigo, atualizacao, sistema)
    APP_Cursor.execute('''INSERT OR REPLACE INTO versao (codigo, atualizacao, sistema) VALUES (?,?,?)''', versoes)
Ejemplo n.º 11
0
def laboratorios():
    ''' Laboratórios por Modulo '''

    # AMB Lab. LL
    lab_ll = GAL_Cursor.execute(''' SELECT COUNT (co_labor) FROM ta_amb_config_laboratorio
        WHERE tp_labor = 'LL' ''').fetchone()
    for amb_ll in lab_ll:
        amb_ll = amb_ll
    # AMB Lab. LR
    lab_lr = GAL_Cursor.execute(''' SELECT COUNT (co_labor) FROM ta_amb_config_laboratorio
        WHERE tp_labor = 'LR' ''').fetchone()
    for amb_lr in lab_lr:
        amb_lr = amb_lr
    # BAN Lab. LL
    lab_ll = GAL_Cursor.execute(''' SELECT COUNT (co_labor) FROM ta_ban_config_laboratorio
        WHERE tp_labor = 'LL' ''').fetchone()
    for ban_ll in lab_ll:
        ban_ll = ban_ll
    # BAN Lab. LR
    lab_lr = GAL_Cursor.execute(''' SELECT COUNT (co_labor) FROM ta_ban_config_laboratorio
        WHERE tp_labor = 'LR' ''').fetchone()
    for ban_lr in lab_lr:
        ban_lr = ban_lr
    # BMH Lab. LL
    lab_ll = GAL_Cursor.execute(''' SELECT COUNT (co_labor) FROM ta_bmh_config_laboratorio
        WHERE tp_labor = 'LL' ''').fetchone()
    for bmh_ll in lab_ll:
        bmh_ll = bmh_ll
    # BMH Lab. LR
    lab_lr = GAL_Cursor.execute(''' SELECT COUNT (co_labor) FROM ta_bmh_config_laboratorio
        WHERE tp_labor = 'LR' ''').fetchone()
    for bmh_lr in lab_lr:
        bmh_lr = bmh_lr
    # # CQ Lab. LL
    # lab_ll = GAL_Cursor.execute(''' SELECT COUNT (co_labor) FROM ta_cq_config_laboratorio
    #     WHERE tp_labor = 'LL' ''').fetchone()
    # for cq_ll in lab_ll:
    #     cq_ll = cq_ll
    # # CQ Lab. LR
    # lab_lr = GAL_Cursor.execute(''' SELECT COUNT (co_labor) FROM ta_cq_config_laboratorio
    #     WHERE tp_labor = 'LR' ''').fetchone()
    # for cq_lr in lab_lr:
    #     cq_lr = cq_lr

    # Agrupando e gravando no BD local
    amb_labs = ('Ambiental', amb_ll, amb_lr)
    APP_Cursor.execute('INSERT OR REPLACE INTO laboratorio (modulo, local, rede) VALUES (?, ?, ?)', amb_labs)
    ban_labs = ('Biologia Animal', ban_ll, ban_lr)
    APP_Cursor.execute('INSERT OR REPLACE INTO laboratorio (modulo, local, rede) VALUES (?, ?, ?)', ban_labs)
    bmh_labs = ('Biologia Médica', bmh_ll, bmh_lr)
    APP_Cursor.execute('INSERT OR REPLACE INTO laboratorio (modulo, local, rede) VALUES (?, ?, ?)', bmh_labs)
    cq_labs = ('Controle de Qualidade', 0, 0)
    APP_Cursor.execute('INSERT OR REPLACE INTO laboratorio (modulo, local, rede) VALUES (?, ?, ?)', cq_labs)
Ejemplo n.º 12
0
def exames():
    # Total de exames configurados
    tot_cfg = GAL_Cursor.execute('''
        SELECT COUNT (co_exame) FROM rl_bmh_exame_metodologia ''').fetchone()
    for cfg in tot_cfg:
        cfg = cfg
    # Total de exames ativos
    tot_atv = GAL_Cursor.execute('''
        SELECT COUNT(*) FROM (SELECT DISTINCT co_exame,co_metodo FROM rl_bmh_config_exame WHERE tp_fluxo = 'B')
        AS exames ''').fetchone()
    for atv in tot_atv:
        atv = atv
    # Total de pesquisas ativas
    psq_atv = GAL_Cursor.execute('''
        SELECT COUNT (DISTINCT no_pesquisa) FROM tb_bmh_pesquisa WHERE st_pesquisa ='A' ''').fetchone()
    for psqa in psq_atv:
        psqa = psqa
    # Total de pesquisas inativas
    psq_int = GAL_Cursor.execute('''
        SELECT COUNT (DISTINCT no_pesquisa) FROM tb_bmh_pesquisa WHERE st_pesquisa ='I' ''').fetchone()
    for psqi in psq_int:
        psqi = psqi
    # Total de exames cadastrados
    tot_cad = GAL_Cursor.execute('''
        SELECT COUNT(co_seq_examereq) FROM tb_bmh_exame_requisicao ''').fetchone()
    for cad in tot_cad:
        cad = cad
    # Total de exames processados
    tot_pro = GAL_Cursor.execute('''
        SELECT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 or co_status = 6 or
        co_status = 12 ''').fetchone()
    for pro in tot_pro:
        pro = pro
    # Total de exames correlativos
    tot_crl = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_seq_examereq) FROM tb_bmh_exame_requisicao WHERE st_correlativo = 1 ''').fetchone()
    for crl in tot_crl:
        crl = crl
    # Agrupando e gravando no BD local
    exames = (cfg, atv, psqa, psqi, cad, pro, crl)
    APP_Cursor.execute('''
        INSERT OR REPLACE INTO bmh_exames (
        configurado, ativado, pesquisa_ativa, pesquisa_inativa, cadastrado, processado, correlativo)
        VALUES (?, ?, ?, ?, ?, ?, ?) ''', exames)
Ejemplo n.º 13
0
def laboratorio():
    """ Laboratório """

    lab = GAL_Cursor.execute('''
        SELECT
            tb_lab_laboratorio.co_labor,
            tb_lab_laboratorio.no_unidade,
            tb_lab_laboratorio.nu_regional,
            tb_lab_laboratorio.nu_unidade,
            tb_sus_cnes.co_municipio,
            tb_lab_laboratorio.co_classificacao
        FROM
            tb_lab_laboratorio tb_lab_laboratorio
        JOIN tb_sus_cnes ON tb_lab_laboratorio.co_labor = tb_sus_cnes.co_cnes
        WHERE
            tb_lab_laboratorio.st_ativo = '1'
        ORDER BY
            tb_lab_laboratorio.nu_regional; ''').fetchall()
    REP_Cursor.execute('''INSERT OR REPLACE INTO laboratorio (codigo, laboratorio, regional, unidade, municipio, classificacao)
        VALUES (?, ?, ?, ?, ?, ?)''', lab)
Ejemplo n.º 14
0
def requisicao_nao_conformidade():
    rq_nc = GAL_Cursor.execute('''
        SELECT
        rl_bmh_nao_conformidade_exame.co_examereq AS "Requisição",
        DATE_PART('year', tb_bmh_exame_requisicao.dt_cadastro::timestamp) AS "Ano",
        tb_bmh_nao_conformidade.co_nconf AS "Código",
        tb_bmh_nao_conformidade.ds_nconf AS "Motivo"
        FROM
        rl_bmh_nao_conformidade_exame,
        tb_bmh_nao_conformidade,
        tb_bmh_exame_requisicao
        WHERE
        rl_bmh_nao_conformidade_exame.co_nconf = tb_bmh_nao_conformidade.co_nconf
        AND
        rl_bmh_nao_conformidade_exame.co_examereq = tb_bmh_exame_requisicao.co_seq_examereq
        GROUP BY tb_bmh_nao_conformidade.ds_nconf,
        rl_bmh_nao_conformidade_exame.co_examereq,
        tb_bmh_exame_requisicao.dt_cadastro,
        tb_bmh_nao_conformidade.co_nconf
        ORDER BY tb_bmh_exame_requisicao.dt_cadastro ''').fetchall()
    APP_Cursor.execute('''
        INSERT OR REPLACE INTO bmh_requisicao_nao_conformidade (requisicao, ano, codigo, nao_conformidade)
        VALUES (?, ?, ?, ?) ''', rq_nc)
Ejemplo n.º 15
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)
Ejemplo n.º 16
0
def data_bis():
    # BIS Abbott
    bisql = GAL_Cursor.execute('''
        SELECT
            DISTINCT (p.co_requisicao) AS "PatientID",
            e.co_amostra AS "SampleID",
            b.no_matbio AS "SampleFluidType",

            CASE
              WHEN l.nu_regional = '00'
                THEN REPLACE (l.nu_regional, '00', 'Outra UF')
              WHEN l.nu_regional = '01'
                THEN REPLACE (l.nu_regional, '01', '1ª R.S. - Paranaguá')
              WHEN l.nu_regional = '02'
                THEN REPLACE (l.nu_regional, '02', '2ª R.S. - Metropolitana')
              WHEN l.nu_regional = '03'
                THEN REPLACE (l.nu_regional, '03', '3ª R.S. - Ponta Grossa')
              WHEN l.nu_regional = '04'
                THEN REPLACE (l.nu_regional, '04', '4ª R.S. - Irati')
              WHEN l.nu_regional = '05'
                THEN REPLACE (l.nu_regional, '05', '5ª  R.S. - Guarapuava')
              WHEN l.nu_regional = '06'
                THEN REPLACE (l.nu_regional, '06', '6ª R.S. - União da Vitória')
              WHEN l.nu_regional = '07'
                THEN REPLACE (l.nu_regional, '07', '7ª R.S. - Pato Branco')
              WHEN l.nu_regional = '08'
                THEN REPLACE (l.nu_regional, '08', '8ª R.S. - Francisco Beltrão')
              WHEN l.nu_regional = '09'
                THEN REPLACE (l.nu_regional, '09', '9ª R.S. - Foz do Iguaçu')
              WHEN l.nu_regional = '10'
                THEN REPLACE (l.nu_regional, '10', '10ª R.S. - Cascavel')
              WHEN l.nu_regional = '11'
                THEN REPLACE (l.nu_regional, '11', '11ª R.S. - Campo Mourão')
              WHEN l.nu_regional = '12'
                THEN REPLACE (l.nu_regional, '12', '12ª R.S. - Umuarama')
              WHEN l.nu_regional = '13'
                THEN REPLACE (l.nu_regional, '13', '13ª R.S. - Cianorte')
              WHEN l.nu_regional = '14'
                THEN REPLACE (l.nu_regional, '14', '14ª R.S. - Paranavaí')
              WHEN l.nu_regional = '15'
                THEN REPLACE (l.nu_regional, '15', '15ª R.S. - Maringá')
              WHEN l.nu_regional = '16'
                THEN REPLACE (l.nu_regional, '16', '16ª R.S. - Apucarana')
              WHEN l.nu_regional = '17'
                THEN REPLACE (l.nu_regional, '17', '17ª R.S. - Londrina')
              WHEN l.nu_regional = '18'
                THEN REPLACE (l.nu_regional, '18', '18ª R.S. - Cornélio Procópio')
              WHEN l.nu_regional = '19'
                THEN REPLACE (l.nu_regional, '19', '19ª R.S. - Jacarezinho')
              WHEN l.nu_regional = '20'
                THEN REPLACE (l.nu_regional, '20', '20ª R.S. - Toledo')
              WHEN l.nu_regional = '21'
                THEN REPLACE (l.nu_regional, '21', '21ª R.S. - Telêmaco Borba')
              WHEN l.nu_regional = '22'
                THEN REPLACE (l.nu_regional, '22', '22ª R.S. - Ivaiporã')
            END AS "SampleOriginLocation",

            te.co_exame AS "TestLISCode",
            te.no_exame AS "TestLISName",
            tm.no_metodo AS "TestPriority",
            l.no_unidade AS "TestSite",
            tm.no_metodo AS "TestDepartment",

            CASE
              WHEN eb.st_interface = 'N'
                THEN REPLACE (eb.st_interface, 'N', 'Manual')
              WHEN eb.st_interface = 'S'
                THEN REPLACE (eb.st_interface, 'S', 'Automatizado')
            END AS "TestInstrument",

            tm.no_metodo AS "TestType",
            to_char(req.dt_cadastro, 'dd/mm/yyyy hh:mm:ss') AS "TestOrderedDateTime",
            to_char(e.dt_recebimento, 'dd/mm/yyyy hh:mm:ss') AS "TestSiteSampleReceivedDateTime",
            to_char(e.dt_resultado, 'dd/mm/yyyy hh:mm:ss') AS "TestAnalyzerCompletionDateTime",
            to_char(e.dt_resultado, 'dd/mm/yyyy hh:mm:ss') AS "TestResultFirstReviewedDateTime",
            to_char(e.dt_liberacao, 'dd/mm/yyyy hh:mm:ss') AS "TestResultReleasedDateTime"

            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_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 rl_bmh_config_exame ce ON e.co_exame = ce.co_exame
            JOIN tb_bmh_config_exame_bancada eb ON ce.co_exame = eb.co_exame

            WHERE
            l.no_unidade = 'Laboratório Central do Estado' AND
            e.co_status = 5 AND
            req.dt_cadastro BETWEEN '2016-01-01 00:00:00' AND '2016-12-31 23:59:59'

            ORDER BY
            p.co_requisicao ASC; ''').fetchall()
    # Agrupando e gravando no BD local
    ABT_Cursor.execute('''INSERT OR REPLACE INTO bis (PatientID, SampleID, SampleFluidType,
                        SampleOriginLocation, TestLISCode, TestLISName, TestPriority,
                        TestSite, TestDepartment, TestInstrument, TestType,
                        TestOrderedDateTime, TestSiteSampleReceivedDateTime,
                        TestAnalyzerCompletionDateTime,
                        TestResultFirstReviewedDateTime, TestResultReleasedDateTime)
                        VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ''', bisql)
Ejemplo n.º 17
0
def exames_status():
    # Total de status: TRIAGEM
    tot_tri = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 1 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for tri in tot_tri:
        tri = tri
    # Total de status: EM ANALISE
    tot_anl = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 2 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for anl in tot_anl:
        anl = anl
    # Total de status: RESULTADO CADADASTRADO
    tot_rcd = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 4 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for rcd in tot_rcd:
        rcd = rcd
    # Total de status: RESULTADO LIBERADO
    tot_lib = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 5 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for lib in tot_lib:
        lib = lib
    # Total de status: EXAME NAO REALIZADO
    tot_nrl = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 6 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for nrl in tot_nrl:
        nrl = nrl
    # Total de status: DISPONIVEL P/ ENCAMINHAR
    tot_dec = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 7 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for dec in tot_dec:
        dec = dec
    # Total de status: ENCAMINHADO P/ LR
    tot_elr = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 8 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for elr in tot_elr:
        elr = elr
    # Total de status: ENCAMINHADO P/ LAB. REF
    tot_erf = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 9 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for erf in tot_erf:
        erf = erf
    # Total de status: EXAME CANCELADO
    tot_can = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 12 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for can in tot_can:
        can = can
    # Total de status: EXAME APROV. AGUARD. AUTOMACAO
    tot_aau = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 13 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for aau in tot_aau:
        aau = aau
    # Total de status: AUTOMACAO EM PROCESSO
    tot_aep = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 14 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for aep in tot_aep:
        aep = aep
    # Total de status: AUTOMACAO PROCESSADA
    tot_aut = GAL_Cursor.execute('''
        SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame WHERE co_status = 15 AND tp_status = 'U'
        AND dt_status BETWEEN '2009-01-01 00:00:00' AND '2016-12-31 23:59:59' ''').fetchone()
    for aut in tot_aut:
        aut = aut
    # Agrupando e gravando no BD local
    exames_status = (tri, anl, rcd, lib, nrl, dec, elr, erf, can, aau, aep, aut)
    APP_Cursor.execute('''
        INSERT OR REPLACE INTO bmh_exame_status (
        triagem, analise, res_cadastrado, liberados, nao_realizado, disp_encaminhar, encaminhado_lr,
        encaminhado_rf, cancelado, aguardando_automacao, automacao_processo, automacao_processada)
        VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ''', exames_status)
Ejemplo n.º 18
0
def versao():
    """ Código da versão e data de atualização do GAL """

    ver = GAL_Cursor.execute('''
        SELECT co_versao, dt_versao FROM tb_versao_bd ORDER BY co_versao''').fetchall()
    REP_Cursor.execute('''INSERT OR REPLACE INTO versao (codigo, atualizacao) VALUES (?, ?)''', ver)
Ejemplo n.º 19
0
def arbovirus():
    # Pesquisa de Arbovírus
    arbo = 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",
            date (req.dt_sintomas) AS "Data Inicio Sintomas",
            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_cadastro
            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 = 'PEQARB' AND
            e.co_status = 5 AND
            r.co_campo = 'resultado' 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()
    data = arbo
    # Agrupando e gravando no BD local
    ARB_Cursor.execute('''INSERT OR REPLACE INTO arbovirus (requisicao, data_cadastro, paciente, idade, tipo_idade,
                   sexo, ibge, municipio, regional, laboratorio, amostra, material, data_coleta, data_recebimento,
                   data_sintomas, exame, metodo, data_resultado, data_liberacao, tempo_transporte,
                   tempo_processamento, tempo_liberacao, resultado)
                   VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', data)
Ejemplo n.º 20
0
def status(status, ano):
    """ Recupera os exames de acordo com o status por ano/mês """

    if ano not in anos:
        print("Ano inválido!")
        exit()

    if status == 1:
        str_status = 'triagem'
    elif status == 2:
        str_status = 'analise'
    elif status == 4:
        str_status = 'resultado_cadastrado'
    elif status == 5:
        str_status = 'liberados'
    elif status == 6:
        str_status = 'nao_realizado'
    elif status == 7:
        str_status = 'disp_encaminhar'
    elif status == 8:
        str_status = 'enc_lab_regional'
    elif status == 9:
        str_status = 'enc_lab_referencia'
    elif status == 12:
        str_status = 'cancelado'
    elif status == 13:
        str_status = 'aguardando_automacao'
    elif status == 14:
        str_status = 'automacao_processo'
    elif status == 15:
        str_status = 'automacao_processada'
    elif status == 16:
        str_status = 'imp_lab_externo'
    elif status == 17:
        str_status = 'transcrito'
    elif status == 18:
        str_status = 'enc_lab_externo '
    else:
        print("Status inválido!")
        exit()

    mes = 1

    while mes <= 12:

        if mes == 2:
            dia = 28
        elif mes in (4, 6, 9, 11):
            dia = 30
        elif mes in (1, 3, 5, 7, 8, 10, 12):
            dia = 31

        if mes not in (10, 11, 12):
            mes = "0" + str(mes)

        select = "SELECT DISTINCT COUNT(co_examereq) FROM th_bmh_status_exame "
        where = "WHERE co_status = " + str(status) + " AND tp_status = 'U' AND dt_status BETWEEN "
        date_ini = "'" + str(ano) + "-" + str(mes) + "-01 " + time_ini + "'"
        date_end = "'" + str(ano) + "-" + str(mes) + "-" + str(dia) + " " + time_end + "'"
        sql = select + where + date_ini + ' AND ' + date_end + '; '
        execute = GAL_Cursor.execute(sql).fetchone()
        for res in execute:
            data = int(ano), int(mes)
            updata = res, int(mes)

        insert = " INSERT OR IGNORE INTO exame_status ( ano, mes) VALUES (?, ?)"
        upd_data = "UPDATE exame_status SET "
        upd_value = str_status + "=?"
        upd_where = " WHERE ano=" + str(ano) + " AND mes=?"
        sql_upd = upd_data + upd_value + upd_where

        APP_Cursor.execute(insert, data)
        APP_Cursor.execute(sql_upd, updata)

        mes = int(mes)
        mes += 1