En esta página se explica cómo crear, actualizar, aplicar parches, ver, enumerar, recuperar y eliminar recursos FHIR.
Un recurso FHIR puede incluir datos sobre un paciente, un dispositivo, una observación, etc. Para ver una lista completa de los recursos FHIR, consulta el índice de recursos FHIR (DSTU2, STU3, R4 o R5).
Los ejemplos de REST de esta página funcionan con un almacén FHIR R4 y no se garantiza que funcionen si usas un almacén FHIR DSTU2 o STU3. Si usas un almacén FHIR DSTU2 o STU3, consulta la documentación oficial de FHIR para obtener información sobre cómo convertir las muestras a la versión de FHIR que estés usando.
Los ejemplos de Go, Java, Node.js y Python funcionan con un almacén FHIR STU3.
Crear un recurso FHIR
Para poder crear recursos FHIR, tienes que crear un almacén FHIR.
En los ejemplos de REST y Python se muestra cómo crear los siguientes recursos FHIR:
- Un recurso Patient (DSTU2, STU3, R4, and R5)
- Un recurso Encounter (DSTU2, STU3, R4, y R5) para el paciente
- Un recurso Observation (DSTU2, STU3, R4, y R5) para el recurso Encounter
En los ejemplos de los demás idiomas se muestra cómo crear un recurso FHIR genérico.
Para obtener más información, consulta projects.locations.datasets.fhirStores.fhir.create
.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con almacenes FHIR STU3.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
Cuerpo JSON de la solicitud:
{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
Go
Java
Node.js
Python
Tras crear el recurso Patient, crea un recurso Encounter para describir la interacción entre el paciente y el especialista.
En el campo PATIENT_ID, sustituye el ID de la respuesta que devolvió el servidor cuando creaste el recurso Patient.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. El ejemplo de Python funciona con almacenes FHIR STU3.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
- PATIENT_ID: la respuesta que devolvió el servidor cuando creaste el recurso Patient
Cuerpo JSON de la solicitud:
{ "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' { "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Cloud Healthcare con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Healthcare.
Para autenticarte en la API Cloud Healthcare, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Tras crear el recurso Encounter, crea un recurso Observation asociado a él. El recurso Observation proporciona una medición de la frecuencia cardiaca del paciente en latidos por minuto (LPM) (80
en bpm
).
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. El ejemplo de Python funciona con almacenes FHIR STU3.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
- PATIENT_ID: el ID de la respuesta que devolvió el servidor cuando creaste el recurso Patient
- ENCOUNTER_ID: el ID de la respuesta que devolvió el servidor cuando creaste el recurso Encounter
Cuerpo JSON de la solicitud:
{ "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Cloud Healthcare con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Healthcare.
Para autenticarte en la API Cloud Healthcare, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Crear un recurso FHIR de forma condicional
En el siguiente ejemplo de curl
se muestra cómo usar el método projects.locations.datasets.fhirStores.fhir.create
para crear un recurso FHIR de forma condicional. El método implementa la interacción condicional de FHIR create
(DSTU2, STU3, R4 y R5).
Puedes usar la creación condicional para evitar crear recursos FHIR duplicados. Por ejemplo, cada recurso Patient de un servidor FHIR suele tener un identificador único, como un número de historial médico. Para crear un recurso Patient y asegurarte de que no existe ningún recurso Patient con el mismo MRN, crea el nuevo recurso de forma condicional mediante una consulta de búsqueda. La API Cloud Healthcare crea el nuevo recurso solo si no hay coincidencias para la consulta de búsqueda.
La respuesta del servidor depende de cuántos recursos coincidan con la consulta de búsqueda:
Coincide con | Código de respuesta HTTP | Comportamiento |
---|---|---|
Cero | 201 CREATED |
Crea el recurso. |
Uno | 200 OK |
No crea un recurso. |
Más de uno | 412 Precondition Failed |
No crea un recurso y devuelve un error "search criteria are not selective enough" . |
Para usar la interacción create
condicional en lugar de la interacción create
, especifica un encabezado HTTP If-None-Exist
que contenga una consulta de búsqueda de FHIR en tu solicitud:
If-None-Exist: FHIR_SEARCH_QUERY
En la versión 1 de la API Cloud Healthcare, las operaciones condicionales usan exclusivamente el parámetro de búsqueda identifier
si existe para el tipo de recurso FHIR, para determinar qué recursos FHIR
coinciden con una consulta de búsqueda condicional.
REST
En el siguiente ejemplo se muestra cómo crear un recurso Observation mediante un encabezado HTTP If-None-Exist: identifier=my-code-system|ABC-12345
. La API Cloud Healthcare crea el recurso si y solo si no hay ningún recurso Observation que coincida con la consulta identifier=my-code-system|ABC-12345
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/fhir+json" \ -H "If-None-Exist: identifier=my-code-system|ABC-12345" \ -d @request.json \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation"
En el siguiente ejemplo de salida se muestra intencionadamente una solicitud fallida. Para ver la respuesta de una solicitud correcta, consulta Crear un recurso FHIR.
Si varios recursos Observation coinciden con la consulta, la API Cloud Healthcare devuelve la siguiente respuesta y la solicitud de creación condicional falla:
{
"issue": [
{
"code": "conflict",
"details": {
"text": "ambiguous_query"
},
"diagnostics": "search criteria are not selective enough",
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}
Actualizar un recurso FHIR
En los siguientes ejemplos se muestra cómo usar el método projects.locations.datasets.fhirStores.fhir.update
para actualizar un recurso FHIR. El método implementa la interacción de actualización del estándar FHIR (DSTU2, STU3, R4 y R5).
Cuando actualizas un recurso, se actualiza todo su contenido. Esto contrasta con la aplicación de parches a un recurso, que solo actualiza una parte de un recurso.
Si el almacén FHIR tiene el valor enableUpdateCreate
, la solicitud se trata como una operación de upsert (actualización o inserción) que actualiza el recurso si existe o lo inserta con el ID especificado en la solicitud si no existe.
El cuerpo de la solicitud debe contener un recurso FHIR codificado en JSON y los encabezados de la solicitud deben contener Content-Type: application/fhir+json
. El recurso debe contener un elemento id
con un valor idéntico al ID de la ruta REST de la solicitud.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con almacenes FHIR STU3.
REST
En los siguientes ejemplos se muestra cómo actualizar las pulsaciones por minuto (ppm) de un recurso Observation.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
- OBSERVATION_ID: ID del recurso Observation.
- PATIENT_ID: el ID de recurso de Patient
- ENCOUNTER_ID: ID de recurso de Encounter.
- BPM_VALUE: el valor de latidos por minuto (BPM) del recurso Observation actualizado
Cuerpo JSON de la solicitud:
{ "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' { "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Explorador de APIs
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Go
Node.js
Python
Actualizar condicionalmente un recurso FHIR
En los siguientes ejemplos se muestra cómo llamar al método projects.locations.datasets.fhirStores.fhir.conditionalUpdate
para actualizar un recurso FHIR que coincida con una consulta de búsqueda, en lugar de identificar el recurso por su ID. El método implementa la interacción de actualización condicional del estándar FHIR (DSTU2, STU3, R4 y R5).
Las actualizaciones condicionales solo se pueden aplicar a un recurso FHIR a la vez.
La respuesta devuelta por el servidor depende del número de coincidencias que se produzcan en función de los criterios de búsqueda:
- Una coincidencia: el recurso se actualiza correctamente o se devuelve un error.
- Más de una coincidencia: la solicitud devuelve un error
412 Precondition Failed
. - Cero coincidencias con un
id
: si los criterios de búsqueda no identifican ninguna coincidencia, el cuerpo de la solicitud proporcionado contiene unid
y el almacén FHIR tiene el valorenableUpdateCreate
definido comotrue
, el recurso FHIR se crea con elid
del cuerpo de la solicitud. - Cero coincidencias sin
id
: si los criterios de búsqueda identifican cero coincidencias y el cuerpo de la solicitud proporcionado no contiene ningúnid
, el recurso FHIR se crea con un ID asignado por el servidor como si se hubiera creado conprojects.locations.datasets.fhirStores.fhir.create
.
El cuerpo de la solicitud debe contener un recurso FHIR codificado en JSON y los encabezados de la solicitud deben contener Content-Type: application/fhir+json
.
En la versión 1 de la API Cloud Healthcare, las operaciones condicionales usan exclusivamente el parámetro de búsqueda identifier
si existe para el tipo de recurso FHIR, para determinar qué recursos FHIR
coinciden con una consulta de búsqueda condicional.
REST
En el siguiente ejemplo se muestra cómo enviar una solicitud PUT
mediante curl
y PowerShell para editar un recurso Observation con el identificador de Observation (ABC-12345
en my-code-system
). El recurso Observation proporciona una medición de los latidos por minuto (BPM) de un paciente.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
- PATIENT_ID: el ID de recurso de Patient
- ENCOUNTER_ID: ID de recurso de Encounter.
- BPM_VALUE: el valor de pulsaciones por minuto (ppm) del recurso Observation
Cuerpo JSON de la solicitud:
{ "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
Explorador de APIs
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Aplicar parches a un recurso FHIR
En los siguientes ejemplos se muestra cómo llamar al método projects.locations.datasets.fhirStores.fhir.patch
para aplicar un parche a un recurso FHIR. El método implementa la interacción de parche del estándar FHIR (DSTU2, STU3, R4 y R5).
Cuando aplicas un parche a un recurso, actualizas parte de él aplicando las operaciones especificadas en un documento JSON Patch.
La solicitud debe contener un documento de parche JSON y los encabezados de la solicitud deben contener Content-Type: application/json-patch+json
.
En los siguientes ejemplos se muestra cómo aplicar un parche a un recurso Observation. Este recurso, que proporciona los latidos por minuto (BPM) del paciente, se actualiza mediante la operación de aplicación de parches replace
.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con almacenes FHIR STU3.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
- OBSERVATION_ID: ID del recurso Observation.
- BPM_VALUE: valor de pulsaciones por minuto (ppm) del recurso Observation actualizado
Cuerpo JSON de la solicitud:
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json-patch+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json-patch+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
Go
Java
Node.js
Python
Ejecutar una solicitud PATCH
en un paquete FHIR
Puedes especificar una solicitud PATCH
en un paquete FHIR (solo FHIR R4).
Ejecutar una solicitud PATCH
en un paquete FHIR te permite aplicar parches a muchos recursos FHIR a la vez, en lugar de tener que hacer solicitudes de parches individuales para cada recurso FHIR.
Para hacer una solicitud PATCH
en un paquete, especifica la siguiente información en un objeto resource
de la solicitud:
- Un campo
resourceType
definido comoBinary
- Un campo
contentType
definido comoapplication/json-patch+json
- Cuerpo del parche codificado en base64
Comprueba que el objeto resource
tenga el siguiente aspecto:
"resource": {
"resourceType": "Binary",
"contentType": "application/json-patch+json",
"data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K"
}
A continuación, se muestra el cuerpo del parche que se ha codificado en base64 en el campo data
:
[
{
"op": "replace",
"path": "/birthdate",
"value": "1990-01-01"
}
]
En los siguientes ejemplos se muestra cómo usar una solicitud PATCH
en un paquete para aplicar un parche al recurso Patient que has creado en Crear un recurso FHIR para que tenga un valor birthDate
de 1990-01-01
:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud
- LOCATION: la ubicación del conjunto de datos principal
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
- PATIENT_ID: el ID de un recurso Patient
Cuerpo JSON de la solicitud:
{ "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' { "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
Aplicar parches a un recurso FHIR de forma condicional
En los siguientes ejemplos se muestra cómo llamar al método projects.locations.datasets.fhirStores.fhir.conditionalPatch
para aplicar un parche a un recurso FHIR que coincida con una consulta de búsqueda, en lugar de identificar el recurso por su ID. El método implementa la interacción de parche condicional del estándar FHIR (DSTU2, STU3, R4 y R4).
Solo se puede aplicar un parche condicional a un recurso a la vez. Si los criterios de búsqueda identifican más de una coincidencia, la solicitud devuelve un error 412 Precondition Failed
.
En la versión 1 de la API Cloud Healthcare, las operaciones condicionales usan exclusivamente el parámetro de búsqueda identifier
si existe para el tipo de recurso FHIR, para determinar qué recursos FHIR
coinciden con una consulta de búsqueda condicional.
REST
En los siguientes ejemplos se muestra cómo enviar una solicitud PATCH
para editar un recurso Observation si el identificador de Observation es ABC-12345
en my-code-system
.
Este recurso, que proporciona los latidos por minuto (BPM) del paciente, se actualiza mediante la operación de aplicación de parches replace
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
- BPM_VALUE: el valor de pulsaciones por minuto (ppm) del recurso Observation
Cuerpo JSON de la solicitud:
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json-patch+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json-patch+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
Explorador de APIs
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Obtener un recurso FHIR
En los siguientes ejemplos se muestra cómo obtener el contenido de un recurso FHIR.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con almacenes FHIR STU3.
Consola
En la Google Cloud consola, ve a la página Visualizador de FHIR.
En la lista desplegable Almacén FHIR, selecciona un conjunto de datos y, a continuación, un almacén FHIR del conjunto de datos.
Para filtrar la lista de tipos de recursos, busca los tipos de recursos que quieras mostrar.
Haz clic en el campo Tipo de recurso.
En la lista desplegable Properties (Propiedades) que aparece, selecciona Resource Type (Tipo de recurso).
Introduce un tipo de recurso.
Para buscar otro tipo de recurso, seleccione OR en la lista desplegable Operadores que aparece y, a continuación, introduzca otro tipo de recurso.
En la lista de tipos de recursos, selecciona el tipo de recurso del que quieras obtener el contenido.
En la tabla de recursos que aparece, seleccione o busque un recurso.
REST
En los siguientes ejemplos se muestra cómo usar el método projects.locations.datasets.fhirStores.fhir.read
para obtener los detalles del recurso Observation creado en una sección anterior.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
- OBSERVATION_ID: ID del recurso Observation.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Explorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Go
Java
Node.js
Python
Obtener todos los detalles de un recurso Encounter
En los siguientes ejemplos se muestra cómo ver los detalles de un recurso Encounter y todos los recursos relacionados con él.
El método implementa la operación extendida de FHIR Encounter-everything
definida en las siguientes versiones de FHIR:
REST
Usa el método projects.locations.datasets.fhirStores.fhir.Encounter-everything
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu Google Cloud proyectoLOCATION
: la ubicación del conjunto de datosDATASET_ID
: el ID del conjunto de datosFHIR_STORE_ID
: el ID del almacén FHIRENCOUNTER_ID
: ID de recurso de Encounter.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter/ENCOUNTER_ID/\$everything"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter/ENCOUNTER_ID/\$everything" | Select-Object -Expand Content
c427ce3e-7677-400e-bc06-33a8cecfdd77
, que es un recurso sintético en el segmento público de Cloud Storage gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/
.
Obtener todos los recursos de un compartimento de paciente
En los siguientes ejemplos se muestra cómo obtener todos los recursos relacionados con un compartimento de paciente concreto (DSTU2, STU3, R4 y R5).
Para obtener más información, consulta projects.locations.datasets.fhirStores.fhir.Patient-everything
.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con almacenes FHIR STU3.
curl
Para obtener los recursos de un compartimento de paciente, haz una solicitud GET
y especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- ID del paciente
- Un token de acceso
En el siguiente ejemplo se muestra una solicitud GET
que utiliza curl
:
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/PATIENT_ID/\$everything"
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:
{ "entry": [ { "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" } }, { "resource": { "class": { "code": "IMP", "display": "inpatient encounter", "system": "http://hl7.org/fhir/v3/ActCode" }, "id": "ENCOUNTER_ID", "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "resourceType": "Encounter", "status": "finished", "subject": { "reference": "Patient/PATIENT_ID" } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": BPM_VALUE } } } ], "resourceType": "Bundle", "type": "searchset" }
PowerShell
Para obtener los recursos de un compartimento de paciente, haz una solicitud GET
y especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- ID del paciente
- Un token de acceso
En el siguiente ejemplo se muestra una solicitud GET
que utiliza PowerShell:
$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/Patient/RESOURCE_ID/$everything' | ConvertTo-Json
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:
{ "entry": [ { "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" } }, { "resource": { "class": { "code": "IMP", "display": "inpatient encounter", "system": "http://hl7.org/fhir/v3/ActCode" }, "id": "ENCOUNTER_ID", "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "resourceType": "Encounter", "status": "finished", "subject": { "reference": "Patient/PATIENT_ID" } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": BPM_VALUE } } } ], "resourceType": "Bundle", "type": "searchset" }
Go
Java
Node.js
Python
Obtener recursos de un compartimento de paciente filtrados por tipo o fecha
En los siguientes ejemplos se muestra cómo obtener todos los recursos asociados a un compartimento de paciente (R4) concreto, filtrados por una lista de tipos y desde una fecha y hora especificadas.
Para obtener más información, consulta projects.locations.datasets.fhirStores.fhir.Patient-everything
.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4.
curl
Para obtener los recursos de un compartimento de paciente de un tipo específico y desde una fecha determinada, haz una solicitud GET
y especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- ID del paciente
- Cadena de consulta que contiene una lista de tipos de recursos separados por comas y una fecha de inicio
- Un token de acceso
En el siguiente ejemplo se muestra una solicitud GET
que utiliza curl
:
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/PATIENT_ID/\$everything?_type=RESOURCE_TYPES&_since=DATE"
Si la solicitud se realiza de forma correcta, el servidor devuelve los recursos que coincidan con los criterios especificados en formato JSON.
PowerShell
Para obtener los recursos de un compartimento de paciente de un tipo específico y desde una fecha determinada, haz una solicitud GET
y especifica la siguiente información:
- Nombre del conjunto de datos principal
- Nombre del almacén FHIR
- ID del paciente
- Cadena de consulta que contiene una lista de tipos de recursos separados por comas y una fecha de inicio
- Un token de acceso
En el siguiente ejemplo se muestra una solicitud GET
que utiliza PowerShell:
$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/Patient/RESOURCE_ID/$everything?_type=RESOURCE_TYPES&_since=DATE' | ConvertTo-Json
Si la solicitud se realiza de forma correcta, el servidor devuelve los recursos que coincidan con los criterios especificados en formato JSON.
Mostrar versiones de recursos FHIR
Puedes ver una lista de las versiones históricas de un recurso FHIR, incluidas la versión actual y las versiones eliminadas. Esto te permite hacer lo siguiente:
- Monitorizar los cambios en los historiales de los pacientes, los medicamentos o los planes de atención.
- Si un recurso FHIR contiene datos incorrectos, puede ver las versiones anteriores para determinar cuándo se introdujeron los datos incorrectos y recuperar la información correcta.
- Asegura el cumplimiento de las normativas proporcionando registros de auditoría completos.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con almacenes FHIR STU3.
Consola
En la Google Cloud consola, ve a la página Visualizador de FHIR.
En el menú Almacén FHIR, selecciona un conjunto de datos y, a continuación, un almacén FHIR del conjunto de datos.
Para filtrar la lista de tipos de recursos FHIR, busca los tipos de recursos que quieras mostrar.
Haz clic en el campo Tipo de recurso.
En la lista desplegable Properties (Propiedades) que aparece, selecciona Resource Type (Tipo de recurso).
Introduce un tipo de recurso FHIR.
En la lista de tipos de recursos FHIR, selecciona un tipo de recurso.
En la tabla de recursos FHIR que aparece, selecciona o busca un recurso.
Para ver y comparar las versiones históricas del recurso FHIR, haga clic en la pestaña Resumen y, a continuación, siga estos pasos:
- Para ver las versiones históricas del recurso FHIR, en la misma fila que ID de versión, haz clic en Ver versiones históricas. En el panel Seleccionar una versión de recurso, selecciona la versión y, a continuación, haz clic en Confirmar. Los datos de la versión se rellenan en las pestañas Resumen, Elementos y JSON.
- Para comparar dos versiones del recurso FHIR, en la misma fila que ID de versión, haz clic en Comparar versiones de recursos. En el panel Seleccionar versiones de recursos para comparar, seleccione dos versiones de recursos y, a continuación, haga clic en Confirmar. Las dos versiones del recurso se muestran en una vista de diferencias. La primera versión que has seleccionado se muestra a la izquierda y la segunda, a la derecha.
REST
Usa el método projects.locations.datasets.fhirStores.fhir.history
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu Google Cloud proyectoLOCATION
: la ubicación del conjunto de datosDATASET_ID
: el conjunto de datos superior del almacén FHIRFHIR_STORE_ID
: el ID del almacén FHIRRESOURCE_TYPE
: el tipo de recurso FHIRRESOURCE_ID
: el ID del recurso FHIR
Para enviar tu solicitud, elige una de estas opciones:
curl
En los siguientes ejemplos se muestra cómo ver una lista de todas las versiones de un recurso Observation. Este recurso se actualizó una vez tras su creación original para cambiar los latidos por minuto (BPM) del paciente.Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history"
PowerShell
En los siguientes ejemplos se muestra cómo ver una lista de todas las versiones de un recurso Observation. Este recurso se actualizó una vez tras su creación original para cambiar los latidos por minuto (BPM) del paciente.Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-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/RESOURCE_ID/_history" | Select-Object -Expand Content
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 85 } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } } } ], "resourceType": "Bundle", "type": "history" }
Go
Java
Node.js
Python
Recuperar una versión de un recurso FHIR
En los siguientes ejemplos se muestra cómo obtener una versión específica de un recurso FHIR.
Para encontrar una versión específica, puedes listar las versiones del recurso FHIR y, a continuación, ver la información de esa versión. El ID de versión se encuentra en el campo "versionId"
. Por ejemplo, consulta el siguiente cuerpo JSON, en el que se resaltan los IDs de versión del recurso Observation de la sección Listar versiones de recursos FHIR:
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, ... { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, ... }
En los siguientes ejemplos se usan los recursos creados en la sección Crear un recurso FHIR y se muestra cómo ver un recurso Observation. Los ejemplos de REST funcionan con almacenes FHIR R4. Los ejemplos de Go, Node.js y Python funcionan con almacenes FHIR STU3.
Consola
En la Google Cloud consola, ve a la página Visualizador de FHIR.
En el menú Almacén FHIR, selecciona un conjunto de datos y, a continuación, un almacén FHIR del conjunto de datos.
Para filtrar la lista de tipos de recursos FHIR, busca los tipos de recursos que quieras mostrar.
Haz clic en el campo Tipo de recurso.
En la lista desplegable Properties (Propiedades) que aparece, selecciona Resource Type (Tipo de recurso).
Introduce un tipo de recurso FHIR.
En la lista de tipos de recursos FHIR, selecciona un tipo de recurso.
En la tabla de recursos FHIR que aparece, selecciona o busca un recurso.
Para ver una versión específica del recurso FHIR, haz lo siguiente:
- Haga clic en la pestaña Descripción general.
- En la misma fila que ID de versión, haz clic en Ver versiones anteriores.
- En el panel Seleccionar una versión de recurso, selecciona la versión y, a continuación, haz clic en Confirmar. Los datos de la versión se rellenan en las pestañas Resumen, Elementos y JSON.
REST
Usa el método projects.locations.datasets.fhirStores.fhir.vread
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu Google Cloud proyectoLOCATION
: la ubicación del conjunto de datosDATASET_ID
: el conjunto de datos superior del almacén FHIRFHIR_STORE_ID
: el ID del almacén FHIRRESOURCE_TYPE
: el tipo de recurso FHIRRESOURCE_ID
: el ID del recurso FHIRRESOURCE_VERSION
: la versión del recurso FHIR
Para enviar tu solicitud, elige una de estas opciones:
curl
En los siguientes ejemplos se muestra cómo ver una lista de todas las versiones de un recurso Observation. Este recurso se actualizó una vez tras su creación original para cambiar los latidos por minuto (BPM) del paciente.Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history/RESOURCE_VERSION"
PowerShell
En los siguientes ejemplos se muestra cómo ver una lista de todas las versiones de un recurso Observation. Este recurso se actualizó una vez tras su creación original para cambiar los latidos por minuto (BPM) del paciente.Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-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/RESOURCE_ID/_history/RESOURCE_VERSION" | Select-Object -Expand Content
{ "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } }
Go
Java
Node.js
Python
Eliminar un recurso FHIR
En los siguientes ejemplos se muestra cómo llamar al método
projects.locations.datasets.fhirStores.fhir.delete
para eliminar un recurso Observation FHIR.
Independientemente de si la operación se realiza correctamente o no, el servidor devuelve un código de estado HTTP 200 OK
. Para comprobar que el recurso se ha eliminado correctamente, búscalo o obténlo y comprueba si existe.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con almacenes FHIR STU3.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el conjunto de datos superior del almacén FHIR
- FHIR_STORE_ID: el ID del almacén FHIR
- OBSERVATION_ID: ID del recurso Observation.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Explorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Go
Java
Node.js
Python
Eliminar un recurso FHIR de forma condicional
En la versión 1 de la API Cloud Healthcare, las operaciones condicionales usan exclusivamente el parámetro de búsqueda identifier
si existe para el tipo de recurso FHIR, para determinar qué recursos FHIR
coinciden con una consulta de búsqueda condicional.
Un recurso FHIR coincide con la consulta ?identifier=my-code-system|ABC-12345
si y solo si el identifier.system
del recurso
es my-code-system
y su identifier.value
es ABC-12345
. Si un recurso FHIR coincide con la consulta, la API Cloud Healthcare elimina el recurso.
Si la consulta usa el parámetro de búsqueda identifier
y coincide con varios recursos FHIR, la API Cloud Healthcare devuelve un error "412 - Condition not selective enough"
.
Para eliminar los recursos de forma individual, sigue estos pasos:
- Busca cada recurso para obtener su ID único asignado por el servidor.
- Elimina cada recurso individualmente mediante el ID.
En los siguientes ejemplos se muestra cómo eliminar condicionalmente un recurso FHIR que coincida con una consulta de búsqueda, en lugar de identificar el recurso FHIR por su ID.
La consulta de búsqueda coincide con un recurso Observation y lo elimina mediante el identificador de Observation (ABC-12345
en my-code-system
).
REST
Usa el método projects.locations.datasets.fhirStores.fhir.conditionalDelete
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu Google Cloud proyectoLOCATION
: la ubicación del conjunto de datosDATASET_ID
: el conjunto de datos superior del almacén FHIRFHIR_STORE_ID
: el ID del almacén FHIR
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
Explorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
Eliminar versiones históricas de un recurso FHIR
En los siguientes ejemplos se muestra cómo eliminar todas las versiones históricas de un recurso FHIR mediante el método projects.locations.datasets.fhirStores.fhir.Resource-purge
.
Solo pueden llamar al método projects.locations.datasets.fhirStores.fhir.Resource-purge
los usuarios (llamantes) con el rol
roles/healthcare.fhirStoreAdmin
. Los usuarios con el rol roles/healthcare.fhirResourceEditor
no pueden
llamar al método. Para permitir que una persona que llama elimine versiones históricas de un recurso FHIR, haz lo siguiente:
- Asegúrate de que la persona que llama tenga el rol
roles/healthcare.fhirStoreAdmin
. - Crea un rol de gestión de identidades y accesos personalizado
con el permiso
healthcare.fhirResources.purge
y asigna el rol al llamante.
En los siguientes ejemplos se usan los recursos creados en la sección Crear un recurso FHIR y se muestra cómo ver las versiones históricas de un recurso Observation.
Los siguientes ejemplos de REST funcionan con almacenes FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con almacenes FHIR STU3.
REST
Usa el método projects.locations.datasets.fhirStores.fhir.Resource-purge
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu Google Cloud proyectoLOCATION
: la ubicación del conjunto de datosDATASET_ID
: el conjunto de datos superior del almacén FHIRFHIR_STORE_ID
: el ID del almacén FHIRRESOURCE_TYPE
: el tipo de recurso FHIRRESOURCE_ID
: el ID del recurso FHIR
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/$purge"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/$purge" | Select-Object -Expand Content
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.