Skip to main content

PACS Integration API

Endpoints para consultar conexoes PACS configuradas e enviar laudos ao PACS/RIS hospitalar. Suporta multiplos protocolos para compatibilidade com sistemas brasileiros e internacionais.
Conexoes PACS sao configuradas pela equipe Laudos.AI ou via plataforma em Configuracoes > Integracoes. A API permite consultar conexoes existentes e enviar laudos.

Endpoints

MetodoEndpointDescricao
GET/pacs/connectionsLista conexoes configuradas
POST/pacs/sendEnvia laudo ao PACS

Listar Conexoes

Retorna as conexoes PACS configuradas para o usuario autenticado. Campos sensiveis (senhas, credenciais) sao omitidos da resposta.
GET /pacs/connections

Exemplos

curl -X GET "https://copilot.laudos.ai/api/v1/pacs/connections" \
  -H "Authorization: Bearer sk_live_xxx"

Resposta

{
  "data": [
    {
      "id": "conn_abc123",
      "name": "PACS Hospital Central",
      "type": "carestream",
      "protocol": "hl7",
      "host": "192.168.1.100",
      "port": 2575,
      "status": "connected",
      "created_at": "2025-08-01T10:00:00Z"
    }
  ],
  "meta": {
    "total": 1
  }
}

Tipos de Conexao

TipoProtocoloSistemas Compativeis
carestreamHL7Carestream Vue PACS
mvsoulHL7/XMLMV Soul, VIVACE
tasyHL7Philips Tasy
pixeonHL7Pixeon PACS
dicomwebSTOW-RSPhilips, Siemens, GE, Orthanc, dcm4chee

Enviar Laudo ao PACS

Envia um laudo para o PACS. O protocolo (HL7, DICOMweb, MV Soul XML) e detectado automaticamente com base na conexao, ou pode ser especificado manualmente.
POST /pacs/send

Body Parameters

Obrigatorios

CampoTipoDescricao
connection_idstringID da conexao PACS
report_textstringConteudo do laudo (HTML ou texto)
Pelo menos um dos campos abaixo e obrigatorio:
CampoTipoDescricao
accession_numberstringNumero de acesso do exame
study_instance_uidstringStudy Instance UID DICOM

Dados do Paciente

CampoTipoSegmento HL7Descricao
patient_idstringPID-3ID do paciente
patient_namestringPID-5Nome (Sobrenome, Nome)
patient_dobstringPID-7Data de nascimento (YYYY-MM-DD)
patient_genderstringPID-8M, F ou O

Dados do Estudo e Medicos

CampoTipoDescricao
modalitystringCT, MR, US, XR, MG, etc.
study_descriptionstringDescricao do estudo
study_datestringData do estudo (ISO 8601)
attending_doctorstringMedico assistente
ordering_providerstringMedico solicitante
reporting_radiologiststringRadiologista responsavel
report_statusstringpreliminary, final ou corrected
protocolstringauto, hl7, dicomweb ou mvsoul

Exemplos

curl -X POST "https://copilot.laudos.ai/api/v1/pacs/send" \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "conn_abc123",
    "report_text": "<h1>LAUDO RADIOLOGICO</h1><p><strong>Tecnica:</strong> TC de torax sem contraste.</p><p><strong>Analise:</strong> Parenquima pulmonar normal.</p><p><strong>Impressao:</strong> Exame normal.</p>",
    "report_status": "final",
    "accession_number": "ACC2026012600001",
    "patient_id": "PAT001",
    "patient_name": "Silva, Joao Carlos",
    "patient_dob": "1958-03-15",
    "patient_gender": "M",
    "modality": "CT",
    "reporting_radiologist": "Dr. Carlos Santos - CRM 11111"
  }'

Resposta - Sucesso

{
  "success": true,
  "message": "Laudo enviado com sucesso",
  "protocol": "hl7",
  "duration_ms": 1250,
  "details": {
    "ack_type": "AA",
    "message_control_id": "MSG2026012614300001",
    "hl7_version": "2.5.1"
  }
}

Resposta - Erro

{
  "success": false,
  "error": "connection_refused",
  "message": "Nao foi possivel conectar ao PACS",
  "protocol": "hl7",
  "details": {
    "host": "192.168.1.100",
    "port": 2575,
    "error_code": "ECONNREFUSED"
  }
}

Protocolos Suportados

HL7 ORU^R01 via MLLP

Protocolo padrao para sistemas brasileiros. Mensagens HL7 v2.5.1 enviadas via MLLP. Sistemas compativeis: Carestream, MV Soul, Tasy, Pixeon, MV 2000, Wareline.

DICOMweb STOW-RS

Protocolo REST para sistemas modernos. Laudos enviados como DICOM Structured Report. Sistemas compativeis: Philips, Siemens, GE, Fujifilm, Agfa, Orthanc, dcm4chee.

MV Soul XML API

API XML proprietaria para sistemas MV Soul e VIVACE.

Codigos de Erro

Codigo HTTPDescricao
400Campos obrigatorios ausentes
401API Key invalida
403Sem permissao para PACS
404Conexao PACS nao encontrada
500Erro no envio ao PACS
504Timeout de conexao

Erros PACS

ErroDescricaoSolucao
connection_refusedConexao recusadaVerificar IP/porta e firewall
connection_timeoutTimeoutVerificar rede e status do PACS
ack_errorACK negativo (AE/AR)Verificar dados do paciente/exame
authentication_failedFalha na autenticacaoVerificar credenciais

Boas Praticas

  • Teste conexoes antes de enviar laudos em producao
  • Implemente retry com backoff exponencial para falhas transientes
  • Valide que o accession_number existe no RIS antes de enviar
  • Use report_status: "preliminary" para laudos parciais, "final" para definitivos
  • Configure timeout de pelo menos 120 segundos no cliente (conexoes remotas podem ser lentas)
  • Libere porta 2575 (HL7) ou 443 (DICOMweb) no firewall