Árvore de páginas

Cálculo do HASH

Questão:

Como deve ser o calculo do HASH para a entrega da DIOPS? 



Resposta:

A Resolução Normativa RN nº 173, de 10 de julho de 2008, instituiu o DIOPS-XML , sendo ele um sistema de recepção das informações cadastrais e financeiras enviadas regularmente pelas operadoras de planos privados de saúde. 

A ANS disponibiliza apenas os serviços de recepção dos DIOPS-XML (Web Services), sendo de responsabilidade da operadora a geração e envio do XML.

De acordo com a página da DIOPS, para a geração do XML é necessário seguir os seguintes passos: 

1- Acesse os schemas: diopsComplexTypes.xsd e  diopsSimpleTypes.xsd

2 -Consulte o  Controle de Versões para verificar as atualizações;

3- Analise os elementos que serão utilizados e os campos obrigatórios de cada um deles;

4- Produza o documento XML do tipo específico (Cadastral ou Financeiro);

5- Faça o cálculo do hash.

6- Valide seu XML através de websites que forneçam esse serviço online

E para o envio do arquivo XML da DIOPS, é necessário os seguintes passos: 

1- Extraia o certificado digital do DIOPS-XML: cacerts;

2- Crie a variável de ambiente ANS_CERT: Valor da variável: arquivo cacerts (ex: C:\ANS\cacerts)

3- Baixe o cliente do Serviço Receptor, fornecido pela ANS:DIOPSClient.jar

4- Adicione-o como biblioteca da sua aplicação;

5- Sua aplicação deve instanciar o objeto da classe JNIMain e chamar o método String send (String path, String file, String tipo, String senha) onde:
path - caminho para armazenamento do recibo;
file - caminho do arquivo XML a ser enviado;
tipo - tipo de mensagem (Financeiro ou Cadastral);
senha - senha padrão da operadora na ANS;

O retorno deste método é o erro ocorrido, se o retorno for nulo, o envio foi bem sucedido, o cliente fará a conexão com os Web Services do DIOPS-XML e qualquer transmissão do DIOPS-XML que não utilize este padrão será recusada pelo servidor.

Para o correto envio e validação do arquivo da DIOPS, é necessário realizar o cálculo do hash de forma correta, e conforme a página oficial da ANS ( Agência Nacional de Saúde), o cálculo deve ser realizado da seguinte forma: 

Todos os valores dos nós da estrutura da mensagem a ser enviada devem ser concatenados, formando a cadeia de caracteres base (ISO-8859-1) onde será aplicado o algoritmo MD5, que deverá retornar o valor hexadecimal de 32 caracteres, que é o hash válido.

O algoritmo utilizado deve estar preparado para este set de caracteres (ISO-8859-1), a menos que não sejam utilizados caracteres acentuados na estrutura.

Os tipos definidos nos arquivos xsd como string ou data deverão ter seus valores em branco e/ou caracteres de controle suprimidos à esquerda e à direita (Trim).

Os tipos definidos nos arquivos xsd como long (ex: elemento qtdeAcoesQuotas de ct_empresaContrColig), terão valor inicial 0 (zero) caso não informados, e devem ser sempre inteiros (formato 9999).

Os tipos definidos nos arquivos xsd como double ou float (ex: elemento quantidade de ct_ativoInvest), terão valor inicial 0.0 (zero) caso não informados, e devem exibir, na parte decimal, somente dígitos significativos a partir da segunda posição, tendo obrigatoriamente ao menos um dígito.



Chamado/Ticket:

PSCONSEG-7808



Fonte:

Agência Nacional da Saúde

DIOPS