1. O que é o Monitor de Inadimplência?

O Monitor de Inadimplência é uma ferramenta desenvolvida para permitir que usuários visualizem, acompanhem e registrem informações sobre beneficiários de planos de saúde que possuem faturas vencidas. O sistema também identifica aqueles que se enquadram na RN nº 593 da ANS, norma que regulamenta o cancelamento de contratos por inadimplência.

2. Funcionalidades do Sistema

3. Parâmetros (SX6)

A rotina leva em consideração dois parâmetros para retornar os títulos:

4. Estrutura da Interface

> Parte Superior: Dados do Beneficiário

> Parte Inferior Esquerda: Títulos em Aberto

> Parte Inferior Direita: Interações Realizadas

5. Passo a Passo das Funcionalidades

Novo Filtro

  1. Clique no botão Novo Filtro.

  2. Uma janela com um formulário será exibida.

  3. Preencha os dados conforme a necessidade.

  4. Clique em OK.

Quanto menos parâmetros informados, maior pode ser o tempo de processamento devido à quantidade de registros retornados.

Atualizar Dados

  1. Clique no botão Atualizar Dados.

  2. O sistema irá recarregar os dados com base nos parâmetros preenchidos anteriormente.

Importante: Use essa funcionalidade após registrar uma interação manualmente para atualizar corretamente os filtros da RN 593.

Enviar Notificação de Inadimplência

  1. Selecione uma ou mais linhas na tabela da esquerda.

  2. Clique no botão Enviar Notificação de Inadimplência.

O sistema enviará o e-mail para:

A estrutura do e-mail e remetente são configurados na rotina: Gerenciador de Contas de E-mail

6. Filtros RN 593

Filtros específicos para beneficiários que se enquadram na Resolução Normativa 593 da ANS.

Premissas:

Tipos de Filtros Disponíveis:

Limpar Filtro

Restaura a lista para exibir todos os inadimplentes.

7. Documentação

Exibe a documentação do monitor de inadimplência.


Apêndice Técnico

Criação de Botões Customizados

Foi implementada a customização de botões na rotina, permitindo a criação de quantos botões forem necessários com as funcionalidades desejadas. O ponto de entrada responsável pela criação dos botões é o PLMON001.

Exemplo de implementação:

function PLMON001()
     LOCAL aMenu := {}
     AADD(aMenu, {"Teste Botão 1", {||U_botao1()}})
     AADD(aMenu, {"Teste Botão 2", {||U_botao2()}})
return aMenu

Recuperar Seleção de Beneficiários

Para obter a relação dos beneficiários selecionados no mark da primeira coluna, não é possível passar como parâmetro na criação do botão. Por isso, foi disponibilizado um método estático que devolve um objeto JSON com a lista dos beneficiários selecionados:

totvs.protheus.health.delinquency.monitor.DelinquencyInterface():getSelecBeneficiaries()

Realizando a chamada desse método dessa forma, a lista dos beneficiários selecionados na tela estará disponível em qualquer fonte, função ou método customizado enquanto o monitor de inadimplência estiver aberto.

Ponto de Entrada do Status de Contato

Através do PE PLMON002, é possível criar status relacionados à tabela de contatos realizados (BRZ).

Exemplo:

FUNCTION PLMON002()
   LOCAL aStatus := {}
   AADD(aStatus, {"BRZ_DATCON < dDataBase .AND. BRZ_CNFCON == '0'", "BLUE", "Data anterior a hoje"})
RETURN aStatus

Para mais informações sobre pontos de entrada no grid de contatos, consulte o documento MVC: https://centraldeatendimento.totvs.com/hc/pt-br/articles/360017512652-Cross-Segmento-TOTVS-Backoffice-Linha-Protheus-ADVPL-Como-utilizar-MVC-Model-View-Controller

Inserção de Dados na Tabela BRZ

Utilize a classe FWBulk para inserção em massa com melhor performance:

// Instancia a classe de serviços
oMonitorService := totvs.protheus.health.delinquency.monitor.DelinquencyService():New()
// Cria o objeto bulk
oMonitorService:createBulkContact()

For nSendMail := 1 To 100
   self:oMonitorService:insertDataBulkContact("00010001123456011", "01", "E-mail enviado para o beneficiário")
Next

// Commit final
oMonitorService:flushBulkContact()

Ambos os métodos retornam true se bem-sucedidos, e false em caso de erro. Logs em monitorInadimplencia.log no diretório logpls.

Consulta a Tabelas Temporárias

Os dois grids (beneficiários e títulos) utilizam tabelas temporárias. Para acesso por:

totvs.protheus.health.delinquency.monitor.DelinquencyService():realNameBeneficiaries()
totvs.protheus.health.delinquency.monitor.DelinquencyService():realNameInvoices()

Ambiente Com Banco de Dados Oracle

O monitor de inadimplência utiliza tabelas temporárias para armazenar tanto os dados dos beneficiários quanto os títulos em aberto. No entanto, o banco de dados Oracle possui uma particularidade: os dados inseridos em uma tabela temporária durante uma sessão não ficam visíveis em outras sessões.

Por esse motivo, quando for necessário acessar os dados para depuração ou implementar pontos de entrada, deve-se configurar o parâmetro MV_DEBMONT como true (.T.). Quando esse parâmetro está ativado — e somente no Oracle — são criadas duas tabelas físicas:

Essas tabelas são recriadas sempre que a rotina é encerrada e reaberta. Além disso, qualquer novo filtro ou atualização também provoca a exclusão e recriação das tabelas com os dados atualizados.

Importante: