Discussão sobre o TISSNet, Web Services e Ponto-a-ponto ...  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

dsmdanbr wrote:
viniciuspadua wrote:dsmdanbr, acho que consegui oque tava querendo!

veja abaixo!


Velho, muito obrigado, vou testar aqui, qualquer dúvida já posto.


dsmdanbr , desculpe nao ter respondido antes, fiquei sem internet em casa uns dias.

Então, é isso mesmo que o viniciuspadua te passou.
O melhor desse tópico é que todos podem ajudar.

E viniciuspadua , vc conseguiu o que queria com o webservices ?

Vou dar uma verificada no que você falou e ver o que eu fiz.
[Não estou mais na empresa onde trabalhava com o TISS, mas adoro sempre que posso poder fazer parte dele.]

Abraços

Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
viniciuspadua
JavaTeenager
[Avatar]

Membro desde: 25/11/2006 17:21:30
Mensagens: 170
Offline

consegui ja!
so falta testar, mais estou esperando o setor de faturamento me liberar um lote!

qualquer duvida, posto!

abraços
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

viniciuspadua wrote:consegui ja!
o setor de faturamento me liberar um lote!


Eita que eu adorava essa vida...rsrs

Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
viniciuspadua
JavaTeenager
[Avatar]

Membro desde: 25/11/2006 17:21:30
Mensagens: 170
Offline

Ja crio os xml e envio para as operadoras e tudo funciona blz.
Estou entrando agora no mundo dos web services.
Com web services estou encontrando problemas na geração do hash. Ele é calculado de modo diferente do arquivo xml ?
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

viniciuspadua wrote:Ja crio os xml e envio para as operadoras e tudo funciona blz.
Estou entrando agora no mundo dos web services.
Com web services estou encontrando problemas na geração do hash. Ele é calculado de modo diferente do arquivo xml ?


O calculo do hash é o mesmo.
Q tipo de problemba ta tendo?

Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
viniciuspadua
JavaTeenager
[Avatar]

Membro desde: 25/11/2006 17:21:30
Mensagens: 170
Offline

hash inválido!
e o foda é que nas outra operadoras valida!
Utilizo o mesmo método para gerar o hash!
viniciuspadua
JavaTeenager
[Avatar]

Membro desde: 25/11/2006 17:21:30
Mensagens: 170
Offline

Com Upload via página operadora:
Passos:
1. Crio o Xml
2. Entro no site da operado e envio

Todas funcionam sem problema, inclusive o convênio com problema no webservices.

Com WebServices:
Passos que faço:
1. Gerar o arquivo XML (mesmo método que gera o anterior)
2. Código Abaixo: Para converter o xml em classes a ser enviada


3. Popular as informações, a ser enviada pelo web Services


4. Enviar via webServices


Mais sempre ocorre um erro de hash! informa que o hash informado não é o do arquivo enviado.
Alguma idéia de como corrigir ?

Valeu!

This message was edited 1 time. Last update was at 09/10/2009 09:44:19

dsmdanbr
What is classpath?
[Avatar]

Membro desde: 05/02/2007 02:08:40
Mensagens: 8
Localização: Vitória da Conquista - BA
Offline

Fala Vinícius,

Então, só pude testar agora o exemplo que vc respondeu no Fórum.
Tenho a seguinte dúvida:

- Quando vc carrega um objeto File através do caminho de "arquivo",
esse arquivo está em branco ou já segue com algum conteúdo padrão?

String arquivo = "c:/1466_2f4f7f75c65edae68496f965962337a6.xml";
File file = new File(arquivo);


- Vi a estrutura da classe MensagemTiss na documentação, no caso, como gostaria de adicionar a partir dela
Guias de SP/SADT, teria que setar "prestadorParaOperadora", dentro do objeto MensagemTISS.PrestadorParaOperadora
teria que setar "loteGuias", dentro do objeto CtLoteGuias teria que setar "guias", ..., até setar as guias campo por campo.
Alguém teria algum exemplo de um código setando várias guias?
Além de setar o Hash, o que mais eu devo ficar atento?

Obrigado!!!

viniciuspadua wrote:dsmdanbr, acho que consegui oque tava querendo!

veja abaixo!

Daniel Sales Macedo
[Email] [Yahoo!] [MSN]
viniciuspadua
JavaTeenager
[Avatar]

Membro desde: 25/11/2006 17:21:30
Mensagens: 170
Offline

ja passo o arquivo xml com todos os dados.
e o JAXB ja faz os get set na classe!

se conseguir enviar para algum web services e não der problema de hash me avise!
dsmdanbr
What is classpath?
[Avatar]

Membro desde: 05/02/2007 02:08:40
Mensagens: 8
Localização: Vitória da Conquista - BA
Offline

viniciuspadua wrote:ja passo o arquivo xml com todos os dados.
e o JAXB ja faz os get set na classe!

se conseguir enviar para algum web services e não der problema de hash me avise!


Vinicius e pessoal do fórum,

Consegui gerar o arquivo xml, e calcular o hash, desculpa ai pelas perguntas simples,
é que não deu tempo estudar bem o material passado pela ANS, tive que tentar fazer
natoralmente... hehehehehe. Mais a ajuda do fórum foi essencial.

Estou com dúvida agora como colocar o prefixo da ans no arquivo xml.

Olha como ficou o arquivo xml:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<mensagemTISS xmlns="http://www.ans.gov.br/padroes/tiss/schemas">
<cabecalho>
<identificacaoTransacao>
<tipoTransacao>ENVIO_LOTE_GUIAS</tipoTransacao>
<sequencialTransacao>1</sequencialTransacao>
</identificacaoTransacao>
<versaoPadrao>V2_02_01</versaoPadrao>
</cabecalho>
<prestadorParaOperadora>
<loteGuias>
<numeroLote>124578</numeroLote>
<guias>
<guiaFaturamento>
<guiaSP_SADT>
<dadosAutorizacao>
<senhaAutorizacao>995739</senhaAutorizacao>
</dadosAutorizacao>
<dadosBeneficiario>
<numeroCarteira>1642028023161906</numeroCarteira>
<nomeBeneficiario>Arthur Alves Oliveira</nomeBeneficiario>
<nomePlano>Unimed</nomePlano>
<numeroCNS></numeroCNS>
</dadosBeneficiario>
<dadosSolicitante>
<contratado>
<identificacao>
<CNPJ>40610681000886</CNPJ>
<codigoPrestadorNaOperadora>40616682000186</codigoPrestadorNaOperadora>
</identificacao>
<nomeContratado>Teste Nome Empresa</nomeContratado>
<enderecoContratado>
<tipoLogradouro>Av.</tipoLogradouro>
<logradouro>Juracy Magalhães</logradouro>
<numero>1200</numero>
<codigoIBGEMunicipio>293330</codigoIBGEMunicipio>
<municipio>Vitória da Conquista</municipio>
<codigoUF>BA</codigoUF>
<cep>45.100-000</cep>
</enderecoContratado>
<numeroCNES>1770545</numeroCNES>
</contratado>
<profissional>
<nomeProfissional>Juscilene Silva Leao</nomeProfissional>
<conselhoProfissional>
<siglaConselho>CRM</siglaConselho>
<numeroConselho>12834</numeroConselho>
</conselhoProfissional>
</profissional>
</dadosSolicitante>
<caraterAtendimento>E</caraterAtendimento>
<diagnosticoAtendimento>
<CID>
<nomeTabela>CID-10</nomeTabela>
<codigoDiagnostico>R43</codigoDiagnostico>
</CID>
<indicadorAcidente>Outros</indicadorAcidente>
</diagnosticoAtendimento>
</guiaSP_SADT>
</guiaFaturamento>
</guias>
</loteGuias>
</prestadorParaOperadora>
<epilogo>
<hash>a77b013c5a940786e76be63b2bc8c1bc</hash>
</epilogo>
</mensagemTISS>


Está sem o prefixo da ANS!!!

Desde já obrigado.

Daniel Sales Macedo
[Email] [Yahoo!] [MSN]
viniciuspadua
JavaTeenager
[Avatar]

Membro desde: 25/11/2006 17:21:30
Mensagens: 170
Offline

colocar o prefixo vai depender da sua codificação: para mim fiz assim:



com isso ao gerar o xml ja vai com o namespace!
dsmdanbr
What is classpath?
[Avatar]

Membro desde: 05/02/2007 02:08:40
Mensagens: 8
Localização: Vitória da Conquista - BA
Offline

viniciuspadua wrote:colocar o prefixo vai depender da sua codificação: para mim fiz assim:



com isso ao gerar o xml ja vai com o namespace!



Então, no caso isso seria caso tivesse gerado o xml item por item não é isso?
Porque eu instanciei um objeto MensagemTISS setei os campos e salvei ele em XML
através da JAXB.

Olha como ficou o código de teste:

ObjectFactory objFactory = new ObjectFactory();
MensagemTISS mensagem = new MensagemTISS();
mensagem.setCabecalho(new CabecalhoTransacao());
mensagem.getCabecalho().setVersaoPadrao("2.02.01");
mensagem.getCabecalho().setIdentificacaoTransacao(new CabecalhoTransacao.IdentificacaoTransacao());
mensagem.getCabecalho().getIdentificacaoTransacao().setTipoTransacao(StTipoTransacao.ENVIO_LOTE_GUIAS);
mensagem.getCabecalho().getIdentificacaoTransacao().setSequencialTransacao(new BigInteger("1"));
mensagem.setPrestadorParaOperadora(new MensagemTISS.PrestadorParaOperadora());
mensagem.getPrestadorParaOperadora().setLoteGuias(ctLoteGuias);

//mensagem.setCabecalho(new CabecalhoTransacao());
mensagem.setEpilogo(objFactory.createMensagemTISSEpilogo());
mensagem.getEpilogo().setHash("0");

MensagemTiss mTiss = new MensagemTiss();
try {
mTiss.setDocumentoMensagem(mensagem);
} catch (Exception e) {
e.printStackTrace();
}
mensagem.getEpilogo().setHash(mTiss.getHashCalculado());

try {
JAXBContext jc = JAXBContext.newInstance("br.gov.ans.padroes.tiss.schemas.v20201");
Marshaller m = jc.createMarshaller();
m.setProperty(m.JAXB_ENCODING, "ISO-8859-1");
m.setProperty(m.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(mensagem, new FileOutputStream("d:/a.xml"));

Unmarshaller unmarshaller = jc.createUnmarshaller();
File file = new File("d:/a.xml");
mensagem = (MensagemTISS) unmarshaller.unmarshal(new FileInputStream(file.getAbsolutePath()));

String mensagemTxt = security.log.util.LogUtil.readFile(file).replace("http://www.ans.gov.br/padroes/tiss/schemas/v20201", "http://www.ans.gov.br/padroes/tiss/schemas");
file.createNewFile();
FileWriter output = new FileWriter(file);
BufferedWriter bufOutput = new BufferedWriter(output);
bufOutput.write(mensagemTxt);
bufOutput.close();

MensagemTiss mensagemTiss = new MensagemTiss(file.getAbsolutePath());
System.out.println(mensagemTiss.getHashCalculado());

} catch (JAXBException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}

Entendeu? Não teria como eu setar o prefixo através da JAXB?

Obrigado.

Daniel Sales Macedo
[Email] [Yahoo!] [MSN]
dsmdanbr
What is classpath?
[Avatar]

Membro desde: 05/02/2007 02:08:40
Mensagens: 8
Localização: Vitória da Conquista - BA
Offline

dsmdanbr wrote:
viniciuspadua wrote:colocar o prefixo vai depender da sua codificação: para mim fiz assim:



com isso ao gerar o xml ja vai com o namespace!



Então, no caso isso seria caso tivesse gerado o xml item por item não é isso?
Porque eu instanciei um objeto MensagemTISS setei os campos e salvei ele em XML
através da JAXB.

Olha como ficou o código de teste:

ObjectFactory objFactory = new ObjectFactory();
MensagemTISS mensagem = new MensagemTISS();
mensagem.setCabecalho(new CabecalhoTransacao());
mensagem.getCabecalho().setVersaoPadrao("2.02.01");
mensagem.getCabecalho().setIdentificacaoTransacao(new CabecalhoTransacao.IdentificacaoTransacao());
mensagem.getCabecalho().getIdentificacaoTransacao().setTipoTransacao(StTipoTransacao.ENVIO_LOTE_GUIAS);
mensagem.getCabecalho().getIdentificacaoTransacao().setSequencialTransacao(new BigInteger("1"));
mensagem.setPrestadorParaOperadora(new MensagemTISS.PrestadorParaOperadora());
mensagem.getPrestadorParaOperadora().setLoteGuias(ctLoteGuias);

//mensagem.setCabecalho(new CabecalhoTransacao());
mensagem.setEpilogo(objFactory.createMensagemTISSEpilogo());
mensagem.getEpilogo().setHash("0");

MensagemTiss mTiss = new MensagemTiss();
try {
mTiss.setDocumentoMensagem(mensagem);
} catch (Exception e) {
e.printStackTrace();
}
mensagem.getEpilogo().setHash(mTiss.getHashCalculado());

try {
JAXBContext jc = JAXBContext.newInstance("br.gov.ans.padroes.tiss.schemas.v20201");
Marshaller m = jc.createMarshaller();
m.setProperty(m.JAXB_ENCODING, "ISO-8859-1");
m.setProperty(m.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(mensagem, new FileOutputStream("d:/a.xml"));

Unmarshaller unmarshaller = jc.createUnmarshaller();
File file = new File("d:/a.xml");
mensagem = (MensagemTISS) unmarshaller.unmarshal(new FileInputStream(file.getAbsolutePath()));

String mensagemTxt = security.log.util.LogUtil.readFile(file).replace("http://www.ans.gov.br/padroes/tiss/schemas/v20201", "http://www.ans.gov.br/padroes/tiss/schemas");
file.createNewFile();
FileWriter output = new FileWriter(file);
BufferedWriter bufOutput = new BufferedWriter(output);
bufOutput.write(mensagemTxt);
bufOutput.close();

MensagemTiss mensagemTiss = new MensagemTiss(file.getAbsolutePath());
System.out.println(mensagemTiss.getHashCalculado());

} catch (JAXBException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}

Entendeu? Não teria como eu setar o prefixo através da JAXB?

Obrigado.



Consegui colocar o prefixo, tem até um exemplo na página 6.





Referência: http://www.j2ee.me/webservices/docs/2.0/jaxb/vendorProperties.html

Obrigado.

Daniel Sales Macedo
[Email] [Yahoo!] [MSN]
dsmdanbr
What is classpath?
[Avatar]

Membro desde: 05/02/2007 02:08:40
Mensagens: 8
Localização: Vitória da Conquista - BA
Offline

Alguém sabe como criar um XMLGregorianCalendar que gere a data no formato 22/10/2009?

Estou tendo o seguinte problema:



Error: cvc-pattern-valid: Value '2009-10-22' is not facet-valid with respect to pattern '[0-9]{2}/[0-9]{2}/[0-9]{4}' for type 'st_data'.

Porque a data está saindo no XML assim '2009-10-22'.

Parece que não tem como mudar esse padrão no XMLGregorianCalendar.
A saída padrão seria: 1976-12-22T00:00:00.000+01:00
Só tem como ocultar alguns campos.
http://blog.jonasbandi.net/2009/05/jaxb-quicktip-xmlgregoriancalendar.html

This message was edited 1 time. Last update was at 22/10/2009 17:09:43


Daniel Sales Macedo
[Email] [Yahoo!] [MSN]
vgoias
HelloWorld

Membro desde: 17/12/2009 10:58:22
Mensagens: 14
Offline

Bom dia, estou com problemas quando vou criar o objeto atraves do xml

Simplesmente demora muito e ocorre um erro de transmissão.. fui debugando.. e é exatamente nesta linha

jaxbContext = JAXBContext.newInstance("br.gov.ans.padroes.tiss.schemas.v20102");

O que pode ser?


Desde já agradeço
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team