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>
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 "Resistência Bacteriana" 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.
Entradas
- Data do experimento, Laboratório, Valor do halo, Antibiótico, Meio de Cultura e Espécie da bactéria
Saídas
- O que será gerado de resultado impresso?
Nome da bactéria e 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 e sua respectiva resistência
Cálculos
- O que será processado?
Será analisado os valores de halo apresentados comparando-os com os valores tabelados de resistência a ampicilina, resultando na conclusão de se a bactéria é suscetível ou resistente
Fase II
- Referência de tabela
http://www.interlabdist.com.br/dados/noticias/pdf_190.pdf
- Melhorar data
Adicionar comando "now" no item de escrever a data que fora realizado o experimento, para que seja gravado a data do momento em que o programa está sendo manipulado, para que o usuário não precise inseriri essa informação.
- While para voltar caso dê erro
Adicionar comando "while" nos itens para que, sempre que ocorrer um erro na manipulação do programa, o usuário seja encaminhado novamente para a área do "menu".
- Se vocês fossem evoluir nesta aplicação, o que vocês incrementariam?
Comando para editar apenas uma informação da Tabela ou da Resistência, sem precisar modificar o arquivo todo; comando para excluir apenas uma informação da Tabela ou da Resistência, sem precisar excluir o arquivo todo; comando para que a análise de resistência aconteça sem que o usuário precise informar os valores mínimo e máximo de halo novamente quando estiver gravando seu experimento; comando para que se o usuário escolher ler um arquivo que foi deletado, apareça a mensagem "Arquivo deletado" ou "Arquivo não encontrado".
Desenvolvedores
- Leticia Guerra Morosini
- Rafael Martins de Oliveira
- Clésio José Purcina Junior