git-svn-id: https://svn.coded.pt/svn/SIPRP@657 bb69d46d-e84e-40c8-a05a-06db0d633741

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
Frederico Palma 18 years ago
parent 4b3e7cd13d
commit 5990d35326

@ -10,6 +10,7 @@ import java.awt.FileDialog;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FilenameFilter;
import java.text.DateFormat;
@ -22,6 +23,10 @@ import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
import siprp.FichaDataProvider;
import siprp.data.EmpresaData;
import siprp.data.EstabelecimentoData;
@ -762,6 +767,218 @@ public class FichaWindow extends TabbedWindow
return ht;
}
private byte[] createXmlFromExame(final ExameData exame)
throws Exception
{
MedicoData medico = (MedicoData)exame.get( ExameData.MEDICO );
TrabalhadorData trabalhador = (TrabalhadorData) exame.get( ExameData.TRABALHADOR );
EstabelecimentoData estabelecimento = (EstabelecimentoData) trabalhador.get( TrabalhadorData.ESTABELECIMENTO );
EmpresaData empresa = (EmpresaData) estabelecimento.get( EstabelecimentoData.EMPRESA );
Element rootElement = new Element( "FichaAptidao" );
Element portariaElement = new Element( "portaria" );
portariaElement.setText( "Portaria n. 299/2007, de 16 de Março" );
rootElement.addContent( portariaElement );
Element empresaElement = new Element( "empresa" );
Element designacaoSocialEmpresaElement = new Element( "designacao-social" );
designacaoSocialEmpresaElement.setText( ( String )empresa.get( EmpresaData.DESIGNACAO_SOCIAL ) );
empresaElement.addContent( designacaoSocialEmpresaElement );
rootElement.addContent( empresaElement );
Integer tipoServicoSaude = (Integer)empresa.get( EmpresaData.SERVICO_SAUDE_TIPO );
Integer tipoServicoHigieneSeguranca = (Integer)empresa.get( EmpresaData.SERVICO_HIGIENE_TIPO );
Element estabelecimentoElement = new Element( "estabelecimento" );
Element nomeEstabelecimentoElement = new Element( "nome" );
nomeEstabelecimentoElement.setText( ( String )estabelecimento.get( EstabelecimentoData.NOME ) );
estabelecimentoElement.addContent( nomeEstabelecimentoElement );
Element localidadeEstabelecimentoElement = new Element( "localidade" );
localidadeEstabelecimentoElement.setText( ( String )estabelecimento.get( EstabelecimentoData.LOCALIDADE ) );
estabelecimentoElement.addContent( localidadeEstabelecimentoElement );
Element servicoSaudeEstabelecimentoElement = new Element( "servico-saude" );
Element tipoServicoSaudeEstabelecimentoElement = new Element( "tipo" );
Element internoTipoServicoSaudeEstabelecimentoElement = new Element( "interno" );
internoTipoServicoSaudeEstabelecimentoElement.setText( tipoServicoSaude.intValue() == 1 ? "y" : "n" );
tipoServicoSaudeEstabelecimentoElement.addContent( internoTipoServicoSaudeEstabelecimentoElement );
Element interempresasTipoServicoSaudeEstabelecimentoElement = new Element( "interempresas" );
interempresasTipoServicoSaudeEstabelecimentoElement.setText( tipoServicoSaude.intValue() == 2 ? "y" : "n" );
tipoServicoSaudeEstabelecimentoElement.addContent( interempresasTipoServicoSaudeEstabelecimentoElement );
Element externoTipoServicoSaudeEstabelecimentoElement = new Element( "externo" );
externoTipoServicoSaudeEstabelecimentoElement.setText( tipoServicoSaude.intValue() == 3 ? "y" : "n" );
tipoServicoSaudeEstabelecimentoElement.addContent( externoTipoServicoSaudeEstabelecimentoElement );
Element snsTipoServicoSaudeEstabelecimentoElement = new Element( "sns" );
snsTipoServicoSaudeEstabelecimentoElement.setText( tipoServicoSaude.intValue() == 4 ? "y" : "n" );
tipoServicoSaudeEstabelecimentoElement.addContent( snsTipoServicoSaudeEstabelecimentoElement );
servicoSaudeEstabelecimentoElement.addContent( tipoServicoSaudeEstabelecimentoElement );
Element designacaoServicoSaudeEstabelecimentoElement = new Element( "desingacao" );
designacaoServicoSaudeEstabelecimentoElement.setText( ( String )empresa.get( EmpresaData.SERVICO_SAUDE_DESIGNACAO ) );
servicoSaudeEstabelecimentoElement.addContent( designacaoServicoSaudeEstabelecimentoElement );
estabelecimentoElement.addContent( servicoSaudeEstabelecimentoElement );
Element servicoHigieneSegurancaEstabelecimentoElement = new Element( "servico-higiene-seguranca" );
Element tipoServicoHigieneSegurancaEstabelecimentoElement = new Element( "tipo" );
Element internoTipoServicoHigieneSegurancaEstabelecimentoElement = new Element( "interno" );
internoTipoServicoHigieneSegurancaEstabelecimentoElement.setText( tipoServicoHigieneSeguranca.intValue() == 1 ? "y" : "n" );
tipoServicoHigieneSegurancaEstabelecimentoElement.addContent( internoTipoServicoHigieneSegurancaEstabelecimentoElement );
Element interempresasTipoServicoHigieneSegurancaEstabelecimentoElement = new Element( "interempresas" );
interempresasTipoServicoHigieneSegurancaEstabelecimentoElement.setText( tipoServicoHigieneSeguranca.intValue() == 2 ? "y" : "n" );
tipoServicoHigieneSegurancaEstabelecimentoElement.addContent( interempresasTipoServicoHigieneSegurancaEstabelecimentoElement );
Element externoTipoServicoHigieneSegurancaEstabelecimentoElement = new Element( "externo" );
externoTipoServicoHigieneSegurancaEstabelecimentoElement.setText( tipoServicoHigieneSeguranca.intValue() == 3 ? "y" : "n" );
tipoServicoHigieneSegurancaEstabelecimentoElement.addContent( externoTipoServicoHigieneSegurancaEstabelecimentoElement );
Element outroTipoServicoHigieneSegurancaEstabelecimentoElement = new Element( "outro" );
outroTipoServicoHigieneSegurancaEstabelecimentoElement.setText( tipoServicoHigieneSeguranca.intValue() == 4 ? "y" : "n" );
tipoServicoHigieneSegurancaEstabelecimentoElement.addContent( outroTipoServicoHigieneSegurancaEstabelecimentoElement );
servicoHigieneSegurancaEstabelecimentoElement.addContent( tipoServicoHigieneSegurancaEstabelecimentoElement );
Element designacaoServicoHigieneSegurancaEstabelecimentoElement = new Element( "desingacao" );
designacaoServicoHigieneSegurancaEstabelecimentoElement.setText( ( String )empresa.get( EmpresaData.SERVICO_HIGIENE_DESIGNACAO ) );
servicoHigieneSegurancaEstabelecimentoElement.addContent( designacaoServicoHigieneSegurancaEstabelecimentoElement );
estabelecimentoElement.addContent( servicoHigieneSegurancaEstabelecimentoElement );
rootElement.addContent( estabelecimentoElement );
char sexo = ( (String)trabalhador.get( TrabalhadorData.SEXO ) ).charAt( 0 );
DateFormat df = DateFormat.getDateInstance( DateFormat.SHORT );
Date dataNascimento = ( Date )trabalhador.get( TrabalhadorData.DATA_NASCIMENTO );
Date dataAdmissao = ( Date )trabalhador.get( TrabalhadorData.DATA_ADMISSAO );
Date dataAdmissaoFuncao = ( Date )trabalhador.get( TrabalhadorData.DATA_ADMISSAO_FUNCAO );
Element trabalhadorElement = new Element( "trabalhador" );
Element nomeTrabalhadorElement = new Element( "nome" );
nomeTrabalhadorElement.setText( ( String )trabalhador.get( TrabalhadorData.NOME ) );
Element sexoTrabalhadorElement = new Element( "sexo" );
sexoTrabalhadorElement.setText( sexo == 'm' ? "Masculino" : "Feminino" );
trabalhadorElement.addContent( sexoTrabalhadorElement );
Element dataNascimentoTrabalhadorElement = new Element( "data-nascimento" );
dataNascimentoTrabalhadorElement.setText( dataNascimento != null ? df.format( dataNascimento ) : "" );
trabalhadorElement.addContent( dataNascimentoTrabalhadorElement );
Element nacionalidadeTrabalhadorElement = new Element( "nacionalidade" );
nacionalidadeTrabalhadorElement.setText( (String)trabalhador.get( TrabalhadorData.NACIONALIDADE ) );
trabalhadorElement.addContent( nacionalidadeTrabalhadorElement );
trabalhadorElement.addContent( nomeTrabalhadorElement );
Element numeroMecanograficoTrabalhadorElement = new Element( "numero-mecanografico" );
numeroMecanograficoTrabalhadorElement.setText( (String)trabalhador.get( TrabalhadorData.NUMERO_MECANOGRAFICO ) );
trabalhadorElement.addContent( numeroMecanograficoTrabalhadorElement );
Element dataAdmissaoTrabalhadorElement = new Element( "data-admissao" );
dataAdmissaoTrabalhadorElement.setText( dataAdmissao != null ? df.format( dataAdmissao ) : "" );
trabalhadorElement.addContent( dataAdmissaoTrabalhadorElement );
Element categoriaProfissionalTrabalhadorElement = new Element( "categoria-profissional" );
categoriaProfissionalTrabalhadorElement.setText( (String)trabalhador.get( TrabalhadorData.CATEGORIA ) );
trabalhadorElement.addContent( categoriaProfissionalTrabalhadorElement );
Element localTrabalhoTrabalhadorElement = new Element( "local-trabalho" );
localTrabalhoTrabalhadorElement.setText( (String)trabalhador.get( TrabalhadorData.LOCAL_TRABALHO ) );
trabalhadorElement.addContent( localTrabalhoTrabalhadorElement );
Element funcaoPropostaTrabalhadorElement = new Element( "funcao-proposta" );
funcaoPropostaTrabalhadorElement.setText( (String)trabalhador.get( TrabalhadorData.FUNCAO_PROPOSTA ) );
Element dataAdmissaoFuncaoTrabalhadorElement = new Element( "data-admissao-funcao" );
dataAdmissaoFuncaoTrabalhadorElement.setText( dataAdmissaoFuncao != null ? df.format( dataAdmissaoFuncao ) : "" );
trabalhadorElement.addContent( dataAdmissaoFuncaoTrabalhadorElement );
trabalhadorElement.addContent( funcaoPropostaTrabalhadorElement );
rootElement.addContent( trabalhadorElement );
Element observacoesElement = new Element( "observacoes" );
observacoesElement.setText( (String)trabalhador.get( TrabalhadorData.OBSERVACOES ) );
rootElement.addContent( observacoesElement );
Date dataExameMedico = ( Date )exame.get( ExameData.DATA );
Integer tipoExameMedico = (Integer)exame.get( ExameData.TIPO );
Integer tipoOcasionalExameMedico = (Integer)exame.get( ExameData.OCASIONAL );
Integer resultadoExameMedico = (Integer)exame.get( ExameData.RESULTADO );
Element exameMedicoElement = new Element( "exame-medico" );
Element dataExameMedicoElement = new Element( "data" );
dataExameMedicoElement.setText( dataExameMedico != null ? df.format( dataExameMedico ) : "" );
exameMedicoElement.addContent( dataExameMedicoElement );
Element tipoExameMedicoElement = new Element( "tipo" );
Element admissaoTipoExameMedicoElement = new Element( "admissao" );
admissaoTipoExameMedicoElement.setText( tipoExameMedico.intValue() == 1 ? "y" : "n" );
tipoExameMedicoElement.addContent( admissaoTipoExameMedicoElement );
Element periodicoTipoExameMedicoElement = new Element( "periodico" );
periodicoTipoExameMedicoElement.setText( tipoExameMedico.intValue() == 2 ? "y" : "n" );
tipoExameMedicoElement.addContent( periodicoTipoExameMedicoElement );
Element ocasionalTipoExameMedicoElement = new Element( "ocasional" );
ocasionalTipoExameMedicoElement.setText( tipoExameMedico.intValue() == 3 ? "y" : "n" );
tipoExameMedicoElement.addContent( ocasionalTipoExameMedicoElement );
Element ocasionalDoencaTipoExameMedicoElement = new Element( "ocasional-doenca" );
ocasionalDoencaTipoExameMedicoElement.setText(
( tipoExameMedico.intValue() == 3 && tipoOcasionalExameMedico != null && tipoOcasionalExameMedico.intValue() == 1 ) ? "y" : "n" );
tipoExameMedicoElement.addContent( ocasionalDoencaTipoExameMedicoElement );
Element ocasionalAcidenteTipoExameMedicoElement = new Element( "ocasional-acidente" );
ocasionalAcidenteTipoExameMedicoElement.setText(
( tipoExameMedico.intValue() == 3 && tipoOcasionalExameMedico != null && tipoOcasionalExameMedico.intValue() == 2 ) ? "y" : "n" );
tipoExameMedicoElement.addContent( ocasionalAcidenteTipoExameMedicoElement );
Element ocasionalPedidoTrabalhadorTipoExameMedicoElement = new Element( "ocasional-pedido-trabalhador" );
ocasionalPedidoTrabalhadorTipoExameMedicoElement.setText(
( tipoExameMedico.intValue() == 3 && tipoOcasionalExameMedico != null && tipoOcasionalExameMedico.intValue() == 3 ) ? "y" : "n" );
tipoExameMedicoElement.addContent( ocasionalPedidoTrabalhadorTipoExameMedicoElement );
Element ocasionalPedidoServicoTipoExameMedicoElement = new Element( "ocasional-pedido-servico" );
ocasionalPedidoServicoTipoExameMedicoElement.setText(
( tipoExameMedico.intValue() == 3 && tipoOcasionalExameMedico != null && tipoOcasionalExameMedico.intValue() == 4 ) ? "y" : "n" );
tipoExameMedicoElement.addContent( ocasionalPedidoServicoTipoExameMedicoElement );
Element ocasionalMudancaoFuncaoTipoExameMedicoElement = new Element( "ocasional-mudanca-funcao" );
ocasionalMudancaoFuncaoTipoExameMedicoElement.setText(
( tipoExameMedico.intValue() == 3 && tipoOcasionalExameMedico != null && tipoOcasionalExameMedico.intValue() == 5 ) ? "y" : "n" );
tipoExameMedicoElement.addContent( ocasionalMudancaoFuncaoTipoExameMedicoElement );
Element ocasionalAlteracaoCondicoesTrabalhoTipoExameMedicoElement = new Element( "ocasional-alteracao-condicoes-trabalho" );
ocasionalAlteracaoCondicoesTrabalhoTipoExameMedicoElement.setText(
( tipoExameMedico.intValue() == 3 && tipoOcasionalExameMedico != null && tipoOcasionalExameMedico.intValue() == 6 ) ? "y" : "n" );
tipoExameMedicoElement.addContent( ocasionalAlteracaoCondicoesTrabalhoTipoExameMedicoElement );
Element ocasionalOutroTipoExameMedicoElement = new Element( "ocasional-outro" );
ocasionalOutroTipoExameMedicoElement.setText(
( tipoExameMedico.intValue() == 3 && tipoOcasionalExameMedico != null && tipoOcasionalExameMedico.intValue() == 10 ) ? "y" : "n" );
tipoExameMedicoElement.addContent( ocasionalOutroTipoExameMedicoElement );
Element ocasionalOutroDescricaoTipoExameMedicoElement = new Element( "ocasional-outro-descricao" );
ocasionalOutroDescricaoTipoExameMedicoElement.setText( (String)exame.get( ExameData.OUTRO_TIPO ) );
tipoExameMedicoElement.addContent( ocasionalOutroDescricaoTipoExameMedicoElement );
exameMedicoElement.addContent( tipoExameMedicoElement );
Element resultadoExameMedicoElement = new Element( "resultado" );
Element aptoResultadoExameMedicoElement = new Element( "apto" );
aptoResultadoExameMedicoElement.setText( resultadoExameMedico.intValue() == 1 ? "y" : "n" );
resultadoExameMedicoElement.addContent( aptoResultadoExameMedicoElement );
Element aptoCondicionalmenteResultadoExameMedicoElement = new Element( "apto-condicionalmente" );
aptoCondicionalmenteResultadoExameMedicoElement.setText( resultadoExameMedico.intValue() == 2 ? "y" : "n" );
resultadoExameMedicoElement.addContent( aptoCondicionalmenteResultadoExameMedicoElement );
Element inaptoTemporariamenteResultadoExameMedicoElement = new Element( "inapto-temporariamente" );
inaptoTemporariamenteResultadoExameMedicoElement.setText( resultadoExameMedico.intValue() == 3 ? "y" : "n" );
resultadoExameMedicoElement.addContent( inaptoTemporariamenteResultadoExameMedicoElement );
Element inaptoDefinitivamenteResultadoExameMedicoElement = new Element( "inapto-definitivamente" );
inaptoDefinitivamenteResultadoExameMedicoElement.setText( resultadoExameMedico.intValue() == 4 ? "y" : "n" );
resultadoExameMedicoElement.addContent( inaptoDefinitivamenteResultadoExameMedicoElement );
Element outrasFuncoes1ResultadoExameMedicoElement = new Element( "outras-funcoes-1" );
outrasFuncoes1ResultadoExameMedicoElement.setText( (String)exame.get( ExameData.OUTRA_FUNCAO_1 ) );
resultadoExameMedicoElement.addContent( outrasFuncoes1ResultadoExameMedicoElement );
Element outrasFuncoes2ResultadoExameMedicoElement = new Element( "outras-funcoes-2" );
outrasFuncoes2ResultadoExameMedicoElement.setText( (String)exame.get( ExameData.OUTRA_FUNCAO_2 ) );
resultadoExameMedicoElement.addContent( outrasFuncoes2ResultadoExameMedicoElement );
Element outrasFuncoes3ResultadoExameMedicoElement = new Element( "outras-funcoes-3" );
outrasFuncoes3ResultadoExameMedicoElement.setText( (String)exame.get( ExameData.OUTRA_FUNCAO_3 ) );
resultadoExameMedicoElement.addContent( outrasFuncoes3ResultadoExameMedicoElement );
Element outrasFuncoes4ResultadoExameMedicoElement = new Element( "outras-funcoes-4" );
outrasFuncoes4ResultadoExameMedicoElement.setText( (String)exame.get( ExameData.OUTRA_FUNCAO_4 ) );
resultadoExameMedicoElement.addContent( outrasFuncoes4ResultadoExameMedicoElement );
exameMedicoElement.addContent( resultadoExameMedicoElement );
rootElement.addContent( exameMedicoElement );
Date dataProximoExame = ( Date )exame.get( ExameData.PROXIMO_EXAME );
Element proximoExameElement = new Element( "proximo-element" );
proximoExameElement.setText( dataProximoExame != null ? df.format( dataProximoExame ) : "" );
rootElement.addContent( proximoExameElement );
Element outrasRecomendacoesElement = new Element( "outras-recomendacoes" );
outrasRecomendacoesElement.setText( (String)exame.get( ExameData.OUTRAS_RECOMENDACOES ) );
rootElement.addContent( outrasRecomendacoesElement );
Element medicoElement = new Element( "medico" );
Element nomeMedicoElement = new Element( "nome" );
nomeMedicoElement.setText( (String)medico.get( MedicoData.NOME ) );
medicoElement.addContent( nomeMedicoElement );
Element cedulaMedicoElement = new Element( "cedula" );
cedulaMedicoElement.setText( (String)medico.get( MedicoData.NUMERO_CEDULA ) );
medicoElement.addContent( cedulaMedicoElement );
rootElement.addContent( medicoElement );
Document doc = new Document( rootElement );
ByteArrayOutputStream baos = new ByteArrayOutputStream();
new XMLOutputter().output( doc, baos );
return baos.toByteArray();
}
private void excel()
{
FileDialog fd = new FileDialog( this, "Escolha um ficheiro Excel:", FileDialog.LOAD );

Loading…
Cancel
Save