Agente de IA para Análise de Dados de Alta Hospitalar

29 de November de 2025 • Tempo de leitura: 5 min

Como criar um agente de IA que analisa dados de alta hospitalar para identificar padrões de readmissão e sugerir intervenções.

1. Propósito e Escopo

Este documento define todos os prompts, configurações de memória e transição entre estados para o Agente de IA "Análise de Dados de Alta Hospitalar", uma solução projetada para analisar dados de alta hospitalar e identificar padrões de readmissão. 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 é fornecer insights acionáveis para reduzir taxas de readmissão e melhorar o cuidado ao paciente, através da análise de dados hospitalares pós-alta.

2. Contexto e Problema

Cenário Atual

Atualmente, as instituições de saúde enfrentam desafios significativos na análise eficaz dos dados de alta hospitalar para prever readmissões. A dificuldade em identificar padrões que possam indicar a necessidade de intervenções preventivas resulta em taxas elevadas de readmissão, impactando negativamente a qualidade do cuidado ao paciente e os custos operacionais.


Problemas Identificados

  • Falta de análise eficaz: A análise inadequada dos dados de alta hospitalar impede a previsão precisa de readmissões, dificultando a implementação de intervenções preventivas.
  • Dificuldade na identificação de padrões: A identificação de padrões que possam indicar a necessidade de intervenções preventivas é um desafio, resultando em oportunidades perdidas para melhorar o cuidado ao paciente.

3. Impactos Esperados

A implementação deste agente de IA visa alcançar os seguintes resultados:

  • Reduzir taxas de readmissão através da identificação de padrões de risco e da sugestão de intervenções preventivas.
  • Melhorar o cuidado ao paciente ao fornecer insights acionáveis para intervenções personalizadas baseadas em dados analisados e históricos de pacientes.
  • Otimizar custos operacionais reduzindo readmissões desnecessárias e melhorando a eficiência dos cuidados de saúde.

4. Visão Geral da Solução

O agente de IA para análise de dados de alta hospitalar processa dados hospitalares pós-alta, identifica padrões de readmissão e sugere intervenções preventivas baseando-se em dados históricos de pacientes. 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 redução de taxas de readmissão e melhoria do cuidado ao paciente.

A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo inicia com a preparação de scripts de consolidação de dados e termina com a geração de relatórios de intervenções preventivas.

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

Agentes Função Principal
Agente de Preparação de Script de Consolidação de Altas e Readmissões (RF 1) Preparar um script para consolidar episódios de internação e identificar readmissões.
Agente de Execução de Consolidação em Python (RF 2) Executar o script para consolidar episódios e calcular métricas de readmissão.
Agente de Análise de Padrões e Sugerir Intervenções Preventivas (RF 3) Analisar dados consolidados para identificar padrões de risco e sugerir intervençõ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 Preparação de Script de Consolidação de Altas e Readmissões

1.1 Tarefa do Agente

Preparar um script determinístico e parametrizável que consolida episódios de internação e identifica readmissões em uma janela definida (padrão 30 dias), produzindo schemas de saída padronizados.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo metainformações do dicionário de dados de altas hospitalares, incluindo nomes reais das colunas e preferências de negócio.

# 2. Objetivo
Preparar um script determinístico e parametrizável que consolida episódios de internação e identifica readmissões em uma janela definida (padrão 30 dias), produzindo schemas de saída padronizados.

# 3. Regras que você deve seguir para gerar sua resposta
- Defina uma função main(df, config) -> dict no script gerado.
- Utilize os parâmetros de configuração recebidos para ajustar o comportamento do script.
- Produza um script que retorne JSON conforme os schemas 'patient_episodes' e 'aggregates'.
- Não inclua exemplos de dados ou dataframes no script.

# 4. Exemplo de Output que você deve produzir
{
  "script": "# string com código Python auto-contido que, dado um dataframe 'df' e 'config', retorna JSON conforme schemas 'patient_episodes' e 'aggregates'\n# Deve definir uma função main(df, config) -> dict\n...",
  "config": {
    "readmission_window_days": 30,
    "date_columns": {"admission": "admission_date", "discharge": "discharge_date"},
    "id_column": "patient_id",
    "facility_column": "facility_id",
    "diagnosis_columns": ["primary_diagnosis"],
    "cci_column": "cci",
    "death_flag_column": "death_flag",
    "planned_flag_column": "planned_flag",
    "transfer_flag_column": "transfer_flag",
    "discharge_disposition_column": "discharge_disposition",
    "sex_column": "sex",
    "age_column": "age",
    "los_column": "length_of_stay",
    "payer_column": "payer",
    "time_zone": "UTC",
    "episode_merge_gap_days": 1,
    "transfer_merge_gap_days": 1,
    "exclude_dispositions_from_denominator": ["Óbito"],
    "planned_readmission_rules": {
      "enabled": true,
      "diagnosis_code_lists": {"obstetric": [], "oncology": []},
      "disposition_keywords": ["programada", "eletiva"]
    },
    "diagnosis_group_mapping": {"Cardíaco": ["I50", "I10", "I20"], "Respiratório": ["J44", "J45"], "Endócrino/DM": ["E10", "E11"], "Renal": ["N18"], "Oncológico": ["C"], "Cirúrgico": ["Z48"], "Outras": []},
    "age_buckets": [[0,17],[18,44],[45,64],[65,200]],
    "los_quantiles": [0.25,0.5,0.75],
    "data_quality_thresholds": {"min_rows": 100, "max_missing_pct_any_key_col": 0.2}
  },
  "schemas": {
    "patient_episodes": {
      "required_fields": ["patient_id","data_inicio","data_fim","length_of_stay","grupo_diagnostico","cci","idade","sexo","facility_id","discharge_disposition","readmissao_30d"],
      "field_types": {
        "patient_id": "string",
        "data_inicio": "date",
        "data_fim": "date",
        "length_of_stay": "int",
        "grupo_diagnostico": "string",
        "cci": "int|null",
        "idade": "int|null",
        "sexo": "string|null",
        "facility_id": "string",
        "discharge_disposition": "string",
        "readmissao_30d": "bool",
        "dias_ate_readmissao": "int|null",
        "bucket_readmissao": "string|null",
        "score_heuristico": "int",
        "planned_readmission_excluded": "bool",
        "transferencia_continuada": "bool"
      }
    },
    "aggregates": {
      "required_sections": ["global","por_facility","por_grupo_diagnostico","por_faixa_etaria","por_discharge","por_bucket_tempo"],
      "section_field_types": {
        "global": {"taxa_readmissao_30d": "float","n_episodios": "int","n_elegiveis": "int"},
        "por_facility": [{"facility_id": "string","taxa": "float","n": "int"}],
        "por_grupo_diagnostico": [{"grupo": "string","taxa": "float","n": "int"}],
        "por_faixa_etaria": [{"faixa": "string","taxa": "float","n": "int"}],
        "por_discharge": [{"tipo": "string","taxa": "float","n": "int"}],
        "por_bucket_tempo": [{"bucket": "string","taxa": "float","n": "int"}]
      }
    }
  }
} 
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 metainformações do dicionário de dados via API. Na fase de testes, o fluxo será iniciado pelo envio manual dessas informações na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: O input inicial para o fluxo são metainformações do dicionário de dados de altas hospitalares, incluindo nomes reais das colunas e preferências de negócio.
  • 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é 10.000 caracteres.

1.3.2 Especificação do Output

  • Formato de output: O output deve ser um objeto JSON contendo o script gerado, as configurações e os schemas de saída.
  • Exemplo de Estrutura de Output:
     {
      "script": "# string com código Python auto-contido que, dado um dataframe 'df' e 'config', retorna JSON conforme schemas 'patient_episodes' e 'aggregates'\n# Deve definir uma função main(df, config) -> dict\n...",
      "config": {
        "readmission_window_days": 30,
        "date_columns": {"admission": "admission_date", "discharge": "discharge_date"},
        "id_column": "patient_id",
        "facility_column": "facility_id",
        "diagnosis_columns": ["primary_diagnosis"],
        "cci_column": "cci",
        "death_flag_column": "death_flag",
        "planned_flag_column": "planned_flag",
        "transfer_flag_column": "transfer_flag",
        "discharge_disposition_column": "discharge_disposition",
        "sex_column": "sex",
        "age_column": "age",
        "los_column": "length_of_stay",
        "payer_column": "payer",
        "time_zone": "UTC",
        "episode_merge_gap_days": 1,
        "transfer_merge_gap_days": 1,
        "exclude_dispositions_from_denominator": ["Óbito"],
        "planned_readmission_rules": {
          "enabled": true,
          "diagnosis_code_lists": {"obstetric": [], "oncology": []},
          "disposition_keywords": ["programada", "eletiva"]
        },
        "diagnosis_group_mapping": {"Cardíaco": ["I50", "I10", "I20"], "Respiratório": ["J44", "J45"], "Endócrino/DM": ["E10", "E11"], "Renal": ["N18"], "Oncológico": ["C"], "Cirúrgico": ["Z48"], "Outras": []},
        "age_buckets": [[0,17],[18,44],[45,64],[65,200]],
        "los_quantiles": [0.25,0.5,0.75],
        "data_quality_thresholds": {"min_rows": 100, "max_missing_pct_any_key_col": 0.2}
      },
      "schemas": {
        "patient_episodes": {
          "required_fields": ["patient_id","data_inicio","data_fim","length_of_stay","grupo_diagnostico","cci","idade","sexo","facility_id","discharge_disposition","readmissao_30d"],
          "field_types": {
            "patient_id": "string",
            "data_inicio": "date",
            "data_fim": "date",
            "length_of_stay": "int",
            "grupo_diagnostico": "string",
            "cci": "int|null",
            "idade": "int|null",
            "sexo": "string|null",
            "facility_id": "string",
            "discharge_disposition": "string",
            "readmissao_30d": "bool",
            "dias_ate_readmissao": "int|null",
            "bucket_readmissao": "string|null",
            "score_heuristico": "int",
            "planned_readmission_excluded": "bool",
            "transferencia_continuada": "bool"
          }
        },
        "aggregates": {
          "required_sections": ["global","por_facility","por_grupo_diagnostico","por_faixa_etaria","por_discharge","por_bucket_tempo"],
          "section_field_types": {
            "global": {"taxa_readmissao_30d": "float","n_episodios": "int","n_elegiveis": "int"},
            "por_facility": [{"facility_id": "string","taxa": "float","n": "int"}],
            "por_grupo_diagnostico": [{"grupo": "string","taxa": "float","n": "int"}],
            "por_faixa_etaria": [{"faixa": "string","taxa": "float","n": "int"}],
            "por_discharge": [{"tipo": "string","taxa": "float","n": "int"}],
            "por_bucket_tempo": [{"bucket": "string","taxa": "float","n": "int"}]
          }
        }
      }
    } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.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: Não utiliza.
  • 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 Execução de Consolidação em Python (RF 2).

RF 2. Agente de Execução de Consolidação em Python

2.1 Tarefa do Agente

Executar o script preparado para consolidar episódios e calcular métricas de readmissão a partir da base fornecida, retornando JSON conforme schemas.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto do agente anterior contendo o script de consolidação, as configurações e os schemas de saída.

# 2. Objetivo
Executar o script preparado para consolidar episódios e calcular métricas de readmissão a partir da base fornecida, retornando JSON conforme schemas.

# 3. Regras que você deve seguir para gerar sua resposta
- Execute a função main(df, config) do script recebido.
- Assegure-se de que o JSON retornado respeite os schemas fornecidos.
- Capture exceções e retorne um objeto JSON com a chave "error" em caso de falhas.

# 4. Exemplo de Output que você deve produzir
{"patient_episodes": [{"patient_id": "123","data_inicio": "2025-01-10","data_fim": "2025-01-15","length_of_stay": 6,"grupo_diagnostico": "Cardíaco","cci": 2,"idade": 71,"sexo": "F","facility_id": "HOSP_A","discharge_disposition": "Domicílio","readmissao_30d": true,"dias_ate_readmissao": 12,"bucket_readmissao": "8-14","score_heuristico": 3,"planned_readmission_excluded": false,"transferencia_continuada": false}], "aggregates": {"global": {"taxa_readmissao_30d": 0.1900, "n_episodios": 542, "n_elegiveis": 510}, "por_facility": [{"facility_id": "HOSP_A", "taxa": 0.2200, "n": 210}], "por_grupo_diagnostico": [{"grupo": "Cardíaco", "taxa": 0.2700, "n": 150}], "por_faixa_etaria": [{"faixa": "65+", "taxa": 0.3100, "n": 200}], "por_discharge": [{"tipo": "Domicílio", "taxa": 0.1800, "n": 400}], "por_bucket_tempo": [{"bucket": "0-7", "taxa": 0.1200, "n": 60}]}, "data_quality_warnings": ["coluna cci ausente; preenchido como null"]} 
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 o objeto JSON contendo o script, as configurações e os schemas de saída.
  • 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 objeto JSON contendo os dados consolidados conforme os schemas fornecidos, ou uma chave "error" em caso de exceções.
  • Exemplo de Estrutura de Output:
     {"patient_episodes": [{"patient_id": "123","data_inicio": "2025-01-10","data_fim": "2025-01-15","length_of_stay": 6,"grupo_diagnostico": "Cardíaco","cci": 2,"idade": 71,"sexo": "F","facility_id": "HOSP_A","discharge_disposition": "Domicílio","readmissao_30d": true,"dias_ate_readmissao": 12,"bucket_readmissao": "8-14","score_heuristico": 3,"planned_readmission_excluded": false,"transferencia_continuada": false}], "aggregates": {"global": {"taxa_readmissao_30d": 0.1900, "n_episodios": 542, "n_elegiveis": 510}, "por_facility": [{"facility_id": "HOSP_A", "taxa": 0.2200, "n": 210}], "por_grupo_diagnostico": [{"grupo": "Cardíaco", "taxa": 0.2700, "n": 150}], "por_faixa_etaria": [{"faixa": "65+", "taxa": 0.3100, "n": 200}], "por_discharge": [{"tipo": "Domicílio", "taxa": 0.1800, "n": 400}], "por_bucket_tempo": [{"bucket": "0-7", "taxa": 0.1200, "n": 60}]}, "data_quality_warnings": ["coluna cci ausente; preenchido como null"]} 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 10.000 caracteres.

2.3.3 Parâmetros de Geração

  • Modelo: Não se aplica (execução de script)
  • Temperatura: Não se aplica

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

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 Análise de Padrões e Sugerir Intervenções Preventivas (RF 3).

RF 3. Agente de Análise de Padrões e Sugerir Intervenções Preventivas

3.1 Tarefa do Agente

Analisar os dados consolidados de altas/readmissões, identificar padrões de risco e sugerir intervenções preventivas acionáveis para reduzir a taxa de readmissão.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o JSON do agente de execução contendo patient_episodes, aggregates e, opcionalmente, data_quality_warnings e metadados contextuais.

# 2. Objetivo
Analisar os dados consolidados de altas/readmissões, identificar padrões de risco e sugerir intervenções preventivas acionáveis para reduzir a taxa de readmissão.

# 3. Regras que você deve seguir para gerar sua resposta
- Analise os dados de alta para identificar padrões de readmissão usando patient_episodes e aggregates recebidos.
- Sugira intervenções preventivas baseadas nos padrões observados e histórico contido nos episódios.
- Forneça insights acionáveis com responsáveis, prazos e critérios claros, visando reduzir readmissões e melhorar cuidado.
- Produza o relatório em markdown com seções fixas da saída esperada e listas claras.

# 4. Exemplo de Output que você deve produzir
# Relatório de Readmissões (Janela 30 dias)

## Sumário Executivo
- Taxa global de readmissão: X%
- Estratos críticos: ...
- Principais alavancas: ...

## Padrões Identificados
- Análises por facility, diagnóstico, faixa etária, discharge e bucket de tempo
- Coeficientes de risco relativos vs. média

## Intervenções Prioritárias (0–30 dias pós-alta)
1. ... (descrição, critérios de inclusão, responsável, SLA)

## Planos Específicos por Cohort
- Cardíaco: ...
- Respiratório (DPOC): ...
- Endócrino/DM: ...
- Renal: ...

## Métricas e Metas (KPIs)
- ...

## Checklist Operacional
- Itens por intervenção com responsável/prazo/status/evidência

## Riscos e Limitações
- Avisos de qualidade de dados e possíveis vieses

## Backlog e Próximos Passos
- Pilotos, validações e escalonamento 
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 o JSON contendo patient_episodes, aggregates e, opcionalmente, data_quality_warnings e metadados contextuais.
  • 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é 20.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output final deve ser um relatório em formato Markdown que contém análises detalhadas e sugestões de intervenções preventivas.
  • Exemplo de Estrutura de Output:
     # Relatório de Readmissões (Janela 30 dias)
    
    ## Sumário Executivo
    - Taxa global de readmissão: X%
    - Estratos críticos: ...
    - Principais alavancas: ...
    
    ## Padrões Identificados
    - Análises por facility, diagnóstico, faixa etária, discharge e bucket de tempo
    - Coeficientes de risco relativos vs. média
    
    ## Intervenções Prioritárias (0–30 dias pós-alta)
    1. ... (descrição, critérios de inclusão, responsável, SLA)
    
    ## Planos Específicos por Cohort
    - Cardíaco: ...
    - Respiratório (DPOC): ...
    - Endócrino/DM: ...
    - Renal: ...
    
    ## Métricas e Metas (KPIs)
    - ...
    
    ## Checklist Operacional
    - Itens por intervenção com responsável/prazo/status/evidência
    
    ## Riscos e Limitações
    - Avisos de qualidade de dados e possíveis vieses
    
    ## Backlog e Próximos Passos
    - Pilotos, validações e escalonamento 
  • Número de caracteres esperado: O relatório final deve ter um tamanho aproximado de 7.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 documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

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 é o entregável final e não é passada para outros agentes internos.

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