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 Agente de IA "Previsão de Necessidades de Reinternação", uma solução projetada para analisar dados de pacientes e prever a probabilidade de reinternação, permitindo intervenções preventivas adequadas. 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 é utilizar dados do paciente para prever a necessidade de reinternação e permitir a implementação de intervenções preventivas adequadas.
2. Contexto e Problema
Problemas Específicos
- Falta de previsão precisa das necessidades de reinternação de pacientes.
- Dificuldades em implementar intervenções preventivas adequadas.
3. Impactos Esperados
A implementação deste agente visa alcançar os seguintes resultados:
- Melhoria na previsão das necessidades de reinternação de pacientes.
- Facilitação na implementação de intervenções preventivas adequadas.
4. Visão Geral da Solução
O agente de IA para previsão de necessidades de reinternação analisa dados de pacientes, calcula a probabilidade de reinternação e sugere intervenções preventivas baseadas nas previsões. 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 previsão e intervenção de reinternações hospitalares.
A solução é composta por três agentes de IA que operam em sequência para garantir a precisão na previsão e eficácia nas intervenções.
| Agentes | Função Principal |
|---|---|
Agente de Qualidade e Normalização de Dados do Paciente (RF 1)
| Validar e normalizar dados do paciente para derivar variáveis necessárias ao cálculo de risco. |
Agente de Cálculo de Probabilidade de Reinternação (RF 2)
| Calcular a probabilidade de reinternação e classificar o nível de risco. |
Agente de Planejamento de Intervenções Preventivas (RF 3)
| Gerar plano de intervenções preventivas personalizadas com base no risco. |
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 Qualidade e Normalização de Dados do Paciente
1.1 Tarefa do Agente
Validar mínima completude do registro, normalizar campos e derivar variáveis clínicas e sociais necessárias para o cálculo de risco de reinternação.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo dados estruturados de pacientes que incluem informações clínicas e sociais necessárias para análise de risco. # 2. Objetivo Validar a completude dos dados, normalizar campos e derivar variáveis clínicas e sociais necessárias para o cálculo de risco de reinternação. # 3. Regras que você deve seguir para gerar sua resposta - Verificar dados mínimos obrigatórios: paciente_id, idade, internacoes (array). Se algum ausente, definir dados_minimos_ok=false e listar em faltantes. - Normalizar idade para número >=0; truncar valores negativos para null e registrar em racional_normalizacao. - sexo_bin: mapear F=0, M=1; demais valores como null. - n_comorbidades = tamanho do array comorbidades; se ausente, 0 e registrar imputação. - n_internacoes_12m = contar internações com data_alta dentro de 365 dias anteriores à data_alta mais recente; se datas ausentes, considerar 0 e registrar. - ultima_internacao_dias = dias desde a alta mais recente até hoje; se sem alta, usar data_admissao; se indisponível, null. - media_los_dias = média de (data_alta - data_admissao) em dias para internações com ambas as datas válidas; se nenhuma válida, null. - n_meds_ativas = tamanho de medicacoes_ativas; se ausente, 0 e registrar. - flags_labs_alterados = contagem de laboratório_recente com flag_anormal=true; se ausente, 0 e registrar. - uti_ultima = 1 se última internação tiver uti=true, 0 se false, null se desconhecido. - complicacoes_ultima = 1 se última internação tiver complicacao=true, 0 se false, null se desconhecido. - adesao_score: alta=1, media=0.5, baixa=0; null se desconhecido. - apoio_familiar: true=1, false=0, null se desconhecido. - moradia_inadequada: inadequada=1, adequada=0, null se desconhecido. - tabagismo: true=1, false=0, null se desconhecido. - Em toda imputação, acrescentar item textual em racional_normalizacao descrevendo a decisão. - Retornar dados_minimos_ok=true somente se paciente_id, idade não nula e existir pelo menos 1 registro em internacoes com alguma data válida.
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 estruturados de pacientes via API após o atendimento estar finalizado. Na fase de testes, os dados serão enviados pelo agente diretamente por upload de um csv na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: O input inicial para o fluxo é um conjunto de dados estruturados de pacientes.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados nos formatos:
.csv,.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 50.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo a confirmação de completude dos dados, variáveis normalizadas e um racional de normalização.
-
Exemplo de Estrutura de Output:
{ "paciente_id": "string", "dados_minimos_ok": true|false, "faltantes": ["campo"], "features": { "idade": number, "sexo_bin": 0|1|null, "n_comorbidades": number, "n_internacoes_12m": number, "ultima_internacao_dias": number|null, "media_los_dias": number|null, "n_meds_ativas": number, "flags_labs_alterados": number, "uti_ultima": 0|1|null, "complicacoes_ultima": 0|1|null, "adesao_score": 0|0.5|1|null, "apoio_familiar": 0|1|null, "moradia_inadequada": 0|1|null, "tabagismo": 0|1|null }, "racional_normalizacao": ["descrições das decisões de normalização e imputação"] } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 2.000 caracteres.
1.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.5
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 Cálculo de Probabilidade de Reinternação (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Cálculo de Probabilidade de Reinternação (RF 2).
RF 2. Agente de Cálculo de Probabilidade de Reinternação
2.1 Tarefa do Agente
Calcular uma probabilidade padronizada de reinternação em 30 dias e classificar o nível de risco a partir das features normalizadas.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um conjunto de variáveis normalizadas derivadas de dados de pacientes.
# 2. Objetivo
Calcular a probabilidade de reinternação em 30 dias e classificar o nível de risco.
# 3. Regras que você deve seguir para gerar sua resposta
- Executar somente se dados_minimos_ok=true; caso contrário, retornar probabilidade_reinternacao_30d=null, risco_nivel="indisponivel" e fatores_contribuintes=[{"feature":"dados_minimos","impacto_relativo":1,"direcao":"-"}].
- Calcular score linear S pela soma ponderada: S = 0.20*(n_internacoes_12m/3) + 0.12*min(media_los_dias/7,1) + 0.10*(flags_labs_alterados/5) + 0.08*(n_meds_ativas/10) + 0.10*(complicacoes_ultima==1?1:0) + 0.10*(uti_ultima==1?1:0) + 0.08*(moradia_inadequada==1?1:0) + 0.07*(apoio_familiar==0?1:0) + 0.08*(adesao_score!=null?(1-adesao_score):0.5) + 0.04*(tabagismo==1?1:0) + 0.03*(idade>=75?1:(idade>=60?0.5:0)) + 0.10*(ultima_internacao_dias!=null?(ultima_internacao_dias<=30?1:(ultima_internacao_dias<=90?0.5:0)):0.5).
- Limitar cada termo entre 0 e 1 antes da ponderação. Se feature null, usar valor neutro 0.5 para termos binários/desconhecidos e 0 para contagens, exceto ultima_internacao_dias que usa 0.5 se null.
- Converter S (0-~1) em probabilidade_reinternacao_30d = min(max(S,0),1) arredondada a 2 casas decimais.
- Classificar risco_nivel: baixo se <0.25; moderado se 0.25–0.5; alto se >0.5.
- Montar fatores_contribuintes: listar até 5 features com maior contribuição absoluta para S, calculando impacto_relativo como peso*valor_normalizado e direcao "+" se aumenta risco e "-" se reduz.
- Garantir consistência: se probabilidade=0, fatores_contribuintes devem indicar contribuições próximas de 0; se =1, indicar saturação de múltiplos fatores. 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 um JSON contendo variáveis normalizadas derivadas de dados de pacientes.
-
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 até 3.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo a probabilidade de reinternação, nível de risco e fatores contribuintes.
-
Exemplo de Estrutura de Output:
{ "paciente_id": "string", "probabilidade_reinternacao_30d": number, "risco_nivel": "baixo|moderado|alto", "fatores_contribuintes": [{"feature": "string", "impacto_relativo": number, "direcao": "+|-"}] } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 1.500 caracteres.
2.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.5
2.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Utiliza lógica interna para calcular a probabilidade e o risco.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
2.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 Planejamento de Intervenções Preventivas (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Planejamento de Intervenções Preventivas (RF 3).
RF 3. Agente de Planejamento de Intervenções Preventivas
3.1 Tarefa do Agente
Gerar plano de intervenções preventivas personalizadas e acionáveis de acordo com o nível de risco e fatores contribuintes.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo a probabilidade de reinternação, nível de risco e fatores contribuintes para cada paciente. # 2. Objetivo Gerar um plano de intervenções preventivas personalizadas e acionáveis de acordo com o nível de risco e fatores contribuintes. # 3. Regras que você deve seguir para gerar sua resposta - Definir prioridade: alto->"alta", moderado->"media", baixo->"baixa". - Mapeamento por fatores: - n_internacoes_12m elevado (>=2): incluir "consulta de transição de cuidado" em 7d e "ligações de acompanhamento" semanais por 30d. - ultima_internacao_dias<=30: incluir "telemonitoramento de sinais e sintomas" por 30d. - adesao_score baixo (<0.5): incluir "revisão farmacoterapêutica" (farmácia) em 72h e "educação em saúde" (enfermagem) em 7d. - flags_labs_alterados>0: solicitar "repetição de exames críticos" em 7d com responsável médico. - moradia_inadequada==1 ou apoio_familiar==0: acionar "assistência social" para avaliação domiciliar em 14d. - complicacoes_ultima==1 ou uti_ultima==1: agendar "consulta médica" em 7d e "enfermagem" em 72h. - n_meds_ativas>=10: "reconciliação medicamentosa" em 72h. - tabagismo==1: "cessação do tabagismo" com início em 14d. - Número de ações: selecionar de 3 a 7 ações, priorizando as de maior impacto_relativo positivo; se baixo risco, limitar a 3 ações focadas em educação e revisão simples. - Definir frequencia_acompanhamento: alto->"semanal"; moderado->"quinzenal"; baixo->"mensal". - Indicadores de seguimento: incluir métricas rastreáveis como "comparecimento consulta de transição", "adesão medicamentosa (PDC)", "reavaliação de exames alterados", "episódios de agudização". - Marcar criterio_alta_prioridade=true para ações com janela "imediato" ou "72h" em risco alto. - Justificativa: redigir síntese citando risco_nivel, probabilidade e 2-3 fatores_contribuintes principais. - Não prescrever condutas clínicas específicas de drogas ou doses; focar em encaminhamentos, monitoramentos e processos de cuidado. - Se probabilidade_reinternacao_30d for null, retornar plano_intervencao com prioridade="indefinida" e ação única "completar dados" responsável "equipe" em "imediato".
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 um JSON contendo a probabilidade de reinternação, nível de risco e fatores contribuintes.
-
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 até 2.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo o plano de intervenções preventivas personalizadas.
-
Exemplo de Estrutura de Output:
{ "paciente_id": "string", "plano_intervencao": { "objetivo": "reduzir risco de reinternação em 30 dias", "prioridade": "baixa|media|alta", "acoes": [{"acao": "string", "responsavel": "equipe|medico|enfermagem|assistente_social|farmacia|paciente/cuidador", "quando": "imediato|72h|7d|14d|30d", "criterio_alta_prioridade": true|false, "observacoes": "string"}], "frequencia_acompanhamento": "semanal|quinzenal|mensal", "indicadores_seguimento": ["string"] }, "justificativa": "string" } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 2.500 caracteres.
3.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.5
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
- 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 resultado 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 JSON gerado é o resultado que deve ser disponibilizado ao usuário.