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.
Pesquisa encadeada
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. Patient
s muitas vezes têm um ou mais Encounter
s 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.
Pesquisa em cadeia inversa
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 code
arquivo .
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 janedoe
especí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.
Pesquisa composta
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 _search
o .
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.