Você está na página 1de 19

#Importar as bibliotecas necessarias

import mysql.connector
from datetime import time
import datetime
from random import randrange

#Conecção com o sql


mydb = mysql.connector.connect(
host="127.0.0.1",
user="root",
passwd="defaulttoor",
database="clinicamedica"
)
mycursor = mydb.cursor()

def main(): #Função do menu


a = int()
while a < 1 or a > 2: #restrição para que as opções estejam entre
1 e 2 se não o menu inicial será apresentado novamente
print('''1 - Login\n2 - Sair do programa''') #Opções do menu
a = int(input("Selecione a sua opção:"))

if a == 1:
login() #chamar a função login
if a == 2:
print('''Fim do programa!''')

def login(): #definição da função de login


tipo = int(input("1 - Utente \n2 - Medico\n3 - Administrador\n4 -
Voltar ao menu principal\nTipo de User:")) #Opçôes de User

if tipo == 1: # Utente
user = int(input("Utilizador:")) #nº de utente
sql = """SELECT nomeutente FROM utente WHERE idutente = %s"""
#seleciona o nome do utente que tem o idutente indicado no user
var = (user,) # variavel user que será substituido em %s
mycursor.execute(sql, var) #executar o codigo sql com a
variavel
myresult = mycursor.fetchall() #guardar os resultados numa
variavel

for x in myresult:
print("Bem-Vindo senhor(a): " + str(x[0]))

menu_utente(user) #chamar a função utente

if tipo == 2: # medico
medico = int(input("Medico:")) # nº de medico
sql = """SELECT nomemedico FROM medico WHERE idmedico = %s"""
var = (medico,)
mycursor.execute(sql, var)
myresult = mycursor.fetchall()

for x in myresult:
print("Bem-Vindo senhor(a): " + str(x[0]))

menu_medico(medico) # chamar a função medico


if tipo == 3:


menu_admin() #chamar a função de administrador
if tipo == 4:
main() #chamar a função menu principal

def menu_utente(user): #Função do menu utente


b = int()
global cont
while b < 1 or b > 5:
print(
'''1 - Marcar consulta\n2 - Cancelar consulta\n3 - Listar
as consultas marcadas\n4 - Voltar ao menu principal''') #Opções do
menu utente
b = int(input("Selecione a sua opção: "))
if b == 1: #Marcar consulta
id = None
esp = int(input(
"1 - Ginecologia/Obstetricia\n2 - Oftamologia\n3 -
Otorrinolaringologia\n4-Urologia\n5-Pediatria\n6-Cardiologia\nInsira a
sua especialidade:")) #opçoes de especialidade
dia = int(input('Dia:'))
mes = int(input('Mês:'))
ano = int(input('Ano:'))
data = datetime.date(ano, mes, dia) #Formato da data

sql = "SELECT * FROM medico WHERE idespecialidade = %s"


var = (esp,)

mycursor.execute(sql, var)
myresult = mycursor.fetchall()

#Guardar os medicos em medico que apresentam a especialidade


indicada em esp

medico = []
for x in myresult:
medico.append(x)

cont = 0

if len(medico) == 0:
print("Nao ha medicos disponiveis !")
else:
frozen = 0
while frozen == 0:
consultas = []
print("Médicos Disponiveis:")
j = 0
while j < 1 or j > len(medico):
for i in range(len(medico)): # Nº de medicos para
a especialidade indicada
print(str(j + 1) + " - " + str(medico[i][1]))
j = j + 1
j = 0
j = int(input("Escolha o seu medico:"))

j = j - 1
sql = "SELECT * FROM consulta WHERE idmedico = %s AND
DATE(dataconsulta) = %s"
var = (int(medico[j][0]), data)

mycursor.execute(sql, var)
myresult = mycursor.fetchall()

for x in myresult:
consultas.append(x) #adicionar nas consultas

if len(consultas) == 0: # adicionar primeira consulta


do medico
novaconsulta = """INSERT INTO consulta
(idconsulta,idutente,idmedico,dataconsulta) VALUES (%s, %s, %s, %s)"""

sql = "SELECT horainicio,horafim FROM horario


WHERE idmedico = %s ORDER BY horainicio ASC"
var = (medico[j][0],)

mycursor.execute(sql,var)
myresult = mycursor.fetchall()

if len(myresult) == 0:
print("ERRO! Medico nao tem mancha horaria
criada!")

else:
horacomeca = myresult[0][0]
horas = str(horacomeca)
horas = horas.split(":") #dividir a hora dos
minutos e segundos
b = datetime.datetime(ano, mes, dia,
int(horas[0]), int(horas[1]), 00)

val = (id, user, medico[j][0], b)


mycursor.execute(novaconsulta, val)
mydb.commit()

print("Consulta Marcada!")
frozen = 1
else:
novaconsulta = """INSERT INTO consulta
(idconsulta,idutente,idmedico,dataconsulta) VALUES (%s, %s, %s, %s)"""

sql = "SELECT horafim,horainicio FROM horario


WHERE idmedico = %s ORDER BY horafim DESC"
var = (medico[j][0],)

mycursor.execute(sql, var)
myresult = mycursor.fetchall()

cont = 0

for h in myresult:
horainicio = h[1]
horafim = h[0]

contador = len(consultas)
ultima = consultas[contador - 1] #ultima
consulta
data_ultima_consulta = str(ultima[3]) #hora da
ultima consulta


data_split = data_ultima_consulta.split(" ")
#dividir hora e data
tempo = str(data_split[1]) #selecionar a hora
tempo1 = tempo.split(":") #dividiu a hora em
hora e minutos
hora = int(tempo1[0]) #hora da ultima consulta
minuto = int(tempo1[1]) #minuto da ultima
consulta

if len(myresult) == 2:
fimmanha = str(myresult[1][0])
fimmanha = fimmanha.split(":")
hfimmanha = fimmanha[0]
mfimmanha = fimmanha[1]

horainicio = str(horainicio)
horainicio = horainicio.split(":")

if int(hora) == int(hfimmanha):
if int(minuto) == int(mfimmanha):
cont = 2
else:
cont = 1
else:
cont = 1
elif len(myresult) == 1:
cont = 1

print(cont)

if cont == 1:
if minuto == 0: # Consulta de 30 minutos
minuto = 30

elif minuto == 30:


minuto = 0
hora = hora + 1
cont = cont + 1

elif cont == 2:
horainicio = str(horainicio)
horainicio = horainicio.split(":")

if str(hora) < horainicio[0]:


splithora = str(h[1])
splithora = splithora.split(":")
hora = int(splithora[0])
minuto = int(splithora[1])
else:
if minuto == 0: # Consulta de 30
minutos
minuto = 30

elif minuto == 30:


minuto = 0
hora = hora + 1

horafim = str(horafim)
horafim = horafim.split(":") # dividir a hora
horaf = horafim[0]


minutof = horafim[1]

if hora < int(horaf):


b = datetime.datetime(ano, mes, dia,
int(hora), int(minuto), 00) #valores da consulta
val = (id, user, medico[j][0], b)

mycursor.execute(novaconsulta, val)
mydb.commit()

print("Consulta Marcada!")

frozen = 1
break

elif hora == int(horaf):


if minuto <= int(minutof):
b = datetime.datetime(ano, mes,
dia, int(hora), int(minuto), 00) # valores da consulta
val = (id, user, medico[j][0], b)

mycursor.execute(novaconsulta,
val)
mydb.commit()

print("Consulta Marcada!")
frozen = 1
break
else:
if cont == 1:
print("Horario de manha cheio
! A verificar horario de tarde ...")
elif cont == 2:
print("Consulta nao foi
possivel 1")
medico.remove(medico[j])
if len(medico) == 0:
print("Nao ha mais medicos
disponiveis por favor marque noutro dia !")
frozen = 1
main()
else:
frozen = 0

else:
if cont == 1:
print("Horario de manha cheio ! A
verificar horario de tarde ...")
elif cont == 2:
print("Consulta nao foi possivel 2")
medico.remove(medico[j])
print(medico)
if len(medico) == 0:
print("Nao ha mais medicos
disponiveis por favor marque noutro dia !")
frozen = 1
main()
else:
frozen = 0
if frozen == 0:


break

menu_utente(user)

if b == 2:
sql = "SELECT * FROM consulta WHERE idutente = %s"
#selecionar todas as consultas do utente indicado
var = (user,)
mycursor.execute(sql, var)
myresult = mycursor.fetchall()

i = 0
for x in myresult:
print("------------------------------")
i = i + 1
print(str(i) + " - Consulta:") #selecionar a consulta que
quer cancelar
id_consulta = x[0] #id consulta

sql = "SELECT nomemedico FROM medico WHERE idmedico = %s"


var = (x[2],)
mycursor.execute(sql, var)
resultadonome = mycursor.fetchall()

for nmedico in resultadonome:


nomemedico = nmedico[0]
print("Medico: " + str(nomemedico)) #apresentar o nome do
medico
print("Data/Hora: " + str(x[3])) #apresentar a data

sel_consulta = int()
while sel_consulta < 1 or sel_consulta > i:
sel_consulta = int(input("Selecione a consulta a cancelar:
"))

sql = "DELETE FROM consulta WHERE idconsulta = %s" #cancelar a


consulta marcada
adr = (id_consulta,)

mycursor.execute(sql, adr)

mydb.commit()

print("Consulta cancelada !")


menu_utente(user)

if b == 3: #listar as consultas marcadas


sql = "SELECT * FROM consulta WHERE idutente = %s"
var = (user,)
mycursor.execute(sql, var)
myresult = mycursor.fetchall()

for x in myresult:
sql = "SELECT nomemedico FROM medico WHERE idmedico = %s"
var = (x[2],)
mycursor.execute(sql, var)
resultadonome = mycursor.fetchall()

for y in resultadonome:


print("------------------------------")
print("nºde consulta: " + str(x[0]))
print("Medico:" + str(y[0]))
print("DATA/HORA: " + str(x[3]))
menu_utente(user)

if b == 4: #voltar ao menu inicial


main()

def menu_medico(medico): #menu do medico


c = int()
while c < 1 or c > 3:
print(
'''1 - Criar as manchas de disponibilidade horária\n2-
Atualizar as manchas de disponibilidade horária\n3 - Listar os utentes
com consulta marcada numa determinada data e mancha horária\n4-Ir para
o Menu principal''')

c = int(input("Selecione a sua opção: "))

if c == 1:

sql = "SELECT horarioinicio,horariofim FROM medico WHERE


idmedico = %s"
var = (medico,)

mycursor.execute(sql,var)

myresult = mycursor.fetchall()

for x in myresult:
print('Limite: Hora de inicio do trabalho: ' +
str(x[0]))
print('Limite: Hora de fim do trabalho: '+ str(x[1]))

y = 0

while y < 1 or y > 2:


print("Horarios")
print("1 - Horario da manha ! 8h - 12h")
print("2 - Horario da tarde ! 13h - 20h")
y = int(input("Selecione um horario:"))

if y == 1:
hora = int(input("Hora de inicio:"))
minuto = int(input("Minuto de inicio:"))
horarioinicio = datetime.time(hora, minuto, 00)
horarioinicio = str(horarioinicio)

hora2 = int(input("Hora de fim:"))


minuto2 = int(input("Minuto de fim:"))
horariofim = datetime.time(hora2, minuto2, 00)
horariofim = str(horariofim)

thorarioinicio =
datetime.datetime.strptime(horarioinicio, '%H:%M:%S')
deltainicio =
datetime.timedelta(hours=thorarioinicio.hour,


minutes=thorarioinicio.minute,

seconds=thorarioinicio.second)
thorariofim =
datetime.datetime.strptime(horariofim, '%H:%M:%S')
deltafim =
datetime.timedelta(hours=thorariofim.hour, minutes=thorariofim.minute,

seconds=thorariofim.second)

if deltainicio >= x[0]:


if deltafim <= x[1]:

sql = "SELECT * FROM horario WHERE


idmedico = %s"
var = (medico,)

mycursor.execute(sql,var)
myresult = mycursor.fetchall()

for varios in myresult:


print(varios)

if len(myresult) == 2:
print("ERRO CHEIO")
elif len(myresult) == 1:
for varios in myresult:
datafim = varios[3]
datainicio = varios[2]

if datafim <=
datetime.timedelta(hours=12):
print("ERRO ! Horario da manha ja
registrado !")
else:
print("HORARIO DA MANHA")

sql = """INSERT INTO horario


(idmedico,horainicio,horafim) VALUES (%s,%s,%s) """
val = (medico, horarioinicio,
horariofim)

mycursor.execute(sql, val)
mydb.commit()
print("Sucesso ! Horario da manha
inserido !")
else:
print("HORARIO DA MANHA")

sql = """INSERT INTO horario


(idmedico,horainicio,horafim) VALUES (%s,%s,%s) """
val = (medico, horarioinicio,
horariofim)

mycursor.execute(sql, val)
mydb.commit()
print("Sucesso ! Horario da manha
inserido !")
elif y == 2:
hora = int(input("Hora de inicio:"))


minuto = int(input("Minuto de inicio:"))
horarioinicio = datetime.time(hora, minuto, 00)
horarioinicio = str(horarioinicio)

hora2 = int(input("Hora de fim:"))


minuto2 = int(input("Minuto de fim:"))
horariofim = datetime.time(hora2, minuto2, 00)
horariofim = str(horariofim)

thorarioinicio =
datetime.datetime.strptime(horarioinicio, '%H:%M:%S')
deltainicio =
datetime.timedelta(hours=thorarioinicio.hour,
minutes=thorarioinicio.minute,

seconds=thorarioinicio.second)
thorariofim =
datetime.datetime.strptime(horariofim, '%H:%M:%S')
deltafim =
datetime.timedelta(hours=thorariofim.hour, minutes=thorariofim.minute,

seconds=thorariofim.second)

if deltainicio >= x[0]:


if deltafim <= x[1]:

sql = "SELECT * FROM horario WHERE


idmedico = %s"
var = (medico,)

mycursor.execute(sql, var)
myresult = mycursor.fetchall()

if len(myresult) == 2:
print("ERRO: CHEIO")
elif len(myresult) == 1:
for varios in myresult:
datafim = varios[3]
datainicio = varios[2]

if datainicio >
datetime.timedelta(hours=13):
print("ERRO ! Horario da tarde ja
registrado !")
else:
print("HORARIO DA TARDE")

sql = """INSERT INTO horario


(idmedico,horainicio,horafim) VALUES (%s,%s,%s) """
val = (medico, horarioinicio,
horariofim)

mycursor.execute(sql, val)
mydb.commit()
print("Sucesso ! Horario da tarde
inserido !")

else:
print("HORARIO DA TARDE")


sql = """INSERT INTO horario
(idmedico,horainicio,horafim) VALUES (%s,%s,%s) """
val = (medico, horarioinicio,
horariofim)

mycursor.execute(sql, val)
mydb.commit()
print("Sucesso ! Horario da tarde
inserido !")

else:
print("ERRO: OPCAO INSERIDA INVALIDA")
else:
print("ERRO: OPCAO INSERIDA INVALIDA")
else:
print("ERRO: OPCAO INSERIDA INVALIDA")

menu_medico(medico)

if c == 2: #atualizar o horario do medico

sql = "SELECT horarioinicio,horariofim FROM medico WHERE


idmedico = %s"
var = (medico,)

mycursor.execute(sql, var)

myresult = mycursor.fetchall()

for x in myresult:
print('Limite: De hora que inicia o trabalho: '
+str(x[0]))
print('Limite: De hora que termina o trabalho: ' +
str(x[1]))

y = 0

while y < 1 or y > 2:


sql = "SELECT * FROM horario WHERE idmedico = %s"
var = (medico,)

mycursor.execute(sql, var)

myresult = mycursor.fetchall()

for x in myresult:
print('---------------------------------------
----------------')
if datetime.timedelta(hours=8, minutes=0,
seconds=0) < x[2] < datetime.timedelta(hours=12, minutes=0,
seconds=0):
print('Horario inicio da manhã: ' +
str(x[2]))
print('Horario fim da manhã: ' +
str(x[3]))

elif datetime.timedelta(hours=13, minutes=0,


seconds=0) <= x[2] <= datetime.timedelta(hours=20, minutes=0,


seconds=0):
print('Horario inicio da Tarde: ' +
str(x[2]))
print('Horario fim da Tarde: ' +
str(x[3]))

if len(myresult) == 0:
print("ERRO ! Crie primeiro uma mancha horaria
!")
break
else:
cont = 0
for z in myresult:
cont = cont + 1 # Aparecer as opções
print(str(cont) + " - " + str(z))
y = int(input("Selecione um horario:"))

if y == 1:
sql = "SELECT * FROM horario WHERE idmedico = %s"
var = (medico,)

mycursor.execute(sql, var)

myresult = mycursor.fetchall()

horarioescolhido = myresult[y-1]

if horarioescolhido[3] <=
datetime.timedelta(hours=12):
hora = 0
minuto = 1
hora2 = 0
minuto2 = 1
while hora < 8 or hora > 12:
hora = int(input("Hora de inicio:"))
while minuto != 0 and minuto != 30:
minuto = int(input("Minuto de inicio:"))

horarioinicio = datetime.time(hora, minuto,


00)
horarioinicio = str(horarioinicio)

while hora2 < hora or hora2 > 12:


hora2 = int(input("Hora de fim:"))

while minuto2 != 0 and minuto2 != 30:


minuto2 = int(input("Minuto de fim:"))

horariofim = datetime.time(hora2, minuto2, 00)


horariofim = str(horariofim)

thorarioinicio =
datetime.datetime.strptime(horarioinicio, '%H:%M:%S')
deltainicio =
datetime.timedelta(hours=thorarioinicio.hour,
minutes=thorarioinicio.minute,

seconds=thorarioinicio.second)
thorariofim =
datetime.datetime.strptime(horariofim, '%H:%M:%S')


deltafim =
datetime.timedelta(hours=thorariofim.hour, minutes=thorariofim.minute,

seconds=thorariofim.second)

if deltainicio >= x[0]:


if deltafim <= x[1]:

sql = """UPDATE horario SET


horainicio= %s,horafim = %s WHERE idmedico = %s""" #fazer o update do
horario do medico
val = (horarioinicio, horariofim,
medico)

mycursor.execute(sql, val)
mydb.commit()

print("Atualizado com sucesso!")


else:
print("ERRO 4")
else:
print("ERRO 3")
else:
print("ERRO 2")
elif y == 2:
sql = "SELECT * FROM horario WHERE idmedico = %s"
var = (medico,)

mycursor.execute(sql, var)

myresult = mycursor.fetchall()

for z in myresult:
print(z)
horarioescolhido = z

if horarioescolhido[2] >=
datetime.timedelta(hours=13):
hora = 0
minuto = 1
hora2 = 0
minuto2 = 1
while hora < 13 or hora > 20:
hora = int(input("Hora de inicio:"))
while minuto != 0 and minuto != 30:
minuto = int(input("Minuto de inicio:"))
print(minuto)

horarioinicio = datetime.time(hora, minuto,


00)
horarioinicio = str(horarioinicio)

while hora2 < hora or hora2 > 20:


hora2 = int(input("Hora de fim:"))
while minuto2 != 0 and minuto2 != 30:
minuto2 = int(input("Minuto de fim:"))
horariofim = datetime.time(hora2, minuto2, 00)
horariofim = str(horariofim)

thorarioinicio =


datetime.datetime.strptime(horarioinicio, '%H:%M:%S')
deltainicio =
datetime.timedelta(hours=thorarioinicio.hour,
minutes=thorarioinicio.minute,

seconds=thorarioinicio.second)
thorariofim =
datetime.datetime.strptime(horariofim, '%H:%M:%S')
deltafim =
datetime.timedelta(hours=thorariofim.hour, minutes=thorariofim.minute,

seconds=thorariofim.second)

if deltainicio >= x[0]:


if deltafim <= x[1]:

sql = """UPDATE horario SET


horainicio= %s,horafim = %s WHERE idmedico = %s AND horainicio=%s AND
horafim=%s""" # fazer o update do horario do medico
val = (deltainicio, deltafim,
medico,horarioescolhido[2],horarioescolhido[3])

mycursor.execute(sql, val)
mydb.commit()

print("Atualizado com sucesso!")

sql = "SELECT * FROM horario"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for z in myresult:
print(z)

else:
print("ERRO")
else:
print("ERRO")
else:
print("ERRO 1")
menu_medico(medico)

if c == 3:
#Listar os utentes com consulta marcada numa determinada
data e mancha horária
hora = int(input("Hora de inicio:"))
minuto = int(input("Minuto de inicio:"))
horarioinicio = time(hora, minuto, 00)
hora2 = int(input("Hora de fim:"))
minuto2 = int(input("Minuto de fim:"))
horariofim = time(hora2, minuto2, 00)
dia = int(input('Dia:'))
mes = int(input('Mês:'))
ano = int(input('Ano:'))
data = datetime.date(ano, mes, dia)

sql = "SELECT * from consulta WHERE idmedico = %s AND




DATE(dataconsulta)= %s AND TIME(dataconsulta)<=%s AND TIME(" \
"dataconsulta)>= %s "
val2 = (medico,data,horariofim, horarioinicio)
mycursor.execute(sql, val2)
myresult = mycursor.fetchall()

for x in myresult:
sql = "SELECT nomeutente FROM utente WHERE idutente =
%s"
var = (x[1],)
mycursor.execute(sql, var)
resultadonome = mycursor.fetchall()

for y in resultadonome:
print('---------------------------------')
print("nºde consulta: " + str(x[0]))
print("Utente:" + str(y[0]))
print("DATA/HORA: " + str(x[3]))

if len(myresult)==0:
print("Não existem consultas nesta data no horario
indicado!")

if c == 4: #voltar ao menu inicial


main()

def menu_admin(): #menu do administrador


d = int()
while d < 1 or d > 5:
print('''1 – Criar/atualizar ficha de um utente ou de um
médico\n2 – Listar, por especialidade, o total de médicos\n3 – Listar,
por especialidade, o total de consultas marcadas para a próxima
semana\n4 – Listar os utentes que tiveram mais de 3 consultas no
último trimestre\n5 - Voltar ao menu principal\n
''')
d = int(input("Selecione a sua opção:"))
if d == 1: #CRIAR/ATUALIZAR
ca = int()
while ca < 1 or ca > 2:
print("1 - Criar\n2 - Atualizar")
ca = int(input("Selecione a sua opção:"))
if ca == 1: #criar utente ou medico
rtipo = int()
while rtipo < 1 or rtipo > 2:
rtipo = int(input("1 - Utente \n2 - Medico\nTipo de
User:"))

if rtipo == 1: #utente
nome = input("Nome:")
apelido = input("Apelido:")
nif = input("NIF:")
morada = input("Morada:")
idade = input("Idade:")
id = None
sql = """INSERT INTO utente
(idutente,nomeutente,apelidoutente,nifutente,moradautente,idadeutente)
VALUES (%s, %s, %s, %s, %s, %s)"""
val = (id, nome, apelido, nif, morada, idade)


mycursor.execute(sql, val)
mydb.commit()

sql = "SELECT idutente FROM utente WHERE


(nomeutente,apelidoutente,nifutente,moradautente,idadeutente) = (%s,
%s, %s, %s, %s)"
val2 = (nome, apelido, nif, morada, idade)
mycursor.execute(sql, val2)
myresult = mycursor.fetchall()

for x in myresult:
print("id: " + str(x[0]))

if rtipo == 2: #medico
nome = input("Nome:")
apelido = input("Apelido:")
nif = input("NIF:")
morada = input("Morada:")
idade = input("Idade:")
id = None
esp = int()
while esp < 1 or esp > 6:
esp = int(input(
"1 - Ginecologia/Obstetricia\n2 -
Oftamologia\n3 - Otorrinolaringologia\n4-Urologia\n5-Pediatria\n6-
Cardiologia\nInsira a sua especialidade:"))
hora = int(input("Hora de inicio:"))
minuto = int(input("Minuto de inicio:"))
horarioinicio = time(hora, minuto, 00)
hora2 = int(input("Hora de fim:"))
minuto2 = int(input("Minuto de fim:"))
horariofim = time(hora2, minuto2, 00)

sql = """INSERT INTO medico


(idmedico,nomemedico,apelidomedico,nifmedico,idademedico,moradamedico,
idespecialidade,horarioinicio,horariofim) VALUES (%s, %s, %s, %s, %s,
%s, %s, %s, %s)"""
val = (id, nome, apelido, nif, idade, morada, esp,
horarioinicio, horariofim)

mycursor.execute(sql, val)
mydb.commit()

sql = "SELECT idmedico FROM medico WHERE


(nomemedico,apelidomedico,nifmedico,idademedico,moradamedico,idespecia
lidade,horarioinicio,horariofim) = (%s, %s, %s, %s, %s, %s, %s, %s)"
val2 = (nome, apelido, nif, idade, morada, esp,
horarioinicio, horariofim)
mycursor.execute(sql, val2)
myresult = mycursor.fetchall()

for x in myresult:
print("id: " + str(x[0]))
if ca == 2: #Atualizar utente ou medico

rtipo = int()
while rtipo < 1 or rtipo > 2:
rtipo = int(input("1 - Utente \n2 - Medico\nTipo de
User:"))


if rtipo == 1: #utente
sql = "SELECT * FROM utente"
mycursor.execute(sql)
myresult = mycursor.fetchall()

for x in myresult:
print('ID:'+ str(x[0]))
print('Nome:'+ str(x[1]))
print('Apelido: '+ str(x[2]))
print('Nif: '+ str(x[3]))
print('Morada' + str(x[4]))
print('Idade: ' + str(x[5]))
print("------------------------------")

user = int()
while user < 1 or user > len(myresult):
user = int(input("Escolha o seu user:"))

nome = input("Nome:")
apelido = input("Apelido:")
nif = input("NIF:")
morada = input("Morada:")
idade = input("Idade:")
id = user
sql = """UPDATE utente SET nomeutente =
%s,apelidoutente = %s,nifutente = %s,moradautente = %s,idadeutente =
%s WHERE idutente = %s"""
val = (nome, apelido, nif, morada, idade, id)

mycursor.execute(sql, val)
mydb.commit()

print("Utilizador atualizado com sucesso !")

if rtipo == 2: #medico

sql = "SELECT * FROM medico"


mycursor.execute(sql)
myresult = mycursor.fetchall()

for x in myresult:
print('ID:' + str(x[0]))
print('Nome:' + str(x[1]))
print('Apelido: ' + str(x[2]))
print('Nif: ' + str(x[3]))
print('Idade: ' + str(x[4]))
print('Morada: ' + str(x[5]))

sql1='SELECT descrição FROM especialidade WHERE


idespecialidade = %s'
var1=(x[6],)
mycursor.execute(sql1, var1)
myresult1 = mycursor.fetchall()
for y in myresult1:
print('especialidade: ' + str(y[0]))
print('Limite: Horario de inicio do trabalho: ' +
str(x[7]))
print('Limite: Horario de fim do trabalho: ' +
str(x[8]))
print("-------------------------------------------


-------")

medico = int()
while medico < 1 or medico > len(myresult):
medico = int(input("Escolha o seu medico:"))

nome = input("Nome:")
apelido = input("Apelido:")
nif = input("NIF:")
morada = input("Morada:")
idade = input("Idade:")
id = None
esp = int()
while esp < 1 or esp > 6:
esp = int(input(
"1 - Ginecologia/Obstetricia\n2 -
Oftamologia\n3 - Otorrinolaringologia\n4-Urologia\n5-Pediatria\n6-
Cardiologia\nInsira a sua especialidade:"))
hora = int(input("Hora de inicio:"))
minuto = int(input("Minuto de inicio:"))
horarioinicio = time(hora, minuto, 00)
hora2 = int(input("Hora de fim:"))
minuto2 = int(input("Minuto de fim:"))
horariofim = time(hora2, minuto2, 00)

sql = """UPDATE medico SET nomemedico = %s,


apelidomedico = %s ,nifmedico = %s,idademedico = %s,moradamedico =
%s,idespecialidade= %s,horarioinicio= %s,horariofim = %s WHERE
idmedico = %s"""
val = (nome, apelido, nif, idade, morada, esp,
horarioinicio, horariofim, medico)

mycursor.execute(sql, val)
mydb.commit()

sql = "DELETE FROM horario WHERE idmedico = %s"


val2 = (medico,)
mycursor.execute(sql, val2)
mydb.commit()

print("Atualizado com sucesso!")


print("ATENÇÃO manchas horárias apagadas ! Por favor,
informe o médico para criar a sua mancha horária")

if d == 2: #listar por especialidade o total de medicos


esp = int(input(
"1 - Ginecologia/Obstetricia\n2 - Oftamologia\n3 -
Otorrinolaringologia\n4-Urologia\n5-Pediatria\n6-Cardiologia\nInsira a
sua especialidade:"))
sql = "SELECT * FROM medico WHERE idespecialidade = %s"
val2 = (esp,)
mycursor.execute(sql, val2)
myresult= mycursor.fetchall()
print("Numero de medicos:" + str(len(myresult)))

if d == 3: #Listar, por especialidade, o total de consultas


marcadas para próxima semana
today = datetime.datetime.now() + datetime.timedelta(days=7)
#data atual + 7 dias
today = format(today, '%Y/%m/%d, %H:%M:%S') #formato

esp = int(input(
"1 - Ginecologia/Obstetricia\n2 - Oftamologia\n3 -
Otorrinolaringologia\n4-Urologia\n5-Pediatria\n6-Cardiologia\nInsira a
sua especialidade:"))
sql = "SELECT * FROM medico WHERE idespecialidade = %s"
val2 = (esp,)
mycursor.execute(sql, val2)
myresult = mycursor.fetchall()

for x in myresult:
sql = "SELECT * FROM consulta WHERE idmedico = %s AND
DATE(dataconsulta) <= %s" # consultas marcadas na proxima semana
val2 = (x[0], today)
mycursor.execute(sql, val2)
myresult2 = mycursor.fetchall()

for y in myresult2:
print('----------------------------------')
print("nºde consulta: " + str(y[0]))
print("DATA/HORA: " + str(y[3]))

sql = "SELECT nomemedico FROM medico WHERE idmedico =


%s"
var = (y[2],)
mycursor.execute(sql, var)
resultadonome = mycursor.fetchall()

for nmedico in resultadonome:


nomemedico = nmedico[0]
print("Medico: " + str(nomemedico))

sql = "SELECT nomeutente FROM utente WHERE idutente =


%s"
var = (y[1],)
mycursor.execute(sql, var)
resultadonome1 = mycursor.fetchall()

for nutente in resultadonome1:


nomeutente = nutente[0]
print("Utente: " + str(nomeutente))

if d == 4: # Listar os utentes que tiveram mais de 3 consultas no


último trimestre

today = datetime.datetime.now() - datetime.timedelta(3 * 365 /


12)
today1 = format(today, '%Y/%m/%d, %H:%M:%S')
hoje=datetime.datetime.now()

a = "SELECT idutente,COUNT(idutente) FROM consulta WHERE


dataconsulta <= %s GROUP BY idutente "
var = (today1,)
mycursor.execute(a, var)
resultado = mycursor.fetchall()

for resultado2 in resultado:

if resultado2[1] >= 2:
sql = "SELECT nomeutente FROM utente WHERE idutente =


%s"
var = (resultado2[0],)
mycursor.execute(sql, var)
res = mycursor.fetchall()

for x in res:
print(x[0])
main()

if d == 5:
main()

main()
mycursor.close() #fechar conexao ao sql
mydb.close()

Você também pode gostar