Visão geral da pesquisa na API do Azure para FHIR

Importante

A API do Azure para FHIR será desativada em 30 de setembro de 2026. Siga as estratégias de migração para fazer a transição para o serviço FHIR dos Serviços de Dados de Saúde do Azure até essa data. Devido à desativação da API do Azure para FHIR, novas implantações não serão permitidas a partir de 1º de abril de 2025. O serviço FHIR dos Serviços de Dados de Saúde do Azure é a versão evoluída da API do Azure para FHIR que permite aos clientes gerir serviços FHIR, DICOM e MedTech com integrações noutros serviços do Azure.

A especificação Fast Healthcare Interoperability Resources (FHIR) define os fundamentos da pesquisa de recursos FHIR®. Este artigo irá guiá-lo através de alguns aspectos-chave para a pesquisa de recursos em FHIR. Para obter detalhes completos sobre como pesquisar recursos FHIR, consulte Pesquisar na especificação FHIR HL7. Ao longo deste artigo, daremos exemplos de sintaxe de pesquisa. Cada pesquisa será feita no seu servidor FHIR, que normalmente tem um URL de https://<FHIRSERVERNAME>.azurewebsites.net. Nos exemplos, usaremos o espaço reservado {{FHIR_URL}} para essa URL.

As pesquisas FHIR podem ser em relação a um tipo de recurso específico, um compartimento especificado ou todos os recursos. A maneira mais simples de executar uma pesquisa no FHIR é usar uma GET solicitação. Por exemplo, se você quiser puxar todos os pacientes no banco de dados, você pode usar a seguinte solicitação:

GET {{FHIR_URL}}/Patient

Você também pode pesquisar usando POST, o que é útil se a cadeia de caracteres de consulta for muito longa. Para pesquisar usando POSTo , os parâmetros de pesquisa podem ser enviados como um corpo de formulário. Isso permite séries mais longas e complexas de parâmetros de consulta que podem ser difíceis de ver e entender em uma cadeia de caracteres de consulta.

Se a solicitação de pesquisa for bem-sucedida, você receberá uma resposta de pacote FHIR com o tipo searchset. Se a pesquisa falhar, você encontrará os detalhes do erro no OperationOutcome para ajudá-lo a entender por que a pesquisa falhou.

Nas seções a seguir, abordaremos os vários aspetos envolvidos na pesquisa. Depois de revisar esses detalhes, consulte nossa página de exemplos que tem exemplos de pesquisas que você pode fazer na API do Azure para FHIR.

Parâmetros de pesquisa

Ao fazer uma pesquisa, você pesquisará com base em vários atributos do recurso. Estes atributos são denominados parâmetros de pesquisa. Cada recurso tem um conjunto de parâmetros de pesquisa definidos. O parâmetro de pesquisa deve ser definido e indexado no banco de dados para que você possa pesquisar com êxito em relação a ele.

Cada parâmetro de pesquisa tem um tipo de dados definido. O suporte para os vários tipos de dados é descrito abaixo:

Aviso

Atualmente, há um problema ao usar _sort na API do Azure para FHIR com pesquisa encadeada. Para obter mais informações, consulte a edição de código aberto #2344. Isso será resolvido durante um lançamento em dezembro de 2021.

Tipo de parâmetro de pesquisa API do Azure para FHIR Serviço FHIR nos Serviços de Dados de Saúde do Azure Comentário
number Sim Sim
data Sim Sim
string Yes Sim
token Sim Sim
referência Sim Sim
compósito Parcial Parcial A lista de tipos compostos suportados é descrita posteriormente neste artigo
quantidade Sim Sim
uri Sim Sim
Especial No Não

Parâmetros de pesquisa comuns

Existem parâmetros de pesquisa comuns que se aplicam a todos os recursos. Eles estão listados abaixo, juntamente com seu suporte na API do Azure para FHIR:

Parâmetro de pesquisa comum API do Azure para FHIR Serviço FHIR nos Serviços de Dados de Saúde do Azure Comentário
_id Sim Sim
_lastUpdated Sim Sim
_tag Sim Sim
_type Sim Sim
_security Sim Sim
_profile Sim Sim
_has Parcial Sim O suporte para _has está em MVP na API do Azure para FHIR e na versão OSS apoiada pelo Azure Cosmos DB. Mais detalhes estão incluídos na seção de encadeamento abaixo.
_query No Não
_filter No Não
_list No Não
_Texto No Não
_content No Não

Parâmetros específicos do recurso

Com a API do Azure para FHIR, damos suporte a quase todos os parâmetros de pesquisa específicos de recursos definidos pela especificação FHIR. Os únicos parâmetros de pesquisa que não suportamos estão disponíveis nos links abaixo:

Você também pode ver o suporte atual para parâmetros de pesquisa na Declaração de Capacidade FHIR com a seguinte solicitação:

GET {{FHIR_URL}}/metadata

Para ver os parâmetros de pesquisa na instrução de capacidade, navegue até CapabilityStatement.rest.resource.searchParam para ver os parâmetros de pesquisa para cada recurso e CapabilityStatement.rest.searchParam para encontrar os parâmetros de pesquisa para todos os recursos.

Nota

A API do Azure para FHIR não cria ou indexa automaticamente quaisquer parâmetros de pesquisa que não estejam definidos pela especificação FHIR. No entanto, fornecemos suporte para que você defina seus próprios parâmetros de pesquisa.

Parâmetros de pesquisa compostos

A pesquisa composta permite pesquisar em relação a pares de valores. Por exemplo, se você estava procurando por uma observação de altura onde a pessoa tinha 60 polegadas, você gostaria de ter certeza de que um único componente da observação continha o código de altura e o valor de 60. Você não gostaria de obter uma observação onde um peso de 60 e altura de 48 foi armazenado, mesmo que a observação teria entradas qualificadas para o valor de 60 e código de altura, apenas em diferentes seções de componentes.

Com a API do Azure para FHIR, damos suporte aos seguintes emparelhamentos de tipos de parâmetros de pesquisa:

  • Referência, Token
  • Token, Data
  • Token, Número, Número
  • Token, Quantidade
  • Token, String
  • Token, Token

Para obter mais informações, consulte os parâmetros de pesquisa composta HL7.

Nota

Os parâmetros de pesquisa compostos não suportam modificadores de acordo com a especificação FHIR.

Modificadores e prefixos

Os modificadores permitem modificar o parâmetro de pesquisa. Abaixo está uma visão geral de todos os modificadores FHIR e o suporte na API do Azure para FHIR.

Modificadores API do Azure para FHIR Serviço FHIR nos Serviços de Dados de Saúde do Azure Comentário
:ausente Sim Sim
:exato Sim Sim
:contém Sim Sim
:Texto Sim Sim
:type (referência) Sim Sim
:não Sim Sim
:abaixo (uri) Sim Sim
:acima (uri) Sim Sim
:in (token) No Não
:abaixo (token) No Não
:acima (token) No Não
:not-in (token) No Não

Para parâmetros de pesquisa que têm uma ordem específica (números, datas e quantidades), você pode usar um prefixo no parâmetro para ajudar a encontrar correspondências. A API do Azure para FHIR dá suporte a todos os prefixos.

Parâmetros dos resultados da pesquisa

Para ajudar a gerenciar os recursos retornados, há parâmetros de resultados de pesquisa que você pode usar em sua pesquisa. Para obter detalhes sobre como usar cada um dos parâmetros de resultado da pesquisa, consulte o site HL7.

Parâmetros dos resultados da pesquisa API do Azure para FHIR Serviço FHIR nos Serviços de Dados de Saúde do Azure Comentário
_elements Sim Sim
_count Sim Sim _count está limitada a 1000 recursos. Se estiver definido acima de 1000, apenas 1000 será devolvido e um aviso será devolvido no pacote.
_include Sim Sim Os itens incluídos são limitados a 100. _include em PaaS e OSS no Azure Cosmos DB não incluem suporte a :iterate (#2137).
_revinclude Sim Sim Os itens incluídos são limitados a 100. _revinclude em PaaS e OSS no Azure Cosmos DB não incluem suporte a :iterate (#2137). Há também um código de status incorreto para uma solicitação incorreta #1319
_summary Sim Sim
_total Parcial Parcial _total=nenhum e _total=preciso
_sort Parcial Parcial sort=_lastUpdated tem suporte na API do Azure para FHIR e no serviço FHIR. Para bancos de dados do Azure API for FHIR e OSS Azure Cosmos DB criados após 20 de abril de 2021, a classificação é suportada no nome, sobrenome, data de nascimento e data clínica.
_contained No Não
_containedType No Não
_score No No

Nota

Por padrão _sort , classifica o registro em ordem crescente. Você pode usar o prefixo '-' para classificar em ordem decrescente. Além disso, o serviço FHIR e a API do Azure para FHIR só permitem classificar em um único campo de cada vez.

Por padrão, a API do Azure para FHIR é definida como tratamento leniente. Isso significa que o servidor ignorará quaisquer parâmetros desconhecidos ou não suportados. Se você quiser usar um tratamento rigoroso, você pode usar o cabeçalho Preferir e definir handling=strict.

Pesquisa encadeada ou encadeada reversa

Uma pesquisa encadeada permite pesquisar usando um parâmetro de pesquisa em um recurso referenciado por outro recurso. Por exemplo, se você quiser encontrar encontros em que o nome do paciente é Jane, use:

GET {{FHIR_URL}}/Encounter?subject:Patient.name=Jane

Da mesma forma, pode efetuar uma pesquisa em cadeia invertida. Isto permite-lhe obter recursos onde especifique critérios sobre outros recursos que se referem a eles. Para obter mais exemplos de pesquisa encadeada e encadeada inversa, consulte a página de exemplos de pesquisa FHIR.

Nota

Na API do Azure para FHIR e no código aberto apoiado pelo Azure Cosmos DB, há uma limitação em que cada subconsulta necessária para as pesquisas encadeadas e encadeadas retornará apenas 1000 itens. Se houver mais de 1000 itens encontrados, você receberá a seguinte mensagem de erro: "Subconsultas em uma expressão encadeada não podem retornar mais de 1000 resultados, use um critério mais seletivo." Para obter uma consulta bem-sucedida, você precisará ser mais específico no que está procurando.

Paginação

Como mencionado acima, os resultados de uma pesquisa serão um pacote paginado. Por padrão, a pesquisa retornará 10 resultados por página, mas isso pode ser aumentado (ou diminuído) especificando _count. Dentro do pacote, haverá um autolink que contém o resultado atual da pesquisa. Se houver correspondências adicionais, o pacote conterá um próximo link. Você pode continuar a usar o próximo link para obter as páginas subsequentes de resultados. _count é limitado a 1000 itens ou menos.

O próximo link no pacote tem um limite de tamanho de token de continuação de 3KB. Você tem flexibilidade para ajustar o tamanho do token de continuação entre 1 e 3KB, usando o cabeçalho "x-ms-documentdb-responsecontinuationtokenlimitinkb".

Atualmente, a API do Azure para FHIR dá suporte apenas ao próximo link em pacotes e não oferece suporte a primeiro, último ou links anteriores.

Próximos passos

Agora que você aprendeu sobre os conceitos básicos da pesquisa, consulte a página de exemplos de pesquisa para obter detalhes sobre como pesquisar usando diferentes parâmetros de pesquisa, modificadores e outros cenários de pesquisa FHIR.

FHIR® é uma marca registada da HL7 e é utilizada com a permissão da HL7 .