Integridade referencial FHIR

Esta página explica o conceito de integridade referencial no que diz respeito aos recursos num armazenamento FHIR na Cloud Healthcare API.

O FHIR store aplica a integridade referencial em referências a outros recursos na mesma loja:

  • Quando cria, atualiza ou aplica um patch a um recurso, a operação falha se o conteúdo resultante do recurso contiver uma referência a um recurso ou uma versão do recurso que não existe.
  • Quando elimina um recurso, a operação falha se existirem outros recursos na loja que façam referência a esse recurso.

Pode desativar a integridade referencial definindo a opção disableReferentialIntegrity no momento da criação da loja.

Exclusões e limitações

A especificação FHIR permite várias formas de referências, algumas das quais não são cobertas pela integridade referencial:

  • Uma referência externa especificada por um URL que não corresponde ao URL base da loja FHIR.
  • Uma referência lógica especificada por um identificador de empresa.
  • Uma referência que contém apenas uma string de apresentação legível.
  • As referências nas extensões do FHIR só estão sujeitas à integridade referencial se complexDataTypeReferenceParsing estiver definido como ENABLED. Este é o valor predefinido para novos arquivos FHIR.

Determinados métodos da API podem fazer com que a integridade referencial seja violada em algumas condições:

  • O FHIR permite que as referências apontem para uma versão específica do histórico de um recurso através do formulário [resource type]/[resource ID]/_history/[version ID]. A integridade referencial é aplicada a estas referências quando são criadas ou atualizadas, mas quando usa o método Resource-purge para remover versões do histórico de um recurso, as referências recebidas não são verificadas.
  • O método FHIR import não aplica a integridade referencial. O método pode ser usado em casos em que a integridade referencial não é necessária ou em que se sabe que a entrada satisfaz a integridade referencial. No último caso, as referências na loja FHIR vão atingir a consistência final depois de cada recurso ser importado com êxito.
  • O método deidentify pode criar potencialmente uma loja FHIR num estado que não satisfaça a integridade referencial temporariamente durante a operação ou permanentemente se forem usados filtros para selecionar um subconjunto de recursos.

Um estado em que a integridade está a ser aplicada, mas foi violada por um dos casos anteriores, faz com que as atualizações de recursos sejam rejeitadas num recurso que contenha uma referência inválida, a menos que a atualização corrija ou remova todas as referências inválidas. Este estado também pode criar dificuldades para as aplicações que usam a loja e pressupõem integridade.

Recursos contidos

A especificação FHIR contém uma restrição de que todos os recursos contidos têm de ser referenciados a partir de algum lugar no respetivo recurso de contenção (incluindo referências de outros recursos contidos), e todas as referências a um recurso contido têm de ser válidas. Esta restrição é aplicada separadamente da integridade referencial e não pode ser desativada, uma vez que está definida nas invariantes do FHIRPath em cada recurso individual.