Neste artigo irei demonstrar como fazer a instalação do client Oracle 19 no Windows 11Arm.

Acesse o site da Oracle para baixar o client Oracle 19c.

Após o download, descompacte o arquivo, será criada uma pasta com o nome de client.

Após a execução, será apresentando uma tela de verificação que é encerrada automaticamente, aguarde um momento, até que a próxima tela seja apresentada.

Etapa 1 de 7 – Selecionar o tipo de Instalação

Na próxima tela, vamos selecionar o tipo de instalação, a diferença entre as opções, basicamente são os componentes e ferramentas auxiliares que são instaladas.

Se o objetivo é apenas instalar um client para configuração da TNSNAMES, pode ser a selecionado a 3 opção (client) ou runtime (com algumas ferramentas adicionais).

Entretanto, recomendo sempre instalar a primeira opção (Administrador), no caso de ser um usuário de tecnologia ou está executando testes, pelo motivo de que a instalação adiciona ferramentas que auxiliam em validações de serviços de rede, conexão no SQL pelo COMMAND que é bem mais rápido.

Etapa 2 de 7 – Seleção de usuário

Nesta etapa, pode ser selecionado um usuário especifico para a instalação, recomendo que seja com um usuário Administrador.

Etapa 3 de 7 – Destino da Instalação

Quando você tem mais de um Disco (C:, D:, E:, etc..), o instalador normalmente seleciona um disco secundário, caso prefira, atualize para instalar no disco C:, conforme a imagem.

Etapa 4 de 7 – Validação dos pré requisitos para a instalação

Na próxima etapa a instalação fará uma verificação de pré requisitos do seu computador.

Etapa 5 de 7 – Resumo da instalação

É apresentado um resumo da verificação, tipo de instalação, destino e também indicam o local que será salvo um arquivo com os detalhes.

Etapa 6 de 7 – Instalação do Client

A instalação é iniciada ao clicar em Instalar no paso anterior.

Durante a instalação será apresentado uma mensagem para liberar o client Oracle 19c no firewall, confirme a liberação.

A porta padrão do Oracle é a 1521, existem instalações que são feitas em outras portas, como por exemplo 1522.

Ou seja, a estação de trabalho comunicará com o banco de dados a partir da porta 1521.

Etapa 7 de 7 – Finalização da instalação

Nesta etapa, somente é apresentado a mensagem que a instalação foi bem-sucedida.

Em caso de algum erro, você pode reinstalar.

Etapa – Configurar o arquivo TNSNAMES para acesso ao banco de dados.

Para configurar o TNSNAMES, acesse a pasta no local de instalação, indicado na etapa 3.

Crie um arquivo com o nome tnsnames.ora

PL/SQL – Como fazer select para buscar dados por horário no Oracle

Olá, neste exemplo de hoje, vou mostrar como fazer uma consulta SQL em um campo do tipo (DATE) para filtrar os dados por horário.

Criando a tabela (BLOG_TEMP_DATAS) para o exercicio.

create table BLOG_TEMP_DATAS
(
NR_SEQUENCIA NUMBER,
DT_CONSULTA DATE
)

Consultando os dados na tabela

Utilizando o comando to_char(dt_consulta, ‘hh24’), podemos utilizar a condição para filtrar apenas pelo horário. Veja abaixo o exemplo.

select
*
from
blog_temp_datas
where to_char(dt_consulta, ‘hh24′) between ’12’ and ’16’

 select 
   nr_sequencia
  ,to_char(dt_consulta, 'hh24')
  ,dt_consulta
 from 
 blog_temp_datas
 where to_char(dt_consulta, 'hh24') between '12' and '16'

Dividindo uma string usando regexp_substr 

Olá amigos,

Neste post vou falar sobre separação (Split) de uma variável SQL (Oracle) em mais de uma parte.

Diante de um problema, onde todos os arquivos estavam em uma mesma pasta(fisicamente) no servidor, tínhamos a necessidade de identificar e separar estes arquivos por módulo do sistema. Mas como?

No sistema, tínhamos armazenado o nome destes arquivos, por módulos e em tabelas diversas.

O desafio surgiu, porque havia mais de 20.000 (vinte mil) arquivos na pasta, misturados com arquivos temporais e com arquivos que não podíamos perder.

E se o servidor fosse reiniciado, tudo se perderia, pois estavam armazenados em uma pasta temporária.

Então, cheguei a uma solução de criar um script (comand) para executarmos no linux e fazer a separação dos arquivos.

Para explicar melhor, havia a seguinte situação:

Nome do armazenamento de arquivos, mesclado com o nome do módulo, com o nome do arquivo fisicamente e nome do arquivo original.

servidor-stogare://MODULO.c0206646-08dfs-4174-9c17-b88ddfs/3l8apU-5e275ed5-Aarquivo 20940093.pdf?nomereal 20940093.pdf

Precisávamos separar o nome do arquivo.

Com comando abaixo, obtive apenas o nome do arquivo.

select
ds_arquivo,
‘cp “‘ ||REGEXP_SUBSTR(replace(ds_arquivo, ‘servidor-stogare://MODULO.csss6646ss-8dfs-4174-9c17-b88ddfs/’,”), ‘[^?]+’, 1, 1) || ‘” pasta-backup’
from tabela_banco_dados

 

Resultado:

3l8apU-5e275ed5-Aarquivo 20940093.pdf

 

Então, concatenei com o comando de copia de arquivos do linux (CentOS) + nome do arquivo + nome do diretório de destino, para a copia e backup dos arquivos.

cp “3l8apU-5e275ed5-Aarquivo 20940093.pdf” pasta-backup

A partir deste exemplo, gerei uma lista (txt) de todos os arquivos anexados ao módulo do sistema, e executamos no servidor para os copiar para uma nova pasta.

 

 

Com o PLSQL Aberto, pressione as teclas CTRL + E, será aberta uma tela com o histórico de todos os comandos executados recentemente.

Este histórico é com base em arquivos arquivos que são gerados em uma pasta temporária e é dali que são mostrados.

Também existe uma tabela no Oracle que grava todos os comandos executados.

A partir dos comandos abaixo é possível consultar, é necessário que usuário tenha privilégios SYS.

SELECT * FROM v$sql
ou
select * from dba_hist_sqltext

Neste artigo estarei demonstrando como instalar o Banco de Dados Oracle 12c no Windows, incluindo a criação de um banco padrão.

Antes de instalar o software, o OUI (Oracle Universal Installer), fará algumas verificações automatizadas para garantir que o computador atenda aos requisitos básicos de hardware e software para a instalação do banco de Dados Oracle. Caso o computador não atenda aos requisitos, uma mensagem será apresentada.

Alguns requisitos básicos são:

Mínimo de 2GB de memória física
Pelo menos 10 GB de espaço em disco

Para começar é necessário fazer o download do Oracle 12c pelo link https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

Após o download você deve descompactar os arquivos baixados;


Neste seção, você iniciará a instalação do Banco de Dados Oracle, acesse a pasta database que você extraiu na etapa anterior e clique duas vezes sobre setup, pode ser necessário permitir a execução do arquivo na UAC.

Na janela que será aberta digite seu endereço de e-mail e a senha do login no site da oracle para receber as notificações dos problemas de segurança por e-mail. Se você não quiser as notificações por e-mail desmarque a opção e clique em próximo.
Nesta Janela selecione uma das opções, em nosso tutorial Criamos e configuramos um banco de dados, então marque a primeira opção.
Escolha a opção de acordo a arquitetura da instalação, sendo; Classe Desktop/Laptop ou servidor.
Neste tutorial utilizaremos a opção Classe Desktop.
Segu
indo a recomendação, iremos marcar a opção para a criar um novo usuário no Windows com apenas os privilégios necessários para a execução da instância do banco de dados.
Nesta janela é realizado a configuração do local de instalação, observe que por padrão é criado um banco de dados chamado pdborcl. Na minha instalação estou alterando para “bento”, você pode deixar com o padrão ou alterar.
Digite a senha para a administração do Banco de Dados Oracle. Essa senha será utilizados posteriormente para login de administrador SYS e SYSTEM.
O instalador fará as verificações de pré requisitos.
Após as verificações de pré-requisito a janela com o resumo será apresentada, revisa todas as configurações e clique em instalar.
A janela de status será exibida. Esta etapa leva cerca de 15 minutos dependendo da configuração do computador.

Em seguida será aberta a tela do Assistente de Configuração do Banco de Dados.

Ao chegar em 100% será exibida a janela abaixo informando que terminou, caso queira abrir o gerenciamento de senhas para desbloquear outras contas clique no botão.
Após a

Ao terminar você poderá abrir o gerenciador e navegar a partir do endereço https://localhost:5500/em com o usuário SYS.

Após concluir clique em “Fechar”

https://localhost:5500/em

Agora você poderá analisar e verificar a partir dos serviços do Windows a execução dos serviço do Banco de Dados Oracle.

Abra o executar no menu iniciar ou com a tela de atalho Windows + R, e digite Services.msc

Caso reinicie o computador e não consiga acessar o banco de dados, verifique se os serviços estão ativos e funcionando.

Caso queira acessar de outros computadores será necessário liberar a porta 1521 ou 1522 no firewall, instalar o client do Oracle no outro computador e configurar o arquivo TNSNAMES.ora, que normalmente fica localizado em C:\app\OracleHomeUser\product\12.1.0\dbhome_1\NETWORK\ADMIN
Este é o arquivo da instalação do servidor, nas estações de trabalho é necessário ajustar o nome do HOST com o IP ou nome do computador.

POST Atualizado 09/2020


Vou fazer um artigo no qual recebo várias perguntas: Como gerar arquivos XML no padrão TISS da ANS.  Vou demonstrar usando PHP e API DOM nesta primeira parte e futuramente complementarei com dados a partir de banco de dados MySQL.

O padrão TISS é determinado pela ANS, você poderá consultar outras informações do padrão TISS no site da Agência Nacional de Saúde.

Para seguir, é necessário ter noções básicas da linguagem PHP.

Obs.: Não vou ensinar como desenvolver um sistema com a finalidade de faturamento, apenas o passo a passo da geração do XML no padrão TISS usando o PHP e a biblioteca DOM.

Basicamente o faturamento dos atendimentos/contas, consiste no atendimento do beneficiário pelo prestador(clínica, hospital, laboratório, banco de sangue, clínicas de imagem, entre outros), que é credenciado as operadoras de saúde (Bradesco Saúde, Unimed, Postal Saúde, Geap, Cassi, Capesp, Saúde Itaú, Sul América,…).

O envio do faturamento é feito por lotes(vários atendimentos no mesmo lote, geralmente até 100 atendimentos no mesmo lote) e pode ser via portal da Operadora por digitação das contas (quando a mesma oferece o recurso) ou a partir do envio de arquivos XML. E cada operadora permite e aceita o envio até uma data limite de cada mês(competência), por exemplo; a operadora XYZ aceita que o envio seja feito até o dia 20, e fará o pagamento até o dia 19 do mês subsequente(30 dias após o envio). Desta forma os prestadores precisam ficar atentos ao cumprimento de envio nas datas certas para receber no prazo, caso contrário o pagamento pela operadora é feito na próxima competência.

A geração do XML consiste em dados dos pilares: Operadora de Saúde <-> Prestador de Serviços <-> Beneficiários/Segurados,  ou seja, precisamos das informações de credenciamento do prestador de saúde,  dados do prestador e do segurado. Abaixo uma exemplificação dos dados;

Dados da operadora:
Registro ANS: 1111
Versão TISS: 03.03.03

Dados do Prestador:
Código de Credenciamento: 12345
CNPJ: 00.000.000/0000-0 (Fictício)

Dados de faturamento:
Número da remessa/fatura/Lote: 123

Dados do atendimento:
Data e Hora: 03/04/2018 22:15:00
Nome: Fulano de Tal
Carteira: 4444444444444444
Validade da carteira: 31/12/2030
Recém nascido: Não
Tipo de Atendimento: Ambulatorial
Caráter do atendimento: Eletivo
Guia/Senha: 1111/2222

Médico: Dr. Fabiano
CRM: 0000
CBOS:

Código da tabela: 22
Procedimento TUSS: 10101012
Descrição do Procedimento: Consulta em consultório
Valor unitário: 500,00
Valor Total:  500,00

<?php
#Definindo as variáveis

#Dados Operadora:
$_XML['versao_tiss']='030303';
$_XML['registro_ans'] = '1111';

#Dados Prestador:
$_XML['codigo_credenciamento'] = '12345';
$_XML['cnpj'] = '0000000000000';
$_XML['prestador'] = 'Hospital ABCD';

#Dados do atendimento e beneficiário
$_XML['data_hora'] = '03/04/2018 22:15:00';
$_XML['rn'] = 'N'; #Não
$_XML['tipo_atd'] = 'Ambulatorial';
$_XML['carater'] = 'E'; #Eletivo
$_XML['guia'] = '1111';
$_XML['senha'] = '2222';
$_XML['medico'] = 'Dr. Fabiano';
$_XML['crm'] = '0000';
$_XML['cbos'] = '';
#Dados do beneficiário
$_XML['nome'] = 'Fulano de Tal';
$_XML['dt_nascimento'] = '01/01/1980';
$_XML['carteira']  = '4444444444444444';
$_XML['validade'] = '31/12/2030';

#Dados da Fatura / Lote
$_XML['fatura_remessa'] = '123';

#Dados do procedimento realizado
$_XML['tabela'] = '22';
$_XML['procedimento_tuss'] = '10101012';
$_XML['descricao_proced'] = 'Consulta em consultório';
$_XML['valor_unitario'] = '500,00';
$_XML['qtde'] = '1';
$_XML['valor_total'] = '500,00';

$_XML['tipoTransacao'] = 'ENVIO_LOTE_GUIAS';
$_XML['sequencialTransacao'] = '6658';
$_XML['dataRegistroTransacao'] = '2018-01-18';
$_XML['horaRegistroTransacao'] = '10:00:00';

 # Utilize a variável $_XML['hash_dados'] para concatenar os dados e calcular o HASH antes do terceiro bloco
$_XML['hash_dados'] = '';

#A variável $_XML['hash'] está nula pois deve ser calculada com os dados dos elementos(tags) do XML
$_XML['hash'] = 'calculo do HASH';

//$_XML[''] = ''; // para criar novas variáveis apenas siga o padrão

Após a declaração das variáveis, vamos iniciar a geração da estrutura no nosso arquivo.

#versao XML e codificação
$xml = new DOMDocument("1.0", "ISO-8859-1");
//também poderia ser UTF-8
 
#remove os espacos em branco
$xml->preserveWhiteSpace = false;

#Realizar a quebra dos blocos do XML por linha
$xml->formatOutput = true;

		//Criação dos elementos do Namespace ans:mensagemTISS
		$xml->createAttributeNS( 'http://www.w3.org/2000/09/xmldsig#', 'ds:attr' );
		$xml->createAttributeNS( 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:attr' );
		$xml->createAttributeNS( 'http://www.ans.gov.br/padroes/tiss/schemas http://www.ans.gov.br/padroes/tiss/schemas/tissV3_03_01.xsd', 'schemaLocation:attr' );
		$xml->createAttributeNS( 'http://www.ans.gov.br/padroes/tiss/schemas', 'ans:attr' );


// Nó / Bloco Principal
// ans:mensagemTISS
$mensagemTISS = $xml->createElement("ans:mensagemTISS");
$xml->appendChild($mensagemTISS);

	/* primeiro bloco */
	// ans:mensagemTISS / ans:cabecalho
	$cabecalho = $xml->createElement("ans:cabecalho");
	$mensagemTISS->appendChild($cabecalho);


		// ans:mensagemTISS / ans:cabecalho / ans:identificacaoTransacao
		$identificacaoTransacao = $xml->createElement("ans:identificacaoTransacao");
		$cabecalho->appendChild($identificacaoTransacao);

				# ans:tipoTransacao
				$tipoTransacao = $xml->createElement("ans:tipoTransacao", $_XML['tipoTransacao']);
				$identificacaoTransacao->appendChild($tipoTransacao);

				#sequencialTransacao
				$sequencialTransacao = $xml->createElement("ans:sequencialTransacao", $_XML['sequencialTransacao']);
				$identificacaoTransacao->appendChild($sequencialTransacao);

				#dataRegistroTransacao
				$dataRegistroTransacao = $xml->createElement("ans:dataRegistroTransacao", $_XML['dataRegistroTransacao']);
				$identificacaoTransacao->appendChild($dataRegistroTransacao);

				#horaRegistroTransacao
				$horaRegistroTransacao = $xml->createElement("ans:horaRegistroTransacao", $_XML['horaRegistroTransacao']);
				$identificacaoTransacao->appendChild($horaRegistroTransacao);


		// ans:mensagemTISS / ans:cabecalho / ans:origem
		$origem = $xml->createElement("ans:origem");
		$cabecalho->appendChild($origem);

				// ans:mensagemTISS / ans:cabecalho / ans:origem / identificacaoPrestador
				$identificacaoPrestador = $xml->createElement("ans:identificacaoPrestador", $_XML['cnpj']);
				$origem->appendChild($identificacaoPrestador);


		// ans:mensagemTISS / ans:cabecalho / ans:destino
		$destino = $xml->createElement("ans:destino");
		$cabecalho->appendChild($destino);

				// ans:mensagemTISS / ans:cabecalho / ans:registroANS
				$registroANS = $xml->createElement("ans:registroANS", $_XML['registro_ans']);
				$destino->appendChild($registroANS);

		// ans:mensagemTISS / ans:cabecalho / ans:Padrao
		$Padrao = $xml->createElement("ans:Padrao", $_XML['padrao_tiss']);
		$cabecalho->appendChild($Padrao);


	/* segundo bloco */
	// ans:mensagemTISS / ans:prestadorParaOperadora
	$prestadorParaOperadora = $xml->createElement("ans:prestadorParaOperadora");
	$mensagemTISS->appendChild($prestadorParaOperadora);

		// ans:mensagemTISS / ans:prestadorParaOperadora / loteGuias
		$loteGuias = $xml->createElement("ans:loteGuias");
		$prestadorParaOperadora->appendChild($loteGuias);

			// ans:mensagemTISS / ans:prestadorParaOperadora / loteGuias / numeroLote
			$numeroLote = $xml->createElement("ans:numeroLote", $_XML['lote_remessa']);
			$loteGuias->appendChild($numeroLote);

 			// ans:mensagemTISS / ans:prestadorParaOperadora / loteGuias / guiasTISS
			$guiasTISS = $xml->createElement("ans:guiasTISS");
			$loteGuias->appendChild($guiasTISS);

// ans:mensagemTISS / ans:prestadorParaOperadora / loteGuias / guiaConsulta
$guiaConsulta = $xml->createElement("ans:guiaConsulta");
$loteGuias->appendChild($guiaConsulta);

// ans:mensagemTISS / ans:prestadorParaOperadora / loteGuias / cabecalhoConsulta
$cabecalhoConsulta = $xml->createElement("ans:cabecalhoConsulta");
$guiaConsulta->appendChild($cabecalhoConsulta);

$registroANS = $xml->createElement("ans:registroANS", '132'); //registroANS
$cabecalhoConsulta->appendChild($registroANS);

$registroANS = $xml->createElement("ans:numeroGuiaPrestador", '1111'); //numeroGuiaPrestador
$cabecalhoConsulta->appendChild($registroANS);

$numeroGuiaOperadora = $xml->createElement("ans:numeroGuiaOperadora", '2222'); //numeroGuiaOperadora
$guiaConsulta->appendChild($numeroGuiaOperadora);

$dadosBeneficiario = $xml->createElement("ans:dadosBeneficiario"); //dadosBeneficiario
$guiaConsulta->appendChild($dadosBeneficiario);

$numeroCarteira = $xml->createElement("ans:numeroCarteira", '1122334455'); //numeroCarteira
$dadosBeneficiario->appendChild($numeroCarteira);

$atendimentoRN = $xml->createElement("ans:atendimentoRN", 'N'); //atendimentoRN
$dadosBeneficiario->appendChild($atendimentoRN);

$nomeBeneficiario = $xml->createElement("ans:nomeBeneficiario", 'Fulano de Tal'); //nomeBeneficiario
$dadosBeneficiario->appendChild($nomeBeneficiario);

//contratadoExecutante
$contratadoExecutante = $xml->createElement("ans:contratadoExecutante");
$guiaConsulta->appendChild($contratadoExecutante);


$codigoPrestadorNaOperadora = $xml->createElement("ans:codigoPrestadorNaOperadora", '001'); //codigoPrestadorNaOperadora
$contratadoExecutante->appendChild($codigoPrestadorNaOperadora);

$nomeContratado = $xml->createElement("ans:nomeContratado", 'Hospital Teste'); //nomeContratado
$contratadoExecutante->appendChild($nomeContratado);

$CNES = $xml->createElement("ans:CNES", '9999'); //CNES
$contratadoExecutante->appendChild($CNES);

//profissionalExecutante
$profissionalExecutante = $xml->createElement("ans:profissionalExecutante"); //profissionalExecutante
$guiaConsulta->appendChild($profissionalExecutante);

$nomeProfissional = $xml->createElement("ans:nomeProfissional", 'Médico Teste'); //nomeProfissional
$profissionalExecutante->appendChild($nomeProfissional);

$conselhoProfissional = $xml->createElement("ans:conselhoProfissional", '02'); //conselhoProfissional
$profissionalExecutante->appendChild($conselhoProfissional);

$numeroConselhoProfissional = $xml->createElement("ans:numeroConselhoProfissional", '1234'); //numeroConselhoProfissional
$profissionalExecutante->appendChild($numeroConselhoProfissional);

$UF = $xml->createElement("ans:UF", 'SP'); //UF
$profissionalExecutante->appendChild($UF);

$CBOS = $xml->createElement("ans:CBOS", '201115'); //CBOS
$profissionalExecutante->appendChild($CBOS);

//dadosAtendimento
$dadosAtendimento = $xml->createElement("ans:dadosAtendimento"); //dadosAtendimento
$guiaConsulta->appendChild($dadosAtendimento);

$tipoAtendimento = $xml->createElement("ans:tipoAtendimento", '05'); //tipoAtendimento
$dadosAtendimento->appendChild($tipoAtendimento);

$indicacaoAcidente = $xml->createElement("ans:indicacaoAcidente", '9'); //indicacaoAcidente
$dadosAtendimento->appendChild($indicacaoAcidente);


// Calculo o Hash - Você poderia gerar os dados, usar um (replace do PHP) para substituir as tags, e pegar apenas os dados
$_XML['hash_dados'] = ''
$_XML['hash'] = md5($_XML['hash_dados']);

	/* terceiro bloco */
	// ans:mensagemTISS / ans:epilogo
	$epilogo = $xml->createElement("ans:epilogo");
	$mensagemTISS->appendChild($epilogo);

		// ans:mensagemTISS / ans:epilogo / ans:hash
		$hash = $xml->createElement("ans:hash", $_XML['hash']);
		$epilogo->appendChild($hash);

# Comando para salvar/gerar o arquivo XML TISS
# Geralmente o nome do arquivo é o HASH que foi calculado ou número do lote, pois são informações únicas.
# você pode usar as variáveis: $_XML['fatura_remessa'] . $_XML['hash']

$xml->save("xml_tiss.xml");


# Imprime / Gera o xml em tela
echo $xml->saveXML();
?>

Com o comando acima você terá o seguinte retorno: xml_tiss.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<ans:mensagemTISS xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:schemaLocation="http://www.ans.gov.br/padroes/tiss/schemas http://www.ans.gov.br/padroes/tiss/schemas/tissV3_03_01.xsd"
xmlns:ans="http://www.ans.gov.br/padroes/tiss/schemas">
 <ans:cabecalho>
 <ans:identificacaoTransacao>
 <ans:tipoTransacao>ENVIO_LOTE_GUIAS</ans:tipoTransacao>
 <ans:sequencialTransacao>6658</ans:sequencialTransacao>
 <ans:dataRegistroTransacao>2018-01-18</ans:dataRegistroTransacao>
 <ans:horaRegistroTransacao>10:00:00</ans:horaRegistroTransacao>
 </ans:identificacaoTransacao>
 <ans:origem>
 <ans:identificacaoPrestador>0000000000000</ans:identificacaoPrestador>
 </ans:origem>
 <ans:destino>
 <ans:registroANS>111111</ans:registroANS>
 </ans:destino>
 <ans:Padrao>03.03.03</ans:Padrao>
 </ans:cabecalho>
 <ans:prestadorParaOperadora>
 <ans:loteGuias>
 <ans:numeroLote>123</ans:numeroLote>
 <ans:guiasTISS/>
 </ans:loteGuias>
 </ans:prestadorParaOperadora>
 <ans:epilogo>
 <ans:hash>calculo do HASH</ans:hash>
 </ans:epilogo>
</ans:mensagemTISS>