Visão geral da pesquisa do FHIR

Importante

As APIs de serviços de saúde do Azure estão atualmente em VERSÃO PRÉVIA. Os Termos de Uso Complementares para Versões Prévias do Microsoft Azure incluem termos legais adicionais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

A especificação FHIR define os conceitos básicos de pesquisa de recursos do FHIR. Este artigo guiará você por alguns aspectos importantes para a pesquisa de recursos no FHIR. Para obter detalhes completos sobre a pesquisa de recursos do FHIR, consulte a pesquisa na especificação HL7 FHIR. Ao longo deste artigo, forneceremos exemplos de sintaxe de pesquisa. Cada pesquisa será feita em seu servidor FHIR, que normalmente tem uma URL de https://<WORKSPACE NAME>-<ACCOUNT-NAME>.fhir.azurehealthcareapis.com . Nos exemplos, usaremos o espaço reservado {{FHIR_URL}} para esta URL.

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

GET {{FHIR_URL}}/Patient

Você também pode pesquisar usando POST , o que será útil se a cadeia de caracteres de consulta for muito longa. Para pesquisar usando POST o, os parâmetros de pesquisa podem ser enviados como um corpo de formulário. Isso permite uma série mais longa e mais complexa 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 do 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 aspectos envolvidos na pesquisa. Depois de examinar esses detalhes, consulte a página de exemplos que tem exemplos de pesquisas que você pode fazer no serviço FHIR nas APIs de saúde do Azure.

Parâmetros de pesquisa

Ao fazer uma pesquisa, você pesquisará com base em vários atributos do recurso. Esses atributos são chamados de 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ê pesquise com êxito nele.

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

Tipo de parâmetro de pesquisa API do Azure para FHIR Serviço FHIR em APIs de saúde do Azure Comentário
número Sim Sim
date Sim Sim
string Sim Sim
token Sim Sim
reference Sim Sim
composição Parcial Parcial A lista de tipos compostos com suporte é descrita posteriormente neste artigo
quantidade Sim Sim
uri Sim Sim
especial Não Não

Parâmetros de pesquisa comuns

parâmetros de pesquisa comuns que se aplicam a todos os recursos. Eles estão listados abaixo, junto com seu suporte:

Parâmetro de pesquisa comum API do Azure para FHIR Serviço FHIR em APIs 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 Sim. Sim
_query Não Não
_filter Não Não
_list Não Não
_text Não Não
_content Não Não

Parâmetros específicos do recurso

Com o serviço FHIR nas APIs de Serviços de Saúde do Azure, 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 damos suporte estão disponíveis nos links abaixo:

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

GET {{FHIR_URL}}/metadata

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

Observação

O serviço FHIR nas APIs de Serviços de Saúde do Azure não cria nem indexa automaticamente os parâmetros de pesquisa que não são 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 que você pesquise pares de valor. Por exemplo, se você estivesse procurando uma observação de altura em que a pessoa tinha 60 polegadas, você gostaria de garantir que um único componente da observação continha o código de altura e o valor de 60. Você não deseja obter uma observação em que um peso de 60 e altura de 48 foi armazenado, mesmo que a observação tenha entradas qualificadas para o valor de 60 e código de altura, apenas em seções de componente diferentes.

Com o serviço FHIR para as APIs de Serviços de Saúde do Azure, damos suporte aos seguintes emparelhamentos de tipo de parâmetro de pesquisa:

  • Referência, Token
  • Token, Data
  • Token, Número, Número
  • Token, Quantidade
  • Token, cadeia de caracteres
  • Token, Token

Para obter mais informações, consulte Parâmetrosde pesquisa composta HL7 .

Observação

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

Modificadores & prefixos

Os modificadores permitem que você modifique o parâmetro de pesquisa. Veja abaixo uma visão geral de todos os modificadores FHIR e o suporte:

Modificadores API do Azure para FHIR Serviço FHIR nas APIs de Serviços de Saúde do Azure Comentário
:missing Sim Sim
:exact Sim Sim
:contains Sim Sim
:text Sim Sim
:type (referência) Sim Sim
:not Sim Sim
:below (uri) Sim Sim
:above (uri) Sim Sim
:in (token) Não Não
:below (token) Não Não
:above (token) Não Não
:not-in (token) Não 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 localizar as correspondeções. O serviço FHIR nas APIs de Serviços de Saúde do Azure dá suporte a todos os prefixos.

Parâmetros de resultado da pesquisa

Para ajudar a gerenciar os recursos retornados, há parâmetros de resultado da 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 de resultado da pesquisa API do Azure para FHIR Serviço FHIR nas APIs de Serviços de Saúde do Azure Comentário
_elements Sim Sim
_count Sim Sim _count é limitado a 1.000 recursos. Se for definido como maior que 1000, apenas 1000 serão retornados e um aviso será retornado no pacote.
_include Sim Sim Os itens incluídos são limitados a 100. _include em PaaS e OSS no Cosmos DB não incluem :iterate support (nº 2137).
_revinclude Sim Sim Os itens incluídos são limitados a 100. _revinclude em PaaS e OSS no Cosmos DB não incluem :iterate support (nº 2137). Também há um código de status incorreto para uma solicitação incorreta nº 1319
_summary Sim Sim
_total Parcial Parcial _total=none e _total=accurate
_sort Parcial Parcial sort=_lastUpdated tem suporte no API do Azure para FHIR e no serviço FHIR. Para o serviço FHIR e os servidores FHIR SQL DB, há suporte para a classificação por cadeias de caracteres e campos dateTime. Para bancos de API do Azure para FHIR e OSS Cosmos DB criados após 20 de abril de 2021, há suporte para a classificação em nome, sobrenome, data de nascimento e data clínica.
_contained Não Não
_containedType Não Não
_score Não Não

Observação

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

Por padrão, o serviço FHIR nas APIs de Serviços de Saúde do Azure é definido como manipulação leniente. Isso significa que o servidor ignorará parâmetros desconhecidos ou sem suporte. Se você quiser usar a manipulação estrita, poderá usar o header Prefer e definir handling=strict .

Pesquisa encadeada & encadeada inversa

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

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

Da mesma forma, você pode fazer uma pesquisa encadeada inversa. Isso permite que você receba recursos em que você especifica critérios em outros recursos que se referem a eles. Para obter mais exemplos de pesquisa encadeada e inversa, consulte a página de exemplos de pesquisa FHIR.

Paginação

Conforme mencionado acima, os resultados de uma pesquisa serão um pacote de páginas. Por padrão, a pesquisa retornará 10 resultados por página, mas isso pode ser aumentado (ou reduzido) especificando _count . Dentro do pacote, haverá um auto link que contém o resultado atual da pesquisa. Se houver outras correspondeções, o pacote conterá um próximo link. Você pode continuar a usar o próximo link para obter as páginas subsequentes dos resultados. _count é limitado a 1.000 itens ou menos.

Atualmente, o serviço FHIR nas APIs de Serviços de Saúde do Azure dá suporte apenas ao próximo link em pacotes e não dá suporte a links anteriores, por último ou primeiro.

Próximas etapas

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.