package siprp.medicina.processo.logic; import java.util.Date; import java.util.List; import java.util.Vector; import javax.swing.tree.DefaultMutableTreeNode; import siprp.database.cayenne.objects.BaseObject; import siprp.database.cayenne.objects.Trabalhadores; import siprp.database.cayenne.objects.TrabalhadoresConsultas; import siprp.database.cayenne.objects.TrabalhadoresConsultasDatas; import siprp.database.cayenne.objects.TrabalhadoresConsultasDatasEmails; import siprp.database.cayenne.objects.TrabalhadoresConsultasDatasObservacoes; import siprp.database.cayenne.objects.TrabalhadoresEcd; import siprp.database.cayenne.objects.TrabalhadoresEcds; import siprp.database.cayenne.objects.TrabalhadoresEcdsDatas; import siprp.database.cayenne.objects.TrabalhadoresEcdsDatasEmails; import siprp.database.cayenne.objects.TrabalhadoresEcdsDatasObservacoes; import siprp.database.cayenne.objects.TrabalhadoresProcesso; import siprp.database.cayenne.providers.MedicinaDAO; import siprp.logic.SIPRPLogic; import siprp.medicina.MedicinaConstants; import siprp.medicina.processo.ProcessoConstants; import siprp.medicina.processo.detalhes.EstadoChooser; import siprp.medicina.processo.estrutura.FichaAptidaoMutableTreeNode; import siprp.ui.SIPRPWindow.LeafObject; import com.evolute.utils.tables.ColumnizedMappable; public class MedicinaProcessoLogic extends SIPRPLogic { @Action(isSave = false) public static final String SELECT_EMPRESA = "SELECT_EMPRESA"; @Action(isSave = false) public static final String SELECT_ESTABELECIMENTO = "SELECT_ESTABLECIMENTO"; @Action(isSave = false) public static final String LOAD_TRABALHADOR = "LOAD_TRABALHADOR"; @Action(isSave = false) public static final String SELECT_TRABALHADOR = "SELECT_TRABALHADOR"; @Action(isSave = false) public static final String SELECT_PROCESSO = "SELECT_PROCESSO"; @Action(isSave = false) public static final String SELECT_CONSULTA = "SELECT_CONSULTA"; @Action(isSave = false) public static final String SELECT_CONSULTA_MARCACAO = "SELECT_CONSULTA_MARCACAO"; @Action(isSave = false) public static final String SELECT_CONSULTA_MARCACAO_EMAIL = "SELECT_CONSULTA_MARCACAO_EMAIL"; @Action(isSave = false) public static final String SELECT_CONSULTA_MARCACAO_OBSERVACAO = "SELECT_CONSULTA_MARCACAO_OBSERVACAO"; @Action(isSave = false) public static final String SELECT_EXAME = "SELECT_EXAME"; @Action(isSave = false) public static final String SELECT_EXAME_MARCACAO = "SELECT_EXAME_MARCACAO"; @Action(isSave = false) public static final String SELECT_EXAME_MARCACAO_EMAIL = "SELECT_EXAME_MARCACAO_EMAIL"; @Action(isSave = false) public static final String SELECT_EXAME_MARCACAO_OBSERVACAO = "SELECT_EXAME_MARCACAO_OBSERVACAO"; @Action(isSave = false) public static final String SELECT_FICHA = "SELECT_FICHA"; @Action(isSave = false) public static final String SELECT_TREE_NODE = "SELECT_TREE_NODE"; @Action(isSave = false) public static final String CREATE_PROCESSO = "CREATE_PROCESSO"; @Action(isSave = false) public static final String CREATE_CONSULTA = "CREATE_CONSULTA"; @Action(isSave = false) public static final String CREATE_CONSULTA_MARCACAO = "CREATE_CONSULTA_MARCACAO"; @Action(isSave = false) public static final String CREATE_CONSULTA_MARCACAO_EMAIL = "CREATE_CONSULTA_MARCACAO_EMAIL"; @Action(isSave = false) public static final String CREATE_CONSULTA_MARCACAO_OBSERVACOES = "CREATE_CONSULTA_MARCACAO_OBSERVACOES"; @Action(isSave = false) public static final String CREATE_EXAME = "CREATE_EXAME"; @Action(isSave = false) public static final String CREATE_EXAME_MARCACAO = "CREATE_EXAME_MARCACAO"; @Action(isSave = false) public static final String CREATE_EXAME_MARCACAO_EMAIL = "CREATE_EXAME_MARCACAO_EMAIL"; @Action(isSave = false) public static final String CREATE_EXAME_MARCACAO_OBSERVACOES = "CREATE_EXAME_MARCACAO_OBSERVACOES"; @Action(isSave = true) public static final String SAVE_PROCESSO = "SAVE_PROCESSO"; @Action(isSave = true) public static final String SAVE_CONSULTA = "SAVE_CONSULTA"; @Action(isSave = true) public static final String SAVE_CONSULTA_MARCACAO = "SAVE_CONSULTA_MARCACAO"; @Action(isSave = true) public static final String SAVE_CONSULTA_MARCACAO_EMAIL = "SAVE_CONSULTA_MARCACAO_EMAIL"; @Action(isSave = true) public static final String SAVE_CONSULTA_MARCACAO_OBSERVACOES = "SAVE_CONSULTA_MARCACAO_OBSERVACOES"; @Action(isSave = true) public static final String SAVE_FICHA = "SAVE_FICHA"; @Action(isSave = true) public static final String SAVE_EXAME = "SAVE_EXAME"; @Action(isSave = true) public static final String SAVE_EXAME_MARCACAO = "SAVE_EXAME_MARCACAO"; @Action(isSave = true) public static final String SAVE_EXAME_MARCACAO_EMAIL = "SAVE_EXAME_MARCACAO_EMAIL"; @Action(isSave = true) public static final String SAVE_EXAME_MARCACAO_OBSERVACOES = "SAVE_EXAME_MARCACAO_OBSERVACOES"; @Action(isSave = true) public static final String FECHAR_PROCESSO = "FECHAR_PROCESSO"; @Action(isSave = false) public static final String REFRESH = "REFRESH"; @Action(isSave = false) public static final String CLOSE = "CLOSE"; @Action(isSave = true) public static final String DESMARCAR_SIPRP_CONSULTA_MARCACAO = "DESMARCAR_SIPRP_CONSULTA_MARCACAO"; @Action(isSave = true) public static final String DESMARCAR_TRABALHADOR_CONSULTA_MARCACAO = "DESMARCAR_TRABALHADOR_CONSULTA_MARCACAO"; @Action(isSave = true) public static final String REALIZAR_CONSULTA_MARCACAO = "REALIZAR_CONSULTA_MARCACAO"; @Action(isSave = true) public static final String FALTOU_CONSULTA_MARCACAO = "FALTOU_CONSULTA_MARCACAO"; @Action(isSave = true) public static final String DESMARCAR_SIPRP_EXAME_MARCACAO = "DESMARCAR_SIPRP_EXAME_MARCACAO"; @Action(isSave = true) public static final String DESMARCAR_TRABALHADOR_EXAME_MARCACAO = "DESMARCAR_TRABALHADOR_EXAME_MARCACAO"; @Action(isSave = true) public static final String REALIZAR_EXAME_MARCACAO = "REALIZAR_EXAME_MARCACAO"; @Action(isSave = true) public static final String FALTOU_EXAME_MARCACAO = "FALTOU_EXAME_MARCACAO"; @Action(isSave = true) public static final String ANULAR_EXAME_MARCACAO = "ANULAR_EXAME_MARCACAO"; private MedicinaDAO provider = null; private Trabalhadores currentTrabalhador = null; @LeafObject(useWithAction = SAVE_PROCESSO) public TrabalhadoresProcesso currentProcesso = null; @LeafObject(useWithAction = SAVE_CONSULTA) public TrabalhadoresConsultas currentConsulta = null; @LeafObject(useWithAction = SAVE_CONSULTA_MARCACAO) public TrabalhadoresConsultasDatas currentConsultaMarcacao = null; @LeafObject(useWithAction = SAVE_CONSULTA_MARCACAO_EMAIL) public TrabalhadoresConsultasDatasEmails currentConsultaMarcacaoEmail = null; @LeafObject(useWithAction = SAVE_CONSULTA_MARCACAO_OBSERVACOES) public TrabalhadoresConsultasDatasObservacoes currentConsultaMarcacaoObservacao = null; @LeafObject(useWithAction = SAVE_FICHA) public FichaAptidaoMutableTreeNode currentFicha = null; @LeafObject(useWithAction = SAVE_EXAME_MARCACAO_OBSERVACOES) public TrabalhadoresEcdsDatasObservacoes currentExameMarcacaoObservacao = null; @LeafObject(useWithAction = SAVE_EXAME_MARCACAO_EMAIL) public TrabalhadoresEcdsDatasEmails currentExameMarcacaoEmail = null; @LeafObject(useWithAction = SAVE_EXAME_MARCACAO) public TrabalhadoresEcdsDatas currentExameMarcacao = null; @LeafObject(useWithAction = SAVE_EXAME) public TrabalhadoresEcds currentExame = null; public MedicinaProcessoLogic() { try { provider = new MedicinaDAO(); } catch( Exception e ) { e.printStackTrace( System.out ); } } @LeafLogicActionBinding(actions = { ACTION_STARTUP }) public Vector getAllEmpresas() { return provider.getAllEmpresas(); } @LeafLogicActionBinding(actions = { SELECT_EMPRESA }) public Vector getEstabelecimentosForEmpresa( Integer empresaID ) { return provider.getEstabelecimentosForEmpresa( empresaID ); } @LeafLogicActionBinding(actions = { SELECT_ESTABELECIMENTO }) public Vector getTrabalhadoresForEstabelecimento( Integer estabelecimentoID ) { return provider.getTrabalhadoresForEstabelecimento( estabelecimentoID ); } @LeafLogicActionBinding(actions = { LOAD_TRABALHADOR }) public Trabalhadores getDadosTrabalhador( Integer id ) { Trabalhadores result = null; clearAll(); if( id != null ) { result = provider.getTrabalhadorByID( id ); } currentTrabalhador = result; return result; } @LeafLogicActionBinding(actions = FECHAR_PROCESSO) public void fecharProcesso() { if( currentProcesso != null ) { currentProcesso.setDataFim( new Date() ); currentProcesso.setEstado( ProcessoConstants.PROCESSO_FECHADO_CODE ); runActionLater( SAVE_PROCESSO ); } } @LeafLogicActionBinding(actions = DESMARCAR_SIPRP_CONSULTA_MARCACAO) public void desmarcarConsultaSiprp() { if( currentConsultaMarcacao != null ) { currentConsultaMarcacao.setEstado( MedicinaConstants.ESTADO_DESMARCADO_EMPRESA ); runActionLater( SAVE_CONSULTA_MARCACAO ); } } @LeafLogicActionBinding(actions = DESMARCAR_TRABALHADOR_CONSULTA_MARCACAO) public void desmarcarConsultaTrabalhador() { if( currentConsultaMarcacao != null ) { currentConsultaMarcacao.setEstado( MedicinaConstants.ESTADO_DESMARCADO_TRABALHADOR ); runActionLater( SAVE_CONSULTA_MARCACAO ); } } @LeafLogicActionBinding(actions = FALTOU_CONSULTA_MARCACAO) public void faltouConsulta() { if( currentConsultaMarcacao != null ) { currentConsultaMarcacao.setEstado( MedicinaConstants.ESTADO_FALTOU ); runActionLater( SAVE_CONSULTA_MARCACAO ); } } @LeafLogicActionBinding(actions = REALIZAR_CONSULTA_MARCACAO) public void realizarConsulta() { if( currentConsultaMarcacao != null ) { currentConsultaMarcacao.setEstado( MedicinaConstants.ESTADO_REALIZADO ); runActionLater( SAVE_CONSULTA_MARCACAO ); } } @LeafLogicActionBinding(actions = DESMARCAR_SIPRP_EXAME_MARCACAO) public void desmarcarExameSiprp() { if( currentExameMarcacao != null ) { currentExameMarcacao.setEstado( MedicinaConstants.ESTADO_DESMARCADO_EMPRESA ); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = DESMARCAR_TRABALHADOR_EXAME_MARCACAO) public void desmarcarExameTrabalhador() { if( currentExameMarcacao != null ) { currentExameMarcacao.setEstado( MedicinaConstants.ESTADO_DESMARCADO_TRABALHADOR ); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = FALTOU_EXAME_MARCACAO) public void faltouExame() { if( currentExameMarcacao != null ) { currentExameMarcacao.setEstado( MedicinaConstants.ESTADO_FALTOU ); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = ANULAR_EXAME_MARCACAO) public void anularExame() { if( currentExameMarcacao != null ) { currentExameMarcacao.setEstado( MedicinaConstants.ESTADO_ANULADO ); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = REALIZAR_EXAME_MARCACAO) public void realizarExame() { if( currentExameMarcacao != null ) { currentExameMarcacao.setEstado( MedicinaConstants.ESTADO_REALIZADO ); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = { SELECT_TREE_NODE }) public DefaultMutableTreeNode nodeSelected( DefaultMutableTreeNode node ) { String action = null; if( node.getUserObject() == null ) { } else if( node.getUserObject() instanceof Trabalhadores ) { action = SELECT_TRABALHADOR; currentTrabalhador = (Trabalhadores) node.getUserObject(); } else if( node.getUserObject() instanceof TrabalhadoresProcesso ) { action = SELECT_PROCESSO; currentProcesso = (TrabalhadoresProcesso) node.getUserObject(); } else if( node.getUserObject() instanceof TrabalhadoresConsultas ) { action = SELECT_CONSULTA; currentConsulta = (TrabalhadoresConsultas) node.getUserObject(); } else if( node.getUserObject() instanceof TrabalhadoresConsultasDatas ) { action = SELECT_CONSULTA_MARCACAO; currentConsultaMarcacao = (TrabalhadoresConsultasDatas) node.getUserObject(); } else if( node.getUserObject() instanceof TrabalhadoresConsultasDatasObservacoes ) { action = SELECT_CONSULTA_MARCACAO_OBSERVACAO; currentConsultaMarcacaoObservacao = (TrabalhadoresConsultasDatasObservacoes) node.getUserObject(); } else if( node.getUserObject() instanceof TrabalhadoresConsultasDatasEmails ) { action = SELECT_CONSULTA_MARCACAO_EMAIL; currentConsultaMarcacaoEmail = (TrabalhadoresConsultasDatasEmails) node.getUserObject(); } else if( node.getUserObject() instanceof TrabalhadoresEcds ) { action = SELECT_EXAME; currentExame = (TrabalhadoresEcds) node.getUserObject(); } else if( node.getUserObject() instanceof TrabalhadoresEcdsDatas ) { action = SELECT_EXAME_MARCACAO; currentExameMarcacao = (TrabalhadoresEcdsDatas) node.getUserObject(); } else if( node.getUserObject() instanceof TrabalhadoresEcdsDatasEmails ) { action = SELECT_EXAME_MARCACAO_EMAIL; currentExameMarcacaoEmail = (TrabalhadoresEcdsDatasEmails) node.getUserObject(); } else if( node.getUserObject() instanceof TrabalhadoresEcdsDatasObservacoes ) { action = SELECT_EXAME_MARCACAO_OBSERVACAO; currentExameMarcacaoObservacao = (TrabalhadoresEcdsDatasObservacoes) node.getUserObject(); } else if( node instanceof FichaAptidaoMutableTreeNode ) { action = SELECT_FICHA; currentFicha = (FichaAptidaoMutableTreeNode) node.getUserObject(); } runAction( action, node.getUserObject() ); return node; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA }) public TrabalhadoresConsultas createConsulta() { currentConsulta = new TrabalhadoresConsultas(); currentConsulta.setToTrabalhadores( currentTrabalhador ); currentConsulta.setToTrabalhadoresProcesso( currentProcesso ); currentConsulta.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); return currentConsulta; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA_MARCACAO }) public TrabalhadoresConsultasDatas createConsultaMarcacao() { currentConsultaMarcacao = new TrabalhadoresConsultasDatas(); currentConsultaMarcacao.setToTrabalhadoresConsultas( currentConsulta ); currentConsultaMarcacao.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); runActionLater( SAVE_CONSULTA_MARCACAO ); return currentConsultaMarcacao; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA_MARCACAO_EMAIL }) public TrabalhadoresConsultasDatasEmails createConsultaMarcacaoEmails() { currentConsultaMarcacaoEmail = new TrabalhadoresConsultasDatasEmails(); currentConsultaMarcacaoEmail.setToTrabalhadoresConsultasDatas( currentConsultaMarcacao ); runActionLater( SAVE_CONSULTA_MARCACAO_EMAIL ); return currentConsultaMarcacaoEmail; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA_MARCACAO_OBSERVACOES }) public TrabalhadoresConsultasDatasObservacoes createConsultaMarcacaoObservacoes() { currentConsultaMarcacaoObservacao = new TrabalhadoresConsultasDatasObservacoes(); currentConsultaMarcacaoObservacao.setToTrabalhadoresConsultasDatas( currentConsultaMarcacao ); runActionLater( SAVE_CONSULTA_MARCACAO_OBSERVACOES ); return currentConsultaMarcacaoObservacao; } @LeafLogicActionBinding(actions = CREATE_EXAME) public TrabalhadoresEcds createExame() { currentExame = new TrabalhadoresEcds(); currentExame.setToTrabalhadores( currentTrabalhador ); currentExame.setToTrabalhadoresProcesso( currentProcesso ); currentExame.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); runActionLater( SAVE_EXAME ); return currentExame; } @LeafLogicActionBinding(actions = CREATE_EXAME_MARCACAO) public TrabalhadoresEcdsDatas createExameMarcacao() { currentExameMarcacao = new TrabalhadoresEcdsDatas(); currentExameMarcacao.setToTrabalhadoresEcds( currentExame ); currentExameMarcacao.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); runActionLater( SAVE_EXAME_MARCACAO ); return currentExameMarcacao; } @LeafLogicActionBinding(actions = CREATE_EXAME_MARCACAO_OBSERVACOES) public TrabalhadoresEcdsDatasObservacoes createExameMarcacaoObservacao() { currentExameMarcacaoObservacao = new TrabalhadoresEcdsDatasObservacoes(); currentExameMarcacaoObservacao.setToTrabalhadoresEcdsDatas( currentExameMarcacao ); runActionLater( SAVE_EXAME_MARCACAO_OBSERVACOES ); return currentExameMarcacaoObservacao; } @LeafLogicActionBinding(actions = CREATE_EXAME_MARCACAO_EMAIL) public TrabalhadoresEcdsDatasEmails createExameMarcacaoEmail() { currentExameMarcacaoEmail = new TrabalhadoresEcdsDatasEmails(); currentExameMarcacaoEmail.setToTrabalhadoresEcdsDatas( currentExameMarcacao ); runActionLater( SAVE_EXAME_MARCACAO_EMAIL ); return currentExameMarcacaoEmail; } @LeafLogicActionBinding(actions = CREATE_PROCESSO) public TrabalhadoresProcesso createProcesso() { currentProcesso = new TrabalhadoresProcesso(); currentProcesso.setDataInicio( new Date() ); currentProcesso.setEstado( ProcessoConstants.PROCESSO_ABERTO_CODE ); currentProcesso.setToTrabalhadores( currentTrabalhador ); runActionLater( SAVE_PROCESSO ); return currentProcesso; } @LeafLogicActionBinding(actions = { SAVE_PROCESSO, SAVE_CONSULTA, SAVE_CONSULTA_MARCACAO, SAVE_CONSULTA_MARCACAO_EMAIL, SAVE_CONSULTA_MARCACAO_OBSERVACOES, SAVE_EXAME, SAVE_EXAME_MARCACAO, SAVE_EXAME_MARCACAO_EMAIL, SAVE_EXAME_MARCACAO_OBSERVACOES }) public void saveObject( BaseObject object ) { provider.saveObject( object ); runAction( REFRESH ); } private void clearAll() { currentConsulta = null; currentConsultaMarcacao = null; currentConsultaMarcacaoEmail = null; currentConsultaMarcacaoObservacao = null; currentExame = null; currentExameMarcacao = null; currentExameMarcacaoEmail = null; currentExameMarcacaoObservacao = null; currentFicha = null; currentProcesso = null; currentTrabalhador = null; } }