Agente de IA para Análise de Dados de Altas e Internações

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

Como criar um agente de IA que analisa dados históricos de altas e internações para identificar padrões e tendências.

1. Propósito e Escopo

Este documento define todos os prompts, configurações de memória, transição entre estados e demais requisitos funcionais para o Fluxo de Agentes "Análise de Dados de Altas e Internações", uma solução de automação projetada para analisar dados históricos de altas e internações hospitalares. 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 históricos em insights acionáveis, identificando padrões e tendências que auxiliem na gestão de recursos hospitalares.

2. Contexto e Problema

Cenário Atual

A falta de insights sobre padrões de altas e internações tem prejudicado a otimização da gestão hospitalar. Atualmente, a ineficiência no uso de recursos é um problema crítico devido à falta de análise adequada dos dados históricos disponíveis.


Problemas Identificados

  • Falta de insights: A ausência de uma análise de padrões e tendências nos dados de altas e internações impede uma gestão proativa e eficiente.
  • Ineficiência na alocação de recursos: Sem insights claros, a alocação de recursos hospitalares não é otimizada, levando a desperdícios e possíveis gargalos no atendimento.

3. Impactos Esperados

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

  • Melhoria na gestão de recursos através da identificação de padrões de sazonalidade e duração média de estadias.
  • Otimização do planejamento hospitalar por meio de recomendações baseadas em dados históricos.
  • Aumento da eficiência operacional ao permitir uma alocação mais precisa de leitos e equipes.

4. Visão Geral da Solução

O agente de IA para análise de dados de altas e internações processa dados históricos para identificar padrões e tendências, proporcionando insights valiosos para a gestão 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 eficaz na otimização de recursos e planejamento hospitalar.

A solução consiste em um fluxo de automação composto por 4 agentes de IA. O processo inicia com a validação e padronização dos dados e termina com a geração de um relatório consolidado para decisão.

A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.

Agentes Função Principal
Agente de Validação e Padronização de Dados de Internações e Altas (RF 1) Validar, higienizar e padronizar o dataset histórico de internações e altas.
Agente de Análise Descritiva e Sazonalidade de Internações e Altas (RF 2) Derivar KPIs, identificar padrões sazonais e tendências ao longo do tempo.
Agente de Recomendações Operacionais para Alocação de Recursos (RF 3) Traduzir padrões e tendências em recomendações práticas para leitos, equipes e agenda.
Agente de Síntese e Relatório Final (RF 4) Produzir o relatório consolidado para decisão com visualização textual dos principais KPIs e padrões.

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 Validação e Padronização de Dados de Internações e Altas

1.1 Tarefa do Agente

Validar, higienizar e padronizar o dataset histórico de internações e altas, garantindo consistência de campos, datas e códigos clínicos, e calcular variáveis derivadas para análise.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um arquivo CSV ou JSON com registros de internação contendo, idealmente, as colunas: admission_date, discharge_date, unit (opcional), diagnosis_code (CID ou similar, opcional), patient_id (opcional), resources_used (opcional). Metadados opcionais: timezone, feriados_locais, capacidade_leitos_por_unidade, horizonte_planejamento (datas futuras de interesse).

# 2. Objetivo
Validar, higienizar e padronizar o dataset, garantindo consistência de campos, datas e códigos clínicos, e calcular variáveis derivadas para análise.

# 3. Regras que você deve seguir para gerar sua resposta
- Mapeie cabeçalhos equivalentes para o schema alvo: admission_date ∈ {admission, adm_date, data_admissao}; discharge_date ∈ {discharge, alta, alta_date}; unit ∈ {ward, unidade, setor}; diagnosis_code ∈ {cid, icd, diagnosis}. Mantenha nomes finais em inglês conforme expected_output.
- Converta datas para UTC considerando timezone (se ausente, assuma America/Sao_Paulo e registre em assumptions_log). Aceite formatos ISO-8601, dd/mm/yyyy e mm/dd/yyyy; desambigue pelo contexto (se dia > 12, trate como dd/mm/yyyy).
- Calcule length of stay (los_days) = (discharge_date - admission_date) em dias decimais, mínimo 0.5 se alta no mesmo dia; se discharge_date ausente (internação em curso), marque los_days = null e status = 'open_case' e mantenha o registro para contagem de internações, mas exclua de métricas de LOS.
- Deduplicate: para registros com mesmo patient_id, admission_date e unit_norm idênticos, mantenha o mais recente (maior completude de campos).
- Padronize unit_norm em maiúsculas sem acentos; consolide sinônimos conhecidos (ex.: 'UTI', 'U.T.I', 'ICU' -> 'UTI').
- Normalize diagnosis_norm: mantenha códigos CID-10/ICD-10 em upper-case sem pontos (ex.: J18.9 -> J189). Se descrição textual sem código, preserve descrição em diagnosis_text e diagnosis_norm = null.
- Outliers de LOS: trate por winsorization a 1º e 99º percentis por unidade; registre limites aplicados no data_quality_report. Não aplique winsorization se N<100 no grupo; nesse caso, aplique cap em P95 global e registre.
- Readmissão em 30 dias: se patient_id disponível, marque readmission_flag_30d = true quando existir nova admission_date até 30 dias após discharge_date anterior; caso contrário, retorne null.
- Complete weekday (1=segunda ... 7=domingo), month (1–12) e year a partir de admission_date.
- Valide integridade temporal: rejeite registros com discharge_date < admission_date (mova para invalid_rows com reason='temporal_inconsistency').
- Privacidade: remova quaisquer PII (nome, CPF, endereço, telefone) se presentes; não propague campos não necessários para análise.
- Atribua quality_score considerando: completude (40%), consistência temporal (30%), proporção de outliers pós-tratamento (20%), unicidade (10%). 
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 um arquivo CSV ou JSON dos registros de internação via API. Na fase de testes, os dados serão enviados pelo agente diretamente por upload do arquivo na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: O input inicial para o fluxo é um arquivo CSV ou JSON contendo registros de internação e altas.
  • Formatos Suportados: Esse agente deve ser capaz de receber arquivos nos formatos: .csv, .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 200.000 caracteres.

1.3.2 Especificação do Output

  • Formato de output: O output deve ser um objeto JSON com: dataset_normalized, data_quality_report, quality_score e assumptions_log.
  • Exemplo de Estrutura de Output:
     {
      "dataset_normalized": [
        {
          "admission_date_utc": "2025-12-01T00:00:00Z",
          "discharge_date_utc": "2025-12-10T00:00:00Z",
          "los_days": 9,
          "unit_norm": "UTI",
          "diagnosis_norm": "J189",
          "readmission_flag_30d": false,
          "weekday": 2,
          "month": 12,
          "year": 2025
        }
      ],
      "data_quality_report": {
        "null_percentages": {"admission_date": 0.0, "discharge_date": 0.0},
        "invalid_rows": [{"reason": "temporal_inconsistency"}],
        "duplicates_removed": 5,
        "outliers_treated": 2
      },
      "quality_score": 95,
      "assumptions_log": ["Timezone assumed as America/Sao_Paulo"]
    } 
  • Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 10.000 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: Utiliza lógica interna para calcular variáveis derivadas.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

1.3.5 Memória

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

Ao concluir sua execução, esse agente aciona o Agente de Análise Descritiva e Sazonalidade de Internações e Altas (RF 2).

RF 2. Agente de Análise Descritiva e Sazonalidade de Internações e Altas

2.1 Tarefa do Agente

Derivar KPIs, identificar padrões sazonais e tendências ao longo do tempo, segmentando por unidade e diagnóstico quando possível.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o dataset_normalized, data_quality_report e quality_score produzidos pelo agente anterior, além de metadados opcionais (feriados_locais, capacidade_leitos_por_unidade).

# 2. Objetivo
Derivar KPIs, identificar padrões sazonais e tendências ao longo do tempo, segmentando por unidade e diagnóstico quando possível.

# 3. Regras que você deve seguir para gerar sua resposta
- Calcule KPIs base: admissions_count (contagem por admission_date), discharges_count (por discharge_date), ALOS = média de los_days válidos, mediana_LOS, P90_LOS, readmission_rate_30d (se disponível).
- Granularidades: diário (D), semanal (ISO week), mensal (M). Para cada granularidade, forneça valores brutos e normalizados por média móvel de 7 dias (para D) e por média do mesmo mês nos últimos anos (para M).
- Tendências: para D e W, compare janela recente (últimas 13 semanas) com janela anterior (13 semanas anteriores) e reporte variação percentual e direção (increasing, decreasing, stable com faixa ±5%). Para M, compare últimos 12 meses vs 12 meses anteriores.
- Sazonalidade: identifique meses ou semanas recorrentes com desvio médio absoluto ≥15% da média anual por pelo menos 2 ciclos (anos) ou 2 ocorrências sucessivas; registre magnitude (%), meses/semanas afetadas e consistência (baixa/média/alta).
- Padrões por unidade e diagnóstico: reporte top-5 combinações unidade×diagnóstico por volume e por ALOS; destaque quaisquer grupos com ALOS 20% acima da mediana global ajustada por winsorization.
- Anomalias: sinalize datas com desvio >3 desvios-padrão da média móvel de 7 dias; se coincidir com feriados_locais, marque como 'holiday-related'.
- Capacidade (se fornecida): calcule occupancy_proxy_diario = min(censo_estimado, capacidade), onde censo_estimado no dia t = censo_{t-1} + admissions_t - discharges_t, iniciando pelo primeiro dia com censo=admissions_t; limite inferior zero. Reporte dias com occupancy_proxy ≥90% (alerta) e ≥100% (saturação).
- Confiabilidade: propague quality_score e reduza confidence dos achados em 10–30 pontos se quality_score <80 (linear) e sinalize em metrics_summary.confidence_note. 
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 do agente anterior (RF 1).
  • Tipo do input: Este agente deve ser apto a receber como input um objeto JSON contendo o dataset_normalized, data_quality_report e quality_score.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 15.000 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo metrics_summary, seasonality_findings, trend_assessment e anomalies.
  • Exemplo de Estrutura de Output:
     {
      "metrics_summary": {
        "admissions_count": 150,
        "discharges_count": 140,
        "ALOS": 5.6,
        "mediana_LOS": 5.0,
        "P90_LOS": 7.5,
        "readmission_rate_30d": 0.12
      },
      "seasonality_findings": [
        {
          "period": "Dec-Jan",
          "magnitude": 0.18,
          "consistency": "high"
        }
      ],
      "trend_assessment": {
        "direction": "increasing",
        "variation_percentage": 0.08
      },
      "anomalies": [
        {
          "date": "2025-12-25",
          "description": "holiday-related"
        }
      ]
    } 
  • Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 7.000 caracteres.

2.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

2.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Utiliza lógica interna para derivar KPIs e identificar padrões.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

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 Recomendações Operacionais para Alocação de Recursos (RF 3).

RF 3. Agente de Recomendações Operacionais para Alocação de Recursos

3.1 Tarefa do Agente

Traduzir padrões e tendências em recomendações práticas para leitos, equipes e agenda (eletivos), respeitando restrições e metadados fornecidos.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o metrics_summary, seasonality_findings, trend_assessment, anomalies e metadados opcionais (capacidade_leitos_por_unidade, horizonte_planejamento, restricoes_minimas_de_equipes).

# 2. Objetivo
Traduzir padrões e tendências em recomendações práticas para leitos, equipes e agenda (eletivos), respeitando restrições e metadados fornecidos.

# 3. Regras que você deve seguir para gerar sua resposta
- Mapeie picos sazonais previstos (meses/semanas com +15% de admissions/discharges) para ações de aumento temporário de recursos: ex.: resource_change {tipo:'leitos', direção:'aumentar', quantidade: arredondar para atender média pico – média base}.
- Para tendência de alta >10% nas últimas 13 semanas, recomende reforço de equipe em turnos afetados; se day-of-week mostrar concentração, direcione para esses dias.
- Para ALOS elevado em unidades/diagnósticos específicos (>20% acima da mediana global), proponha ações de throughput: revisão de protocolos de alta, rounding antecipado, coordenação com serviços de apoio; descreva ação operacional, não clínica.
- Quando occupancy_proxy sinalizar ≥90% em períodos previstos, proponha contingências: transferência interunidades, atraso de eletivos não urgentes, expansão temporária de área; respeite capacidade_leitos_por_unidade se presente.
- Planejamento eletivo: em períodos historicamente abaixo da média (≤-10%), recomende puxar procedimentos eletivos e treinamentos, detalhando janelas de datas e impacto esperado.
- Respeite restrições: nunca recomende reduzir equipe abaixo de restricoes_minimas_de_equipes; se restrições ausentes, inclua risk_notes sobre limites de segurança e conformidade.
- Quantifique impacto_estimate usando diferenças históricas: impacto aproximado = variação esperada de admissions/discharges × efeito na ocupação/ALOS (use evidências do metrics_summary).
- Atribua priority: alta para riscos de saturação (≥100% occupancy_proxy) ou janelas próximas (≤30 dias no horizonte_planejamento); média para 31–90 dias; baixa acima de 90 dias.
- Ajuste confidence com base em quality_score e consistência da sazonalidade (alta/média/baixa). Se quality_score <70, limite confidence máximo a 60 e inclua recomendação de melhoria de dados. 
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 do agente anterior (RF 2).
  • Tipo do input: Este agente deve ser apto a receber como input um objeto JSON contendo metrics_summary, seasonality_findings, trend_assessment e anomalies.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 10.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo uma lista de recomendações com campos: id, title, affected_unit, time_window, operational_action, resource_change, rationale, evidence_refs, risk_notes, impact_estimate, confidence, e priority.
  • Exemplo de Estrutura de Output:
     {
      "recommendations": [
        {
          "id": "rec_001",
          "title": "Aumento Temporário de Leitos",
          "affected_unit": "UTI",
          "time_window": "2025-12-01 to 2025-12-31",
          "operational_action": "Expandir capacidade de leitos em 10%",
          "resource_change": {"tipo": "leitos", "quantidade": 5, "direção": "aumentar"},
          "rationale": "Aumento sazonal previsto para Dezembro",
          "evidence_refs": ["metrics_summary", "seasonality_findings"],
          "risk_notes": "Considerar restrições de equipe",
          "impact_estimate": "10% de redução em ALOS",
          "confidence": 85,
          "priority": "alta"
        }
      ]
    } 
  • Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 5.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: Utiliza lógica interna para traduzir padrões em recomendações.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

3.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 Síntese e Relatório Final (RF 4).

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

Ao concluir sua execução, esse agente aciona o Agente de Síntese e Relatório Final (RF 4).

RF 4. Agente de Síntese e Relatório Final

4.1 Tarefa do Agente

Produzir o relatório consolidado para decisão, com visualização textual dos principais KPIs, padrões e recomendações, além de um anexo JSON machine-readable.

4.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o dataset_normalized, data_quality_report, metrics_summary, seasonality_findings, trend_assessment, anomalies e recommendations.

# 2. Objetivo
Produzir o relatório consolidado para decisão, com visualização textual dos principais KPIs, padrões e recomendações, além de um anexo JSON machine-readable.

# 3. Regras que você deve seguir para gerar sua resposta
- Liste no topo 5 principais insights em bullets com quantitativos (variação %, magnitude e período).
- Apresente KPIs com números arredondados: contagens inteiras, LOS com 1 casa decimal, percentuais com 1 casa e símbolo %.
- Indique explicitamente períodos com sazonalidade (ex.: 'Mar–Abr' ou 'Semanas ISO 48–1') e a consistência (baixa/média/alta).
- Inclua tabela resumida por unidade com admissions, ALOS, readmission_rate_30d (se disponível) e status de risco (verde <85% / amarelo 85–95% / vermelho >95% occupancy_proxy).
- Para cada recomendação, forneça: ação, janela, unidade, impacto estimado, prioridade e confidence, além do racional em uma frase com referência ao(s) KPI(s).
- Transparência: documente assumptions_log e implicações sobre a interpretação; destaque lacunas de dados que afetam as conclusões.
- Finalize com próximos passos operacionais (ex.: revisar protocolos de alta para grupos com ALOS elevado, preparar escalas para semanas de pico específicas).
- Garanta que o anexo JSON inclua: data_quality_report, metrics_summary, seasonality_findings, trend_assessment, anomalies, recommendations e um índice de versões. 
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 do agente anterior (RF 3).
  • Tipo do input: Este agente deve ser apto a receber como input múltiplos objetos JSON contendo dataset_normalized, data_quality_report, metrics_summary, seasonality_findings, trend_assessment, anomalies e recommendations.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input combinado de até 20.000 caracteres.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um relatório em Markdown com seções específicas e um anexo JSON contendo todos os objetos gerados.
  • Exemplo de Estrutura de Output:
     # Relatório de Análise de Dados de Altas e Internações
    
    ## 1. Contexto e Escopo
    
    ## 2. Qualidade e Cobertura dos Dados
    
    ## 3. KPIs-Chave
    
    ## 4. Padrões, Sazonalidade e Tendências
    
    ## 5. Riscos de Saturação
    
    ## 6. Recomendações Priorizadas
    
    ## 7. Premissas e Limitações
    
    ## 8. Próximos Passos
    
    ### Anexo JSON
    
    {
      "data_quality_report": {...},
      "metrics_summary": {...},
      "seasonality_findings": {...},
      "trend_assessment": {...},
      "anomalies": {...},
      "recommendations": {...}
    } 
  • Número de caracteres esperado: O relatório em Markdown e o anexo JSON terão um tamanho combinado de aproximadamente 12.000 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 consolidar dados e gerar o relatório.
  • 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 são visíveis para outros agentes.
  • Visibilidade da Resposta: A resposta gerada por este agente é o entregável final para o usuário.

4.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.