Partilhar via


Exemplos de pesquisa FHIR para a 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.

Seguem-se exemplos de utilização de operações de pesquisa FHIR® (Fast Healthcare Interoperability Resources), incluindo parâmetros e modificadores de pesquisa, pesquisa em cadeia e em cadeia inversa, pesquisa composta, visualização do conjunto de entradas seguinte para resultados de pesquisa e pesquisa com um POST pedido. Para obter mais informações sobre pesquisa, consulte Visão geral da pesquisa FHIR.

Parâmetros dos resultados da pesquisa

_include

_include pesquisa em recursos aqueles que incluem o parâmetro especificado do recurso. Por exemplo, você pode pesquisar entre MedicationRequest recursos para encontrar apenas aqueles que incluem informações sobre as prescrições para um paciente específico, que é o reference parâmetro patient. O exemplo a seguir extrai todos os MedicationRequests pacientes referenciados do MedicationRequests.

 GET [your-fhir-server]/MedicationRequest?_include=MedicationRequest:patient

Nota

_include e _revinclude são limitados a 100 itens.

_revinclude

_revinclude permite que você pesquise na direção oposta como _include. Por exemplo, você pode pesquisar por pacientes e, em seguida, reverter incluir todos os encontros que referenciam os pacientes:

GET [your-fhir-server]/Patient?_revinclude=Encounter:subject

_elements

_elements Reduz o resultado da pesquisa a um subconjunto de campos para reduzir o tamanho da resposta omitindo dados desnecessários. O parâmetro aceita uma lista separada por vírgulas de elementos base.

GET [your-fhir-server]/Patient?_elements=identifier,active

A partir dessa solicitação, você obtém um pacote de pacientes onde cada recurso inclui apenas os identificadores e o status ativo do paciente. Os recursos nesta resposta contêm um meta.tag valor de SUBSETTED para indicar que são um conjunto incompleto de resultados.

Modificadores de pesquisa

:não

:not permite que você encontre recursos onde um atributo não é verdadeiro. Por exemplo, você pode pesquisar pacientes em que o sexo não é feminino.

GET [your-fhir-server]/Patient?gender:not=female

Como valor de retorno, você obteria todas as entradas de pacientes em que o gênero não é feminino, incluindo valores vazios (entradas especificadas sem gênero). Isso é diferente de procurar pacientes onde o gênero é masculino, já que isso não incluiria as entradas sem um gênero específico.

:ausente

:missing Retorna todos os recursos que não têm um valor para o elemento especificado quando o valor é true, e retorna todos os recursos que contêm o elemento especificado quando o valor é false. Para elementos de tipo de dados simples, corresponde em todos os recursos em que o elemento está presente com extensões, :missing=true mas tem um valor vazio. O exemplo a seguir mostra como encontrar todos os Patient recursos que estão faltando informações sobre a data de nascimento.

GET [your-fhir-server]/Patient?birthdate:missing=true

:exato

:exact é usado para string parâmetros e retorna resultados que correspondem ao parâmetro com precisão, como em concatenação de invólucros e caracteres.

GET [your-fhir-server]/Patient?name:exact=Jon

Essa solicitação retorna Patient recursos que têm o nome exatamente igual a Jon. Se o recurso tivesse Pacientes com nomes como Jonathan ou joN, a pesquisa ignoraria e ignoraria o recurso, pois ele não corresponde exatamente ao valor especificado.

:contém

:contains é usado para string parâmetros e procura recursos com correspondências parciais do valor especificado em qualquer lugar na cadeia de caracteres dentro do campo que está sendo pesquisado. contains não diferencia maiúsculas de minúsculas e permite a concatenação de caracteres. Por exemplo:

GET [your-fhir-server]/Patient?address:contains=Meadow

Essa solicitação retornaria todos os Patient recursos com address campos que têm valores que contêm a cadeia de caracteres "Meadow". Isso significa que você pode ter endereços que incluem valores como "Meadowers" ou "59 Meadow ST" retornados como resultados da pesquisa.

Para executar uma série de operações de pesquisa que abrangem vários parâmetros de referência, você pode "encadear" a série de parâmetros de referência anexando-os à solicitação do servidor, um a um, usando um ponto .. Por exemplo, se você quiser exibir todos os DiagnosticReport recursos com uma subject referência a um Patient recurso que inclua um :name

 GET [your-fhir-server]/DiagnosticReport?subject:Patient.name=Sarah

Este pedido devolveria todos os DiagnosticReport recursos com um paciente chamado "Sarah". O período . após o campo Patient executa a pesquisa encadeada no parâmetro de referência do subject parâmetro.

Outro uso comum de uma busca regular (não uma busca encadeada) é encontrar todos os encontros para um paciente específico. Patients muitas vezes têm um ou mais Encounters com um assunto. O seguinte procura todos os Encounter recursos para um Patient com o fornecido id.

GET [your-fhir-server]/Encounter?subject=Patient/78a14cbe-8968-49fd-a231-d43e6619399f

Usando a pesquisa encadeada, você pode encontrar todos os Encounter recursos que correspondem a uma determinada informação Patient , como o birthdate.

GET [your-fhir-server]/Encounter?subject:Patient.birthdate=1987-02-20

Isso permitiria pesquisar Encounter recursos em todos os pacientes que têm o valor de data de nascimento especificado.

Além disso, a pesquisa encadeada pode ser feita mais de uma vez em uma solicitação usando o símbolo &, que permite pesquisar várias condições em uma solicitação. Nesses casos, a pesquisa encadeada procura "independentemente" cada parâmetro, em vez de procurar condições que apenas satisfaçam todas as condições de uma só vez:

GET [your-fhir-server]/Patient?general-practitioner:Practitioner.name=Sarah&general-practitioner:Practitioner.address-state=WA

Isso devolveria todos os Patient recursos que têm "Sarah" como o generalPractitioner e têm um generalPractitioner que tem o endereço com o estado WA. Em outras palavras, se um paciente teve Sarah do estado NY e Bill do estado WA ambos referenciados como do paciente, ambos são devolvidos generalPractitioner.

Para cenários em que a pesquisa deve ser uma AND operação que abrange todas as condições como um grupo, consulte o exemplo em Pesquisa composta.

A pesquisa em cadeia permite pesquisar recursos com base nas propriedades dos recursos a que se referem. Usar a pesquisa em cadeia reversa permite que você faça o contrário. Você pode pesquisar recursos com base nas propriedades dos recursos que se referem a eles, usando _has o parâmetro. Por exemplo, um Observation recurso tem um parâmetro patient de pesquisa referente a um recurso Paciente. Use o seguinte para encontrar todos os recursos do paciente referenciados por Observation com um codearquivo .

GET [base]/Patient?_has:Observation:patient:code=527

Esta solicitação retorna os recursos do paciente encaminhados com Observation o código 527.

Além disso, a pesquisa em cadeia reversa pode ter uma estrutura recursiva. Por exemplo, a pesquisa a seguir para todos os pacientes que têm Observation onde a observação tem um evento de auditoria de um usuário janedoeespecífico.

GET [base]/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent:Practitioner.name=janedoe

Nota

Na API do Azure para FHIR e no servidor FHIR de código aberto apoiado pelo Azure Cosmos DB, a pesquisa encadeada e a pesquisa encadeada reversa são uma implementação MVP. Para realizar a pesquisa encadeada no Azure Cosmos DB, a implementação percorre a expressão de pesquisa e emite subconsultas para resolver os recursos correspondentes. Isso é feito para cada nível da expressão. Se qualquer consulta retornar mais de 100 resultados, um erro será gerado.

Para procurar recursos que atendam a várias condições ao mesmo tempo, use uma pesquisa composta que une uma sequência de valores de parâmetro único com um símbolo $. O resultado seria a interseção dos recursos que correspondem a todas as condições especificadas pelos parâmetros de pesquisa associados. Esses parâmetros de pesquisa são chamados de parâmetros de pesquisa compostos e definem um novo parâmetro que combina os vários parâmetros em uma estrutura aninhada. Por exemplo, a pesquisa a seguir encontra todos os DiagnosticReport recursos que contêm Observation com um valor de potássio menor ou igual a 9,2.

GET [your-fhir-server]/DiagnosticReport?result.code-value-quantity=2823-3$lt9.2

Este pedido especifica o componente que contém um código de 2823-3, que, neste caso, seria o potássio. Seguindo o $ símbolo, especifica o intervalo do valor para o componente usando lt para "menor ou igual a" e 9.2 para o intervalo de valor de potássio.

Pesquisar o próximo conjunto de entradas

O número máximo de entradas que podem ser retornadas por uma única consulta de pesquisa é 1000. Se houver mais de 1.000 entradas que correspondam à consulta de pesquisa, você poderá usar o procedimento a seguir para ver entradas maiores que 1000.
Use o valor do token url de continuação em searchset, como no resultado a seguir Bundle .

    "resourceType": "Bundle",
    "id": "98731cb7-3a39-46f3-8a72-afe945741bd9",
    "meta": {
        "lastUpdated": "2021-04-22T09:58:16.7823171+00:00"
    },
    "type": "searchset",
    "link": [
        {
            "relation": "next",
            "url": "[your-fhir-server]/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd"
        },
        {
            "relation": "self",
            "url": "[your-fhir-server]/Patient?_sort=_lastUpdated"
        }
    ],

Em seguida, faça uma solicitação GET para o URL fornecido no campo relation: next.

GET [your-fhir-server]/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd

Isso retorna o próximo conjunto de entradas para o resultado da pesquisa. O searchset é o conjunto completo de entradas de resultados de pesquisa, e o token url de continuação é o link fornecido pelo servidor para você recuperar entradas que não aparecem nos primeiros 1000.

Pesquisar usando o POST

Todos os exemplos de pesquisa mencionados anteriormente usavam GET pedidos. Você também pode fazer operações de pesquisa usando POST solicitações usando _searcho .

POST [your-fhir-server]/Patient/_search?_id=45

Esta solicitação retorna Patient recursos com o id valor de 45. Assim como acontece com as solicitações GET, o servidor determina qual do conjunto de recursos atende à condição e retorna um recurso de pacote na resposta HTTP.

Outro exemplo de pesquisa usando POST onde os parâmetros de consulta são enviados como um corpo de formulário é o seguinte.

POST [your-fhir-server]/Patient/_search
content-type: application/x-www-form-urlencoded

name=John

Próximos passos

Neste artigo, você aprendeu sobre como pesquisar usando diferentes parâmetros de pesquisa, modificadores e ferramentas de pesquisa FHIR. Para obter mais informações sobre a Pesquisa FHIR, consulte

Nota

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