def save(self, paciente): cod_ts = self.cleaned_data["tratamentos"] lista_tratamentos_novos = [] # pega a lista de tratamentos a partir dos códigos for t in self.TRATAMENTOS_CHOICES: if str(t[0]) in cod_ts: tratamento = Tratamento.objects.get(descricao_basica=t[1]) lista_tratamentos_novos.append(tratamento) tratamento_logic.encaminhar_paciente(paciente.id, lista_tratamentos_novos)
def save(self, commit=True): atendimento = super(ConfirmacaoAtendimentoForm, self).save(commit=False) confirma_in = self.cleaned_data['confirma'] redireciona_in = self.cleaned_data['redireciona'] encaminha_in = self.cleaned_data['encaminha'] frequencia_in = self.cleaned_data['frequencia'] if redireciona_in: its = InstanciaTratamento.objects.filter(data=atendimento.instancia_tratamento.data, tratamento__descricao_basica=redireciona_in) if its and its[0] != atendimento.instancia_tratamento: atendimento.instancia_tratamento = its[0] obs = atendimento.observacao atendimento.observacao = obs + '[Hoje foi para '+str(redireciona_in)+']' if encaminha_in: tratamento = Tratamento.objects.get(descricao_basica = encaminha_in) if tratamento: lista_t = [] lista_t.append(tratamento) tratamento_logic.encaminhar_paciente(atendimento.paciente.id, lista_t) obs = atendimento.observacao atendimento.observacao = obs + '[Encaminhado para '+str(encaminha_in)+']' if frequencia_in != 'X': # significa que se trata de um atendimento de primeira vez, pois somente estes podem ser alterados. atendimento.paciente.frequencia = frequencia_in atendimento.paciente.save() obs = atendimento.observacao atendimento.observacao = obs + '[Freq: '+str(frequencia_in)+']' if confirma_in: atendimento.status = 'A' # se o tratamento for primeira vez, aproveitamos para atualizar o campo tem ficha. if atendimento.instancia_tratamento.tratamento.descricao_basica[:4] == 'Prim': atendimento.paciente.tem_ficha = True atendimento.paciente.save() else: atendimento.status = 'C' if commit: atendimento.save()