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
| Metodo | Endpoint | Descricao |
|---|
GET | /pacs/connections | Lista conexoes configuradas |
POST | /pacs/send | Envia laudo ao PACS |
Listar Conexoes
Retorna as conexoes PACS configuradas para o usuario autenticado. Campos sensiveis (senhas, credenciais) sao omitidos da resposta.
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
| Tipo | Protocolo | Sistemas Compativeis |
|---|
carestream | HL7 | Carestream Vue PACS |
mvsoul | HL7/XML | MV Soul, VIVACE |
tasy | HL7 | Philips Tasy |
pixeon | HL7 | Pixeon PACS |
dicomweb | STOW-RS | Philips, 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.
Body Parameters
Obrigatorios
| Campo | Tipo | Descricao |
|---|
connection_id | string | ID da conexao PACS |
report_text | string | Conteudo do laudo (HTML ou texto) |
Pelo menos um dos campos abaixo e obrigatorio:
| Campo | Tipo | Descricao |
|---|
accession_number | string | Numero de acesso do exame |
study_instance_uid | string | Study Instance UID DICOM |
Dados do Paciente
| Campo | Tipo | Segmento HL7 | Descricao |
|---|
patient_id | string | PID-3 | ID do paciente |
patient_name | string | PID-5 | Nome (Sobrenome, Nome) |
patient_dob | string | PID-7 | Data de nascimento (YYYY-MM-DD) |
patient_gender | string | PID-8 | M, F ou O |
Dados do Estudo e Medicos
| Campo | Tipo | Descricao |
|---|
modality | string | CT, MR, US, XR, MG, etc. |
study_description | string | Descricao do estudo |
study_date | string | Data do estudo (ISO 8601) |
attending_doctor | string | Medico assistente |
ordering_provider | string | Medico solicitante |
reporting_radiologist | string | Radiologista responsavel |
report_status | string | preliminary, final ou corrected |
protocol | string | auto, 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 HTTP | Descricao |
|---|
400 | Campos obrigatorios ausentes |
401 | API Key invalida |
403 | Sem permissao para PACS |
404 | Conexao PACS nao encontrada |
500 | Erro no envio ao PACS |
504 | Timeout de conexao |
Erros PACS
| Erro | Descricao | Solucao |
|---|
connection_refused | Conexao recusada | Verificar IP/porta e firewall |
connection_timeout | Timeout | Verificar rede e status do PACS |
ack_error | ACK negativo (AE/AR) | Verificar dados do paciente/exame |
authentication_failed | Falha na autenticacao | Verificar 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