# publisher
Fábrica de Software (Instituto de Informática - UFG)

# contact[].name
Fábrica de Software (Instituto de Informática - UFG)

# description
O **HubSaúde** é um gateway para recuperar e fornecer informações em saúde no Estado de Goiás.

# purpose
Detalhar as capacidades oferecidas pelo **HubSaúde** e permitir acompanhamento dos recursos oferecidos ao longo do tempo, registrado pela evolução de versões.

# implementation.description
Instância do **HubSaúde** disponibilizada pela SES-GO

# rest[].documentation
Endpoint /Bundle de produção do **HubSaúde** por meio do qual resultados de exames são submetidos à Secretaria de Estado de Saúde de Goiás.

O contexto de cada requisição é identificado pelo path `/fhir/{ig-alias}/{versao}/...`. Mapeamento entre `{ig-alias}` e a URL canônica do Guia de Implementação (as versões suportadas constam de `implementationGuide`):

| ig-alias | URL canônica |
|---|---|
| `core` | https://fhir.saude.go.gov.br/r4/core/ImplementationGuide/br.go.ses.core |
| `exame` | https://fhir.saude.go.gov.br/r4/exame/ImplementationGuide/br.go.ses.exame |
| `seguranca` | https://fhir.saude.go.gov.br/r4/seguranca/ImplementationGuide/br.go.ses.seguranca |

# rest[].security.service[].text
Autenticação mTLS usando Certificado ICP-Brasil e emissão de tokens de acesso via SMART Backend Services (Client Credentials).

# rest[].security.description
O HubSaúde expõe exclusivamente um contrato técnico (SMART Backend Services / Client Credentials). Todo cliente — incluindo intermediários confiáveis que atuam em nome de pacientes — autentica-se via mTLS com Certificado ICP-Brasil e obtém tokens com escopos system/*. A autenticação de utilizadores humanos (Gov.br, biometria, etc.) é responsabilidade do intermediário confiável e ocorre fora do perímetro do HubSaúde. O credenciamento deve ser aprovado pela SES-GO. CORS é habilitado nos endpoints públicos de descoberta (/metadata e /.well-known/smart-configuration), restrito a GET/OPTIONS e sem credenciais; o endpoint transacional exige mTLS e não é acessado por navegadores.

# rest[].resource[].documentation
O Bundle é o recurso principal para transferência de exames. O Bundle pode ser de dois tipos: Transferencia e Malote. Será em uma instância de Bundle que o exame será 'empacotado' para ser enviado à SES-GO. Os detalhes do exame a ser enviado estão definidos em perfil próprio ou são uma combinação de observações simples e compostas, por exemplo. Qualquer que seja o caso, contudo, sugere-se observar atentamente os exemplos fornecidos e perfis esperados para serem atendidos.

# rest[].resource[].interaction[].documentation
Processamento assíncrono. Não é fornecido payload como resposta: o código de resposta é 202 (Accepted) e o cabeçalho Content-Location indica a URL da Task por meio da qual o requisitante acompanha o status da operação. O cabeçalho Retry-After sugere o intervalo antes da primeira consulta.

# rest[].resource[].documentation
Acompanhamento do ciclo de vida da operação de escrita assíncrona (status: accepted, in-progress, completed, failed ou rejected). Cada requisitante tem acesso apenas às Tasks das submissões que realizou; consultas a Tasks de terceiros ou inexistentes resultam em 404 (Not Found).

# rest[].resource[].interaction[].documentation
GET [base]/Task/[id], em que [id] é obtido do cabeçalho Content-Location retornado na submissão.

# rest[].resource[].documentation
Conteúdo assinado digitalmente que acompanha a submissão, transportado dentro do Bundle conforme o Guia de Segurança da Informação. Não é exposto como endpoint REST próprio.

# rest[].resource[].documentation
Gestão de consentimento do titular (LGPD). As decisões de consentimento condicionam o acesso de leitura aos dados do titular.

# rest[].resource[].searchParam[].documentation
Titular ao qual o consentimento se aplica.

# rest[].resource[].searchParam[].documentation
Estado do consentimento (draft, active, inactive, etc.).