You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SIPRP/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java

930 lines
29 KiB

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<EmpresasData> 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<TrabalhadoresConsultasData> consultas = currentProcesso.fromTrabalhadoresConsultas_processo_id();
for( TrabalhadoresConsultasData consulta : consultas )
{
if( new Integer( MedicinaConstants.ESTADO_REALIZADO ).equals( consulta.getEstado() ) )
{
List<TrabalhadoresConsultasDatasData> 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<TrabalhadoresConsultasDatasData> marcacoes = consulta.fromTrabalhadoresConsultasDatas_trabalhadores_consultas_id();
if( marcacoes != null )
{
for( TrabalhadoresConsultasDatasData marcacao : marcacoes )
{
List<TrabalhadoresConsultasDatasEmailsData> emails = marcacao.fromTrabalhadoresConsultasDatasEmails_trabalhadores_consultas_datas_id();
if( emails != null )
{
for( TrabalhadoresConsultasDatasEmailsData email : emails )
{
email.delete();
}
}
List<TrabalhadoresConsultasDatasObservacoesData> 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<TrabalhadoresEcdsDatasData> marcacoes = exame.fromTrabalhadoresEcdsDatas_trabalhadores_ecds_id();
if( marcacoes != null )
{
for( TrabalhadoresEcdsDatasData marcacao : marcacoes )
{
List<TrabalhadoresEcdData> ecds = marcacao.fromTrabalhadoresEcd_trabalhadores_ecds_datas_id();
if( ecds != null )
{
for( TrabalhadoresEcdData ecd : ecds )
{
ecd.delete();
}
}
List<TrabalhadoresEcdsDatasEmailsData> emails = marcacao.fromTrabalhadoresEcdsDatasEmails_trabalhadores_ecds_datas_id();
if( emails != null )
{
for( TrabalhadoresEcdsDatasEmailsData email : emails )
{
email.delete();
}
}
List<TrabalhadoresEcdsDatasObservacoesData> 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 );
}
}