-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
150 lines (123 loc) · 5.32 KB
/
main.py
File metadata and controls
150 lines (123 loc) · 5.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
import BancoDados as db
from datetime import datetime, timedelta, date, time
from os import system, name
from tabulate import tabulate
def clearScreen():
if name == 'nt':
_ = system('cls')
else:
_ = system('clear')
def menuPrincipal():
print("+------------------------------------------------+")
print("| Agenda de Medicamentos - Menu Principal |")
print("+------------------------------------------------+")
print("| 1 - Listar Pacientes |")
print("| 2 - Inserir Paciente |")
print("| 3 - Deletar Paciente |")
print("| 4 - Listar Agendas do dia |")
print("| 5 - Inserir Agenda |")
print("| 0 - Sair do Sistema |")
print("+------------------------------------------------+")
def deletePaciente():
clearScreen()
print("+------------------------------------------------+")
print("| Agenda de Medicamentos - Excluir Paciente |")
print("+------------------------------------------------+")
idPaciente=int(input("Informe o Codigo do Paciente: "))
dbCon = db.conectarBanco()
dbSql = dbCon.cursor()
sql = "DELETE FROM `paciente` WHERE idPaciente = %s"
dbSql.execute(sql, (idPaciente,))
dbCon.commit()
print(dbSql.rowcount, "Paciente Excluido")
input("Pressione qualquer tecla para voltar ao Menu Principal ")
def inserirPaciente():
clearScreen()
print("+------------------------------------------------+")
print("| Agenda de Medicamentos - Inserir Paciente |")
print("+------------------------------------------------+")
nome=input("|Informe o Nome do Paciente: ")
idade=input("| Informe a Idade do Paciente: ")
cuidador=input("| Informe o Cuidadore do Paciente: ")
print("+------------------------------------------------+")
dbCon = db.conectarBanco()
dbSql = dbCon.cursor()
sql = "INSERT INTO paciente(nome, idade, cuidador) VALUES(%s, %s, %s)"
val = (nome, idade, cuidador)
dbSql.execute(sql, val)
dbCon.commit()
print(dbSql.rowcount, "Paciente Registrado")
input("Pressione qualquer tecla para voltar ao Menu Principal ")
def listarPacientes():
dbCon = db.conectarBanco()
dbSql = dbCon.cursor()
dbSql.execute("SELECT * FROM paciente")
dataResult = dbSql.fetchall()
clearScreen()
print("+------------------------------------------------------+")
print("| Agenda de Medicamentos - Lista Pacientes |")
print(tabulate(dataResult, headers=['Id', 'Nome', 'Idade', 'Cuidador'], tablefmt='psql'))
input("Pressione qualquer tecla para voltar ao Menu Principal ")
def listarAgendasDia():
dbCon = db.conectarBanco()
dbSql = dbCon.cursor()
dbSql.execute("SELECT idagenda, hp.nome, medicamento, qtde, quando FROM cuidadores.agenda ag INNER JOIN cuidadores.paciente hp ON ag.idPaciente = hp.idPaciente WHERE date_format(ag.quando, '%Y-%m-%d') = CURDATE()")
dataResult = dbSql.fetchall()
clearScreen()
print("+------------------------------------------------------+")
print("| Agenda de Medicamentos - Lista Agendas do Dia |")
print(tabulate(dataResult, headers=['Id', 'Paciente', 'Medicamento', 'Dose', 'Horario'], tablefmt='psql'))
input("Pressione qualquer tecla para voltar ao Menu Principal ")
def inserirAgenda():
clearScreen()
print("+------------------------------------------------+")
print("| Agenda de Medicamentos - Inserir Agenda |")
print("+------------------------------------------------+")
idPaciente=input("Informe o ID do Paciente: ")
medicamento=input("Informe o Nome do Medicamento: ")
dosagem=input("Informe a dosagem do Mecidamento: ")
intervalo=int(input("Informe o Intervalo em horas: "))
qtdeDias=int(input("Informe por quantos dias: "))
dataPri=input("Informe a data da Primeira Dose (AAAA-MM-DD): ")
ano, mes, dia = map(int, dataPri.split('-'))
dataPri=date(year=ano, month=mes, day=dia)
horaPri=input("Informe a Hora da Primeira Dose (HH:MM): ")
hora, min = map(int, horaPri.split(":"))
horaPri=time(hour=hora, minute=min)
dosesDia = int(24 / intervalo)
dosesTotal = dosesDia * qtdeDias
dataDose = datetime.combine(dataPri, horaPri)
print(dataDose)
dbCon = db.conectarBanco()
dbSql = dbCon.cursor()
for x in range(dosesTotal):
if x > 0:
dataDose = dataDose + timedelta(hours=(intervalo))
sql = ("INSERT INTO agenda(idPaciente, medicamento, qtde, quando) VALUES(%s, %s, %s, %s)")
val = (idPaciente, medicamento, dosagem, dataDose)
dbSql.execute(sql, val)
dbCon.commit()
def escolherOpcao():
opt = input("Selecione uma opção: ")
return opt
if __name__ == "__main__":
while True:
clearScreen()
menuPrincipal()
opt = escolherOpcao()
match opt:
case "1":
listarPacientes()
case "2":
inserirPaciente()
case "3":
deletePaciente()
case "4":
listarAgendasDia()
case "5":
inserirAgenda()
case "0":
clearScreen()
quit()
case _:
print("Opcao Invalida, tente de novo")