from graphviz import Digraph
from PIL import Image
# Criação do fluxograma
flux = Digraph(format='png')
flux.attr(rankdir='TB', size='10')
# Definindo os nós com estilos
flux.node("A", "Paciente passa pela emergência (PA Unimed) por TAE\nSituação estabilizada\nNotificação: Violência interpessoal/autoprovocada + Intoxicação exógena", color='lightblue', style='filled', fontname="Helvetica")
flux.node("B", "Notificação chega por e-mail à enfermeira da Saúde Mental (AIS)\nPrazo: até 10 dias após a emergência", color='lightgreen', style='filled', fontname="Helvetica")
flux.node("C", "Inclusão do paciente na planilha de TAE", color='lightyellow', style='filled', fontname="Helvetica")
flux.node("D", "Início da captação\nEnvio de mensagem via WhatsApp com acolhimento e proposta de agendamento", color='lightcoral', style='filled', fontname="Helvetica")
flux.node("E", "Paciente responde à mensagem?", color='lightgray', style='filled', fontname="Helvetica")
flux.node("F1", "Sim (Aceitou agendamento)\n→ Apresento o serviço e agendo consulta", color='lightgreen', style='filled', fontname="Helvetica")
flux.node("F2", "Não (Já está em acompanhamento, recusa ou falta de interação)", color='lightcoral', style='filled', fontname="Helvetica")
flux.node("G1", "Preencho campo de agendamento na planilha para monitoramento", shape="box", color='lightskyblue', style='filled', fontname="Helvetica")
flux.node("G2", "Finalizo colocando desfecho de contato na planilha de TAE", shape="box", color='lightskyblue', style='filled', fontname="Helvetica")
flux.node("H", "Coloco na agenda de enfermagem\n→ Validação das informações + busca ativa no prontuário", shape="ellipse", color='lightpink', style='filled', fontname="Helvetica")
# Conexões
flux.edge("A", "B")
flux.edge("B", "C")
flux.edge("C", "D")
flux.edge("D", "E")
flux.edge("E", "F1", label="Sim")
flux.edge("E", "F2", label="Não")
flux.edge("F1", "G1")
flux.edge("F2", "G2")
flux.edge("G1", "H")
flux.edge("G2", "H")
# Renderizar o fluxograma
output_path = flux.render("fluxograma_TAE", view=True)