import pathlib
import sys
sys.path.append(f'{pathlib.Path().resolve()}/src/')
from database.repo import *
import app.controllers.LeitoController as LeitoController
import app.controllers.PacienteController as PacienteController


class InternacaoController:

    def setStatus(self, inter, status):
        inter.status = status

    def setMotivoEncerramento(self, inter, motivo):
        inter.motivoEncerramento = motivo

    def alterarStatusPaciente(self, idLeito, status):
        inter = session.query(Internacao).filter(Internacao.leitoId == idLeito
            ).first()
        self.setStatus(inter, status)
        session.commit()

    def gerarRecomendacao(self, idLeito, recomendacao):
        inter = session.query(Internacao).filter(Internacao.idLeito == idLeito
            ).first()
        action = AcaoRecomendada(recomendacao, inter)
        session.add(action)
        session.commit()
        return action

    def encerrarInternacao(self, internacao, motivo):
        self.setStatus(internacao, 'encerrada')
        self.setMotivoEncerramento(internacao, motivo)
        LeitoController.leitoController.setDisponibilidade(internacao.leito,
            'desocupado')

    def vincularPacienteLeito(self, idPaciente, idLeito):
        leito = LeitoController.leitoController.buscarLeito(idLeito)
        paciente = PacienteController.pacienteController.buscarPaciente(
            idPaciente)
        inter = Internacao(leito)
        PacienteController.pacienteController.associarPacienteInternacao(
            paciente, inter)
        PacienteController.pacienteController.removerSolicitacao(paciente)
        LeitoController.leitoController.setDisponibilidade(leito, 'ocupado')
        session.add(inter)
        session.commit()


internacaoController = InternacaoController()

6ab0e7330c6dafd3c573c8feaea95541aa45b650
<mask token>


class InternacaoController:

    def setStatus(self, inter, status):
        inter.status = status

    def setMotivoEncerramento(self, inter, motivo):
        inter.motivoEncerramento = motivo

    def alterarStatusPaciente(self, idLeito, status):
        inter = session.query(Internacao).filter(Internacao.leitoId == idLeito
            ).first()
        self.setStatus(inter, status)
        session.commit()

    def gerarRecomendacao(self, idLeito, recomendacao):
        inter = session.query(Internacao).filter(Internacao.idLeito == idLeito
            ).first()
        action = AcaoRecomendada(recomendacao, inter)
        session.add(action)
        session.commit()
        return action

    def encerrarInternacao(self, internacao, motivo):
        self.setStatus(internacao, 'encerrada')
        self.setMotivoEncerramento(internacao, motivo)
        LeitoController.leitoController.setDisponibilidade(internacao.leito,
            'desocupado')

    def vincularPacienteLeito(self, idPaciente, idLeito):
        leito = LeitoController.leitoController.buscarLeito(idLeito)
        paciente = PacienteController.pacienteController.buscarPaciente(
            idPaciente)
        inter = Internacao(leito)
        PacienteController.pacienteController.associarPacienteInternacao(
            paciente, inter)
        PacienteController.pacienteController.removerSolicitacao(paciente)
        LeitoController.leitoController.setDisponibilidade(leito, 'ocupado')
        session.add(inter)
        session.commit()


<mask token>

<mask token>
sys.path.append(f'{pathlib.Path().resolve()}/src/')
<mask token>


class InternacaoController:

    def setStatus(self, inter, status):
        inter.status = status

    def setMotivoEncerramento(self, inter, motivo):
        inter.motivoEncerramento = motivo

    def alterarStatusPaciente(self, idLeito, status):
        inter = session.query(Internacao).filter(Internacao.leitoId == idLeito
            ).first()
        self.setStatus(inter, status)
        session.commit()

    def gerarRecomendacao(self, idLeito, recomendacao):
        inter = session.query(Internacao).filter(Internacao.idLeito == idLeito
            ).first()
        action = AcaoRecomendada(recomendacao, inter)
        session.add(action)
        session.commit()
        return action

    def encerrarInternacao(self, internacao, motivo):
        self.setStatus(internacao, 'encerrada')
        self.setMotivoEncerramento(internacao, motivo)
        LeitoController.leitoController.setDisponibilidade(internacao.leito,
            'desocupado')

    def vincularPacienteLeito(self, idPaciente, idLeito):
        leito = LeitoController.leitoController.buscarLeito(idLeito)
        paciente = PacienteController.pacienteController.buscarPaciente(
            idPaciente)
        inter = Internacao(leito)
        PacienteController.pacienteController.associarPacienteInternacao(
            paciente, inter)
        PacienteController.pacienteController.removerSolicitacao(paciente)
        LeitoController.leitoController.setDisponibilidade(leito, 'ocupado')
        session.add(inter)
        session.commit()


<mask token>

<mask token>
sys.path.append(f'{pathlib.Path().resolve()}/src/')
<mask token>


class InternacaoController:

    def setStatus(self, inter, status):
        inter.status = status

    def setMotivoEncerramento(self, inter, motivo):
        inter.motivoEncerramento = motivo

    def alterarStatusPaciente(self, idLeito, status):
        inter = session.query(Internacao).filter(Internacao.leitoId == idLeito
            ).first()
        self.setStatus(inter, status)
        session.commit()

    def gerarRecomendacao(self, idLeito, recomendacao):
        inter = session.query(Internacao).filter(Internacao.idLeito == idLeito
            ).first()
        action = AcaoRecomendada(recomendacao, inter)
        session.add(action)
        session.commit()
        return action

    def encerrarInternacao(self, internacao, motivo):
        self.setStatus(internacao, 'encerrada')
        self.setMotivoEncerramento(internacao, motivo)
        LeitoController.leitoController.setDisponibilidade(internacao.leito,
            'desocupado')

    def vincularPacienteLeito(self, idPaciente, idLeito):
        leito = LeitoController.leitoController.buscarLeito(idLeito)
        paciente = PacienteController.pacienteController.buscarPaciente(
            idPaciente)
        inter = Internacao(leito)
        PacienteController.pacienteController.associarPacienteInternacao(
            paciente, inter)
        PacienteController.pacienteController.removerSolicitacao(paciente)
        LeitoController.leitoController.setDisponibilidade(leito, 'ocupado')
        session.add(inter)
        session.commit()


internacaoController = InternacaoController()

import pathlib
import sys
sys.path.append(f'{pathlib.Path().resolve()}/src/')
from database.repo import *
import app.controllers.LeitoController as LeitoController
import app.controllers.PacienteController as PacienteController


class InternacaoController:

    def setStatus(self, inter, status):
        inter.status = status

    def setMotivoEncerramento(self, inter, motivo):
        inter.motivoEncerramento = motivo

    def alterarStatusPaciente(self, idLeito, status):
        inter = session.query(Internacao).filter(Internacao.leitoId == idLeito
            ).first()
        self.setStatus(inter, status)
        session.commit()

    def gerarRecomendacao(self, idLeito, recomendacao):
        inter = session.query(Internacao).filter(Internacao.idLeito == idLeito
            ).first()
        action = AcaoRecomendada(recomendacao, inter)
        session.add(action)
        session.commit()
        return action

    def encerrarInternacao(self, internacao, motivo):
        self.setStatus(internacao, 'encerrada')
        self.setMotivoEncerramento(internacao, motivo)
        LeitoController.leitoController.setDisponibilidade(internacao.leito,
            'desocupado')

    def vincularPacienteLeito(self, idPaciente, idLeito):
        leito = LeitoController.leitoController.buscarLeito(idLeito)
        paciente = PacienteController.pacienteController.buscarPaciente(
            idPaciente)
        inter = Internacao(leito)
        PacienteController.pacienteController.associarPacienteInternacao(
            paciente, inter)
        PacienteController.pacienteController.removerSolicitacao(paciente)
        LeitoController.leitoController.setDisponibilidade(leito, 'ocupado')
        session.add(inter)
        session.commit()


internacaoController = InternacaoController()
