CONTEÚDO

  1. Visão Geral
  2. Detalhamento
  3. Nova tela de controle de DPS
  4. Novas tabelas
  5. Tabelas utilizadas


01. VISÃO GERAL 

      A presente especificação visa detalhar as regras para importação dos arquivos SIMPRO® no módulo SIGAPLS, para efeitos de pagamento/cobrança dos prestadores.  A tabela SIMPRO®, segundo o site, é "um banco de dados de materiais e medicamentos, utilizado como referência de informações (preço, apresentação, registro Anvisa, código tuss, classificação, embalagem, e outros), destinada , direcionado a compras, faturamento, licitações, análise e auditoria de contas médico-hospitalares" (site: https://www.SIMPRO®.com.br/PortalPages/CentralClientes/DuvidasFrequentes.aspx, pesquisado em 30/08/2021).

      Por se tratar de tema técnico e inicial, a presente especificação pode passar por atualizações em seu conteúdo e durante o desenvolvimento, visto que passará por diferentes crivos de análise e testes diversos, de forma a enriquecer o material e entrega da funcionalidade.


02. Detalhamento 

A) Configurador de Importação – Tabela B6G (Configurações Brasíndice®)

Atualmente, devido a importação da tabela Brasíndice®, já temos tela de configuração de importação, para facilitar o processo de importar os arquivos.  Vamos utilizar o mesmo conceito e tabela, para realizar as mesmas configurações para a SIMPRO®, mas observando as seguintes diferenças:

  1. Criar fonte exclusivo para a importação da SIMPRO®, com o nome PLSSIMPRO®.PRW.
  2. Pelo manual e layout, o sistema VideoFarma® permite que todos os itens – independente se é um medicamento ou material, sejam, exportados em arquivo único, permitindo sua diferenciação por uma classificação própria, no campo CD_MERC, onde: 
  3. Contudo, como necessitamos saber em qual TDE o item será importado - para quando houver codificação TUSS ou não – será necessário a configuração individual para cada item a ser importador.  Ou seja, devemos ter um registro na B6G para cada tipo de material, medicamento, perfumaria, reagente ou saneante a ser importado.
  4. Com relação os itens Perfumaria, Reagentes e Saneantes, esses itens deverão ser incluídos no combo do campo B6G_TIPPRO.
  5. O campo B6G_TIPARQ fica oculto na VIEW, ao visualizara tela de configuração. Assim:
  6. Será necessário revisar o fonte de Configuração de Importação (PLSBRASIN2), pois temos regras específicas do Brasíndice®, que não consideram o campo B6G_TIPARQ para validar, como as funções AtuCmpVal (que deve considerar agora o campo B6G_TIPARQ para validar apenas Brasíndice®); a função ChkVlrDup (que possui query para evitar itens repetidos com o mesmo tipo de material e valor, onde deverá verificar o campo B6G_TIPARQ, não mais apenas 1=Brasíndice®).
  7. Validar na tela o que é pertinente a cada item:
  8. Com relação aos valores, a SIMPRO® permite exportar o Preço de Fábrica (PFB), o Preço Máximo ao Consumidor (PMC) e iremos incluir o Preço do Usuário (PUSU), no campo B6G_TIPO.
  9. Demais regras e campos serão mantidos de forma igual.
  10. Ao acionar a opção de Configurar pela tela da Brasíndice® – PLSBRASIN1 – as configurações que deverão ser exibidas no Browse deverão ser apenas Brasíndice®. Se acionei a opção Configurar via tela SIMPRO® – PLSSIMPRO, no browse devem ser exibidos apenas os itens da SIMPRO®, usando o campo B6G_TIPARQ para este fim.


Importação - Regras

  1. Vamos utilizar como padrão o arquivo TXT e o CSV, ambos separados por ponto e vírgula (;). Essa informação deve estar de forma clara e concisa no documento de referência.
    1. Existe a opção de XML, mas para esse tipo de exportação, o cliente deve ter o módulo adicional. Como nem todos possuem, será aceito apenas o modelo txt e csv, separados por ponto e vírgula.
    2. Além do nome do arquivo, que deverá ter nomes similares aos cadastrados na tela de configuração, deverá ser colocado também o código de atualização e os dois últimos dígitos do ano (2021 = 21). Exemplo: Se temos uma regra onde o nome definido foi SANEANTES+PFB, e o arquivo de atualização SIMPRO® foi 6/2021, o nome do arquivo deverá ser algo como SANEANTES_PFB_621.TXT ou SANEANTESPFB_621.CSV.
  2. Deverá ser exibido um parambox, onde o usuário deverá informar:
    1. Pasta onde os arquivos CSV/TXT estão localizados(OBRIGATÓRIO);
    2. Código Mensagem SIMPRO® (deverá ser igual ao do campo mensagens, existente no sistema VideoFarma) (OBRIGATÓRIO)
      1. Para cada atualização enviada, temos um código da VideoFarma – como a edição na Brasíndice®. Deverá ser colocado esse código aqui, como: 33/2021, logo, deverá ser colocado 33 e os dois últimos dígitos do ano.
    3. Data da mensagem da SIMPRO® (será informado como data inicial de vigência para os itens – BD4_VIGINI) e será subtraído -1 dia quando for para fechar vigência(OBRIGATÓRIO).
    4. Campo para informar data de fim de vigência, para os itens que estiverem no status Fora de Uso ou Descontinuado(OBRIGATÓRIO).
    5. CheckBox para informar se para os itens nos status Fora de Uso ou Descontinuado, se deseja usar a data fim de vigência da ANVISA ou a data do item acima, caso a data no arquivo esteja fora do padrão.
      1. Aqui, devemos ter atenção, pois não existe data de fim de vigência ou arquivo de exclusão, igual ocorre na Brasíndice®. Assim, a saída encontrada foi ter o campo para o usuário informar uma data de até quando deseja utilizar aquele item Descontinuado/Fora de Uso ou então, em conjunto com o checkbox, caso queira usar a data final de vigência da ANVISA, que consta no arquivo.
      2. Contudo, em alguns registros aparece apenas a informação “VIGENTE” e assim, vai usar a data inserida pelo usuário.
    6. Ao clicar em OK do parambox, o sistema deve varrer o diretório, localizando os arquivos TXT e CSV que tenham nomes similares as regras cadastradas na tela de configuração e que tenham código igual ao informado no Pergunte.
      1. Se localizar arquivo com nome igual a regra, mas a versão é diferente ou inexistente, o usuário deverá ser indagado se deseja importar o arquivo, mas a versão utilizada será a que está no Pergunte.
      2. Só pode existir um arquivo para cada configuração! Logo, se um arquivo já deu match com uma configuração, essa configuração não pode mais dar match com nenhuma.
      3. Se encontrar arquivos, mas nenhum bate com as regras cadastradas, exibir uma caixa de desambiguação de arquivos, onde será exibido os arquivos sem match com regras, e na outra coluna, exibir as regras que ainda não tiveram arquivos localizados, para o match manual.
        1. Se todas as regras já tiverem um arquivo e mesmo assim sobrou arquivos órfãos, não deverá ser exibida essa janela de escolha manual, pois conforme item B acima, uma regra só pode ter um arquivo relacionado.
        2. Logar essa inconsistência, para exibir no final do processamento para o usuário.
  1. Criar rotina específica para leitura dos arquivos txt e csv da SIMPRO®, baseado no da Brasíndice®.
    1. Não é possível usar a mesma rotina da Brasíndice®, pois possui particularidades próprias
    2. A rotina deve contar com parte visual, para exibir o andamento do progresso das operações.
    3. Utilizar a classe FWFileReader() para leitura dos arquivos, setando um buffer de no mínimo, 10KB, para melhorar a performance da importação.
    4. https://tdn.totvs.com/display/framework/FWFileReader -> FwFileReader
    5. Utilizar o StrTokArr2 para criar o array baseado na string.
  2. Realizar o parser em cada linha, para desmembrar as colunas separadas com o ponto e vírgula, para trabalhar os dados e realizar as devidas inclusões/alterações e fechamento de vigências.
  3. No final da importação, exibir um resumo dos arquivos importados, com problemas e registros não válidos, caso aconteça


Importações – Tabelas

  1. Após as validações acima, necessitamos gravar ou atualizar as seguintes tabelas:
    1. BR8 - Tabela Padrão
    2. BA8 - Tabela Dinâmica de Eventos
    3. BD4 - Unidade de Saúde
    4. BTQ – Tabela de Terminologias
    5. B6F – Tabela de Histórico de Importações realizadas
    6. BF8 - Tabelas de Honorários.
      1. A BF8 só será criada se no campo B6G_CRITDE estiver como SIM. Caso contrário, não será gravada
    7. No arquivo SIMPRO® – similar ao Brasíndice® – temos o código da SIMPRO® e para maioria dos itens, temos o código TUSS equivalente.
      1. Se não existir código TUSS no registro analisado, deve ser gravado ou atualizado na TDE própria (informado no cadastro de configuração – B6G).
      2. Se existir o código TUSS no registro, devemos verificar na TDE própria – informada no cadastro da configuração (B6G) – se temos o código SIMPRO® do item cadastrado e se está com a data de vigência finalizado. Se não estiver, devemos finalizar a vigência, utilizando a data do pergunte Data mensagem – 1.
        1. Na sequência, verificar se já existe o código TUSS cadastrado, para inclusão ou alteração dos dados.
      3. Para cada registro gravado, no campo BD4_CHVIMP, deve ser colocado a chave de registro de relacionamento, com as informações “SIMPRO®| + código da atualização + ”|” + Tipo do Procedimento + “|” + Tipo Valor”. Ou seja, é a concatenação dos campos “SIMPRO®|” + código da atualização informada no parambox 621+ “|“ + B6G_TIPPRO + “|” + B6G_TIPO, ficando, por exemplo: “SIMPRO®|721 |1|2”.  
      4. Se existir um BD4 para evento, e na chave de relacionamento (BD4_CHVIMP) o código da atualização for menor que o atual, essa vigência será finalizada com a data atual -1, e gravar a nova BD4, com os dados necessários.
        1. Só gravar se tiver alteração de valor, se os ados são iguais, mesmo em edição diferente, não precisa executar o passo acima.
      5. Ao gravar os registros, criar ou atualizar os mesmos na tabela de terminologia BTQ, terminologia 64, conforme padrão TISS. Deve indicar na BTQ o código do Grupo (029 - MATERIAIS E OPME e 030 – MEDICAMENTOS).
        1. Medicamentos – 030
        2. Material – 029


03. Nova tela de Controle de DPS 


04. Tabelas  


05. TABELAS UTILIZADAS 


<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>