Como construir um pipeline de sinistros de saúde com IA agêntica usando Amazon Bedrock e AWS HealthLake

O problema: formulários em papel ainda custam caro na saúde

O processamento manual de formulários em papel continua sendo um dos maiores custos operacionais no setor de saúde. Mesmo com os avanços em extração de dados de documentos digitalizados, a supervisão humana ainda é necessária na maioria dos casos — seja para corrigir erros de preenchimento, seja para lidar com extrações de baixa confiança geradas pelo processo de digitalização.

Para endereçar esse desafio, a AWS publicou um guia técnico mostrando como construir um pipeline automatizado de processamento de sinistros usando duas capacidades do Amazon Bedrock: o Amazon Bedrock Data Automation para extração inteligente de dados de formulários de sinistros, e o Amazon Bedrock AgentCore para hospedar um agente de IA que valida e transforma os dados extraídos em recursos FHIR (Recursos Interoperáveis de Saúde Rápidos) no AWS HealthLake.

Visão geral da solução

O fluxo proposto automatiza o processamento de formulários CMS-1500 — o formulário padrão de sinistros médicos nos Estados Unidos — usando serviços de IA da AWS. O processo começa quando um prestador de saúde faz o upload de um formulário em PDF para um bucket do Amazon Simple Storage Service (Amazon S3), o que dispara uma cadeia de processamento baseada no AWS Lambda.

Esse pipeline executa três funções principais:

  • O Amazon Bedrock Data Automation extrai os dados estruturados do formulário usando processamento inteligente de documentos.
  • Um agente de IA baseado no Strands Agents, rodando no Amazon Bedrock AgentCore, valida os dados extraídos consultando registros de pacientes e prestadores no AWS HealthLake, verificando completude e consistência.
  • Se todas as validações passarem, o agente cria um recurso FHIR padronizado do sinistro no HealthLake e gera dois tipos de resumo: um técnico para os analistas de sinistros e outro em linguagem acessível para o paciente. Ambos são enviados como notificações via Amazon Simple Notification Service (Amazon SNS).

Fluxo arquitetural passo a passo

O diagrama da solução ilustra o seguinte fluxo:

  1. Um usuário faz o upload do documento de sinistro para o Amazon S3.
  2. O AWS Lambda é acionado automaticamente com a chegada do arquivo.
  3. O Amazon Bedrock Data Automation extrai as informações do documento e retorna o resultado em formato JSON.
  4. O Lambda aciona o AgentCore e passa o documento para processamento.
  5. O AgentCore consulta o AWS HealthLake, cria o sinistro e retorna um JSON de resposta com o resumo.
  6. O Lambda invoca o Amazon SNS para entregar uma resposta de erro ou de sucesso.

O Lambda atua como gatilho de eventos quando um documento é criado no S3 e funciona como um supervisor determinístico sobre o fluxo agêntico. Ele garante que cada documento seja processado ou encaminhado para uma fila de mensagens mortas para tratamento de exceções.

Como cada serviço funciona nessa arquitetura

Amazon Bedrock Data Automation

O Bedrock Data Automation simplifica o desenvolvimento de IA generativa e automatiza fluxos de trabalho que envolvem documentos, imagens, áudio e vídeos. Para o processamento de documentos, ele combina OCR (Reconhecimento Óptico de Caracteres) tradicional, modelos de aprendizado de máquina e IA generativa para extrair dados com precisão.

É possível usar Blueprints (artefatos de configuração) para especificar quais dados extrair de um documento e como fazer isso. Há templates pré-construídos ou a opção de criar configurações personalizadas para cada caso de uso. O output inclui pontuações de confiança e dados de bounding box para os campos e tabelas extraídos. No caso desta solução, o output personalizado produz uma representação JSON previsível do formulário CMS-1500 em suas diferentes variações de formato.

Amazon Bedrock AgentCore e o agente Strands

O AgentCore hospeda o agente Strands, que utiliza duas ferramentas para interagir com o HealthLake: create_fhir_claim e search_fhir_resources.

O fluxo de trabalho do agente segue esta lógica:

  • Localizar as informações do Segurado, Paciente, Médico e Cobertura no AWS HealthLake para usar como referência no formulário de sinistro. A primeira tentativa usa chamadas diretas de método com parâmetros de busca padrão.
  • Se necessário, o agente executa tentativas adicionais com diferentes parâmetros de busca, priorizando atributos com alta pontuação de confiança.
  • Se as referências forem encontradas, o agente cria a representação FHIR do sinistro e a envia para o AWS HealthLake.
  • Por fim, o agente gera um objeto JSON com o ID do sinistro (se criado), uma resposta para o analista humano e uma resposta para o paciente.

Pré-requisitos para implantar a solução

Antes de implantar a solução, é necessário ter:

  • Uma conta AWS com permissões de administrador.
  • Acesso ao Anthropic Claude Sonnet 4.6 no Amazon Bedrock. Veja mais detalhes em como acessar os modelos de fundação do Amazon Bedrock.
  • NodeJS versão 24 ou superior.
  • Node Package Manager (npm) versão 11.5 ou superior.
  • Python versão 3.13 ou superior.
  • AWS Cloud Development Kit (AWS CDK) versão 2.1025 ou superior.

Como implantar a solução

O AWS CDK e a interface de linha de comando do AgentCore são usados para a implantação. Os passos são os seguintes:

Clone o repositório:

git clone https://github.com/aws-samples/sample-agenticidptohealthlake.git

Execute os seguintes comandos a partir da raiz do repositório:

npm install
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements.txt --python-version 3.12 --platform manylinux2014_aarch64 --target ./packaging/_dependencies --only-binary=:all:
cd agentcore
agentcore configure --entrypoint claimsprocessor.py
agentcore launch
python ./bin/package_for_lambda.py
npx cdk bootstrap
npx cdk deploy

Após o deploy, é necessário se inscrever no tópico SNS para receber notificações. Para isso:

  • Acesse o console do Amazon SNS.
  • Escolha Topics e selecione Agent-Notifications.
  • Clique em Create subscription, escolha o protocolo email, informe seu endereço de e-mail e confirme a inscrição pelo link enviado ao e-mail.

Testando a solução: cenários de falha e sucesso

Cenário de falha

Para simular uma falha, basta omitir um dos recursos de referência obrigatórios no AWS HealthLake. O projeto inclui uma pasta sampledata. Use o script load_sampledata.py para carregar dados de teste, onde <data_store_id> é o valor de HealthLakeDatastoreArn obtido no output do cdk deploy:

python load_sampledata.py <data_store_id> bda_output_insuredid_error.json Patient,Insured,Practitioner

Em seguida, faça o upload do arquivo sample1_cms-1500-P.pdf para o bucket S3 dentro de uma pasta chamada /input. Como um dos recursos obrigatórios não foi carregado intencionalmente, o sistema deve gerar uma mensagem via SNS similar a:

“Não foi possível processar seu sinistro porque não encontramos suas informações de cobertura de seguro em nosso sistema. Entre em contato com sua seguradora para verificar o número da apólice G4683A com o plano AnyHealth Plus Medicare, ou ligue para nosso escritório para atualizar suas informações de cobertura.”

Esse cenário demonstra como o agente reconhece o problema e gera uma resposta amigável ao usuário sobre a falha no processamento do sinistro.

Cenário de sucesso

Para simular um processamento bem-sucedido, todos os recursos obrigatórios do HealthLake precisam existir. Nesse cenário, uma discrepância de dados é inserida intencionalmente para que o agente precise superá-la. No dado de exemplo, o número de identificação do segurado foi alterado.

Crie a referência ausente no HealthLake:

python load_sampledata.py <data_store_id> bda_output_insuredid_error.json Coverage

Reprocesse o PDF seguindo os mesmos passos anteriores. A mensagem recebida via SNS será similar a:

“Formulário CMS 1500 processado com sucesso para o paciente John Doe com diagnóstico de Dor nas Costas M54.9. O paciente foi identificado pela data de nascimento (1960-10-10). O segurado Jane Doe foi identificado por busca de nome após falha na busca por ID devido a uma discrepância entre o ID do sinistro (11-2234-10190) e o ID do banco de dados (11-2234-1019O) — o último caractere difere. A Dra. Jane Smith foi identificada como médica solicitante pelo ID 123456. A cobertura foi verificada na apólice Medicare G4683A emitida pela AnyHealth Plus. O sinistro inclui 4 procedimentos: CPT 97810 em 15/10/2005 (US$ 170), CPT 73521 em 20/10/2005 (US$ 120), CPT 98940 em 30/10/2005 (US$ 250) e CPT 97124 em 30/10/2005 (US$ 120), totalizando US$ 660.”

Essa mensagem oferece ao analista humano um resumo rápido do sinistro aprovado e qualquer observação relevante feita pelo agente durante o processo.

Boas práticas destacadas pela AWS

IA em tempo de design é melhor do que IA em tempo de execução

Nessa solução, a lógica de orquestração é conhecida antecipadamente. As etapas de processamento de documentos são previsíveis, e as consultas iniciais ao HealthLake seguem um padrão consistente. Como esses requisitos estão bem definidos em tempo de design, a lógica foi codificada explicitamente em vez de depender de servidores MCP (Protocolo de Contexto de Modelo) para inferir a ordem das operações em tempo de execução. O resultado é uma solução mais confiável e fácil de manter.

Para construir a solução, foi utilizado o Kiro, uma IDE agêntica que traduz especificações em linguagem natural para código funcional. O Kiro gerou as chamadas de API para o Bedrock Data Automation dentro do Lambda e construiu as ferramentas dentro do agente. Ao produzir código preciso e direcionado em tempo de design, em vez de emitir prompts amplos e exploratórios em tempo de execução, o número de chamadas ao Bedrock foi reduzido — o que ajuda a diminuir os custos operacionais e encurta o ciclo de desenvolvimento.

Supervisão determinística dos agentes

O uso do S3 e do Lambda nessa arquitetura foi intencional. O agente executa duas funções básicas: observar as chamadas explícitas de ferramentas e gerar o recurso FHIR para carregar no HealthLake. Em seguida, ele reporta de volta para a função Lambda, que atua como árbitro final de sucesso ou falha do sinistro.

Limpeza do ambiente

Para remover a solução, os seguintes comandos podem ser executados:

cd agentcore
python cleanup_resources.py
npx cdk destroy

Estimativa de custos

A AWS apresenta as seguintes considerações de custo para cada serviço utilizado. Os valores são baseados na precificação da AWS no momento da publicação original e podem variar:

  • AgentCore Runtime: cobranças de US$ 0,0895 por vCPU-hora e memória a US$ 0,00945 por GB-hora, resultando em um custo nominal por documento.
  • Amazon Bedrock Data Automation: US$ 0,04 por página para blueprints com até 30 campos; US$ 0,0005 para cada campo adicional além de 30.
  • Cobranças de modelo para o agente usando Anthropic Claude Sonnet 3.7 V1. No documento de teste, os tokens foram aproximadamente 76 mil de entrada e 6 mil de saída. No modelo de preço sob demanda, isso representa US$ 0,23 de entrada e US$ 0,09 de saída, totalizando US$ 0,32 por documento.
  • AWS HealthLake: cobrado por armazenamento por hora, a US$ 0,27 por hora para os primeiros 10 GB.
  • Lambda, S3 e SNS: custos negligíveis por documento nessa arquitetura.

Conclusão

Embora o processamento de sinistros de saúde em produção frequentemente envolva etapas adicionais além das cobertas por essa solução, o padrão demonstrado evidencia o poder de integrar agentes de IA em fluxos de trabalho com documentos. Ao dar ao agente acesso direto às ferramentas de processamento, ele consegue oferecer insights valiosos de múltiplas formas: identificando possíveis problemas no sinistro, destacando áreas que precisam de revisão humana e gerando mensagens de status acessíveis para os pacientes.

O exemplo do cenário de sucesso ilustra uma situação real e frequente: uma discrepância entre a letra “o” e o número “0” em um identificador. Nesse caso, o agente navegou pela discrepância e processou o sinistro corretamente.

Para saber mais sobre como construir soluções de processamento inteligente de documentos, a AWS recomenda explorar a documentação do Amazon Bedrock ou conferir outras soluções de saúde no AWS Architecture Center.

Fonte

Build an agentic AI healthcare claims pipeline with Amazon Bedrock and AWS HealthLake (https://aws.amazon.com/blogs/machine-learning/build-an-agentic-ai-healthcare-claims-pipeline-with-amazon-bedrock-and-aws-healthlake/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *