Agente de IA para Relatórios de Ocupação e Turnover de Leitos

17 de December de 2025 • Tempo de leitura: 5 min

Como criar um agente de IA que gera relatórios detalhados sobre a ocupação de leitos e o turnover em tempo real.

1. Propósito e Escopo

Este documento define todos os prompts, configurações de memória, transição entre estados, ferramentas como chamadas a sistemas externos e demais requisitos funcionais para o Fluxo de Agentes "Relatórios de Ocupação e Turnover de Leitos", uma solução de automação projetada para gerar relatórios detalhados sobre a ocupação de leitos e o turnover em tempo real, auxiliando na gestão de capacidade hospitalar. Essa documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.

O objetivo principal é transformar dados brutos de ocupação e eventos de turnover em relatórios precisos e em tempo real, fornecendo insights valiosos para a gestão hospitalar.

2. Contexto e Problema

Cenário Atual

As instituições hospitalares enfrentam desafios significativos na gestão de leitos, especialmente em contextos de alta demanda. A falta de visibilidade em tempo real sobre a ocupação e o turnover de leitos impede uma gestão eficiente da capacidade hospitalar.

Atualmente, a geração de relatórios precisos para a gestão de capacidade hospitalar é um processo manual e demorado, o que dificulta a tomada de decisões rápidas e informadas.


Problemas Identificados

  • Falta de visibilidade em tempo real: A ausência de dados atualizados sobre a ocupação e o turnover de leitos impede uma resposta rápida a mudanças na demanda.
  • Dificuldade na geração de relatórios: O processo manual de coleta e análise de dados resulta em relatórios imprecisos e atrasados.

3. Impactos Esperados

A implementação deste fluxo de automação visa alcançar os seguintes resultados:

  • Aumentar a visibilidade em tempo real sobre a ocupação e o turnover de leitos.
  • Melhorar a precisão e a rapidez na geração de relatórios de gestão de capacidade.
  • Otimizar a alocação de recursos, permitindo uma gestão mais eficiente dos leitos hospitalares.

4. Visão Geral da Solução

O agente de IA para relatórios de ocupação e turnover de leitos monitora continuamente a ocupação e o turnover de leitos, gerando relatórios precisos e em tempo real para a gestão de capacidade hospitalar. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue como um assistente útil e autônomo na gestão hospitalar.

A solução consiste em um fluxo de automação composto por 6 agentes de IA. O processo inicia com a preparação de parâmetros de consulta e termina com a geração de um relatório operacional de leitos.

A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo. O fluxo inclui etapas de normalização e validação de dados, cálculo de indicadores e geração de alertas operacionais.

Agentes Função Principal
Agente de Preparação de Parâmetros de Consulta (RF 1) Construir parâmetros padronizados para recuperar dados de ocupação e eventos de turnover de leitos a partir dos sistemas internos.
Agente de Execução de Chamada à API (RF 2) Realizar chamadas às APIs internas para obter dados de ocupação de leitos e eventos de turnover na janela definida.
Agente de Normalização e Qualidade de Dados de Leitos (RF 3) Padronizar, higienizar e validar dados crus de ocupação e eventos para uso analítico consistente.
Agente de Cálculo de Indicadores de Ocupação e Turnover (RF 4) Calcular métricas operacionais de capacidade e giro de leitos por unidade e gerais.
Agente de Detecção de Anomalias e Gargalos (RF 5) Identificar desvios operacionais relevantes e sugerir ações imediatas.
Agente de Geração de Relatório Operacional de Leitos (RF 6) Produzir relatório de ocupação e turnover em formato legível e com seções padronizadas para gestão de capacidade.

5. Protótipos

Para proporcionar uma visão clara e tangível da solução proposta, criamos protótipos interativos que demonstram tanto o fluxo de trabalho dos agentes quanto o resultado final que o cliente receberá. Explore os links abaixo para entender melhor a solução em ação.

6. Requisitos Funcionais

RF 1. Agente de Preparação de Parâmetros de Consulta

1.1 Tarefa do Agente

Construir parâmetros padronizados para recuperar dados de ocupação e eventos de turnover de leitos a partir dos sistemas internos.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo uma solicitação para preparar parâmetros de consulta para recuperar dados de ocupação e eventos de turnover de leitos.

# 2. Objetivo
Construir parâmetros padronizados para recuperar dados de ocupação e eventos de turnover de leitos a partir dos sistemas internos.

# 3. Regras que você deve seguir para gerar sua resposta
- Se janela_minutos não for informada, defina 15 minutos retroativos a partir do carimbo de data/hora atual do input.
- Padronize todos os timestamps no timezone_padrao; se ausente, use America/Sao_Paulo.
- Remova duplicidade de unidades/filtros e valide que status_leito_incluir contenha apenas valores do conjunto {OCUPADO, LIVRE, EM_LIMPEZA, BLOQUEADO, MANUTENCAO}; valores desconhecidos devem ser excluídos.
- Imponha limites de paginação: se limite > 5000, defina 5000; se limite <= 0, defina 1000.
- Garanta que "desde" < "ate"; se invertidos, troque as posições.
- Inclua tipos_evento mínimos para turnover: {ADMISSAO, ALTA, LIMPEZA_INICIO, LIMPEZA_FIM, PRONTO_PARA_OCUPACAO}.
1.3 Configurações do Agente

1.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente é o ponto de partida do fluxo e deve ser acionado pelo envio de dados de configuração via API. Na fase de testes, os dados serão enviados pelo agente diretamente por upload de um arquivo JSON na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: O input inicial para o fluxo é um arquivo JSON contendo parâmetros de configuração.
  • Formatos Suportados: Esse agente deve ser capaz de receber arquivos nos formatos: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 5.000 caracteres.

1.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo os parâmetros de consulta padronizados e validados.
  • Exemplo de Estrutura de Output:
     {
      "payload_api_ocupacao": {"endpoint": "/leitos/ocupacao", "query": {"desde": "2025-12-17T09:06:00-03:00", "ate": "2025-12-17T09:21:00-03:00", "hospital_id": "H001", "unidades": ["UTI Adulto","Enfermaria"], "status": ["OCUPADO","LIVRE","EM_LIMPEZA"], "limite": 1000, "offset": 0 }},
      "payload_api_turnover": {"endpoint": "/leitos/eventos", "query": {"desde": "2025-12-17T09:06:00-03:00", "ate": "2025-12-17T09:21:00-03:00", "tipos_evento": ["ADMISSAO","ALTA","LIMPEZA_INICIO","LIMPEZA_FIM","PRONTO_PARA_OCUPACAO"], "hospital_id": "H001", "limite": 1000, "offset": 0 }},
      "timezone_padrao": "America/Sao_Paulo"
    } 
  • Número de caracteres esperado: O JSON gerado deve ser conciso e informativo, com um tamanho estimado em torno de 1.500 caracteres.

1.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

1.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

1.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
  • Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Execução de Chamada à API (RF 2).

1.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Execução de Chamada à API (RF 2).

RF 2. Agente de Execução de Chamada à API

2.1 Tarefa do Agente

Realizar chamadas às APIs internas para obter dados de ocupação de leitos e eventos de turnover na janela definida.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo parâmetros de consulta padronizados para realizar chamadas às APIs internas e obter dados de ocupação de leitos e eventos de turnover.

# 2. Objetivo
Realizar chamadas às APIs internas para obter dados de ocupação de leitos e eventos de turnover na janela definida.
2.3 Configurações do Agente

2.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 1).
  • Tipo do input: Este agente deve ser apto a receber como input um JSON contendo os parâmetros de consulta padronizados.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 1.500 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo dados crus de ocupação e eventos de turnover.
  • Exemplo de Estrutura de Output:
     {
      "raw_ocupacao": [ {"leito_id": "L-101", "unidade": "UTI Adulto", "status": "OCUPADO", "paciente_id": "P123", "timestamp": "2025-12-17T09:19:42-03:00" }, ... ],
      "raw_eventos": [ {"evento_id": "E-9001", "leito_id": "L-101", "tipo": "ALTA", "timestamp": "2025-12-17T09:10:00-03:00" }, ... ]
    } 
  • Número de caracteres esperado: O JSON gerado deve conter dados relevantes, com um tamanho estimado em torno de 3.000 caracteres.

2.3.3 Parâmetros de Geração

  • Modelo: Não aplicável (uso de ferramenta)
  • Temperatura: Não aplicável

2.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Este agente realiza chamadas a sistemas externos para obter dados de ocupação e turnover.

2.3.5 Memória

2.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Normalização e Qualidade de Dados de Leitos (RF 3).

RF 3. Agente de Normalização e Qualidade de Dados de Leitos

3.1 Tarefa do Agente

Padronizar, higienizar e validar dados crus de ocupação e eventos para uso analítico consistente.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados crus de ocupação e eventos de turnover para padronização e validação.

# 2. Objetivo
Padronizar, higienizar e validar dados crus de ocupação e eventos para uso analítico consistente.

# 3. Regras que você deve seguir para gerar sua resposta
- Converta todos os timestamps para o timezone_padrao; se timestamp inválido, descarte e registre em relatorio_qualidade.motivos.timestamp_invalido.
- Normalize valores de status para o conjunto {OCUPADO, LIVRE, EM_LIMPEZA, BLOQUEADO, MANUTENCAO}; mapeie sinônimos comuns (p.ex., "DISPONIVEL"->"LIVRE"). Desconhecidos: descarte e contabilize em relatorio_qualidade.motivos.status_desconhecido.
- Deduplicate por chave: ocupação -> (leito_id, ts); eventos -> (evento_id) ou, se ausente, (leito_id, tipo, ts).
- Garanta integridade: todo evento deve ter leito_id; se ausente, descarte e registre motivo "sem_leito_id".
- Harmonize nomes de unidade retirando espaços duplos e padronizando capitalização (Title Case).
- Para ocupação, se paciente_id ausente quando status=OCUPADO, marque campo paciente_id=null e adicione flag "ocupado_sem_paciente": true.
- Produza relatorio_qualidade com contagens de registros_invalidos e duplicatas_removidas.
3.3 Configurações do Agente

3.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 2).
  • Tipo do input: Este agente deve ser apto a receber como input um JSON contendo dados crus de ocupação e eventos de turnover.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 3.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo dados normalizados de ocupação e eventos, além de um relatório de qualidade.
  • Exemplo de Estrutura de Output:
     {
      "ocupacao_norm": [ {"leito_id":"L-101","unidade":"UTI Adulto","status":"OCUPADO","paciente_id":"P123","ts":"2025-12-17T09:19:42-03:00"}, ... ],
      "eventos_norm": [ {"evento_id":"E-9001","leito_id":"L-101","tipo":"ALTA","ts":"2025-12-17T09:10:00-03:00"}, ... ],
      "relatorio_qualidade": {"registros_invalidos": 2, "motivos": {"status_desconhecido":1, "timestamp_invalido":1}, "duplicatas_removidas": 5}
    } 
  • Número de caracteres esperado: O JSON gerado deve ser detalhado, com um tamanho estimado em torno de 4.000 caracteres.

3.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

3.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

3.3.5 Memória

3.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Cálculo de Indicadores de Ocupação e Turnover (RF 4).

RF 4. Agente de Cálculo de Indicadores de Ocupação e Turnover

4.1 Tarefa do Agente

Calcular métricas operacionais de capacidade e giro de leitos por unidade e gerais.

4.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados normalizados de ocupação e eventos para calcular métricas operacionais de capacidade e giro de leitos.

# 2. Objetivo
Calcular métricas operacionais de capacidade e giro de leitos por unidade e gerais.

# 3. Regras que você deve seguir para gerar sua resposta
- Timestamp de referência: use o maior ts observado entre ocupacao_norm e eventos_norm.
- Fórmulas:
  • Ocupação unid.: ocupacao = leitos_ocupados / total_leitos (se total_leitos>0, senão ocupe 0 e sinalize erro de capacidade).
  • Leitos disponíveis: total_leitos - leitos_ocupados - leitos_bloqueados (não negativos).
  • Turnover por hora (turnover_h): número de altas concluídas na janela / total_leitos / (largura_janela_em_horas). Considere evento tipo=ALTA.
  • ALOS em horas (alos_h): média de (ts_alta - ts_admissao) por paciente concluído na janela; se não houver alta correspondente, exclua do cálculo.
  • Tempo de limpeza médio (t_limpeza_med_min): média de (LIMPEZA_FIM - LIMPEZA_INICIO) por leito, em minutos, para pares válidos na janela.
  • Taxa de bloqueio: leitos_bloqueados / total_leitos.
- Cômputo de contagens:
  • leitos_ocupados: último status por leito na referência com status=OCUPADO.
  • leitos_bloqueados: último status por leito na referência com status∈{BLOQUEADO, MANUTENCAO}.
- Trate valores ausentes: se capacidade_por_unidade faltar para alguma unidade presente, exclua-a dos KPIs e registre erro_capacidade para revisão.
- Outputs numéricos com 2 casas decimais; taxas em [0,1].
4.3 Configurações do Agente

4.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 3).
  • Tipo do input: Este agente deve ser apto a receber como input um JSON contendo dados normalizados de ocupação e eventos.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 4.000 caracteres.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo as métricas operacionais calculadas para ocupação e turnover de leitos.
  • Exemplo de Estrutura de Output:
     {
      "kpis": {"timestamp_referencia": "2025-12-17T09:21:00-03:00", "geral": {"ocupacao": 0.78, "leitos_ocupados": 117, "leitos_disponiveis": 33, "turnover_h": 0.19, "alocacao_sobra": 0.22, "alos_h": 72.5, "t_limpeza_med_min": 32}, "por_unidade": [{"unidade":"UTI Adulto","ocupacao":0.9,"leitos_ocupados":27,"leitos_disponiveis":3,"turnover_h":0.12,"alos_h":96.0,"t_limpeza_med_min":40},{"unidade":"Enfermaria","ocupacao":0.75,"leitos_ocupados":90,"leitos_disponiveis":30,"turnover_h":0.22,"alos_h":60.5,"t_limpeza_med_min":28}] }, "derivacoes": {"taxa_bloqueio": 0.03, "leitos_bloqueados": 5} }
    } 
  • Número de caracteres esperado: O JSON gerado deve ser abrangente, com um tamanho estimado em torno de 3.500 caracteres.

4.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

4.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Utiliza lógica interna para cálculos de métricas.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

4.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
  • Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Detecção de Anomalias e Gargalos (RF 5).

4.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Detecção de Anomalias e Gargalos (RF 5).

RF 5. Agente de Detecção de Anomalias e Gargalos

5.1 Tarefa do Agente

Identificar desvios operacionais relevantes e sugerir ações imediatas.

5.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo métricas operacionais de ocupação e turnover para identificar desvios e sugerir ações imediatas.

# 2. Objetivo
Identificar desvios operacionais relevantes e sugerir ações imediatas.

# 3. Regras que você deve seguir para gerar sua resposta
- Gere alertas quando: ocupacao >= ocupacao_alta; turnover_h <= turnover_baixo; t_limpeza_med_min > tempo_limpeza_max_min; leitos_disponiveis <= 2.
- Severidade: alta se desvio > 10% relativo ao limiar; média se entre 5%-10%; baixa se <5%.
- Para cada alerta, inclua: unidade, tipo, valor medido, limiar aplicado, severidade, acao_sugerida clara e acionável.
- Se KPIs gerais indicarem ocupação >= 0.95, gere alerta sistêmico "capacidade_critica" com recomendação de contingência.
5.3 Configurações do Agente

5.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 4).
  • Tipo do input: Este agente deve ser apto a receber como input um JSON contendo métricas operacionais de ocupação e turnover.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 3.500 caracteres.

5.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo alertas operacionais e ações sugeridas.
  • Exemplo de Estrutura de Output:
     {
      "alertas": [ {"unidade": "UTI Adulto", "tipo": "ocupacao_alta", "valor": 0.92, "limiar": 0.9, "severidade": "alta", "acao_sugerida": "Priorizar altas clinicamente elegíveis e coordenar limpeza imediata"}, ... ]
    } 
  • Número de caracteres esperado: O JSON gerado deve ser conciso e direto, com um tamanho estimado em torno de 2.000 caracteres.

5.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

5.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

5.3.5 Memória

5.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Geração de Relatório Operacional de Leitos (RF 6).

RF 6. Agente de Geração de Relatório Operacional de Leitos

6.1 Tarefa do Agente

Produzir relatório de ocupação e turnover em formato legível e com seções padronizadas para gestão de capacidade.

6.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo métricas operacionais e alertas para produzir um relatório de ocupação e turnover.

# 2. Objetivo
Produzir relatório de ocupação e turnover em formato legível e com seções padronizadas para gestão de capacidade.

# 3. Regras que você deve seguir para gerar sua resposta
- Estrutura fixa: 1) Cabeçalho; 2) Resumo Executivo (KPIs gerais com interpretações curtas); 3) Detalhe por Unidade (linhas pareadas KPI->interpretação); 4) Alertas e Prioridades (ordenados por severidade descrescente); 5) Observações de Qualidade de Dados (itens críticos que podem afetar decisões).
- Inclua números com duas casas decimais e percentuais no formato 78.00%.
- Destaque até três ações prioritárias no início da seção de Alertas.
- Se não houver dados suficientes para algum KPI, indique explicitamente "indisponível" e o motivo resumido.
- Inclua carimbo de tempo da referência e a largura da janela em minutos.
6.3 Configurações do Agente

6.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 5).
  • Tipo do input: Este agente deve ser apto a receber como input um JSON contendo métricas operacionais e alertas.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 5.000 caracteres.

6.3.2 Especificação do Output

  • Formato de output: O output deve ser um texto estruturado contendo o relatório de ocupação e turnover.
  • Exemplo de Estrutura de Output:
    Texto estruturado com: cabeçalho (hospital, data/hora referência, janela), resumo executivo (KPIs gerais), seções por unidade (ocupação, disponíveis, turnover, ALOS, limpeza), alertas e ações sugeridas, apêndice de qualidade de dados (se aplicável).
  • Número de caracteres esperado: O texto gerado deve ser detalhado e abrangente, com um tamanho estimado em torno de 6.000 caracteres.

6.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

6.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Utiliza lógica interna para formatação e cálculos simples.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

6.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
  • Visibilidade da Resposta: A resposta gerada por este agente é o entregável final e não é passada para outros agentes internos.

6.3.6 Regras de Orquestração e Transição

A execução deste agente finaliza o fluxo. O relatório gerado é o resultado que deve ser disponibilizado ao usuário.

© 2025 prototipe.ai. Todos os direitos reservados.