Mundo em Python

Registro de Pressão Arterial

from tkinter import *
from tkinter import messagebox
import csv
from datetime import datetime
# Função para limpar o campo de resultado
def limpar():
resultado_texto.config(text="")
PressãoSistólica_entrada.delete(0, END)
Pressãodiastolica_entrada.delete(0, END)
# Função para salvar a leitura
def app():
sistolica_str = PressãoSistólica.get()
diastolica_str = Diastólica.get() # Verificação se as entradas são dígitos
if not sistolica_str.isdigit() or not diastolica_str.isdigit():
messagebox.showerror("Entrada Inválida", "Por favor, insira valores numéricos.")
return

# Conversão para inteiros
sistolica = int(sistolica_str)
diastolica = int(diastolica_str) # Verificação de intervalos saudáveis (exemplo)
if sistolica < 90 or diastolica < 60:
status = "Pressão Baixa"
elif 120 <= sistolica <= 129 and diastolica < 80:
status = "Elevada"
elif sistolica >= 130 or diastolica >= 80:
status = "Hipertensão"
else:
status = "Normal"

# Salvar no CSV
try:
with open('registar_pressao_arterial.csv', 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow([datetime.now().strftime("%Y-%m-%d %H:%M:%S"), sistolica, diastolica, status])
messagebox.showinfo("Sucesso", "Leitura salva com sucesso!")
resultado_texto.config(text=f"Pressão Arterial: {sistolica}/{diastolica} mmHg - {status}")
PressãoSistólica_entrada.delete(0, END)
Pressãodiastolica_entrada.delete(0, END)
except Exception as e:
messagebox.showerror("Erro", f"Não foi possível salvar a leitura: {e}")
# Configuração da janela principal
root = Tk()
root.geometry("500x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Registro de Pressão Arterial") # Título
titulo = Label(text="Registro de Pressão Arterial",
font=("Arial", "20", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.5, rely=0.05, anchor='n') # Label e Entrada para Pressão Sistólica
PressãoSistólica = StringVar()
PressãoSistólica_texto = Label(text="Pressão Sistólica (mmHg):", font=("Arial", "12", "bold"), bg="#103030",
fg="#49e3e3")
PressãoSistólica_texto.place(relx=0.05, rely=0.25) PressãoSistólica_entrada = Entry(textvariable=PressãoSistólica,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
PressãoSistólica_entrada.place(relx=0.65, rely=0.25, relwidth=0.3, height=25) # Label e Entrada para Pressão Diastólica
Diastólica = StringVar()
Diastólica_texto = Label(text="Pressão Diastólica (mmHg):", font=("Arial", "12", "bold"), bg="#103030", fg="#49e3e3")
Diastólica_texto.place(relx=0.05, rely=0.35) Pressãodiastolica_entrada = Entry(textvariable=Diastólica,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Pressãodiastolica_entrada.place(relx=0.65, rely=0.35, relwidth=0.3, height=25) # Botões
but1 = Button(text="Salvar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.5, relwidth=0.25, relheight=0.1) but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.5, relwidth=0.25, relheight=0.1) but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.5, relwidth=0.25, relheight=0.1) # Label para resultado
resultado_texto = Label(text="",
font=("Arial", 12, "bold"), bg="#cfe2f3", fg="#103030")
resultado_texto.place(relx=0.05, rely=0.65, relwidth=0.9, relheight=0.2) root.mainloop()
0