Da consulta ao Bundle

Cada atendimento processado gera um Bundle segundo a arquitetura documentada.

  1. 1
    Coletar

    Recuperar atendimento e dados clínicos no AGHUx.

  2. 2
    Estruturar

    Organizar o conjunto intermediário no BundleDTO.

  3. 3
    Construir

    Criar recursos e referências com o BundleBuilder e HAPI FHIR.

  4. 4
    Serializar

    Converter o Bundle FHIR R4 para JSON com o parser HAPI.

  5. 5
    Transmitir

    Enviar o documento para a operação de Bundle da API RNDS.

Padrão conceitual HAPI FHIR
// Exemplo didático; não representa uma classe copiada do projeto
IParser parser = FhirContext.forR4()
    .newJsonParser();

String payload = parser.encodeResourceToString(bundle);
// O payload segue para o serviço assíncrono de envio.

Envio assíncrono e encerramento controlado

O BundleAsyncService distribui tarefas em um pool de threads para aumentar vazão, enquanto o BundleExecutionTracker acompanha o estado dos envios.

Fila de bundles pendentes
          ↓
BundleAsyncService
          ↓ distribui tarefas
      Thread pool
       ↙   ↓   ↘
      envios HTTP
          ↓
        RNDS
          ↓
resultado + auditoria
  • Concorrência melhora vazão, mas aumenta a importância de limites, timeout e observabilidade.
  • O tracker distingue bundles em execução e finalizados.
  • O job aguarda a finalização dos envios acompanhados antes de concluir.
  • Falha parcial precisa preservar a identidade de cada Bundle para reprocessamento seletivo.

Separar falhas de transformação e transporte

A resposta operacional melhora quando a equipe classifica a falha antes de agir.

CategoriaExemplosPrimeira verificação
Dados de origemPaciente, profissional ou informação clínica ausenteConsulta AGHU e critérios da carga
ConstruçãoReferência, cardinalidade ou recurso incorretoBuilder, DTO e perfil aplicável
SerializaçãoPayload não produzidoParser, recurso inválido e exceção local
AutenticaçãoToken, certificado ou TLSTokenService, validade e relógio
TransporteTimeout, indisponibilidade ou HTTPRede, endpoint e correlação
Negócio RNDSCódigo EHR-ERR ou MSGDescrição do código e conteúdo do Bundle