Skip to main content

Compatibilidade com a API legada — API

Mantém um inventário compilado de todas as rotas da antiga API pública do Portal 1.0 (mm-pacs-public-api, em Express), cada uma já mapeada para a capability canônica que deve substituí-la nesta API. Não é uma rota que um parceiro chama — é um registro interno (LegacyRouteRegistry) que existe para planejar e proteger a migração: garantir, por construção, que nenhuma rota antiga é reativada antes que sua capability canônica exista, e que uma rota já migrada não fica "escondida atrás" de uma rota antiga ainda pendente.

Funcionamento​

Cada entrada é um LegacyRouteDefinition: método HTTP, caminho externo (com parâmetros :comoEste, comparação case-insensitive, igual ao comportamento do serviço Express original), a canonicalCapability que a substituirá, um owner de domínio, uma classification e, quando identificável, o consumer (o sistema de terceiro que a usa).

Todas as ~120 rotas do inventário estão hoje em status: MAPPING_PENDING — nenhuma é ACTIVE. Por isso, no processo public-api-edge, toda chamada a um caminho do inventário responde 404, exatamente como qualquer rota inexistente. O inventário existe, mas não está ligado a nenhum handler: é documentação executável (verificada por teste), não uma ponte de tráfego.

LegacyRouteRegistryConsistency roda no boot do processo e impede subir com um registro inconsistente:

  • nenhum legacyRouteId duplicado;
  • nenhuma rota ACTIVE cuja canonicalCapability não exista no catálogo compilado (ver Concessões de rota) — uma rota não pode ser "ligada" antes de sua substituta existir;
  • nenhuma rota ACTIVE que sobreponha (mesmo método, mesmo formato de caminho) uma rota ainda MAPPING_PENDING definida depois dela na lista — ativar uma rota não pode silenciosamente passar a responder no lugar de outra que ainda não foi avaliada.

Distribuição do inventário​

Consumidor (sistema de terceiro)Rotas
OneLaudos19
Clinux4
MV4
Pixeon Arya3
MRIS, Philips Tasy, Pixxel, Qure, Sarah, Totvs1 cada
Sem consumidor identificável no códigorestante do inventário
Owner de domínioRotas
DIAGNOSIS53
REPORT25
EXTERNAL_INTEGRATION18
CLINICAL_MEDIA17
STORAGE5
ORGANIZATION, WORKLIST2 cada
AUDIT, IDENTITY1 cada
ClassificaçãoRotasSignificado
INBOUND_COMMAND44terceiro envia dado/comando ao Portal
PASSIVE_READ37terceiro só lê
PARTNER_SPECIFIC26comportamento amarrado a um parceiro específico
OUTBOUND_TRIGGER9Portal aciona algo no terceiro
CONTROL_PLANE7administração de aplicações/adapters (cadastro, não dado clínico)
LEGACY_COMPATIBILITY1—

Endpoints​

Esta página documenta um registro interno, não uma rota do data plane. Ele é consumido por:

UsoOnde
resolveActiveRouteFor(method, path)Resolveria a rota ativa correspondente a um caminho legado — hoje sempre devolve null, porque nenhuma rota está ACTIVE
listCanonicalOperationsOf(legacyRoute)Consulta, para uma rota legada, as operações canônicas (/v1/...) que a substituem, via RouteCapabilityCatalog
Teste de superfície (public-api-surface.e2e.spec.ts)Confirma, no CI, que toda rota do inventário responde 404 no processo real

Consistência verificada no boot, não numa rota HTTP.

Permissões​

Não se aplica — não é uma rota HTTP chamável; é um registro de código, validado no boot.

Erros​

Classe de erroerrorCodeQuando ocorre
InvalidLegacyRouteRegistryErrorPUBLIC_API_LEGACY_ROUTE_REGISTRY_INVALIDboot com legacyRouteId duplicado, rota ACTIVE sem capability canônica publicada, ou rota ACTIVE sobrepondo uma MAPPING_PENDING posterior

Regras de negócio​

IDRegraComportamento esperado
RN-01Nenhuma rota legada está ativa hojetoda chamada a um caminho do inventário responde 404, verificado em teste de ponta a ponta
RN-02Ativar uma rota exige a capability canônica já publicadaconsistência checada no boot, não em runtime — um registro inconsistente impede o processo de subir
RN-03Ordem da lista importa para detectar sobreposiçãouma rota ACTIVE não pode aparecer antes, na lista, de uma rota MAPPING_PENDING com o mesmo método e formato de caminho
RN-04Comparação de caminho é case-insensitivereproduz o comportamento do roteador Express original, onde /exam/getAttachments e /exam/getattachments eram a mesma rota

Compliance​

Não se aplica — este registro não processa nem expõe dado; é metadado de planejamento de migração.

Variáveis de ambiente​

Nenhuma.

Requisitos não funcionais​

RequisitoDefinição
IdempotênciaNão se aplica
AuditoriaNão se aplica — nenhuma rota do inventário está ativa

Relacionado​