Escopo


  • O teste de antibiograma é muito importante para a análise e estudo da resistência bacteriana para um antibiótico pesquisado, porém, a consulta de tabelas para encontrar os valores de halo de resistência para uma dada colônia de bactérias demanda tempo que poderia ser utilizado em outras atividades.
  • Visando facilitar essa análise, o programa "Bacterial resistance" visa analisar se uma bactéria do gênero Enterobacteriaceae é resistente ao antibiótico ampicilina, de acordo com os valores de halo fornecidos pelo usuário.


Funcionalidades


  • Adicionar tabela com: Data do experimento, meio utilizado, laboratório, valor do Halo, Bactéria utilizada.
  • Excluir a tabela
  • Analisar a Resistência
  • Ler a resistência
    • Novas funcionalidades:
    • Forma
    • Teste de Gram
    • Habitat
    • Principal doença
    • Pessoa que realizou o experimento


Entradas


  • Data do experimento
  • Nome ou código do Laboratório
  • Valor do halo
  • Antibiótico
  • Meio de Cultura
  • Espécie da bactéria


Saídas

  • O que será gerado de resultado?
    • Nome da bactéria
    • Sua resistência


Armazenamento

  • O que será gravado em arquivo?
    • Data do experimento
    • Laboratório
    • Valor do halo
    • Antibiótico
    • Meio de Cultura
    • Espécie da bactéria
    • Sua respectiva resistência


Cálculos

  • O que será processado?
    • Serão analisados os valores de halo apresentados comparando-os

com os valores tabelados de resistência a ampicilina, resultando na conclusão se a bactéria é susceptível ou resistente

Referência de tabela

http://www.interlabdist.com.br/dados/noticias/pdf_190.pdf [1] [1]


Código

<syntaxhighlight lang="python3"> arquivo = ('Tabela.txt') Arquivo = ("Experimentos.txt") print("Resistência Bacteriana") print("-------------------") def digite_tabela (texto):

   try:
       arq = open(arquivo,'a+')
       arq.writelines(texto)
       arq.close()
       print('Bactéria gravada com sucesso!')
   except IOError:
       print('Erro ao abrir arquivo.')

def ler_tabela ():

   try:
       arq = open(arquivo,'r+')
       print('\n'+arq.read())
       arq.close()
   except IOError:
       print('Tabela não encontrada.')

def alterar_tabela (texto):

   try:
       arq = open(arquivo, 'w')
       arq.writelines(texto)
       arq.close()
       print("Alteração realizada com sucesso!")
   except IOError:
       print("Erro ao realizar alteração.")

def excluir_tabela ():

   try:
       arq = open(arquivo,'w')
       arq.writelines(" ")
       arq.close()
       print("Tabela deletada com sucesso!")
   except IOError:
       print("Erro ao deletar tabela.")

def analisar_resistência(texto):

   try:
       arq = open(Arquivo,'a+')
       arq.writelines(texto)
       arq.close()
       print("Esperimento arquivado com sucesso!")
   except IOError:
       print("Erro ao arquivar experimento.")

def ler_resistencia ():

   try:
       arq = open(Arquivo,'r+')
       print('\n'+arq.read())
       arq.close()
   except IOError:
       print('Experimento não encontrado.')

def alterar_resistencia (texto):

   try:
       arq = open(Arquivo, 'w')
       arq.writelines(texto)
       arq.close()
       print("Alteração realizada com sucesso!")
   except IOError:
       print("Erro ao realizar alteração.")

def excluir_resistencia ():

   try:
       arq = open(Arquivo,'w')
       arq.writelines(" ")
       arq.close()
       print("Experimento deletado com sucesso!")
   except IOError:
       print("Erro ao deletar experimento.")

acao = input("Digite o acao que voce deseja realizar"+

       "\n 1 - Digitar tabela"+ 
       "\n 2 - Ler Tabela "+
       "\n 3 - Editar Tabela "+ 
       "\n 4 - Excluir Tabela"+
       "\n 5 - Analisar Resistência"+
       "\n 6 - Ler Resistência"+
       "\n 7 - Editar Resistência"+
       "\n 8 - Excluir Resistência"+
       "\n 0 - Sair: ")

while(acao != "0"):

     if(acao == "1"):
         texto = []
         num = input("Digite o número correspondente à essa linha: ")
         bact = input("Digite o nome da bactéria: ")
         antib = input("Digite o antibiótico utilizado: ")
         minimo = input("Digite o mínimo de halo: ")
         maximo = input("Digite o máximo de halo: ")
         texto.append(num+' - Bactéria: '+bact+' - Antibiótico: '+antib+' - Minimo: '+minimo+' - Maximo: '+maximo+'\n')
         digite_tabela(texto)
         acao = input("Digite o acao que voce deseja realizar"+
                      "\n 1 - Digitar tabela"+ 
                      "\n 2 - Ler Tabela "+
                      "\n 3 - Editar Tabela "+ 
                      "\n 4 - Excluir Tabela"+
                      "\n 5 - Analisar Resistência"+
                      "\n 6 - Ler Resistência"+
                      "\n 7 - Editar Resistência"+
                      "\n 8 - Excluir Resistência"+
                      "\n 0 - Sair: ")
     elif(acao == "2"):
         tab = int(input('Quantas vezes deseja ler a tabela? '))
         for i in range(tab):
             ler_tabela()
             i-=i
             acao = input("Digite o acao que voce deseja realizar"+
                     "\n 1 - Digitar tabela"+ 
                     "\n 2 - Ler Tabela "+
                     "\n 3 - Editar Tabela "+ 
                     "\n 4 - Excluir Tabela"+
                     "\n 5 - Analisar Resistência"+
                     "\n 6 - Ler Resistência"+
                     "\n 7 - Editar Resistência"+
                     "\n 8 - Excluir Resistência"+
                     "\n 0 - Sair: ")
     elif(acao == "3"):
         texto = []
         num = input("Digite o número correspondente à essa linha: ")
         bact = input("Digite o nome da bactéria: ")
         antib = input("Digite o antibiótico utilizado: ")
         minimo = input("Digite o mínimo de halo: ")
         maximo = input("Digite o máximo de halo: ")
         texto.append(num+' - Bactéria: '+bact+' - Antibiótico: '+antib+' - Minimo: '+minimo+' - Maximo: '+maximo+'\n')
         alterar_tabela (texto)
         acao = input("Digite o acao que voce deseja realizar"+
                      "\n 1 - Digitar tabela"+ 
                      "\n 2 - Ler Tabela "+
                      "\n 3 - Editar Tabela "+ 
                      "\n 4 - Excluir Tabela"+
                      "\n 5 - Analisar Resistência"+
                      "\n 6 - Ler Resistência"+
                      "\n 7 - Editar Resistência"+
                      "\n 8 - Excluir Resistência"+
                      "\n 0 - Sair: ")
     elif (acao == "4"):
         excluir_tabela()
         acao = input("Digite o acao que voce deseja realizar"+
                      "\n 1 - Digitar tabela"+ 
                      "\n 2 - Ler Tabela "+
                      "\n 3 - Editar Tabela "+ 
                      "\n 4 - Excluir Tabela"+
                      "\n 5 - Analisar Resistência"+
                      "\n 6 - Ler Resistência"+
                      "\n 7 - Editar Resistência"+
                      "\n 8 - Excluir Resistência"+
                      "\n 0 - Sair: ")
     elif (acao == "5"):
         arquivo = ('Tabela.txt')
         print("Informe-nos a data e o laboratório do experimento.")
         dia = int(input("Dia:"))
         mes = int(input("Mês:"))
         ano = int(input("Ano:"))
         validade = "true"
         i = 0
         if (ano%4 == 0 and ano%100!= 0) or ano%400 == 0:
             bissexto = "sim"
         else:
             bissexto = "nao"
             if mes < 1 or mes > 12:
                 validade = "false"
             if dia > 31 or ((mes == 4 or mes == 6 or mes == 9 or mes == 11) and dia > 30):
                 validade = "false"
             if (mes == 2 and bissexto == "nao" and dia > 28) or ( mes == 2 and bissexto == "sim" and dia > 29):
                 validade = "false"
             i = i + 1
             if validade == "true":
                 print("Data Válida")
             else:
                 print("Data Inválida")
                 while validade == "false":
                     print("Informe-nos a data novamente.")
                     dia = int(input("Dia:"))
                     mes = int(input("Mês:"))
                     ano = int(input("Ano:"))
                     validade = "true"
                     i = 0
                     while validade == "true" and i == 0:
                         if (ano%4 == 0 and ano%100!= 0) or ano%400 == 0:
                             bissexto = "sim"
                         else:
                             bissexto = "nao"
                         if mes < 1 or mes > 12:
                             validade = "false"
                         if dia > 31 or ((mes == 4 or mes == 6 or mes == 9 or mes == 11) and dia > 30):
                             validade = "false"
                         if (mes == 2 and bissexto == "nao" and dia > 28) or ( mes == 2 and bissexto == "sim" and dia > 29):
                             validade = "false"
                             i = i + 1
                             if validade == "true":
                                 print("Data Válida")
                             else:
                                 print("Data Inválida")
         Laboratorio=str(input('Laboratório:'))
         texto = []
         bac=input('Qual a bactéria utilizada: ')
         antibe=input('Qual o antibiótico utilizado: ')
         meio=input('Qual o meio utilizado: ')
         with open("Tabela.txt", "r") as arq:
             for f in arq.readlines():
                 if(f.find('%s'%(bac))>-1) and(f.find('%s'%(antibe))>-1):
                     print (f)
                 else:
                     print("Arquivo não encontrado!")
         min1 = int(input("Digite o valor de halo mínimo apresentado acima: "))
         max1 = int(input("Digite o valor de halo máximo apreentado acima: "))
         halo=int(input('Qual o valor do halo de seu experimento: '))
         if halo <= min1:
             resist="positiva."
         if min1 < halo < max1:
             resist="indeterminada."
         if halo >= max1:
             resist="negativa."
         texto.append('Experimento realizado na data %d/%d/%d, no laboratótio %s, com a bactéria %s, antibiótico %s, meio %s e resistência %s \n' %(dia, mes, ano, Laboratorio, bac, antibe, meio, resist))
         analisar_resistência(texto)
         acao = input("Digite o acao que voce deseja realizar"+
                      "\n 1 - Digitar tabela"+ 
                      "\n 2 - Ler Tabela "+
                      "\n 3 - Editar Tabela "+ 
                      "\n 4 - Excluir Tabela"+
                      "\n 5 - Analisar Resistência"+
                      "\n 6 - Ler Resistência"+
                      "\n 7 - Editar Resistência"+
                      "\n 8 - Excluir Resistência"+
                      "\n 0 - Sair: ")
     elif (acao == "6"):
         opcao = input("Digite por qual parâmetro deseja filtrar a leitura:"+
                       "\n 1 - Data"+ 
                       "\n 2 - Laboratório "+
                       "\n 3 - Bactéria "+ 
                       "\n 4 - Antibiótico"+
                       "\n 5 - Meio"+
                       "\n 6 - Leia tudo: ")
         if (opcao == "1"):
             dat = input("Digite a data que deseja filtrar (D/M/AAAA): ")
             with open("Experimentos.txt", "r") as arq:
                 for a in arq.readlines():
                     if(a.find('%s'%(dat))>-1):
                         print (a)
         if (opcao == "2"):
             labe = input("Digite o Laboratório que deseja filtrar: ")
             with open("Experimentos.txt", "r") as arq:
                 for a in arq.readlines():
                     if(a.find('%s'%(labe))>-1):
                         print(a)
         if (opcao == "3"):
             bacte = input("Digite a Bactéria que deseja filtrar: ")
             with open("Experimentos.txt", "r") as arq:
                 for a in arq.readlines():
                     if(a.find('%s'%(bacte))>-1):
                         print (a)
                     
         if (opcao == "4"):
             antib1 = input("Digite o antibiótico que deseja filtrar: ")
             with open("Experimentos.txt", "r") as arq:
                 for a in arq.readlines():
                     if(a.find('%s'%(anitb1))>-1):
                         print (a)
         if (opcao == "5"):
             meio1 = input("Digite o meio que deseja filtrar: ")
             with open("Experimentos.txt", "r") as arq:
                 for a in arq.readlines():
                     if(a.find('%s'%(meio1))>-1):
                         print (a)
         if (opcao == "6"):
             tab = int(input('Quantas vezes deseja ler os experimentos? '))
             for i in range(tab):
                 ler_resistencia()
                 i-=i
         acao = input("Digite o acao que voce deseja realizar"+
                      "\n 1 - Digitar tabela"+
                      "\n 2 - Ler Tabela "+
                      "\n 3 - Editar Tabela "+
                      "\n 4 - Excluir Tabela"+
                      "\n 5 - Analisar Resistência"+
                      "\n 6 - Ler Resistência"+
                      "\n 7 - Editar Resistência"+
                      "\n 8 - Excluir Resistência"+
                      "\n 0 - Sair: ")
     if (acao == "7"):
         print("Informe-nos a data e o laboratório do experimento.")
         dia = int(input("Dia:"))
         mes = int(input("Mês:"))
         ano = int(input("Ano:"))
         validade = "true"
         i = 0
         if (ano%4 == 0 and ano%100!= 0) or ano%400 == 0:
             bissexto = "sim"
         else:
             bissexto = "nao"
             if mes < 1 or mes > 12:
                 validade = "false"
             if dia > 31 or ((mes == 4 or mes == 6 or mes == 9 or mes == 11) and dia > 30):
                 validade = "false"
             if (mes == 2 and bissexto == "nao" and dia > 28) or ( mes == 2 and bissexto == "sim" and dia > 29):
                 validade = "false"
             i = i + 1
             if validade == "true":
                 print("Data Válida")
             else:
                 print("Data Inválida")
                 while validade == "false":
                     print("Informe-nos a data novamente.")
                     dia = int(input("Dia:"))
                     mes = int(input("Mês:"))
                     ano = int(input("Ano:"))
                     validade = "true"
                     i = 0
                     while validade == "true" and i == 0:
                         if (ano%4 == 0 and ano%100!= 0) or ano%400 == 0:
                             bissexto = "sim"
                         else:
                             bissexto = "nao"
                         if mes < 1 or mes > 12:
                             validade = "false"
                         if dia > 31 or ((mes == 4 or mes == 6 or mes == 9 or mes == 11) and dia > 30):
                             validade = "false"
                         if (mes == 2 and bissexto == "nao" and dia > 28) or ( mes == 2 and bissexto == "sim" and dia > 29):
                             validade = "false"
                             i = i + 1
                             if validade == "true":
                                 print("Data Válida")
                             else:
                                 print("Data Inválida")
         Laboratorio=str(input('Laboratório:'))
         texto = []
         bac=input('Qual a bactéria utilizada: ')
         antibe=input('Qual o antibiótico utilizado: ')
         meio=input('Qual o meio utilizado: ')
         with open("Tabela.txt", "r") as arq:
             for f in arq.readlines():
                 if(f.find('%s'%(bac))>-1) and(f.find('%s'%(antibe))>-1):
                     print (f)
                 else:
                     print("Arquivo não encontrado!")
         min1 = int(input("Digite o valor de halo mínimo apresentado acima: "))
         max1 = int(input("Digite o valor de halo máximo apreentado acima: "))
         halo=int(input('Qual o valor do halo de seu experimento: '))
         if halo <= min1:
             resist="positiva."
         if min1 < halo < max1:
             resist="indeterminada."
         if halo >= max1:
             resist="negativa."
         texto.append('Experimento realizado na data %d/%d/%d, no laboratótio %s, com a bactéria %s, antibiótico %s, meio %s e resistência %s \n' %(dia, mes, ano, Laboratorio, bac, antibe, meio, resist))
         alterar_resistencia(texto)
         acao = input("Digite o acao que voce deseja realizar"+
                      "\n 1 - Digitar tabela"+ 
                      "\n 2 - Ler Tabela "+
                      "\n 3 - Editar Tabela "+ 
                      "\n 4 - Excluir Tabela"+
                      "\n 5 - Analisar Resistência"+
                      "\n 6 - Ler Resistência"+
                      "\n 7 - Editar Resistência"+
                      "\n 8 - Excluir Resistência"+
                      "\n 0 - Sair: ")
     if (acao == "8"):
         excluir_resistencia()
         acao = input("Digite o acao que voce deseja realizar"+
                      "\n 1 - Digitar tabela"+ 
                      "\n 2 - Ler Tabela "+
                      "\n 3 - Editar Tabela "+ 
                      "\n 4 - Excluir Tabela"+
                      "\n 5 - Analisar Resistência"+
                      "\n 6 - Ler Resistência"+
                      "\n 7 - Editar Resistência"+
                      "\n 8 - Excluir Resistência"+
                      "\n 0 - Sair: ")
     if (acao == "0"):
         print("Obrigado pela atenção!")
         break

</syntaxhighlight>


Apresentação Final


  • Mostrar o programa funcionando para o professor
  • Implementar a funcionalidade abaixo:
    • Aluno 1: Ana Luiza Araújo
    • Implementar se o teste de Gram é positivo ou negativo, se o usuário digitar outra coisa que colocar "TESTE INVALIDO"