Criando um Validador TISS usando PHP
Neste posto irei ensinar como criar um validador TISS de arquivos XML no padrão TISS da ANS, usando o PHP e banco de dados MySQL. Com o validador será possível validar os arquivos TISS e arquivos do monitoramento TISS.
Obs.: Vou escrever um passo a passo, mas é necessário ter noções básicas da linguagem PHP e banco MySQL.
Vou dividir o post nas seguintes etapas;
1ª Etapa -Criar o formulário HTML para envio do arquivo e seleção da versão
2ª Etapa – Verificar a estrutura do arquivo (que é a comparação com o arquivo XSD da ANS)
3ª Etapa – Validação dos dados do arquivo conforme a codificação da TUSS (Apenas para arquivos TISS)
4ª Etapa – Disponibilização dos arquivos para download e dica de instalação
E é claro, você poderá personalizar conforme a sua necessidade.
Antes de começarmos baixe os arquivos do padrão TISS no site da ANS, usando o link http://www.ans.gov.br/prestadores/tiss-troca-de-informacao-de-saude-suplementar, conforme os prints abaixo, ou clique aqui para baixar o último arquivo disponível (Componente de Comunicação 03.03.03)
Obs.: baixe todas as versões que queira utilizar no seu validador.
 
Usaremos também o arquivo bootstrap.min.css do Bootstrap (framework web CSS/JavaScript), baixe também neste link (https://getbootstrap.com) (deixarei no final todos os arquivos para download)
Iniciando o projeto crie a estrutura de pastas abaixo.
As pastas devem ser criadas no seu servidor httpd(Apache/IIS), dentro do diretório (www).
-validador-tiss (pasta principal)
 –css
 –xml (diretório para upload dos arquivos xml enviados)
 –tiss (diretório com os arquivos baixados no site da ANS para validação TISS)
 –tiss/03_03_03
 –tiss/03_03_01
 –tiss/03_02_02
 –tiss/03_02_01
 –tiss/03_02_00
1ª Etapa
Agora vamos criar nosso formulário para envio do arquivo e salvar com o nome index.php
Arquivo index.php
Observe que action do formulário aponta para (validar_arquivo.php), e temos um select para as versões dos XML.
<head>
 <meta charset=”UTF-8″>
 <title>Validador TISS</title>
 <link rel=”stylesheet” href=”css/bootstrap.min.css“>
 </head>
<body>
<div class=”container”>
<h1 >Validador TISS</h1>
 <a class=”btn btn-lg ” href=”#seu-site” role=”button”>Validador de arquivos XML no padrão TISS</a>
 <br>
 <form id=”upload” name=”upload” enctype=”multipart/form-data” method=”post” action=”validar_arquivo.php“>
<div class=”form-group”>
 <label for=”versao” class=”control-label”>Selecione a versão:</label>
<select name=”versao” class=”form-control”>
 <option value=”tissV3_03_03.xsd” selected>TISS – 03.03.03</option>
<option value=”tissV3_03_02.xsd” >TISS – 03.03.02</option>
<option value=”tissV3_03_01.xsd” >TISS – 03.03.01</option>
<option value=”tissV3_03_00.xsd” >TISS – 03.03.00</option>
<option value=”tissV3_02_02.xsd” >TISS – 03.02.02</option>
<option value=”tissV3_02_01.xsd” >TISS – 03.02.01</option>
<option value=”tissV3_02_00.xsd” >TISS – 03.02.00</option>
  <option value=”tissMonitoramentoV3_03_03“>Monitoramento TISS – 03.03.03</option>
<option value=”tissMonitoramentoV3_03_02“>Monitoramento TISS – 03.03.02</option>
<option value=”tissMonitoramentoV3_03_01“>Monitoramento TISS – 03.03.01</option>
<option value=”tissMonitoramentoV3_03_00“>Monitoramento TISS – 03.03.00</option>
<option value=”tissMonitoramentoV3_02_02“>Monitoramento TISS – 03.02.02</option>
<option value=”tissMonitoramentoV3_02_01“>Monitoramento TISS – 03.02.01</option>
<option value=”tissMonitoramentoV3_02_00“>Monitoramento TISS – 03.02.00</option>
 </select>
 </label>
 </div>
<div class=”form-group”>
 <label for=”arquivo_xml” class=”control-label”>Selecione o arquivo (XML) para validação</label>
 <input id=”arquivo_xml” name=”arquivo_xml” type=”file” class=”form-control-file” placeholder=”Selecione o arquivo XML para validaçaõ…” />
 </div>
<button type=”submit” class=”btn btn-primary”>Validar Arquivo</button>
 </form>
</div>
</body>
A página ficará com o layout abaixo;

Agora copie todos os arquivos que baixou no site da ANS e coloque dentro da pasta (tiss), ficando da seguinte forma:
tiss/03_03_03
 tiss/03_03_02
tiss/03_03_01
tiss/03_03_00
  tiss/03_02_02
 tiss/03_02_01
 tiss/03_02_00