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.

623 lines
19 KiB

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<Empresas> 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 );
}
}