En esta página, se explican las instrucciones básicas para buscar recursos de FHIR en un almacén de FHIR. Buscando Los recursos de FHIR son la forma principal de consultar y obtener estadísticas de los datos de FHIR.
Puedes buscar recursos de FHIR en la API de Cloud Healthcare de las siguientes maneras:
- Usa el visualizador de FHIR en la consola de Google Cloud.
- Usa el método
projects.locations.datasets.fhirStores.fhir.search
. Con el método, se proporcionan las siguientes formas de buscar recursos de FHIR:- Solicitudes
GET
- Solicitudes
POST
- Solicitudes
En esta página, se resumen muchos de las funciones de búsqueda de uso general, pero no es una lista exhaustiva de las partes del Especificación de búsqueda de FHIR compatibles con la API de Cloud Healthcare.
Usa el visor de FHIR
El visualizador de FHIR es una página en la consola de Google Cloud que te permite buscar y ver el contenido de los recursos de FHIR.
Para buscar recursos en un almacén de FHIR, completa los siguientes pasos:
En la consola de Google Cloud, ve a la página Visor de FHIR.
En la lista desplegable Almacén de FHIR, selecciona un conjunto de datos y, luego, un almacén de FHIR en el conjunto de datos.
Para filtrar la lista de tipos de recursos, busca los tipos de recursos que deseas mostrar:
Haz clic en el campo Tipo de recurso.
En la lista desplegable Propiedades que aparece, selecciona Tipo de recurso.
Ingresa un tipo de recurso.
Para buscar otro tipo de recurso, selecciona O en la lista desplegable Operadores que aparece y, luego, ingresa otro tipo de recurso.
En la lista de tipos de recursos, selecciona el tipo de recurso que deseas y sigue buscando.
En el cuadro de búsqueda de la tabla de recursos que aparece, ingresa el valor que quieres buscar.
El visor de FHIR muestra los resultados de la búsqueda en una tabla. Después de seleccionar un recurso, el visor de FHIR muestra su contenido.
Cuando observas el contenido de un recurso, puedes buscar datos dentro del recurso.
Para buscar datos dentro de un recurso, sigue estos pasos:
Selecciona un recurso
En el panel Visor de FHIR, haz clic en la pestaña Elementos.
En el cuadro de búsqueda, ingresa el valor que quieras buscar.
Descarga datos binarios dentro de recursos de FHIR
Para descargar los datos binarios disponibles asociados a un recurso en el FHIR visualizador, sigue estos pasos:
Selecciona un recurso.
En el panel Visor de FHIR, haz clic en la pestaña Elementos.
Si es necesario, expande los elementos para acceder al elemento del recurso requerido.
Haz clic en Descargar archivo para descargar los datos disponibles.
Crear y ejecutar consultas de búsqueda avanzada
Puedes usar consultas de búsquedas avanzadas para buscar recursos de FHIR específicos mediante la especificación de búsqueda de FHIR.
Para crear una consulta de búsqueda avanzada, completa los siguientes pasos:
En la página Visor de FHIR, haz clic en la pestaña Buscar.
Para crear una búsqueda, haz clic en Abrir compilador de consultas.
Se muestra el panel Selección de consulta.
En la lista Seleccionar un tipo de recurso de FHIR, elige el el tipo de recurso que quieres buscar.
Haga clic en Continuar.
En la lista Parámetro, selecciona el parámetro que deseas usar. para buscar recursos.
Desde la lista Modifier, selecciona el modificador que se aplicará al para cada búsqueda. La lista solo incluye modificadores compatibles con el tipo de datos del parámetro seleccionado.
Esta selección es opcional. Si no se selecciona ningún modificador, se considerará de que se realice la verificación.
En el campo Valor, ingresa el valor del parámetro de consulta.
Para agregar más de un valor de parámetro, haz clic en O. Esto te permite incluir varios valores de tu parámetro de recursos en tu búsqueda.
A medida que creas tu consulta de búsqueda, esta se muestra en el cuadro Panel Preview. Para ver la URL completa de la búsqueda, haz clic en Mostrar de la ruta de acceso.
Para agregar más de un parámetro, haz clic en Y.
Haz clic en Continuar.
Para incluir recursos a los que hacen referencia los recursos que se muestran en tu consulta de búsqueda, elige el parámetro de recurso en la sección Parámetros incluidos lista desplegable.
Incluir recursos que hagan referencia a los recursos obtenidos en tu búsqueda consulta, elige el parámetro del recurso en la opción Reverso incluido parámetros.
Haz clic en Listo para guardar tu búsqueda.
La búsqueda guardada se muestra en el campo Operación de búsqueda de FHIR.
Para buscar recursos con la consulta, haz clic en Ejecutar búsqueda.
Los resultados de la búsqueda se muestran en la lista de resultados de la búsqueda. Para ver en los detalles de un recurso que muestra la búsqueda, haz clic en un recurso de la lista.
Para guardar la consulta como una plantilla de consulta, haz clic en Guardar plantilla y elige Guardar plantilla o Guardar plantilla como Se te solicitará un nombre y una descripción para la consulta. Los parámetros de consulta se guardan en una plantilla, pero todos los valores definidos o quitarse.
Ejemplo de búsqueda
En el siguiente ejemplo, se muestra una búsqueda que busca recursos Claim de un proveedor de atención médica específico, Practitioner/12345, para el mes de agosto de 2021:
- Parámetro:
care-team
- Value:
Practitioner/12345
- Value:
- Operador: Y
- Parámetro:
created
- Prefijo:
lt (lesser than)
- Value:
8/1/21, 12:00 AM
- Prefijo:
- Operador: Y
- Parámetro:
created
- Prefijo:
gt (greater than)
- Value:
8/31/21, 11:59 PM
- Prefijo:
Esto se configura de la siguiente manera en el panel Selección de consulta y la consulta se previsualizados en el panel Vista previa de la consulta. La consulta se mostrará en el Campo Operación de búsqueda de FHIR.
Editar consultas de búsqueda
Para editar una búsqueda, realiza una de las siguientes acciones:
- Para editar la consulta en el compilador de consultas, haz clic en Abrir el compilador de consultas.
- Para editar la consulta de forma manual, edita los valores de los parámetros en el texto .
Ejecuta plantillas de consulta
Para ejecutar una consulta desde una plantilla guardada, completa los siguientes pasos:
Haz clic en Plantillas guardadas.
Se muestra la pestaña Plantillas de búsqueda del panel Selección de consulta. que muestra todas las plantillas de consulta guardadas.
Selecciona la plantilla de consulta que deseas ejecutar y haz clic en Listo.
La búsqueda de la plantilla se muestra en la operación de búsqueda FHIR sin valores.
Para definir los valores de tu búsqueda, edita los valores de los parámetros en el campo.
Haz clic en Ejecutar búsqueda para buscar recursos con la consulta.
Usa el método search
Para buscar recursos de FHIR con la API de REST, usa el
projects.locations.datasets.fhirStores.fhir.search
. Puedes llamar al método mediante solicitudes GET
o POST
.
Usa el método search
con GET
En los siguientes ejemplos, se muestra cómo buscar recursos en una tienda de FHIR determinada mediante el método projects.locations.datasets.fhirStores.fhir.search
con GET
.
curl
Para buscar recursos en una tienda de FHIR, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos
- El nombre de la tienda de FHIR
- El tipo de recurso que deseas buscar
- Una string de consulta que contiene la información que buscas, como se describe en la sección Cómo construir una búsqueda
- Un token de acceso
En el siguiente ejemplo, se muestra una solicitud GET
mediante curl
para buscar todos los pacientes con el apellido "Smith".
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?family:exact=Smith"
Si la solicitud es exitosa, el servidor mostrará la respuesta como un Bundle
de FHIR en formato JSON. Bundle.type
es searchset
y los resultados de la búsqueda son entradas en el arreglo Bundle.entry
. En este ejemplo, la solicitud muestra un solo recurso Patient que incluye los datos dentro de ese recurso:
{ "entry": [ { "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID", "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "meta": { "lastUpdated": "LAST_UPDATED", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }, "search": { "mode": "match" } } ], "link": [ { "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith" } ], "resourceType": "Bundle", "total": 1, "type": "searchset" }
PowerShell
Para buscar recursos en una tienda de FHIR, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos
- El nombre de la tienda de FHIR
- El tipo de recurso que deseas buscar
- Una string de consulta que contiene la información que buscas, como se describe en la sección Cómo construir una búsqueda
- Un token de acceso
En el siguiente ejemplo, se muestra una solicitud GET
mediante Windows PowerShell para buscar todos los pacientes con el apellido "Smith".
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE?family:exact=Smith" | ConvertTo-Json
Si la solicitud es exitosa, el servidor mostrará la respuesta como un Bundle
de FHIR en formato JSON. Bundle.type
es searchset
y los resultados de la búsqueda son entradas en el arreglo Bundle.entry
. En este ejemplo, la solicitud muestra un solo recurso Patient que incluye los datos dentro de ese recurso:
{ "entry": [ { "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID", "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "meta": { "lastUpdated": "LAST_UPDATED", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }, "search": { "mode": "match" } } ], "link": [ { "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith" } ], "resourceType": "Bundle", "total": 1, "type": "searchset" }
Java
Node.js
Python
Usa el método search
con POST
En los siguientes ejemplos, se muestra cómo buscar recursos en una tienda de FHIR determinada mediante el método projects.locations.datasets.fhirStores.fhir.search
con POST
.
curl
Para buscar recursos en una tienda de FHIR, realiza una solicitud POST
y especifica la siguiente información:
- El nombre del conjunto de datos
- El nombre de la tienda de FHIR
- El tipo de recurso que deseas buscar
- Una string de consulta que contiene la información que buscas, como se describe en la sección Cómo construir una búsqueda
- Un token de acceso
En el siguiente ejemplo, se muestra una solicitud POST
mediante curl
para buscar todos los pacientes con el apellido "Smith".
curl -X POST \ --data "" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/fhir+json; charset=utf-8" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/_search?family:exact=Smith"
Si la solicitud es exitosa, el servidor mostrará la respuesta como un Bundle
de FHIR en formato JSON. Bundle.type
es searchset
y los resultados de la búsqueda son entradas en el arreglo Bundle.entry
. En este ejemplo, la solicitud muestra un solo recurso Patient que incluye los datos dentro de ese recurso:
{ "entry": [ { "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID", "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "meta": { "lastUpdated": "LAST_UPDATED", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }, "search": { "mode": "match" } } ], "link": [ { "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith" } ], "resourceType": "Bundle", "total": 1, "type": "searchset" }
PowerShell
Para buscar recursos en una tienda de FHIR, realiza una solicitud POST
y especifica la siguiente información:
- El nombre del conjunto de datos
- El nombre de la tienda de FHIR
- El tipo de recurso que deseas buscar
- Una string de consulta que contiene la información que buscas, como se describe en la sección Cómo construir una búsqueda
- Un token de acceso
En el siguiente ejemplo, se muestra una solicitud POST
mediante Windows PowerShell para buscar todos los pacientes con el apellido "Smith".
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Post ` -Headers $headers ` -ContentType: "application/fhir+json; charset=utf-8" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/_search?family:exact=Smith" | ConvertTo-Json
Si la solicitud es exitosa, el servidor mostrará la respuesta como un Bundle
de FHIR en formato JSON. Bundle.type
es searchset
y los resultados de la búsqueda son entradas en el arreglo Bundle.entry
. En este ejemplo, la solicitud muestra un solo recurso Patient que incluye los datos dentro de ese recurso:
{ "entry": [ { "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID", "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "meta": { "lastUpdated": "LAST_UPDATED", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }, "search": { "mode": "match" } } ], "link": [ { "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith" } ], "resourceType": "Bundle", "total": 1, "type": "searchset" }
Java
Node.js
Python
Cómo crear una búsqueda
La cadena de consulta es una serie de pares name=value
codificados con el formato de una URL. Una búsqueda combina todos los pares con un AND
lógico. Cada valor puede ser una lista de valores separados por comas, que se tratan como un OR
lógico de esos valores. Por ejemplo, Patient?key1=value1&key2=value2,value3
es una búsqueda en
Recursos para pacientes con los siguientes criterios:
(key1 = value1) AND (key2 = value2 OR key2 = value3)
No hay sintaxis para realizar una OR
de dos pares name=value
.
Cada tipo de recurso de FHIR define sus propios parámetros de búsqueda en cada versión de FHIR. Los parámetros disponibles se documentan en la especificación de FHIR para cada recurso. Para ver un ejemplo, consulta Paciente con FHIR R4. Puedes recuperar los parámetros de manera programática a través de la declaración de capacidad. La API de Cloud Healthcare admite la mayoría de los parámetros de búsqueda. puedes encontrar exclusiones mediante la declaración de capacidades o la declaración de conformidad de FHIR.
Paginación y ordenamiento
La cantidad de recursos que se muestran en cada página de los resultados de la búsqueda de FHIR depende en los siguientes factores:
- El parámetro
_count
Controla la cantidad máxima de recursos que devuelve el método de búsqueda. Por ejemplo,_count=10
muestra, como máximo, 10 recursos que coinciden con la consulta. El valor predeterminado es 100 se permite es de 1,000. - El tamaño de los datos de respuesta. Una página de resultados de búsqueda puede mostrar menos resultados
recursos que el valor especificado en el parámetro
_count
si el tamaño la respuesta es grande.
Si una búsqueda devuelve más recursos que el número de recursos que cabe en uno
la respuesta incluirá una URL de paginación en el campo Bundle.link
. Hay
puede ser varios valores mostrados en este campo; el valor con
Bundle.link.relation = next
indica que puedes usar el elemento
Bundle.link.url
para recuperar la página siguiente.
El valor de Bundle.total
indica la cantidad total de coincidencias
de Google Cloud. Este valor es exacto si los resultados caben por completo en una página, pero
se convierte en una estimación aproximada cuando el número de resultados supera el de una página.
Puedes obtener un total exacto para una búsqueda que coincida con muchos resultados
siguiendo enlaces de paginación repetidamente hasta que los resultados sean
agotarse.
Para obtener más información sobre la paginación y los totales de búsqueda, consulta Implementa la paginación y los totales de búsqueda con la búsqueda de FHIR.
Puedes ordenar los resultados con el parámetro _sort
, que acepta un
Es una lista separada por comas de los nombres de los parámetros de búsqueda en orden de prioridad. Puedes
usa un prefijo -
para indicar el orden decreciente. Por ejemplo, la siguiente consulta
ordena por estado ascendente, desempata por fecha descendente y divide
cualquier empate restante por categoría de forma ascendente:
_sort=status,-date,category
Demora en la indexación
Los recursos de FHIR se indexan de forma asíncrona, por lo que puede haber un leve retraso
entre el momento en que se crea o modifica un recurso, y el momento en que se modifica
en los resultados de la búsqueda. La única excepción son los datos del identificador de recursos,
que se indexa de forma síncrona
como un índice especial. Como resultado, buscar con
el identificador de recursos no está sujeto a un retraso de indexación. Para usar la función
índice síncrono, el término de búsqueda para identificador debe estar en el patrón
identifier=[system]|[value]
o identifier=[value]
, y cualquiera de los siguientes
Los parámetros de resultados de la búsqueda pueden usarse:
_count
_include
_revinclude
_summary
_elements
Si tu consulta contiene otros parámetros de búsqueda, la red asíncrona estándar
en su lugar. Ten en cuenta que la búsqueda en el índice especial es
y están optimizados para resolver
una pequeña cantidad de coincidencias. La búsqueda no se optimiza si
sus criterios de búsqueda del identificador coincidan con una gran cantidad (es decir, más de 2,000) de
de Google Cloud. Para una búsqueda que coincida con una gran cantidad de recursos, puedes
puedes evitar el uso del índice síncrono especial incluyendo
_sort
en tu consulta. Usa _sort=-_lastUpdated
si quieres conservar
el orden de clasificación predeterminado.
Busca en todos los tipos de recursos
Ciertos parámetros de búsqueda, que se distinguen porque comienzan con un guión bajo como _id
, se aplican a todos los tipos de recursos. Estos parámetros para todos los recursos se enumeran en la especificación de FHIR destinada al tipo de recurso.
Cuando usas estos parámetros de búsqueda, puedes realizar una búsqueda en varios tipos de recursos si omites el tipo de recurso en la ruta de la solicitud. Por ejemplo:
con GET .../fhir?_id=1234
en lugar de búsquedas de GET .../fhir/Patient?_id=1234
en todos los recursos de FHIR,
en lugar de en un recurso Paciente. Puedes usar el parámetro especial _type
con este tipo de solicitud para limitar los resultados a una lista separada por comas
lista de tipos de recursos. Por ejemplo, la siguiente consulta
solo muestra resultados coincidentes para los recursos Observation
y Condition
:
GET .../fhir?_tag=active&_type=Observation,Condition
Tipos de datos
Cada parámetro de búsqueda definido por FHIR tiene un tipo de datos, que incluye valores como los siguientes:
- String
- Número
- Fecha
Los tipos de datos también incluyen los siguientes tipos complejos:
- Token
- Referencia
- Cantidad
Cada tipo de datos tiene su propia sintaxis para especificar valores. Cada tipo de datos admite modificadores que alteren cómo se realiza la búsqueda.
En las siguientes secciones, se muestra cómo usar los tipos de datos. Para conocer más detalles sobre tipos de datos adicionales, sintaxis de valores y modificadores, consulta Funciones avanzadas de búsqueda de FHIR.
Número
Busca en valores de números enteros o de punto flotante. Para cambiar el comparador, el valor con uno de los siguientes modificadores:
ne
lt
le
gt
ge
Por ejemplo, usa [parameter]=100
para igualdad o [parameter]=ge100
para mayor que
o igual a 100.
Fecha
Busca en cualquier tipo de fecha, hora o período. El parámetro date formato es el siguiente:
yyyy-mm-ddThh:mm:ss[Z|(+|-)hh:mm]
Se aplican los mismos modificadores de prefijo que se usan para number.
String
El valor predeterminado es una búsqueda de prefijo que no distingue mayúsculas de minúsculas. acentos u otros signos diacríticos.
Token
Busca una coincidencia de cadena exacta de un "código". Puedes determinar el alcance de la búsqueda al URI de un “sistema” que indica el conjunto de valores del que se obtiene el código el siguiente formato:
[parameter]=[system]|[code]
Por ejemplo, la siguiente búsqueda coincide con un código de 10738-3, pero solo cuando se califica como un valor de un sistema de programación con el URI especificado:
code=http://hl7.org/fhir/ValueSet/observation-codes|10738-3
Cantidad
Busca un valor numérico mediante los mismos modificadores de prefijo que número. Puedes calificar la búsqueda con un sistema y un código específicos que indiquen la unidades del valor en el siguiente formato:
[parameter]=[prefix][number]|[system]|[code]
Por ejemplo, la siguiente consulta busca valores de cantidad menores que 9.1 que tienen el sistema de unidades y el código especificados:
value-quantity=lt9.1|http://unitsofmeasure.org|mg
Referencia
Busca referencias entre recursos. Puedes usar las siguientes consultas para obtener referencias a recursos dentro de un almacén de FHIR:
[parameter]=[id]
[parameter]=[type]/[id]
Puedes usar [parameter]=[url]
para especificar referencias por URL.
que puede estar fuera
del almacén de FHIR.
Busca en la organización de parámetros
De forma predeterminada, el método de búsqueda aplica "tolerante" que ignora parámetros que la búsqueda no reconoce. El método de búsqueda realiza la búsqueda utilizando cualquier parámetros restantes en la solicitud, que podrían devolver más recursos que lo esperado.
La respuesta incluye lo siguiente:
- Un valor en
Bundle.link
con un valor deBundle.link.relation = self
- Un
Bundle.link.url
de una URL que contiene solo los parámetros que se se aplicó correctamente a la búsqueda. Puedes inspeccionar este valor para determinar si se omitió algún parámetro.
Puedes establecer el encabezado HTTP de la solicitud en Prefer: handling=strict
en una búsqueda.
para cada solicitud. Configurar el encabezado hace que el almacén de FHIR muestre un error en cualquier archivo no reconocido
parámetro.