def criaConsulta(cls, form, status, usuario): if type(form) is ConsultaForm: medicoId = form.cleaned_data['medico'] else: medicoId = form.cleaned_data['idMedico'] pacienteId = form.cleaned_data['idPaciente'] consulta = Consulta() medico = Medico.objects.get(id=medicoId) paciente = Paciente.objects.get(id=pacienteId) consulta.medico = medico consulta.paciente = paciente consulta.status = status consulta.data = form.cleaned_data['dataConsulta'] if Consulta.isConsultaDuplicada(medico, paciente): raise ConsultationLimitException, 'O paciente %(nomePaciente)s ja tem uma consulta\ marcada com o medico %(nomeMedico)s' %{'nomePaciente':paciente.first_name, 'nomeMedico':medico.first_name} consulta.save() medico.agenda.consultas.add(consulta) Mensagem.consultaMarcada(medico, usuario) if status == Consulta.PENDENTE: Tarefa.criaTarefaConfirmacaoConsulta(medico, consulta) for atendente in Atendente.objects.all(): Mensagem.consultaMarcada(atendente, usuario) if status == Consulta.PENDENTE: Tarefa.criaTarefaConfirmacaoConsulta(atendente, consulta) return consulta
def criaConsulta(cls, form, status, usuario): if type(form) is ConsultaForm: medicoId = form.cleaned_data['medico'] else: medicoId = form.cleaned_data['idMedico'] pacienteId = form.cleaned_data['idPaciente'] consulta = Consulta() medico = Medico.objects.get(id=medicoId) paciente = Paciente.objects.get(id=pacienteId) consulta.medico = medico consulta.paciente = paciente consulta.status = status consulta.data = form.cleaned_data['dataConsulta'] if Consulta.isConsultaDuplicada(medico, paciente): raise ConsultationLimitException, 'O paciente %(nomePaciente)s ja tem uma consulta\ marcada com o medico %(nomeMedico)s' % { 'nomePaciente': paciente.first_name, 'nomeMedico': medico.first_name } consulta.save() medico.agenda.consultas.add(consulta) Mensagem.consultaMarcada(medico, usuario) if status == Consulta.PENDENTE: Tarefa.criaTarefaConfirmacaoConsulta(medico, consulta) for atendente in Atendente.objects.all(): Mensagem.consultaMarcada(atendente, usuario) if status == Consulta.PENDENTE: Tarefa.criaTarefaConfirmacaoConsulta(atendente, consulta) return consulta
def medico(request): consultasFinalizadas = Atendimento.buscaAtendimentosMedico(request.user, Atendimento.FINALIZADO) proximosAtendimentos = Atendimento.buscaAtendimentosMedico(request.user, Atendimento.AGUARDANDO_ATENDIMENTO) listaMensagens = Mensagem.buscaMensagens(request.user) if request.user.id != None: listaMensagens = Mensagem.buscaMensagens(request.user) return render_to_response('dashboard/medico.html', {'listaMensagens':listaMensagens, 'consultasFinalizadas':consultasFinalizadas, 'proximosAtendimentos':proximosAtendimentos}, context_instance=RequestContext(request))
def cancelar(request): try: request.GET['tarefa_id'] tarefa = Tarefa.objects.get(id=request.GET['tarefa_id']) tarefa.status = Tarefa.FINALIZADA tarefa.save() except MultiValueDictKeyError: pass consulta = Consulta.objects.get(id=request.GET['id']) consulta.status = Consulta.CANCELADA consulta.save() Mensagem.consultaCancelada(consulta, request.user) messages.success(request, gettext('consultation_canceled_message')) return redirect('consulta_mostrar', id=consulta.id)
def cancelar(request): try: request.GET['tarefa_id'] tarefa = Tarefa.objects.get(id=request.GET['tarefa_id']) tarefa.status = Tarefa.FINALIZADA tarefa.save() except MultiValueDictKeyError: pass consulta = Consulta.objects.get(id=request.GET['id']) consulta.status = Consulta.CANCELADA consulta.save() Mensagem.consultaCancelada(consulta, request.user) messages.success(request, gettext('consultation_canceled_message')) return redirect('consulta_mostrar', id=consulta.id)
def medico(request): consultasFinalizadas = Atendimento.buscaAtendimentosMedico( request.user, Atendimento.FINALIZADO) proximosAtendimentos = Atendimento.buscaAtendimentosMedico( request.user, Atendimento.AGUARDANDO_ATENDIMENTO) listaMensagens = Mensagem.buscaMensagens(request.user) if request.user.id != None: listaMensagens = Mensagem.buscaMensagens(request.user) return render_to_response('dashboard/medico.html', { 'listaMensagens': listaMensagens, 'consultasFinalizadas': consultasFinalizadas, 'proximosAtendimentos': proximosAtendimentos }, context_instance=RequestContext(request))
def confirmar(request): tarefa = Tarefa.objects.get(id=request.GET['tarefa_id']) consulta = Consulta.objects.get(id=request.GET['id']) consulta.status = Consulta.CONFIRMADA tarefa.status = Tarefa.FINALIZADA atendimento = Atendimento.criaAtendimento(consulta) if atendimento.id is not None: tarefa.save() consulta.save() Mensagem.consultaConfirmada(consulta, request.user) messages.success(request, gettext('consultation_confirmed_message')) if request.GET['irPara'] == 'dashboard': return redirect('dashboard_index') else: return redirect('consulta_mostrar', id=consulta.id) messages.success(request, gettext('consultation_confirmation_error')) return render_to_response('tarefa/_modalDetalhes.html', {'tarefa': tarefa})
def confirmar(request): tarefa = Tarefa.objects.get(id=request.GET['tarefa_id']) consulta = Consulta.objects.get(id=request.GET['id']) consulta.status = Consulta.CONFIRMADA tarefa.status = Tarefa.FINALIZADA atendimento = Atendimento.criaAtendimento(consulta) if atendimento.id is not None: tarefa.save() consulta.save() Mensagem.consultaConfirmada(consulta, request.user) messages.success(request, gettext('consultation_confirmed_message')) if request.GET['irPara'] == 'dashboard': return redirect('dashboard_index') else: return redirect('consulta_mostrar', id=consulta.id) messages.success(request, gettext('consultation_confirmation_error')) return render_to_response('tarefa/_modalDetalhes.html', {'tarefa' : tarefa})
def paciente(request): consultasNaoConfirmadas = Consulta.buscaConsultasPorUsuario(request.user, Consulta.PENDENTE) proximasConsultas = Consulta.buscaConsultasPorUsuario(request.user, Consulta.CONFIRMADA) atendimentosAnteriores = Atendimento.buscaAtendimentosAnteriores(request.user) graficoAtendimentosAnteriores = Atendimento.agrupaAtendimentosPorDia(atendimentosAnteriores) listaMensagens = Mensagem.buscaMensagens(request.user) return render_to_response('dashboard/paciente.html', {'consultasNaoConfirmadas':consultasNaoConfirmadas, 'proximasConsultas':proximasConsultas, 'atendimentosAnteriores':atendimentosAnteriores, 'graficoAtendimentosAnteriores':graficoAtendimentosAnteriores,'listaMensagens':listaMensagens}, context_instance=RequestContext(request))
def atendente(request): atendimentosMes = Atendimento.buscaAtendimentosPorPeriodo("mes") atendimentosHoje = Atendimento.buscaAtendimentosPorPeriodo("dia") atendimentosAguardandoChegada = Atendimento.buscaAtendimentosPorStatus(Atendimento.AGUARDANDO_CHEGADA) consultasAguardandoConfirmacao = Consulta.buscaConsultasPorStatus(Consulta.PENDENTE) listaMensagens = [] listaTarefas = [] if request.user.id != None: listaMensagens = Mensagem.buscaMensagens(request.user) listaTarefas = Tarefa.buscaTarefasPorStatus(request.user, Tarefa.PENDENTE) return render_to_response('dashboard/atendente.html', {'atendimentosMes':atendimentosMes, 'atendimentosHoje':atendimentosHoje, 'atendimentosAguardandoChegada':atendimentosAguardandoChegada, 'consultasAguardandoConfirmacao':consultasAguardandoConfirmacao, 'listaMensagens':listaMensagens, 'listaTarefas':listaTarefas}, context_instance=RequestContext(request))
def paciente(request): consultasNaoConfirmadas = Consulta.buscaConsultasPorUsuario( request.user, Consulta.PENDENTE) proximasConsultas = Consulta.buscaConsultasPorUsuario( request.user, Consulta.CONFIRMADA) atendimentosAnteriores = Atendimento.buscaAtendimentosAnteriores( request.user) graficoAtendimentosAnteriores = Atendimento.agrupaAtendimentosPorDia( atendimentosAnteriores) listaMensagens = Mensagem.buscaMensagens(request.user) return render_to_response('dashboard/paciente.html', { 'consultasNaoConfirmadas': consultasNaoConfirmadas, 'proximasConsultas': proximasConsultas, 'atendimentosAnteriores': atendimentosAnteriores, 'graficoAtendimentosAnteriores': graficoAtendimentosAnteriores, 'listaMensagens': listaMensagens }, context_instance=RequestContext(request))
def atendente(request): atendimentosMes = Atendimento.buscaAtendimentosPorPeriodo("mes") atendimentosHoje = Atendimento.buscaAtendimentosPorPeriodo("dia") atendimentosAguardandoChegada = Atendimento.buscaAtendimentosPorStatus( Atendimento.AGUARDANDO_CHEGADA) consultasAguardandoConfirmacao = Consulta.buscaConsultasPorStatus( Consulta.PENDENTE) listaMensagens = [] listaTarefas = [] if request.user.id != None: listaMensagens = Mensagem.buscaMensagens(request.user) listaTarefas = Tarefa.buscaTarefasPorStatus(request.user, Tarefa.PENDENTE) return render_to_response('dashboard/atendente.html', { 'atendimentosMes': atendimentosMes, 'atendimentosHoje': atendimentosHoje, 'atendimentosAguardandoChegada': atendimentosAguardandoChegada, 'consultasAguardandoConfirmacao': consultasAguardandoConfirmacao, 'listaMensagens': listaMensagens, 'listaTarefas': listaTarefas }, context_instance=RequestContext(request))