Pular para o conteúdo

CONTA_PACIENTE_RESUMO: por que o resumo da conta pode somar duas vezes

O Tasy refaz o resumo da conta a cada recálculo. Quem carrega CONTA_PACIENTE_RESUMO como uma tabela comum acaba com itens que já não existem. O exemplo de uma conta de R$ 90 que aparece como R$ 120 ou R$ 210, e como corrigir.

Equipe Clic HealthAtualizado em 6 min de leitura

CONTA_PACIENTE_RESUMO é a tabela mais usada para o faturamento num BI sobre o Tasy: tem os itens de cada conta já agrupados, com quantidade, valor e as colunas de custo. É também a origem mais comum de uma reclamação conhecida: o faturamento do mês no BI fica acima do relatório do Tasy, e a diferença cresce com o tempo. Quase sempre o motivo é o mesmo: o resumo foi carregado como se fosse uma tabela comum.

O que é o resumo da conta

Durante o atendimento, o Tasy registra cada procedimento em PROCEDIMENTO_PACIENTE e cada material ou medicamento na tabela de materiais do atendimento. O resumo é a consolidação desses lançamentos por conta, com os campos que a gestão usa:

CampoPara que serve
NR_INTERNO_CONTAA conta a que o item pertence
NR_SEQUENCIAA sequência do item dentro do resumo
CD_PROCEDIMENTO, IE_ORIGEM_PROCEDO procedimento e a tabela de origem
CD_MATERIALO material ou medicamento
CD_ESTRUTURA_CONTAO grupo da estrutura da conta (diárias, taxas, mat/med, honorários)
CD_SETOR_ATENDIMENTOO setor que gerou o item
QT_RESUMO, VL_PROCEDIMENTO, VL_MATERIALQuantidade e valores
VL_CUSTO_DIRETO, VL_CUSTO_INDIRETO, VL_CUSTO_MAO_OBRA, VL_CUSTO_VARIAVELCustos, quando o custeio está ativo
VL_REPASSE_CALCRepasse calculado para o item
CD_MOTIVO_EXC_CONTAPreenchido quando o item foi excluído da conta

É por isso que margem por convênio, ticket médio e mat/med por paciente costumam sair daqui: valor e custo estão na mesma linha.

O ponto que muda tudo: o resumo é refeito

Quando a conta é recalculada (porque um item foi lançado, retirado, mudou de preço ou a conta trocou de convênio), o Tasy gera o resumo de novo. O resumo anterior deixa de existir e um novo aparece, com novas sequências.

Há um segundo detalhe: no Tasy, CONTA_PACIENTE_RESUMO não tem uma DT_ATUALIZACAO própria que acompanhe essas mudanças. Quem quer saber se o resumo de uma conta mudou precisa olhar a DT_ATUALIZACAO de CONTA_PACIENTE.

O exemplo: uma conta de R$ 90

A conta 50.871 foi calculada pela primeira vez às 9h com quatro itens:

Seq.ItemValor
1Diária de enfermariaR$ 60,00
2Material AR$ 20,00
3Material BR$ 10,00
4Material lançado em duplicidadeR$ 30,00
TotalR$ 120,00

Às 11h, a auditoria retirou o lançamento duplicado e a conta foi recalculada. O Tasy refez o resumo:

Seq.ItemValor
5Diária de enfermariaR$ 60,00
6Material AR$ 20,00
7Material BR$ 10,00
TotalR$ 90,00

O valor certo é R$ 90,00. Veja o que três formas de carga produzem:

Forma de cargaO que fica no BITotal no BI
Acrescentar as linhas novasSequências 1 a 7R$ 210,00
Atualizar pela chave (conta + sequência)Sequências 1 a 7 (as antigas não foram tocadas, então continuam)R$ 210,00
Atualizar pela chave, quando o Tasy reaproveita as sequênciasSequências 1 a 4, com 1 a 3 atualizadas e a 4 sobrandoR$ 120,00
Trocar o resumo inteiro da contaSó o resumo atualR$ 90,00

Em um mês com milhares de contas recalculadas, a diferença passa facilmente de alguns por cento do faturamento. E, como depende de quantas vezes cada conta foi recalculada, não é uma diferença constante que dê para descontar.

A forma certa de carregar

  1. Descobrir quais contas mudaram pela DT_ATUALIZACAO de CONTA_PACIENTE, com a mesma folga das outras cargas incrementais (carga incremental do Tasy).
  2. Trazer o resumo inteiro dessas contas, não só linhas novas.
  3. No destino, apagar o resumo dessas contas e gravar o que acabou de chegar. A unidade de atualização é a conta, não o item.

No PostgreSQL de um banco intermediário, a troca fica assim:

-- contas que chegaram nesta rodada
CREATE TEMP TABLE contas_rodada AS
SELECT DISTINCT nr_interno_conta
  FROM bruto.conta_paciente_resumo
 WHERE _carregado_em > :ultima_execucao;

-- apaga o resumo antigo dessas contas
DELETE FROM tratado.conta_paciente_resumo t
 USING contas_rodada c
 WHERE t.nr_interno_conta = c.nr_interno_conta;

-- grava só o resumo da carga mais recente de cada conta
INSERT INTO tratado.conta_paciente_resumo
SELECT b.*
  FROM bruto.conta_paciente_resumo b
  JOIN contas_rodada c ON c.nr_interno_conta = b.nr_interno_conta
 WHERE b._carga_id = (SELECT max(b2._carga_id)
                        FROM bruto.conta_paciente_resumo b2
                       WHERE b2.nr_interno_conta = b.nr_interno_conta);

A troca roda dentro de uma transação. Se falhar no meio, nada muda e a rodada seguinte tenta de novo.

Os filtros do número que o faturamento reconhece

Mesmo com a carga certa, o resumo traz linhas que não devem entrar no faturamento do mês. Os filtros que usamos no Clic Health, conferidos contra o relatório do Tasy:

  • conta não cancelada: IE_CANCELAMENTO vazio em CONTA_PACIENTE (canceladas e estornadas ficam fora);
  • conta em protocolo definitivo: a conta está num protocolo com status definitivo em PROTOCOLO_CONVENIO;
  • item não excluído: CD_MOTIVO_EXC_CONTA vazio no resumo.

Um quarto cuidado é a data. O mês do faturamento pode ser o mês de referência da conta (DT_MESANO_REFERENCIA), o mês do protocolo ou o mês da alta. Cada um responde uma pergunta diferente. Escolha um, escreva a regra e use a mesma em todos os painéis.

No Clic Health, a tabela de faturamento traz todas as contas (canceladas, estornadas, provisórias e sem protocolo) com a situação de cada uma, e os painéis aplicam os filtros acima ao carregar. Só a tela de conta paciente mostra a tabela inteira, com os filtros já abertos nesses valores. Assim dá para investigar uma conta cancelada sem contaminar o faturamento.

Como saber se o seu BI tem o problema

  1. Escolha um mês fechado e some o resumo no BI por conta.
  2. Compare com o valor da conta no Tasy (VL_CONTA em CONTA_PACIENTE, ou o relatório de faturamento).
  3. Ordene pela diferença. Se as contas com diferença são as que mais foram recalculadas (as que passaram pela auditoria, as que trocaram de convênio), é o resumo acumulado.
  4. Conte quantas sequências por conta existem no BI e no Tasy. Mais sequências no BI confirma.

O roteiro mensal de conferência está em como conferir os números do Tasy com o BI. Para os painéis de faturamento do Clic Health, veja faturamento e glosas com os dados do Tasy.

Quem escreve

A Domínio trabalha há mais de 20 anos com hospitais que usam o Tasy, do faturamento à contabilidade. Encontramos esse problema em mais de um BI que fomos chamados para revisar. Se o seu faturamento no BI não bate com o Tasy, fale com a gente pelo WhatsApp ou por comercial@dominiocontabil.com.br. Na Comunidade Tasy, hospitais e empresas que trabalham com o sistema trocam esse tipo de diagnóstico.

Perguntas relacionadas

Por que não usar PROCEDIMENTO_PACIENTE e a tabela de materiais em vez do resumo?

Dá para usar, e o total precisa bater. O resumo é mais prático porque já traz valor, custo e repasse por item, na estrutura da conta. As tabelas de lançamento servem para conferir e para análises por médico executor e horário.

O problema acontece só em carga incremental?

Sim. Uma carga completa, que substitui a tabela inteira a cada execução, não acumula resumos antigos. Ela só é pesada demais para rodar com frequência numa tabela desse tamanho.

O valor da conta em CONTA_PACIENTE não resolve?

Resolve o total por conta, mas não o detalhe por item, setor, estrutura ou custo. O resumo continua necessário para a margem e para o mix.

Itens com CD_MOTIVO_EXC_CONTA devem ser apagados do BI?

Não precisa apagar. Mantenha-os com a marca de excluído e filtre nos painéis. Eles ajudam a medir quanto a auditoria retira das contas.

Equipe Clic Health

Escrito pela equipe da Domínio, que faz o Clic Health: contadores, controllers e desenvolvedores que trabalham há mais de 20 anos com hospitais que usam o Tasy. Tem uma dúvida sobre o Tasy? Participe da Comunidade Tasy ou fale com a gente pelo WhatsApp.

Continue lendo

Mais em Tasy e dados

Fale com a gente

Agendar demonstração

Conte um pouco sobre o hospital. A nossa equipe responde em horário comercial, normalmente no mesmo dia.

Sua área
Sistema de gestão do hospital

Prefere conversar agora? WhatsApp +55 48 99928-8811