1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados, ferramentas como busca online e demais requisitos funcionais para o Fluxo de Agentes "Prevenção de Erros de Medicação em Internação", uma solução de automação voltada para identificar potenciais erros de medicação e sugerir correções. Essa documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.
O objetivo é analisar prescrições médicas e prontuários para identificar possíveis erros de medicação e sugerir alternativas seguras, atualizando as recomendações conforme novas diretrizes de segurança e farmacologia.
2. Contexto e Problema
Cenário Atual
No ambiente hospitalar, erros de medicação são um risco constante que pode levar a incidentes adversos graves. A complexidade das prescrições médicas e a necessidade de atualização contínua com as diretrizes mais recentes tornam a prevenção de erros um desafio significativo.
- Identificação de potenciais erros de medicação para prevenir incidentes adversos.
- Análise de prescrições e prontuários médicos para detectar inconsistências.
Problemas Identificados
- Risco elevado de incidentes adversos: Erros de medicação podem resultar em danos significativos aos pacientes.
- Falta de padronização: As práticas de prescrição variam amplamente, aumentando o potencial para erros.
- Atualização constante: Diretrizes de segurança e farmacologia evoluem rapidamente, exigindo adaptações frequentes.
3. Impactos Esperados
A implementação deste agente de IA visa alcançar os seguintes resultados:
- Reduzir a incidência de erros de medicação em pelo menos 50%.
- Aumentar a segurança do paciente através de recomendações baseadas em diretrizes atualizadas.
- Padronizar a análise de prescrições e prontuários médicos.
4. Visão Geral da Solução
O agente de IA para prevenção de erros de medicação em internação analisa prescrições médicas e prontuários para identificar potenciais erros e sugere correções baseadas nas diretrizes mais recentes. 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 prevenção de erros de medicação.
A solução envolve um fluxo de automação com 4 agentes de IA. O processo inicia com a extração e normalização de dados de prescrições e prontuários e termina com a geração de um plano de ação estruturado para o time assistencial.
A execução dos agentes é sequencial, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Extração e Normalização de Prescrições e Prontuários (RF 1)
| Extrair e normalizar dados clínicos e de medicamentos de prescrições e prontuários. |
Agente de Avaliação de Segurança de Medicação (RF 2)
| Detectar potenciais erros de medicação e emitir recomendações acionáveis. |
Agente de Busca Online (RF 3)
| Realizar busca online por diretrizes clínicas atualizadas e alertas de segurança. |
Agente de Síntese de Recomendações Clínicas e Plano de Ação (RF 4)
| Consolidar os erros identificados e as referências recuperadas em um plano de ação estruturado. |
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 time assistencial receberá. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente de Extração e Normalização de Prescrições e Prontuários
1.1 Tarefa do Agente
Extrair e normalizar, de documentos de prescrição e prontuário, dados clínicos e de medicamentos em um JSON estruturado e padronizado para avaliação de segurança.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo texto livre da prescrição e/ou prontuário, incluindo metadados do paciente quando disponíveis. # 2. Objetivo Extrair e normalizar dados clínicos e de medicamentos em um JSON estruturado e padronizado para avaliação de segurança. # 3. Regras que você deve seguir para gerar sua resposta - Padronize unidades: converta doses para unidades base (mg, mcg, g, UI, mL) quando possível; mantenha valores originais em observacoes se houver ambiguidade. - Mapeie nomes comerciais para princípio ativo; se múltiplos princípios, liste todos separados por “+”. - Interprete frequência e intervalo: normalize para intervalo_h quando explícito (ex.: 8/8h => 8); se apenas “1x/dia”, defina intervalo_h=24. - Extraia via e forma farmacêutica; se ausentes, deixe null e registre em lacunas_dados. - Identifique PRN por termos como “se dor”, “se necessário”, “S/N”, “PRN”. - Concilie duplicidades de linhas iguais (mesmo princípio, via, intervalo): mantenha uma entrada somando doses se for claramente aditivo; caso contrário, preserve linhas separadas. - Contexto clínico: calcule tfg_ml_min_1_73 se idade, sexo e creatinina estiverem disponíveis; se não, não estime e registre lacuna. - Alergias: normalize para substâncias (ex.: “dipirona”, “penicilina”); se apenas classe (ex.: “beta-lactâmico”), mantenha termo como está. - Sinais vitais e laboratórios: normalize valores numéricos, removendo textos extras; se valores fora de formato numérico, mantenha null e anote lacuna. - Não invente dados: se não constar no input, deixe null e descreva a lacuna explicitamente em lacunas_dados. - Garanta JSON válido, com todos os campos previstos, mesmo quando null. - idiomas/abreviações: interprete termos médicos comuns em PT-BR; mantenha grafias originais de medicamentos, sem corrigir marcações não ambíguas.
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 texto livre da prescrição e/ou prontuário via API. Na fase de testes, o fluxo será iniciado pelo envio manual dos dados, que serão enviados para o agente diretamente por upload do texto na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: Texto livre da prescrição e/ou prontuário, incluindo metadados do paciente quando disponíveis.
-
Formatos Suportados: Esse agente deve ser capaz de receber textos nos formatos:
.txt,.docx,.pdf. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 50.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado e padronizado para avaliação de segurança.
-
Exemplo de Estrutura de Output:
{ "paciente": { "idade_anos": number|null, "peso_kg": number|null, "altura_cm": number|null, "sexo": "M"|"F"|"outro"|null, "gestacao": boolean|null, "lactacao": boolean|null, "alergias": ["substancia"], "insuficiencia_renal": boolean|null, "tfg_ml_min_1_73": number|null, "insuficiencia_hepatica": "leve"|"moderada"|"grave"|null }, "contexto_clinico": { "diagnosticos": ["CID10_opcional_ou_texto"], "sinais_vitais": {"pa_mmHg": "120x80"|null, "fc_bpm": number|null, "fr_irpm": number|null, "temp_c": number|null }, "laboratoriais": { "k_mEq_l": number|null, "mg_mg_dl": number|null, "na_mEq_l": number|null, "creatinina_mg_dl": number|null, "alt_u_l": number|null, "ast_u_l": number|null, "inr": number|null, "tsh_u_ui_ml": number|null } }, "historico_medicamentos": [ { "principio_ativo": "string", "dose_valor": number|null, "dose_unidade": "mg|mcg|g|UI|mL|gotas|%|unidade"|null, "frequencia": "1x/dia|12/12h|8/8h|sob demanda"|null } ], "prescricoes": [ { "linha_id": "string", "medicamento": "nome comercial ou genérico", "principio_ativo": "string", "forma_farmaceutica": "comprimido|cápsula|solução|suspensão|ampola|pomada|outro", "via": "VO|IV|IM|SC|SL|Tópica|Inalatória|Oftálmica|Otológica|Retal|Vaginal|SNG|Outras", "dose_valor": number|null, "dose_unidade": "mg|mcg|g|UI|mL|gotas|%|unidade"|null, "intervalo_h": number|null, "frequencia_texto": "string|null", "duracao_dias": number|null, "prn": boolean, "indicacao": "string|null", "horarios": ["HH:MM"]|[], "observacoes": "string|null" } ], "lacunas_dados": ["peso_kg ausente", "tfg ausente", "alergias não informadas"] } - Número de caracteres esperado: O JSON final deve ser conciso e informativo, com um tamanho estimado em torno de 5.000 caracteres, podendo variar conforme a complexidade do input.
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 devem ser visíveis para o Agente de Avaliação de Segurança de Medicação (RF 2).
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Avaliação de Segurança de Medicação (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Avaliação de Segurança de Medicação (RF 2).
RF 2. Agente de Avaliação de Segurança de Medicação
2.1 Tarefa do Agente
Detectar potenciais erros de medicação, inconsistências e riscos clínicos com base no JSON estruturado e emitir recomendações acionáveis.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON estruturado com dados clínicos e de medicamentos. # 2. Objetivo Detectar potenciais erros de medicação, inconsistências e riscos clínicos e emitir recomendações acionáveis. # 3. Regras que você deve seguir para gerar sua resposta - Dose por peso/idade: quando peso e faixa etária estiverem disponíveis, calcule dose mg/kg e compare com faixas recomendadas; sinalize quando <50% do mínimo ou >120% do máximo usual. - Limites máximos diários: avalie soma de todas as doses de um mesmo princípio ativo; sinalize se exceder limite diário padrão para adultos ou pediatria. - Ajuste renal: se tfg_ml_min_1_73 < 60, aplique regra de ajuste por princípio (ex.: reduzir dose ou aumentar intervalo); se TFG ausente e medicamento é renoexcretado, registre lacuna_critica e recomendação de coletar creatinina. - Ajuste hepático: se insuficiencia_hepatica moderada/grave e fármaco hepatotóxico/metabolizado via hepática, recomende redução/suspensão conforme gravidade. - Duplicidade terapêutica: identifique combinações com mesmo mecanismo/classe (ex.: dois AINEs, dois IECA/BRAs, dupla estatina); recomende manter apenas um, justificando. - Interações: classifique como contraindicada/maior/moderada com base em mecanismos comuns (QT, serotonina, 3A4/2D6, hipercalemia); descreva o par envolvido e a consequência clínica esperada; proponha alternativa ou monitoramento. - Alergia/hipersensibilidade: se princípio ativo ou classe consta em alergias, marque severidade contraindicada e recomende substituição segura. - Contraindicações por condição: gestação/lactação, idosos (critérios de Beers), pediatria (restrições etárias), comorbidades (ex.: asma + betabloqueador não seletivo); sinalize e proponha alternativa. - Via/forma incompatível: valide coerência entre via e forma (ex.: comprimido não triturável via SNG; EV rápida para medicação que exige infusão lenta). - Dilução/velocidade de infusão: para fármacos IV, verifique se velocidade mínima usual foi respeitada; se ausente, recomende especificar taxa. - Frequência/intervalo: converta frequência textual e avalie se intervalo_h é compatível com meia-vida e recomendações usuais; sinalize subdosagem/superdosagem por intervalo inadequado. - Duração do tratamento: antimicrobianos, corticoterapia e anticoagulação devem ter duração definida; identifique duração excessiva ou ausente e recomende prazo. - Riscos específicos: QT prolongado (múltiplos fármacos com risco + eletrólitos baixos), síndrome serotoninérgica (ISRS + triptanos/IMAO/tramadol), hipercalemia (IECA/ARA + espironolactona + K alto), sangramento (anticoagulantes + antiagregantes), hipoglicemia (insulinas/sulfonilureias). - Monitoramento necessário: quando risco moderado exigir acompanhamento, especifique alvo e periodicidade (ex.: “monitorar INR 2-3, reavaliar em 48-72h”). - Classificação e prioridade: priorize 1 para risco de dano grave iminente; 2 para risco clínico relevante; 3 para oportunidade de otimização. - Atualização de diretrizes: se o caso envolver terapias dependentes de recomendações dinâmicas (ex.: antimicrobianos locais, alertas novos de segurança), defina necessita_atualizacao_diretrizes=true e liste topicos_para_atualizacao. - Explique cada alerta em linguagem clínica objetiva, mencionando a regra aplicada; evite jargões não médicos ou vagos. - Não prescreva em nome do médico: formule recomendações como propostas claras e verificáveis.
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 JSON estruturado com dados clínicos e de medicamentos.
-
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 JSON com até 5.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com a avaliação de segurança e recomendações acionáveis.
-
Exemplo de Estrutura de Output:
{ "tem_erro": boolean, "risco_global": "alto|moderado|baixo", "erros_identificados": [ { "id": "string", "tipo": "dose_inapropriada|frequencia_inadequada|ajuste_renal_necessario|ajuste_hepatico_necessario|interacao_medicamentosa|duplicidade_terapeutica|alergia|contraindicacao|via_incorreta|forma_incompativel|diluicao_velocidade_inadequada|duracao_excessiva|monitoramento_necessario|uso_contraindicado_gestacao_lactacao|risco_qt|risco_serotoninergico|outros", "severidade": "contraindicada|maior|moderada|menor", "itens_afetados": ["linha_id"], "justificativa": "texto objetivo citando regra clínica aplicada", "recomendacao": "ação concreta (ex.: reduzir dose para X mg a cada Y h)", "prioridade": 1|2|3, "referencias": [ { "fonte": "string", "titulo": "string", "data": "AAAA-MM-DD" } ] } ], "lacunas_criticas": ["peso_kg ausente"], "necessita_atualizacao_diretrizes": boolean, "topicos_para_atualizacao": ["antimicrobianos_duracao", "anticoagulacao_inr", "alertas_farmacovigilancia"] } - Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 3.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 documentos externos.
- Calculadora: Utiliza lógica interna para cálculos de dose e ajustes.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
2.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente devem ser visíveis para o Agente de Síntese de Recomendações Clínicas e Plano de Ação (RF 4).
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Síntese de Recomendações Clínicas e Plano de Ação (RF 4).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Busca Online (RF 3) se necessita_atualizacao_diretrizes for verdadeiro, caso contrário, aciona o Agente de Síntese de Recomendações Clínicas e Plano de Ação (RF 4).
RF 3. Agente de Busca Online
3.1 Tarefa do Agente
Realizar busca online por diretrizes clínicas atualizadas, alertas de segurança e recomendações farmacoterapêuticas relevantes aos princípios ativos e tópicos indicados.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo uma lista de princípios ativos, condições clínicas e tópicos para busca online. # 2. Objetivo Realizar busca online por diretrizes clínicas atualizadas, alertas de segurança e recomendações farmacoterapêuticas. # 3. Regras que você deve seguir para gerar sua resposta - Este agente não precisa de instruções para chamadas ao LLM, pois sua única função é executar a busca online com parâmetros de busca que já recebe prontos.
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) quando
necessita_atualizacao_diretrizesfor verdadeiro. - Tipo do input: Este agente deve ser apto a receber como input um JSON com princípios ativos, condições clínicas e tópicos para busca online.
-
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 JSON com até 2.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com as fontes e resumos das diretrizes clínicas encontradas.
-
Exemplo de Estrutura de Output:
{ "fontes": [ { "titulo": "string", "url": "string", "fonte": "entidade/orgão", "data": "AAAA-MM-DD", "resumo": "string", "nivel_evidencia": "A|B|C|consenso" } ] } - Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 1.500 caracteres.
3.3.3 Parâmetros de Geração
- Modelo: Este agente não utiliza modelos de IA para geração de output.
3.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Executa busca online com parâmetros recebidos.
- 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 são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Síntese de Recomendações Clínicas e Plano de Ação (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 de Recomendações Clínicas e Plano de Ação (RF 4).
RF 4. Agente de Síntese de Recomendações Clínicas e Plano de Ação
4.1 Tarefa do Agente
Consolidar os erros identificados e as referências recuperadas em um plano de ação estruturado para o time assistencial.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo a saída do Agente de Avaliação de Segurança de Medicação e, se houver, as fontes do Agente de Busca Online. # 2. Objetivo Consolidar os erros identificados e as referências recuperadas em um plano de ação estruturado para o time assistencial. # 3. Regras que você deve seguir para gerar sua resposta - Ordene o plano por prioridade (1>2>3) e impacto clínico. - Para cada recomendação, inclua ação específica, condição de aplicação, dose/intervalo propostos ou alternativa terapêutica e quem deve executar. - Direcione a comunicação: médico (decisões terapêuticas), farmácia (ajustes de produto, diluição, compatibilidades), enfermagem (taxas de infusão, horários, monitoramentos). - Se não houver erros mas houver oportunidades, registre otimizações como prioridade 3. - Se existirem lacunas_criticas, liste-as em itens_para_coleta com instruções objetivas de coleta (ex.: “dosar creatinina antes da próxima dose”). - Utilize as fontes recuperadas quando disponíveis; se indisponíveis, mantenha recomendações baseadas em regras gerais e sinalize necessidade de validação local. - Mantenha linguagem clara, objetiva e clínica; evitar ambiguidade e termos vagos. - Produza JSON final coerente e consistente com chaves previstas, sem adicionar campos não definidos.
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 ou RF 2).
- Tipo do input: Este agente deve ser apto a receber como input a saída do Agente de Avaliação de Segurança de Medicação e, se houver, as fontes do Agente de Busca Online.
-
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 JSON com até 8.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com o plano de ação estruturado para o time assistencial.
-
Exemplo de Estrutura de Output:
{ "resumo_clinico": "string curta com principais riscos", "plano_acoes": [ { "prioridade": 1|2|3, "acao": "string concreta (ex.: reduzir dose para X mg a cada Y h)", "responsavel_sugerido": "medico|farmacia|enfermagem", "prazo": "imediato|24-48h|na alta", "justificativa": "string", "referencias_chave": ["url ou fonte"] } ], "comunicacoes": { "para_medico": "bullet points", "para_farmacia": "bullet points", "para_enfermagem": "bullet points" }, "itens_para_coleta": ["peso_kg", "creatinina_mg_dl"], "registro_decisoes": { "aceite_medico": "pendente|parcial|total", "observacoes": "string" }, "versao_regras": "v1.0" } - Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 5.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 documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
4.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta (JSON do plano de ação) é o entregável final e não é passada para outros agentes internos.
4.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 time assistencial.