package siprp.medicina.processo.logic; import java.awt.Dialog.ModalExclusionType; import java.util.Date; import java.util.List; import javax.swing.tree.DefaultMutableTreeNode; import leaf.LeafLogic; import leaf.LeafWindow.LeafObject; import siprp.database.cayenne.objects.BaseObject; import siprp.database.cayenne.objects.Empresas; import siprp.database.cayenne.objects.Estabelecimentos; import siprp.database.cayenne.objects.Prestadores; 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.TrabalhadoresEcds; import siprp.database.cayenne.objects.TrabalhadoresEcdsDatas; import siprp.database.cayenne.objects.TrabalhadoresEcdsDatasEmails; import siprp.database.cayenne.objects.TrabalhadoresEcdsDatasObservacoes; import siprp.database.cayenne.objects.TrabalhadoresFichasAptidao; import siprp.database.cayenne.objects.TrabalhadoresProcesso; import siprp.database.cayenne.providers.MedicinaDAO; import siprp.ficha.FichaAptidaoCreator; import siprp.ficha.FichaWindow; import siprp.medicina.MedicinaConstants; import siprp.medicina.processo.ProcessoConstants; import siprp.medicina.processo.estrutura.FichaAptidaoMutableTreeNode; public class MedicinaProcessoLogic extends LeafLogic { @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_FICHA = "CREATE_FICHA"; @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 APAGAR_PROCESSO = "APAGAR_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 REALIZAR_PARCIAL_EXAME_MARCACAO = "REALIZAR_PARCIAL_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; public Empresas currentEmpresa = null; public Estabelecimentos currentEstabelecimento = null; @LeafObject(useWith = LOAD_TRABALHADOR) public Trabalhadores currentTrabalhador = null; @LeafObject(useWith = { SAVE_PROCESSO, APAGAR_PROCESSO }) public TrabalhadoresProcesso currentProcesso = null; @LeafObject(useWith = SAVE_CONSULTA) public TrabalhadoresConsultas currentConsulta = null; @LeafObject(useWith = SAVE_CONSULTA_MARCACAO) public TrabalhadoresConsultasDatas currentConsultaMarcacao = null; @LeafObject(useWith = SAVE_CONSULTA_MARCACAO_EMAIL) public TrabalhadoresConsultasDatasEmails currentConsultaMarcacaoEmail = null; @LeafObject(useWith = SAVE_CONSULTA_MARCACAO_OBSERVACOES) public TrabalhadoresConsultasDatasObservacoes currentConsultaMarcacaoObservacao = null; @LeafObject(useWith = SAVE_FICHA) public TrabalhadoresFichasAptidao currentFicha = null; @LeafObject(useWith = SAVE_EXAME_MARCACAO_OBSERVACOES) public TrabalhadoresEcdsDatasObservacoes currentExameMarcacaoObservacao = null; @LeafObject(useWith = SAVE_EXAME_MARCACAO_EMAIL) public TrabalhadoresEcdsDatasEmails currentExameMarcacaoEmail = null; @LeafObject(useWith = { SAVE_EXAME_MARCACAO, REALIZAR_PARCIAL_EXAME_MARCACAO }) public TrabalhadoresEcdsDatas currentExameMarcacao = null; @LeafObject(useWith = SAVE_EXAME) public TrabalhadoresEcds currentExame = null; public MedicinaProcessoLogic() { try { provider = new MedicinaDAO(); } catch( Exception e ) { e.printStackTrace( System.out ); } } @LeafLogicActionBinding(actions = { ACTION_STARTUP }) public List getAllEmpresas() { return provider.getAllEmpresas(); } @LeafLogicActionBinding(actions = { SELECT_EMPRESA }) public Empresas setEmpresa( Empresas empresa ) { currentEmpresa = empresa; return currentEmpresa; } @LeafLogicActionBinding(actions = { SELECT_ESTABELECIMENTO }) public Estabelecimentos setEstabelecimento( Estabelecimentos estabelecimento ) { currentEstabelecimento = estabelecimento; return currentEstabelecimento; } @LeafLogicActionBinding(actions = { LOAD_TRABALHADOR }) public Trabalhadores getDadosTrabalhador( Trabalhadores trabalhador ) { // Trabalhadores result = null; // if( id != null ) // { // result = provider.getTrabalhadorByID( id ); // } currentTrabalhador = trabalhador; return currentTrabalhador; } @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 = APAGAR_PROCESSO) public void apagarProcesso() { if( currentProcesso != null && currentProcesso.isEmpty() ) { currentProcesso.setActivo( "n" ); 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.desmarcarSIPRP(); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = DESMARCAR_TRABALHADOR_EXAME_MARCACAO) public void desmarcarExameTrabalhador() { if( currentExameMarcacao != null ) { currentExameMarcacao.desmarcarTrabalhador(); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = FALTOU_EXAME_MARCACAO) public void faltouExame() { if( currentExameMarcacao != null ) { currentExameMarcacao.faltou(); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = ANULAR_EXAME_MARCACAO) public void anularExame() { if( currentExameMarcacao != null ) { currentExameMarcacao.anular(); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = REALIZAR_EXAME_MARCACAO) public void realizarExame() { if( currentExameMarcacao != null ) { currentExameMarcacao.realizar(); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = REALIZAR_PARCIAL_EXAME_MARCACAO) public void realizarParcialExame() { if( currentExameMarcacao != null ) { 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 = (TrabalhadoresFichasAptidao) node.getUserObject(); } runAction( action, node.getUserObject() ); return node; } @LeafLogicActionBinding(actions = { CREATE_FICHA }) public void createFicha() { try { FichaWindow fichaWindow = FichaWindow.getWindow(); if( fichaWindow != null ) { fichaWindow.editTrabalhador( currentTrabalhador.getId(), null ); } } catch( Exception e ) { e.printStackTrace(); } // currentFicha = new TrabalhadoresFichasAptidao(); // currentFicha.setToTrabalhadoresProcesso( currentProcesso ); // return currentFicha; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA }) public TrabalhadoresConsultas createConsulta() { currentConsulta = new TrabalhadoresConsultas(); currentConsulta.setToTrabalhadores( currentTrabalhador ); currentConsulta.setToTrabalhadoresProcesso( currentProcesso ); currentConsulta.setToPrestadores( getPrestador( true ) ); currentConsulta.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); return currentConsulta; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA_MARCACAO }) public TrabalhadoresConsultasDatas createConsultaMarcacao() { currentConsultaMarcacao = new TrabalhadoresConsultasDatas(); currentConsultaMarcacao.setToTrabalhadoresConsultas( currentConsulta ); currentConsultaMarcacao.setToPrestadores( getPrestador( true ) ); 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.setToPrestadores( getPrestador( false ) ); currentExameMarcacao.setToAnalisador( getAnalisador() ); currentExameMarcacao.porRealizar(); 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 ); currentProcesso.setActivo( "y" ); 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 ); runActionLater( REFRESH ); } @LeafLogicActionBinding(actions = ACTION_CANCEL) public void abortAction() { provider.rollback(); runAction( LOAD_TRABALHADOR ); runAction( SELECT_TRABALHADOR ); } private Prestadores getPrestador( boolean consulta ) { Prestadores result = null; if( currentTrabalhador != null && currentTrabalhador.getToEstabelecimentos() != null ) { result = consulta ? currentTrabalhador.getToEstabelecimentos().getToPrestadores() : currentTrabalhador.getToEstabelecimentos().getToPrestadores1(); if(Prestadores.prestadorNulo.equals( result )) { result = null; } } return result; } private Prestadores getAnalisador() { return getPrestador( false ); } }