Pular para o conteúdo
Fynx
Business Intelligence12 min de leitura

Os KPIs hospitalares essenciais para o Power BI

KPIs hospitalares no Power BI: taxa de ocupação, giro de leito, permanência, infecção, readmissão, mortalidade e glosa, com fórmulas em DAX.

F
Fynx

O hospital tem dados de sobra e informação de menos

A maioria dos hospitais que atendemos não sofre por falta de dados. Sofre por falta de leitura confiável deles. O sistema de gestão hospitalar registra internação, alta, óbito, procedimento, faturamento e glosa, mas essa informação fica presa em relatórios operacionais que ninguém consegue comparar entre unidades, meses ou especialidades. É nesse ponto que os KPIs hospitalares deixam de ser um conceito de gestão em saúde e passam a ser um problema de engenharia de dados e de modelagem, exatamente o terreno do Power BI.

Este artigo é direto ao ponto: quais indicadores realmente importam, como cada um é definido pela gestão hospitalar e como calcular cada um em DAX. A ideia é sair daqui sabendo montar o cálculo e, principalmente, entender onde ele engana.

Um modelo de dados errado quebra qualquer indicador

Antes do primeiro KPI, o modelo. Indicador hospitalar depende quase sempre de duas coisas: uma contagem de pacientes-dia e uma contagem de leitos operacionais no período. Se essas duas grandezas vierem de granularidades diferentes ou de tabelas que não conversam, o número final mente com precisão de duas casas decimais.

O padrão que recomendamos é o esquema estrela clássico. Uma tabela fato de internações (uma linha por internação, com data de entrada, data de saída, leito, unidade, desfecho) e, quando o cálculo exige pacientes-dia com exatidão, uma fato de censo diário (uma linha por paciente por dia de permanência). Ao redor, dimensões de calendário, de leito, de unidade/setor e de paciente. Uma dimensão calendário contínua e marcada como tabela de datas é obrigatória para as funções de time intelligence do DAX funcionarem.

Vale lembrar como o Power BI trata isso por baixo. O motor VertiPaq comprime cada coluna em memória, e a compressão é melhor quanto menor a cardinalidade. Colunas como identificador de internação ou timestamps com segundos têm cardinalidade altíssima e incham o modelo. Separe data e hora em colunas distintas e evite chaves textuais longas. Se quiser aprofundar, escrevemos sobre isso em modelagem e boas práticas de DAX.

Nos exemplos abaixo assumo uma fato chamada Internacoes, uma Censo (pacientes-dia), uma dimensão dLeitos e uma dCalendario. Ajuste os nomes ao seu modelo.

Taxa de ocupação mostra se o leito está trabalhando

A taxa de ocupação hospitalar é a relação entre os pacientes-dia efetivamente ocupados e os leitos-dia disponíveis no período, em percentual. É o indicador mais citado e o mais mal calculado, porque muita gente divide pacientes internados hoje pelo total de leitos, ignorando o tempo.

O correto usa pacientes-dia no numerador e leitos operacionais multiplicados pelo número de dias no denominador.

Pacientes-Dia = COUNTROWS ( Censo )

Leitos-Dia =
SUMX (
    VALUES ( dCalendario[Data] ),
    [Leitos Operacionais]
)

Taxa de Ocupacao % =
DIVIDE ( [Pacientes-Dia], [Leitos-Dia] )

O ponto sensível é [Leitos Operacionais]. Leito operacional não é leito cadastrado. Leito bloqueado para manutenção ou por falta de equipe não conta como disponível, e incluir esses leitos derruba artificialmente a ocupação. Se o hospital tem histórico de leitos bloqueados por dia, modele isso numa tabela e o indicador ganha honestidade.

Tempo médio de permanência revela eficiência clínica e gargalo de alta

O tempo médio de permanência é a média de dias que os pacientes ficam internados, geralmente calculado como pacientes-dia dividido pelo número de saídas (altas mais óbitos) no período.

Saidas =
CALCULATE (
    COUNTROWS ( Internacoes ),
    NOT ISBLANK ( Internacoes[DataSaida] )
)

Tempo Medio Permanencia =
DIVIDE ( [Pacientes-Dia], [Saidas] )

Uma permanência longa pode ser complexidade real dos casos ou pode ser paciente com alta médica represado esperando transporte, exame ou vaga em outra unidade. O KPI sozinho não distingue os dois. Por isso ele quase nunca deve viajar sozinho no painel: coloque ao lado a permanência por especialidade e por médico, e o gargalo aparece.

Giro de leito e intervalo de substituição contam a mesma história por ângulos opostos

O giro de leito (ou índice de renovação) é quantos pacientes passaram, em média, por cada leito no período. Calcula-se pelas saídas divididas pelo número de leitos operacionais.

Giro de Leito =
DIVIDE ( [Saidas], [Leitos Operacionais Medios] )

O intervalo de substituição é o tempo médio, em dias ou horas, que um leito fica vago entre a saída de um paciente e a entrada do próximo. É o tempo ocioso do leito.

Intervalo de Substituicao =
DIVIDE (
    [Leitos-Dia] - [Pacientes-Dia],
    [Saidas]
)

Leia os dois juntos. Giro alto com intervalo de substituição baixo é operação enxuta. Giro alto com intervalo de substituição também alto sugere que o leito vira rápido mas fica muito tempo parado entre um paciente e outro, tipicamente higienização lenta ou falha na comunicação entre alta e internação. Esse cruzamento costuma render mais decisão do que a taxa de ocupação isolada.

Os indicadores essenciais em uma tabela de referência

Reunindo o núcleo de indicadores hospitalares que todo painel de gestão deveria ter, com a lógica de cada um:

IndicadorO que medeBase do cálculoDireção desejada
Taxa de ocupaçãoUso efetivo dos leitosPacientes-dia / Leitos-diaEquilíbrio, evitar extremos
Tempo médio de permanênciaDias por internaçãoPacientes-dia / SaídasMenor, sem prejuízo clínico
Giro de leitoRenovação por leitoSaídas / Leitos operacionaisMaior
Intervalo de substituiçãoOciosidade entre pacientes(Leitos-dia menos pacientes-dia) / SaídasMenor
Taxa de infecção hospitalarSegurança assistencialCasos IRAS / Pacientes-dia (ou saídas)Menor
Taxa de readmissãoQualidade do desfechoReadmissões em janela / SaídasMenor
Taxa de mortalidadeDesfecho graveÓbitos / SaídasMenor, ajustado ao perfil
Índice de glosaPerda de receitaValor glosado / Valor faturadoMenor

Nenhum desses números tem um alvo universal. Ocupação muito baixa é capacidade parada; muito alta compromete a segurança e elimina folga para picos. O alvo correto depende do porte, do perfil assistencial e da linha de cuidado, e deve ser definido pela própria gestão, não copiado de benchmark genérico.

Infecção, readmissão e mortalidade exigem definições rígidas antes do DAX

Esses três são indicadores de qualidade e segurança, e neles a definição pesa mais que a fórmula. A taxa de infecção relacionada à assistência à saúde (IRAS) precisa seguir os critérios da comissão de controle de infecção do hospital, alinhados às orientações da Anvisa, sobre o que conta como caso e qual o denominador correto para cada tipo de infecção. No Power BI, o cálculo é simples; o difícil é a marcação clínica na origem estar correta.

A readmissão precisa de uma janela definida, comumente 30 dias, e de uma regra clara: readmissão não planejada, relacionada à causa anterior. Em DAX, isso normalmente é resolvido na camada de dados marcando cada internação como readmissão ou não, porque comparar cada alta com internações futuras dentro de uma janela é caro de fazer em tempo de consulta. Prepare a coluna no Power Query ou na engenharia de dados a montante.

Taxa de Readmissao 30d % =
DIVIDE (
    CALCULATE ( [Saidas], Internacoes[Readmissao30d] = TRUE ),
    [Saidas]
)

A mortalidade bruta divide óbitos por saídas. O ponto honesto: mortalidade bruta não compara hospitais de perfis diferentes. Uma unidade que recebe casos mais graves terá mortalidade maior sem ser pior. Sempre que possível, segmente por especialidade, por gravidade e separe a mortalidade institucional (por exemplo, após 24 ou 48 horas de internação) para reduzir o ruído de pacientes que chegam já em desfecho.

Taxa de Mortalidade % =
DIVIDE (
    CALCULATE ( [Saidas], Internacoes[Desfecho] = "Obito" ),
    [Saidas]
)

Glosa é onde o BI hospitalar paga a própria conta

Se um indicador convence a diretoria financeira a investir em BI, costuma ser a glosa. Glosa é o valor faturado que a fonte pagadora, operadora ou SUS, recusa pagar, por divergência técnica, administrativa ou de codificação. É receita já produzida que evapora.

Indice de Glosa % =
DIVIDE ( [Valor Glosado], [Valor Faturado] )

O valor do painel não está no percentual total, e sim na decomposição. Glosa por motivo, por convênio, por setor e por profissional que autorizou o procedimento transforma um número frio em plano de ação. Um gráfico de decomposição no Power BI, ou a análise de influência principal, aponta rapidamente onde a perda se concentra e se é problema de documentação, de auditoria da operadora ou de codificação. Recuperar parte dessa glosa geralmente cobre o custo do projeto de dados em poucos meses, e essa é uma conversa que gostamos de ter em analytics avançado.

Sem governança e LGPD, o painel vira passivo

Dado hospitalar é dado pessoal sensível na definição da Lei nº 13.709/2018, a LGPD. Diagnóstico, procedimento e desfecho são informações de saúde e recebem proteção reforçada. Isso não é detalhe jurídico para depois: molda o projeto desde o início.

Na prática, aplique segurança em nível de linha (RLS) para que cada perfil veja apenas o que precisa, separe ambientes de identificação quando o painel de gestão puder trabalhar com dados agregados ou pseudonimizados, e registre quem acessa o quê. O Microsoft Fabric e o Power BI oferecem os controles, incluindo rótulos de confidencialidade integrados ao Microsoft Purview, mas a política de acesso é uma decisão de negócio. Tratamos esse tema em profundidade no texto sobre governança de dados e LGPD no Power BI, e é parte central do nosso trabalho de governança de dados.

Como levar isso ao Power BI sem virar planilha bonita

Do dado ao painel, a ordem que funciona:

  1. Extração e limpeza dos dados do sistema de gestão hospitalar, tratando duplicidade e desfecho, idealmente numa camada de engenharia de dados e não dentro do arquivo do relatório.
  2. Modelagem em esquema estrela, com calendário e censo diário quando a exatidão de pacientes-dia importa.
  3. Medidas DAX explícitas para cada KPI, nunca colunas calculadas onde uma medida resolve, para preservar contexto de filtro e desempenho.
  4. Camadas de visão: uma tela executiva com os indicadores-chave, e telas de detalhe por unidade, especialidade e período.
  5. Atualização programada e monitoramento, para o painel não morrer no primeiro mês.

Sobre a infraestrutura, a Microsoft é reconhecida como Líder no Quadrante Mágico do Gartner para plataformas de Analytics e BI, e o Power BI tem forte adoção no Brasil pela penetração do ecossistema Microsoft. Para volumes maiores, o Microsoft Fabric, anunciado em 2023, permite ler diretamente do OneLake com o modo Direct Lake, evitando importar tudo para dentro do modelo, e mede consumo em Capacity Units nas SKUs F2 a F2048. Para muitos hospitais, porém, Power BI Pro ou PPU por usuário já resolvem, e vale começar simples. A comparação está em Microsoft Fabric, o que é e se vale a pena.

Um erro comum: tratar KPI como número, não como sistema

O equívoco recorrente é montar oito cartões com oito números e chamar de painel de gestão. KPI hospitalar só gera decisão quando é lido em conjunto e ao longo do tempo. Ocupação com permanência, giro com intervalo de substituição, mortalidade segmentada por gravidade, glosa decomposta por motivo. O painel precisa contar uma história de operação, não exibir um placar.

E precisa ser confiável ao ponto de a diretoria clínica parar de pedir o relatório do sistema antigo para conferir. Essa confiança vem de definição acordada com quem entende de assistência, cálculo correto em DAX e um modelo que não desmorona quando os dados crescem.

Perguntas frequentes

Qual a diferença entre leito cadastrado e leito operacional no cálculo da ocupação? Leito cadastrado é o que consta no cadastro do hospital; leito operacional é o que está de fato disponível para uso no período, descontando bloqueios por manutenção, obra ou falta de equipe. A taxa de ocupação deve usar leitos operacionais no denominador. Usar leitos cadastrados subestima a ocupação e esconde que a operação real trabalha mais apertada do que o número sugere.

Preciso de uma tabela de censo diário ou dá para calcular pacientes-dia direto das internações? Dá para estimar pacientes-dia pela diferença entre data de saída e data de entrada, mas essa aproximação tem casos de borda ruins, como internações que cruzam o fim do mês e pacientes ainda internados na data de referência. Quando a taxa de ocupação precisa ser exata e comparável entre períodos, uma tabela de censo com uma linha por paciente por dia é a forma robusta.

Vale a pena usar Microsoft Fabric ou o Power BI comum resolve para um hospital? Depende do volume e da maturidade. Para a maioria dos hospitais começando em BI, Power BI com licença Pro ou PPU e um modelo bem feito atendem com folga. Fabric passa a fazer sentido quando há grande volume histórico, necessidade de camada de dados unificada no OneLake ou uso de Direct Lake. Comece pelo que resolve hoje e evolua a arquitetura conforme a demanda real, não pela tecnologia da moda.

Como a LGPD afeta um painel de indicadores hospitalares? Dados de saúde são dados sensíveis pela LGPD, então o painel precisa de controle de acesso por perfil (RLS), minimização do que é exibido, base legal para o tratamento e trilha de auditoria. Para gestão, muitos indicadores funcionam com dados agregados, o que reduz o risco. O ponto é tratar privacidade como requisito de projeto desde o início, não como ajuste no fim.

Por que calcular os KPIs com medidas DAX em vez de colunas calculadas? Medidas são avaliadas no contexto de filtro do relatório, então o mesmo cálculo responde corretamente por mês, unidade, especialidade ou qualquer combinação, sem multiplicar colunas. Colunas calculadas ocupam memória, são fixas no momento da atualização e não reagem à interação do usuário. Para indicadores que precisam ser fatiados de várias formas, medida é quase sempre a escolha certa.

Existe um valor ideal universal para taxa de ocupação ou permanência? Não. O alvo depende do porte, do perfil assistencial e da linha de cuidado. Ocupação muito alta elimina folga para picos e pressiona a segurança; muito baixa é capacidade ociosa. Permanência baixa demais pode significar alta precoce. As metas devem ser definidas pela gestão do hospital com base no próprio histórico e no perfil, não copiadas de um benchmark externo genérico.

Para fechar

Os KPIs hospitalares essenciais são poucos e conhecidos. O que separa um painel que muda a operação de um que decora a parede é o rigor: definição acordada com a área clínica, modelo de dados correto, cálculo DAX honesto e leitura em conjunto. Se você quer montar isso no Power BI com base sólida em vez de tentativa e erro, fale com a gente.

Quer aplicar isso na sua empresa?

A Fynx implementa BI, Power BI e Power Platform de ponta a ponta. Conte seu cenário e devolvemos um diagnóstico direto ao ponto.

Falar com um especialista

Vamos transformar seus dados em decisão?

Conte seu cenário. Devolvemos um diagnóstico e uma proposta com faixa de investimento em poucos dias úteis, sem folheto, direto ao ponto.