package siprp.medicina.processo.logic; import java.util.Date; import java.util.List; import javax.swing.tree.DefaultMutableTreeNode; import leaf.ui.LeafDialog; import leaf.ui.LeafLogic; import leaf.ui.LeafWindow.LeafObject; import siprp.MedicinaConstants; import siprp.ProcessoConstants; import siprp.data.BaseObject; import siprp.data.outer.EmpresasData; import siprp.data.outer.EstabelecimentosData; import siprp.data.outer.ExamesData; import siprp.data.outer.LembretesData; import siprp.data.outer.PrestadoresData; import siprp.data.outer.TrabalhadoresConsultasData; import siprp.data.outer.TrabalhadoresConsultasDatasData; import siprp.data.outer.TrabalhadoresConsultasDatasEmailsData; import siprp.data.outer.TrabalhadoresConsultasDatasObservacoesData; import siprp.data.outer.TrabalhadoresData; import siprp.data.outer.TrabalhadoresEcdData; import siprp.data.outer.TrabalhadoresEcdsData; import siprp.data.outer.TrabalhadoresEcdsDatasData; import siprp.data.outer.TrabalhadoresEcdsDatasEmailsData; import siprp.data.outer.TrabalhadoresEcdsDatasObservacoesData; import siprp.data.outer.TrabalhadoresFichasAptidaoData; import siprp.data.outer.TrabalhadoresProcessoData; import siprp.data.provider.MedicinaDataProvider; import siprp.ficha.FichaWindow; import siprp.ficha.SaveExameListener; import siprp.lembretes.LembretesConstants; import siprp.lembretes.LembretesDataProvider; 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_LEMBRETE = "CREATE_LEMBRETE"; @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_EMAIL_VACINAS = "CREATE_CONSULTA_MARCACAO_EMAIL_VACINAS"; @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_LEMBRETE = "SAVE_LEMBRETE"; @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 APAGAR_CONSULTA = "APAGAR_CONSULTA"; @Action(isSave = false) public static final String APAGAR_CONSULTA_MARCACAO = "APAGAR_CONSULTA_MARCACAO"; @Action(isSave = false) public static final String APAGAR_EXAME = "APAGAR_EXAME"; @Action(isSave = false) public static final String APAGAR_EXAME_MARCACAO = "APAGAR_EXAME_MARCACAO"; @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 LembretesDataProvider lembretesDataProvider = null; private MedicinaDataProvider provider = null; public EmpresasData currentEmpresa = null; public EstabelecimentosData currentEstabelecimento = null; @LeafObject(useWith = LOAD_TRABALHADOR) public TrabalhadoresData currentTrabalhador = null; @LeafObject(useWith = { SAVE_PROCESSO, APAGAR_PROCESSO }) public TrabalhadoresProcessoData currentProcesso = null; @LeafObject(useWith = { SAVE_CONSULTA, APAGAR_CONSULTA }) public TrabalhadoresConsultasData currentConsulta = null; @LeafObject(useWith = { SAVE_CONSULTA_MARCACAO, APAGAR_CONSULTA_MARCACAO }) public TrabalhadoresConsultasDatasData currentConsultaMarcacao = null; @LeafObject(useWith = SAVE_CONSULTA_MARCACAO_EMAIL) public TrabalhadoresConsultasDatasEmailsData currentConsultaMarcacaoEmail = null; @LeafObject(useWith = SAVE_CONSULTA_MARCACAO_OBSERVACOES) public TrabalhadoresConsultasDatasObservacoesData currentConsultaMarcacaoObservacao = null; @LeafObject(useWith = SAVE_FICHA) public TrabalhadoresFichasAptidaoData currentFicha = null; @LeafObject(useWith = SAVE_EXAME_MARCACAO_OBSERVACOES) public TrabalhadoresEcdsDatasObservacoesData currentExameMarcacaoObservacao = null; @LeafObject(useWith = SAVE_EXAME_MARCACAO_EMAIL) public TrabalhadoresEcdsDatasEmailsData currentExameMarcacaoEmail = null; @LeafObject(useWith = { SAVE_EXAME_MARCACAO, REALIZAR_PARCIAL_EXAME_MARCACAO, APAGAR_EXAME_MARCACAO }) public TrabalhadoresEcdsDatasData currentExameMarcacao = null; @LeafObject(useWith = { SAVE_EXAME, APAGAR_EXAME }) public TrabalhadoresEcdsData currentExame = null; public Integer currentFichaExameID = null; public MedicinaProcessoLogic() { try { provider = MedicinaDataProvider.getProvider(); lembretesDataProvider = new LembretesDataProvider(); } catch( Exception e ) { e.printStackTrace( System.out ); } } @LeafLogicActionBinding(actions = { ACTION_STARTUP }) public List getAllEmpresas() { return provider.getAllEmpresas(); } @LeafLogicActionBinding(actions = { SELECT_EMPRESA }) public EmpresasData setEmpresa( EmpresasData empresa ) { currentEmpresa = empresa; return currentEmpresa; } @LeafLogicActionBinding(actions = { SELECT_ESTABELECIMENTO }) public EstabelecimentosData setEstabelecimento( EstabelecimentosData estabelecimento ) { currentEstabelecimento = estabelecimento; return currentEstabelecimento; } @LeafLogicActionBinding(actions = { LOAD_TRABALHADOR }) public TrabalhadoresData getDadosTrabalhador( TrabalhadoresData 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.setData_fim( 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 ); } } private void novoLembreteRemarcacao( String mensagem, boolean isConsulta ) { Integer tipoID = lembretesDataProvider.getTipoLembreteIDByCodigo( LembretesConstants.CODE_REMARCACOES ); try { if( isConsulta && currentEmpresa != null && currentEstabelecimento != null && currentTrabalhador != null && currentConsultaMarcacao != null ) { lembretesDataProvider.criarLembreteConsulta( tipoID, new Date(), mensagem, null, currentEmpresa.getId(), currentEstabelecimento.getId(), currentTrabalhador.getId(), currentConsultaMarcacao.getId() ); } else { lembretesDataProvider.criarLembreteExame( tipoID, new Date(), mensagem, null, currentEmpresa.getId(), currentEstabelecimento.getId(), currentTrabalhador.getId(), currentExameMarcacao.getId() ); } } catch( Exception e ) { e.printStackTrace(); } } @LeafLogicActionBinding(actions = DESMARCAR_SIPRP_CONSULTA_MARCACAO) public void desmarcarConsultaSiprp() { if( currentConsultaMarcacao != null ) { currentConsultaMarcacao.setEstado( MedicinaConstants.ESTADO_DESMARCADO_EMPRESA ); novoLembreteRemarcacao( MedicinaConstants.LEMBRETE_DESMARCOU_SIPRP_STRING, true ); runActionLater( SAVE_CONSULTA_MARCACAO ); } } @LeafLogicActionBinding(actions = DESMARCAR_TRABALHADOR_CONSULTA_MARCACAO) public void desmarcarConsultaTrabalhador() { if( currentConsultaMarcacao != null ) { currentConsultaMarcacao.setEstado( MedicinaConstants.ESTADO_DESMARCADO_TRABALHADOR ); novoLembreteRemarcacao( MedicinaConstants.LEMBRETE_DESMARCOU_TRABALHADOR_STRING, true ); runActionLater( SAVE_CONSULTA_MARCACAO ); } } @LeafLogicActionBinding(actions = FALTOU_CONSULTA_MARCACAO) public void faltouConsulta() { if( currentConsultaMarcacao != null ) { currentConsultaMarcacao.setEstado( MedicinaConstants.ESTADO_FALTOU ); novoLembreteRemarcacao( MedicinaConstants.LEMBRETE_FALTOU_TRABALHADOR_STRING, true ); 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(); novoLembreteRemarcacao( MedicinaConstants.LEMBRETE_DESMARCOU_SIPRP_STRING, false ); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = DESMARCAR_TRABALHADOR_EXAME_MARCACAO) public void desmarcarExameTrabalhador() { if( currentExameMarcacao != null ) { currentExameMarcacao.desmarcarTrabalhador(); novoLembreteRemarcacao( MedicinaConstants.LEMBRETE_DESMARCOU_TRABALHADOR_STRING, false ); runActionLater( SAVE_EXAME_MARCACAO ); } } @LeafLogicActionBinding(actions = FALTOU_EXAME_MARCACAO) public void faltouExame() { if( currentExameMarcacao != null ) { currentExameMarcacao.faltou(); novoLembreteRemarcacao( MedicinaConstants.LEMBRETE_FALTOU_TRABALHADOR_STRING, false ); 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_TRABALHADOR) public TrabalhadoresData selectTrabalhador( TrabalhadoresData trabalhador ) { this.currentTrabalhador = trabalhador; return this.currentTrabalhador; } @LeafLogicActionBinding(actions = SELECT_PROCESSO) public TrabalhadoresProcessoData selectProcesso( TrabalhadoresProcessoData processo ) { this.currentProcesso = processo; return this.currentProcesso; } @LeafLogicActionBinding(actions = SELECT_CONSULTA) public TrabalhadoresConsultasData selectConsulta( TrabalhadoresConsultasData consulta ) { this.currentConsulta = consulta; return this.currentConsulta; } @LeafLogicActionBinding(actions = SELECT_CONSULTA_MARCACAO) public TrabalhadoresConsultasDatasData selectConsultaMarcacao( TrabalhadoresConsultasDatasData consultaMarcacao ) { this.currentConsultaMarcacao = consultaMarcacao; return this.currentConsultaMarcacao; } @LeafLogicActionBinding(actions = SELECT_CONSULTA_MARCACAO_EMAIL) public TrabalhadoresConsultasDatasEmailsData selectConsultaMarcacaoEmail( TrabalhadoresConsultasDatasEmailsData consultaMarcacaoEmail ) { this.currentConsultaMarcacaoEmail = consultaMarcacaoEmail; return this.currentConsultaMarcacaoEmail; } @LeafLogicActionBinding(actions = SELECT_CONSULTA_MARCACAO_OBSERVACAO) public TrabalhadoresConsultasDatasObservacoesData selectConsultaMarcacaoObservacoes( TrabalhadoresConsultasDatasObservacoesData consultaMarcacaoObservacoes ) { this.currentConsultaMarcacaoObservacao = consultaMarcacaoObservacoes; return this.currentConsultaMarcacaoObservacao; } @LeafLogicActionBinding(actions = SELECT_EXAME) public TrabalhadoresEcdsData selectExame( TrabalhadoresEcdsData exame ) { this.currentExame = exame; return this.currentExame; } @LeafLogicActionBinding(actions = SELECT_EXAME_MARCACAO) public TrabalhadoresEcdsDatasData selectExameMarcacao( TrabalhadoresEcdsDatasData exameMarcacao ) { this.currentExameMarcacao = exameMarcacao; return this.currentExameMarcacao; } @LeafLogicActionBinding(actions = SELECT_EXAME_MARCACAO_EMAIL) public TrabalhadoresEcdsDatasEmailsData selectExameMarcacaoEmail( TrabalhadoresEcdsDatasEmailsData exameMarcacaoEmail ) { this.currentExameMarcacaoEmail = exameMarcacaoEmail; return this.currentExameMarcacaoEmail; } @LeafLogicActionBinding(actions = SELECT_EXAME_MARCACAO_OBSERVACAO) public TrabalhadoresEcdsDatasObservacoesData selectExameMarcacaoObservacoes( TrabalhadoresEcdsDatasObservacoesData exameMarcacaoObservacoes ) { this.currentExameMarcacaoObservacao = exameMarcacaoObservacoes; return this.currentExameMarcacaoObservacao; } @LeafLogicActionBinding(actions = SELECT_FICHA) public TrabalhadoresFichasAptidaoData selectFichaAptidao( TrabalhadoresFichasAptidaoData ficha ) { this.currentFicha = ficha; return this.currentFicha; } @LeafLogicActionBinding(actions = { SELECT_TREE_NODE }) public DefaultMutableTreeNode nodeSelected( DefaultMutableTreeNode node ) { String action = null; if( node.getUserObject() == null ) { } else if( node.getUserObject() instanceof TrabalhadoresData ) { action = SELECT_TRABALHADOR; } else if( node.getUserObject() instanceof TrabalhadoresProcessoData ) { action = SELECT_PROCESSO; } else if( node.getUserObject() instanceof TrabalhadoresConsultasData ) { action = SELECT_CONSULTA; } else if( node.getUserObject() instanceof TrabalhadoresConsultasDatasData ) { action = SELECT_CONSULTA_MARCACAO; } else if( node.getUserObject() instanceof TrabalhadoresConsultasDatasObservacoesData ) { action = SELECT_CONSULTA_MARCACAO_OBSERVACAO; } else if( node.getUserObject() instanceof TrabalhadoresConsultasDatasEmailsData ) { action = SELECT_CONSULTA_MARCACAO_EMAIL; } else if( node.getUserObject() instanceof TrabalhadoresEcdsData ) { action = SELECT_EXAME; } else if( node.getUserObject() instanceof TrabalhadoresEcdsDatasData ) { action = SELECT_EXAME_MARCACAO; } else if( node.getUserObject() instanceof TrabalhadoresEcdsDatasEmailsData ) { action = SELECT_EXAME_MARCACAO_EMAIL; } else if( node.getUserObject() instanceof TrabalhadoresEcdsDatasObservacoesData ) { action = SELECT_EXAME_MARCACAO_OBSERVACAO; } else if( node instanceof FichaAptidaoMutableTreeNode ) { action = SELECT_FICHA; } runAction( action, node.getUserObject() ); return node; } @LeafLogicActionBinding(actions = { CREATE_FICHA }) public void createFicha() { try { FichaWindow fichaWindow = FichaWindow.getWindow(); if( fichaWindow != null ) { currentFicha = new TrabalhadoresFichasAptidaoData(); currentFicha.setToProcesso_id( currentProcesso ); Date data = getUltimaConsultaMarcacaoDateForProcesso(); fichaWindow.editTrabalhador( currentTrabalhador.getId(), data, currentProcesso.getMotivo(), new SaveExameListener() { @Override public void exameSaved( Integer trabalhadorID, Integer exameID ) { try { if( trabalhadorID != null && exameID != null ) { if( trabalhadorID.equals( currentTrabalhador.getId() ) ) { currentFichaExameID = exameID; ExamesData exame = provider.getExameForExameID( currentFichaExameID ); if( exame != null ) { currentFicha.setToExame_id( exame ); currentFicha.save(); runAction( REFRESH ); } } } } catch( Exception e ) { LeafDialog.error( e ); } } } ); } } catch( Exception e ) { e.printStackTrace(); } } private Date getUltimaConsultaMarcacaoDateForProcesso() { Date result = null; if( currentProcesso != null ) { List consultas = currentProcesso.fromTrabalhadoresConsultas_processo_id(); for( TrabalhadoresConsultasData consulta : consultas ) { if( new Integer( MedicinaConstants.ESTADO_REALIZADO ).equals( consulta.getEstado() ) ) { List marcacoes = consulta.fromTrabalhadoresConsultasDatas_trabalhadores_consultas_id(); for( TrabalhadoresConsultasDatasData marcacao : marcacoes ) { if( new Integer( MedicinaConstants.ESTADO_REALIZADO ).equals( marcacao.getEstado() ) ) { Date marcacaoDate = marcacao.getData(); if( marcacaoDate != null && (result == null || result.before( marcacaoDate )) ) { result = marcacaoDate; } } } } } } return result; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA }) public TrabalhadoresConsultasData createConsulta() { currentConsulta = new TrabalhadoresConsultasData(); currentConsulta.setToTrabalhador_id( currentTrabalhador ); currentConsulta.setToProcesso_id( currentProcesso ); currentConsulta.setToPrestador_id( getPrestador( true ) ); currentConsulta.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); return currentConsulta; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA_MARCACAO }) public TrabalhadoresConsultasDatasData createConsultaMarcacao() { currentConsultaMarcacao = new TrabalhadoresConsultasDatasData(); currentConsultaMarcacao.setToTrabalhadores_consultas_id( currentConsulta ); currentConsultaMarcacao.setToPrestador_id( getPrestador( true ) ); currentConsultaMarcacao.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); runActionLater( SAVE_CONSULTA_MARCACAO ); return currentConsultaMarcacao; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA_MARCACAO_EMAIL }) public TrabalhadoresConsultasDatasEmailsData createConsultaMarcacaoEmails() { currentConsultaMarcacaoEmail = new TrabalhadoresConsultasDatasEmailsData(); currentConsultaMarcacaoEmail.setToTrabalhadores_consultas_datas_id( currentConsultaMarcacao ); runActionLater( SAVE_CONSULTA_MARCACAO_EMAIL ); return currentConsultaMarcacaoEmail; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA_MARCACAO_EMAIL_VACINAS }) public TrabalhadoresConsultasDatasEmailsData createConsultaMarcacaoEmailsVacinas() { currentConsultaMarcacaoEmail = new TrabalhadoresConsultasDatasEmailsData(); currentConsultaMarcacaoEmail.setToTrabalhadores_consultas_datas_id( currentConsultaMarcacao ); runActionLater( SAVE_CONSULTA_MARCACAO_EMAIL ); return currentConsultaMarcacaoEmail; } @LeafLogicActionBinding(actions = { CREATE_CONSULTA_MARCACAO_OBSERVACOES }) public TrabalhadoresConsultasDatasObservacoesData createConsultaMarcacaoObservacoes() { currentConsultaMarcacaoObservacao = new TrabalhadoresConsultasDatasObservacoesData(); currentConsultaMarcacaoObservacao.setToTrabalhadores_consultas_datas_id( currentConsultaMarcacao ); runActionLater( SAVE_CONSULTA_MARCACAO_OBSERVACOES ); return currentConsultaMarcacaoObservacao; } @LeafLogicActionBinding(actions = CREATE_EXAME) public TrabalhadoresEcdsData createExame() { currentExame = new TrabalhadoresEcdsData(); currentExame.setToTrabalhador_id( currentTrabalhador ); currentExame.setToProcesso_id( currentProcesso ); currentExame.setEstado( MedicinaConstants.ESTADO_POR_REALIZAR ); runActionLater( SAVE_EXAME ); return currentExame; } @LeafLogicActionBinding(actions = CREATE_EXAME_MARCACAO) public TrabalhadoresEcdsDatasData createExameMarcacao() { currentExameMarcacao = new TrabalhadoresEcdsDatasData(); currentExameMarcacao.setToTrabalhadores_ecds_id( currentExame ); currentExameMarcacao.setToPrestador_id( getPrestador( false ) ); currentExameMarcacao.setToAnalisador_id( getAnalisador() ); currentExameMarcacao.porRealizar(); runActionLater( SAVE_EXAME_MARCACAO ); return currentExameMarcacao; } @LeafLogicActionBinding(actions = CREATE_EXAME_MARCACAO_OBSERVACOES) public TrabalhadoresEcdsDatasObservacoesData createExameMarcacaoObservacao() { currentExameMarcacaoObservacao = new TrabalhadoresEcdsDatasObservacoesData(); currentExameMarcacaoObservacao.setToTrabalhadores_ecds_datas_id( currentExameMarcacao ); runActionLater( SAVE_EXAME_MARCACAO_OBSERVACOES ); return currentExameMarcacaoObservacao; } @LeafLogicActionBinding(actions = CREATE_EXAME_MARCACAO_EMAIL) public TrabalhadoresEcdsDatasEmailsData createExameMarcacaoEmail() { currentExameMarcacaoEmail = new TrabalhadoresEcdsDatasEmailsData(); currentExameMarcacaoEmail.setToTrabalhadores_ecds_datas_id( currentExameMarcacao ); runActionLater( SAVE_EXAME_MARCACAO_EMAIL ); return currentExameMarcacaoEmail; } @LeafLogicActionBinding(actions = CREATE_PROCESSO) public TrabalhadoresProcessoData createProcesso() { currentProcesso = new TrabalhadoresProcessoData(); currentProcesso.setData_inicio( new Date() ); currentProcesso.setEstado( ProcessoConstants.PROCESSO_ABERTO_CODE ); currentProcesso.setToTrabalhador_id( currentTrabalhador ); currentProcesso.setActivo( "y" ); runActionLater( SAVE_PROCESSO ); return currentProcesso; } @LeafLogicActionBinding(actions = CREATE_LEMBRETE) public LembretesData createLembrete() { LembretesData result = new LembretesData(); result.setToTrabalhador_id( currentTrabalhador ); result.setToEmpresa_id( currentEmpresa ); result.setToEstabelecimento_id( currentEstabelecimento ); result.setToTipo_id( provider.getTipoLembretesCustomizavel() ); runActionLater( SAVE_LEMBRETE, result ); return result; } @LeafLogicActionBinding(actions = { SAVE_PROCESSO, SAVE_LEMBRETE, 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 ) { try { object.save(); runActionLater( REFRESH ); } catch( Exception e ) { LeafDialog.error(e); } } @LeafLogicActionBinding(actions = { APAGAR_CONSULTA, APAGAR_EXAME }) public void deleteObject( BaseObject object ) { if( object instanceof TrabalhadoresConsultasData ) { apagarConsulta( (TrabalhadoresConsultasData) object ); } if( object instanceof TrabalhadoresEcdsData ) { apagarExame( (TrabalhadoresEcdsData) object ); } runActionLater( SELECT_PROCESSO ); } private void apagarConsulta( TrabalhadoresConsultasData consulta ) { try { List marcacoes = consulta.fromTrabalhadoresConsultasDatas_trabalhadores_consultas_id(); if( marcacoes != null ) { for( TrabalhadoresConsultasDatasData marcacao : marcacoes ) { List emails = marcacao.fromTrabalhadoresConsultasDatasEmails_trabalhadores_consultas_datas_id(); if( emails != null ) { for( TrabalhadoresConsultasDatasEmailsData email : emails ) { email.delete(); } } List observacoes = marcacao.fromTrabalhadoresConsultasDatasObservacoes_trabalhadores_consultas_datas_id(); if( observacoes != null ) { for( TrabalhadoresConsultasDatasObservacoesData observacao : observacoes ) { observacao.delete(); } } marcacao.delete(); } consulta.delete(); } } catch( Exception e ) { LeafDialog.error(e); } } private void apagarExame( TrabalhadoresEcdsData exame ) { try { List marcacoes = exame.fromTrabalhadoresEcdsDatas_trabalhadores_ecds_id(); if( marcacoes != null ) { for( TrabalhadoresEcdsDatasData marcacao : marcacoes ) { List ecds = marcacao.fromTrabalhadoresEcd_trabalhadores_ecds_datas_id(); if( ecds != null ) { for( TrabalhadoresEcdData ecd : ecds ) { ecd.delete(); } } List emails = marcacao.fromTrabalhadoresEcdsDatasEmails_trabalhadores_ecds_datas_id(); if( emails != null ) { for( TrabalhadoresEcdsDatasEmailsData email : emails ) { email.delete(); } } List observacoes = marcacao.fromTrabalhadoresEcdsDatasObservacoes_trabalhadores_ecds_datas_id(); if( observacoes != null ) { for( TrabalhadoresEcdsDatasObservacoesData observacao : observacoes ) { observacao.delete(); } } marcacao.delete(); } exame.delete(); } } catch( Exception e ) { LeafDialog.error(e); } } @LeafLogicActionBinding(actions = ACTION_CANCEL) public void abortAction() { //FIXME : rollback // provider.rollback(); runAction( LOAD_TRABALHADOR ); runAction( SELECT_TRABALHADOR ); } private PrestadoresData getPrestador( boolean consulta ) { PrestadoresData result = null; if( currentTrabalhador != null && currentTrabalhador.toEstabelecimento_id() != null ) { result = consulta ? currentTrabalhador.toEstabelecimento_id().toPrestador_consulta_id() : currentTrabalhador.toEstabelecimento_id().toPrestador_ecds_id(); if( PrestadoresData.prestadorNulo.equals( result ) ) { result = null; } } return result; } private PrestadoresData getAnalisador() { return getPrestador( false ); } }