Appearance
🔗 Módulo Integration
O módulo Integration é a camada de interoperabilidade com sistemas nacionais SUS (RNDS, CNS, CNES, SIGTAP, BNAFAR), essencial para validação em tempo real, envio de dados assistenciais e conformidade com Conecte SUS.
Funcionalidades Principais
Validação e Consulta em Tempo Real
- CNS: Validação de cartão nacional de saúde (consulta CadSUS), busca por nome/CPF para unificação de pacientes
- CNES: Listagem de estabelecimentos (unidades próprias + conveniadas), profissionais vinculados
- SIGTAP: Tabela de procedimentos/medicamentos/OPM para cobrança/faturamento, com códigos atualizados
Use chamadas assíncronas (queues) para não travar UI.
Sincronização de Catálogos (Central)
Jobs agendados para importar/atualizar: medicamentos Hórus/ANVISA, vacinas PNI, CIDs, tabelas SIGTAP para referência compartilhada com tenants.
Integrações Transacionais (Envio de Dados)
- RNDS (Rede Nacional de Dados em Saúde): Envio de contatos assistenciais (atendimentos, dispensações, imunizações, notificações) via WebService SOAP. Validação pré-envio (CNS/CNES/SIGTAP) e retentativas automáticas. Suporte a PEC e-SUS APS (fichas CDS/Prontuário)
- BNAFAR: Consulta de preços de referência para compras/licitações, integrado à Farmácia
Credenciais e Setup (SUS Digital)
| Serviço | Ambiente Homolog. | Produção | Autenticação |
|---|---|---|---|
| CNS/CadSUS | https://homologacao.datasus.gov.br | https://servicos.datasus.gov.br | Certificado ICP-Brasil (PF/PJ), token OAuth2 |
| RNDS | SOAP WSDL homolog | SOAP produção | Chave pública/privada + login CNS gestor CNES |
| CNES/SIGTAP | API REST | API REST | API Key por CNES principal |
Passos para ativar:
- Portal SUS Digital: Solicite credenciais para CNES principal (gestor municipal), informe sistema (Laravel 12, PHP 8.4). Gere certificado ICP-Brasil
- Configure jobs para teste em homologação
- Monitore falhas e conformidade (logs auditados)
Telas e Fluxos de Usuário
Dashboard Integrações
Status conexões, jobs pendentes, erros recentes, % dados enviados RNDS.
Gerenciar Credenciais
Upload certs, teste conexão CNS/RNDS.
Sincronizar Catálogos
Botão "Atualizar SIGTAP", preview diffs.
Monitor RNDS
Fila de envios, reenvio falhas, relatórios de rejeições.
Modelos de Dados
- Central:
NationalCatalog(medicamentos, procedimentos),IntegrationCredential(por tenant/CNES) - Tenant:
RndsSubmission(id, tipo_dado, status, erro_msg, data_envio) - Cache: Redis para consultas frequentes (CNS válidos 24h)
Implementação Técnica (Laravel)
Use php-soap ou nusoap para RNDS SOAP; Guzzle para REST APIs. Exemplo job RNDS:
php
<?php
namespace App\Jobs;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Log;
use SoapClient;
class SendToRndsJob implements ShouldQueue
{
use Dispatchable;
protected $clinicalRecord;
public function __construct($clinicalRecord)
{
$this->clinicalRecord = $clinicalRecord;
}
public function handle()
{
$contact = $this->clinicalRecord; // Do Prontuário
$client = new SoapClient('https://producao.rnds.gov.br/wsdl');
$response = $client->enviarContatoAssistencial([
'cnsPaciente' => $contact->patient->cns,
'cnes' => config('tenant.cnes'),
// ... dados validados
]);
if (!$response->sucesso) {
Log::error('RNDS falha', $response);
}
}
}Desacople: services como CnsValidator, RndsSender injetados nos módulos.
Priorize MVP: validação CNS/CNES → sync catálogos → envio básico RNDS de dispensações. Isso habilita todos os módulos sem retrabalho.
💡 Nota Técnica
No código, este módulo é representado pelo namespace App\Modules\Integration. As tabelas no banco de dados utilizam o prefixo integration_.
