En esta página, se explica cómo crear, actualizar, ver, enumerar, recuperar y borrar recursos de FHIR.
Un recurso de FHIR puede contener datos sobre un paciente, un dispositivo, una observación y más. Para obtener una lista completa de los recursos de FHIR, consulta el índice de recursos de FHIR ( DSTU2 , STU3 o R4 ).
Las muestras de curl
y PowerShell en esta página funcionan con un almacén de FHIR R4 y no se garantiza que funcionen si usas un almacén de FHIR DSTU2 o STU3.
Si usas un almacén de 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.
Las muestras de Go, Java, Node.js y Python funcionan con un almacén de FHIR STU3.
Crea un recurso de FHIR
Antes de crear recursos de FHIR, debes crear un almacén de FHIR.
Las muestras de curl
, PowerShell y Python muestran cómo crear los siguientes recursos de FHIR:
- Un recurso de paciente (DSTU2, STU3 y R4)
- Un recurso de encuentro (DSTU2, STU3 y R4) para el recurso paciente
- Un recurso de observación (DSTU2, STU3 y R4) para la consulta
Las muestras para todos los demás lenguajes muestran cómo crear un recurso FHIR genérico.
Para obtener más información, consulta projects.locations.datasets.fhirStores.fhir.create
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con los almacenes de FHIR STU3.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:
Go
Java
Node.js
Python
Después de crear el recurso Patient, crea un recurso Encounter para describir una interacción entre el paciente y un profesional.
En el campo PATIENT_ID, sustituye el ID de la respuesta que mostró el servidor cuando creaste el recurso Patient.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. La muestra de Python funciona con almacenes de FHIR STU3.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
- PATIENT_ID es la respuesta que muestra 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:
Python
Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la guía de inicio rápido de la API de Cloud Healthcare con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Python de la API de Cloud Healthcare.
Para autenticarte en la API de Cloud Healthcare, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Después de crear el recurso Encounter, crea un recurso Observation asociado al recurso Encounter. El recurso Observation proporciona una medición del ritmo cardíaco del paciente en latidos del corazón por minuto (BPM) (80
en bpm
).
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. La muestra de Python funciona con almacenes de FHIR STU3.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
- PATIENT_ID es el ID en la respuesta que mostró el servidor cuando creaste el recurso Patient
- ENCOUNTER_ID es el ID en la respuesta que muestra 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:
Python
Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la guía de inicio rápido de la API de Cloud Healthcare con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Python de la API de Cloud Healthcare.
Para autenticarte en la API de Cloud Healthcare, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Crea 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 condicionalmente un recurso de FHIR. El método implementa la interacción create
condicional de FHIR (DSTU2, STU3, R4).
Puedes usar la creación condicional para evitar crear recursos de FHIR duplicados. Por ejemplo, cada recurso de paciente en un servidor de FHIR suele tener un identificador único, como un número de registro médico (MRN). Para crear un recurso Paciente nuevo y asegurarte de que no exista un recurso Paciente con el mismo MRN, crea el recurso nuevo de forma condicional con una búsqueda. La API de Cloud Healthcare crea el recurso nuevo solo si no hay coincidencias para la búsqueda.
La respuesta del servidor depende de cuántos recursos coincidieron con la búsqueda:
Coincidencias | Código de respuesta HTTP | Comportamiento |
---|---|---|
Cero | 201 CREATED |
Crea el recurso nuevo. |
One | 200 OK |
No crea un recurso nuevo. |
Más de uno | 412 Precondition Failed |
No crea un recurso nuevo y muestra 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 búsqueda de FHIR en tu solicitud:
If-None-Exist: FHIR_SEARCH_QUERY
En la API de Cloud Healthcare v1, las operaciones condicionales usan exclusivamente el parámetro de búsqueda identifier
, si existe para el tipo de recurso de FHIR, para determinar qué recursos de FHIR coinciden con una búsqueda condicional.
REST
En el siguiente ejemplo, se muestra cómo crear un recurso de Observation con un encabezado HTTP If-None-Exist: identifier=my-code-system|ABC-12345
. La API de Cloud Healthcare crea el recurso solo si no hay ningún recurso de observación existente 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 resultado de muestra, se muestra de forma intencional una solicitud fallida. Para ver la respuesta de una solicitud correcta, consulta Cómo crear un recurso de FHIR.
Si varios recursos de observación coinciden con la consulta, la API de Cloud Healthcare muestra la siguiente respuesta y falla la solicitud de creación condicional:
{
"issue": [
{
"code": "conflict",
"details": {
"text": "ambiguous_query"
},
"diagnostics": "search criteria are not selective enough",
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}
Actualiza un recurso de 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 estándar de FHIR (DSTU2, STU3 y R4).
Cuando actualizas un recurso, actualizas todo el contenido del recurso. Esto contrasta con el parche de un recurso, que actualiza solo parte de un recurso.
Si el almacén FHIR tiene configurado enableUpdateCreate
, la solicitud se trata como una inserción (actualización o inserción) que actualiza el recurso si existe o lo inserta mediante el ID que especifica la solicitud si no existe.
El cuerpo de la solicitud debe contener un recurso de FHIR codificado en JSON y los encabezados de la solicitud deben contener Content-Type: application/fhir+json
. El recurso debe contener un elemento id
que tenga un valor idéntico al ID en la ruta de acceso de REST de la solicitud.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con los almacenes de FHIR STU3.
REST
En los siguientes ejemplos, se muestra cómo actualizar las pulsaciones por minuto (BPM) en un recurso Observation.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
- OBSERVATION_ID es el ID del recurso Observation
- PATIENT_ID es el ID del recurso Patient
- ENCOUNTER_ID es el ID del recurso Encounter
- BPM_VALUE el valor de las pulsaciones por minuto (BPM) en el 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 API
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel del Explorador de API 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, completa cualquier otro campo obligatorio y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Go
Node.js
Python
Actualiza un recurso FHIR de forma condicional
En los siguientes ejemplos, se muestra cómo llamar al método projects.locations.datasets.fhirStores.fhir.conditionalUpdate
para actualizar un recurso de 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 de FHIR (DSTU2, STU3 y R4).
Una actualización condicional solo se puede aplicar a un recurso FHIR a la vez.
La respuesta que muestra el servidor depende de cuántas coincidencias ocurren según los criterios de búsqueda:
- Una coincidencia: El recurso se actualiza correctamente o se muestra un error.
- Más de una coincidencia: La solicitud muestra un error
412 Precondition Failed
. - Cero coincidencias con un
id
: Si los criterios de búsqueda identifican cero coincidencias, el cuerpo de la solicitud proporcionado contiene unid
y el almacén de FHIR tieneenableUpdateCreate
configurado comotrue
, el recurso de FHIR se crea con elid
en el cuerpo de la solicitud. - Cero coincidencias sin un
id
: Si los criterios de búsqueda identifican cero coincidencias y el cuerpo de la solicitud proporcionado no contiene unid
, el recurso de 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 de FHIR codificado en JSON y los encabezados de la solicitud deben contener Content-Type: application/fhir+json
.
En la API de Cloud Healthcare v1, las operaciones condicionales usan exclusivamente el parámetro de búsqueda identifier
, si existe para el tipo de recurso de FHIR, para determinar qué recursos de FHIR coinciden con una búsqueda condicional.
REST
En el siguiente ejemplo, se muestra cómo enviar una solicitud PUT
con curl
y PowerShell para editar un recurso Observation con su identificador (ABC-12345
en my-code-system
). El recurso Observation proporciona una medición de los latidos del corazón de un paciente por minuto (BPM).
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
- PATIENT_ID es el ID del recurso Patient
- ENCOUNTER_ID es el ID del recurso Encounter
- BPM_VALUE es el valor de las pulsaciones por minuto (BPM) en el 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 API
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel del Explorador de API 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, completa cualquier otro campo obligatorio y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Aplica 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 de FHIR. Con el método, se implementa la interacción de parche del estándar de FHIR (DSTU2, STU3 y R4).
Cuando aplicas un parche a un recurso, actualizas parte del recurso mediante la aplicación de las operaciones especificadas en un documento de parche de JSON.
La solicitud debe contener un documento de parche JSON y los encabezados de solicitud deben contener Content-Type: application/json-patch+json
.
En los siguientes ejemplos, se muestra cómo aplicar parches a un recurso Observation. El recurso Observation para las pulsaciones por minuto (BPM) de un paciente se actualiza mediante la operación de aplicación de parche replace
.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con los almacenes de FHIR STU3.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
- OBSERVATION_ID es el ID del recurso Observation
- BPM_VALUE el valor de las pulsaciones por minuto (BPM) en el recurso Observation con parches
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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:
Go
Java
Node.js
Python
Ejecuta una solicitud PATCH
en un paquete de FHIR
Puedes especificar una solicitud PATCH
en un paquete de FHIR (solo FHIR R4).
Ejecutar la solicitud PATCH
en un paquete de FHIR te permite aplicar parches a muchos recursos de FHIR a la vez, en lugar de tener que realizar solicitudes de parche individuales para cada recurso de FHIR.
Para realizar una solicitud PATCH
en un paquete, especifica la siguiente información en un objeto resource
en la solicitud:
- Un campo
resourceType
configurado comoBinary
- Un campo
contentType
configurado comoapplication/json-patch+json
- El cuerpo del parche codificado en base64
Asegúrate de que el objeto resource
se vea de la siguiente manera:
"resource": {
"resourceType": "Binary",
"contentType": "application/json-patch+json",
"data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K"
}
A continuación, se muestra el cuerpo del parche que se codificó 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 creaste en Crea un recurso FHIR para tener un valor birthDate
de 1990-01-01
:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- LOCATION: Es la ubicación del conjunto de datos superior.
- DATASET_ID: El conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
- PATIENT_ID es el ID de un recurso de paciente existente
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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:
Aplica parches condicionalmente a un recurso FHIR
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 de 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 parches condicional del estándar de FHIR (DSTU2, STU3 y R4).
Un parche condicional se puede aplicar a un solo recurso a la vez. Si los criterios de búsqueda identifican más de una coincidencia, la solicitud muestra un error 412 Precondition Failed
.
En la API de Cloud Healthcare v1, las operaciones condicionales usan exclusivamente el parámetro de búsqueda identifier
, si existe para el tipo de recurso de FHIR, para determinar qué recursos de FHIR coinciden con una búsqueda condicional.
REST
En el siguiente ejemplo, se muestra cómo enviar una solicitud PATCH
con curl
y PowerShell para editar un recurso Observation si el identificador de Observation es ABC-12345
en my-code-system
.
La Observation de los latidos por minuto (BPM) de un paciente se actualiza mediante la operación de aplicación de parche replace
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
- BPM_VALUE es el valor de las pulsaciones por minuto (BPM) en el 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 API
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel del Explorador de API 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, completa cualquier otro campo obligatorio y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Obtén un recurso de FHIR
En los siguientes ejemplos, se muestra cómo usar el método projects.locations.datasets.fhirStores.fhir.read
para obtener el contenido de un recurso FHIR.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4.
Las muestras de Go, Java, Node.js y Python funcionan con los almacenes de FHIR STU3.
Consola
Para obtener el contenido de un recurso FHIR, sigue estos 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 de Operators que aparece y, luego, ingresa otro tipo de recurso.
En la lista de tipos de recursos, selecciona el tipo de recurso del que deseas obtener el contenido.
En la tabla de recursos que aparece, selecciona o busca un recurso.
REST
En los siguientes ejemplos, se muestra cómo obtener los detalles del recurso Observation creado en una sección anterior.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
- OBSERVATION_ID es el ID del recurso Observation
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
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 siguiente comando:
$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 API
Abre la página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Go
Java
Node.js
Python
Obtén todos los detalles de los recursos de encuentro
En los siguientes ejemplos, se muestra cómo usar el método projects.locations.datasets.fhirStores.fhir.Encounter-everything
para ver los detalles de un recurso Encounter y todos los recursos relacionados con él.
El método implementa la operación extendida Encounter-everything
de FHIR definida en las siguientes versiones de FHIR:
REST
Usa el método projects.locations.datasets.fhirStores.fhir.Encounter-everything
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
El ID de tu proyecto de Google Cloud.LOCATION
: La ubicación del conjunto de datos.DATASET_ID
: El ID del conjunto de datosFHIR_STORE_ID
es el ID del almacén de FHIRENCOUNTER_ID
es el ID del recurso Encounter
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
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 siguiente comando:
$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 bucket público de Cloud Storage gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/
.
Obtén todos los recursos del compartimiento de pacientes
En los siguientes ejemplos, se muestra cómo obtener todos los recursos asociados con un compartimiento específico de paciente (DSTU2, STU3 y R4).
Para obtener más información, consulta projects.locations.datasets.fhirStores.fhir.Patient-everything
.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con los almacenes de FHIR STU3.
curl
Para obtener los recursos en un compartimiento de pacientes, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID del paciente
- Un token de acceso
En el siguiente ejemplo, se muestra una solicitud GET
mediante 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 tiene éxito, en el servidor se mostrará una respuesta similar a la siguiente muestra 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 en un compartimiento de pacientes, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID del paciente
- Un token de acceso
En la siguiente muestra, se demuestra una solicitud GET
mediante 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 tiene éxito, en el servidor se mostrará una respuesta similar a la siguiente muestra 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
Obtén recursos de compartimento para pacientes filtrados por tipo o fecha
En los siguientes ejemplos, se muestra cómo obtener todos los recursos asociados con un compartimiento para pacientes (R4) determinado filtrado 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
.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4.
curl
A fin de obtener los recursos en un compartimiento para pacientes de un tipo específico y, desde una fecha específica, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID del paciente
- Una 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
mediante 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 muestra cualquier recurso que coincida con los criterios especificados en formato JSON.
PowerShell
A fin de obtener los recursos en un compartimiento para pacientes de un tipo específico y, desde una fecha específica, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID del paciente
- Una cadena de consulta que contiene una lista de tipos de recursos separados por comas y una fecha de inicio
- Un token de acceso
En la siguiente muestra, se demuestra una solicitud GET
mediante 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 muestra cualquier recurso que coincida con los criterios especificados en formato JSON.
Enumera las versiones de recursos FHIR
En las siguientes muestras, se indica cómo enumerar todas las versiones históricas de un recurso de FHIR. Para obtener más información, consulta projects.locations.datasets.fhirStores.fhir.history
Las muestras usan los recursos creados en Crea un recurso FHIR y muestra cómo enumerar las versiones de un recurso Observation.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con los almacenes de FHIR STU3.
curl
En el siguiente ejemplo, se muestra cómo enumerar todas las versiones de un recurso Observation. La Observation se actualizó una vez después de su creación original para cambiar los latidos del corazón por minuto (BPM) del paciente.
Para enumerar todas las versiones de un recurso de FHIR, incluida la versión actual y cualquier versión borrada, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID y el tipo de recurso
- Un token de acceso
En el siguiente ejemplo, se muestra una solicitud GET
mediante 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/RESOURCE_TYPE/RESOURCE_ID/_history"
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor. En este ejemplo, muestra dos versiones de Observación. En la primera versión, el ritmo cardíaco del paciente fue de 75 BPM. En la segunda versión, el ritmo cardíaco del paciente era 85 BPM.
{ "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" }
PowerShell
En el siguiente ejemplo, se muestra cómo enumerar todas las versiones de un recurso Observation. La Observation se actualizó una vez después de su creación original para cambiar los latidos del corazón por minuto (BPM) del paciente.
Para enumerar todas las versiones de un recurso de FHIR, incluida la versión actual y cualquier versión borrada, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID y el tipo de recurso
- Un token de acceso
En la siguiente muestra, se demuestra una solicitud GET
mediante 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/RESOURCE_TYPE/RESOURCE_ID/_history" | Select-Object -Expand Content
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor. En este ejemplo, muestra dos versiones de Observación. En la primera versión, el ritmo cardíaco del paciente fue de 75 BPM. En la segunda versión, el ritmo cardíaco del paciente era 85 BPM.
{ "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
Recupera una versión del recurso de FHIR
En los siguientes ejemplos, se muestra cómo recuperar una versión específica de un recurso.
Para obtener más información, consulta projects.locations.datasets.fhirStores.fhir.vread
Los ID de versión para el recurso de Observation de Enumera versiones de recursos FHIR se destacan a continuación:
{ "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 Crea un recurso FHIR y se muestra cómo ver un recurso de Observation.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. Las muestras de Go, Node.js y Python funcionan con los almacenes de FHIR STU3.
curl
Para obtener una versión específica de un recurso de FHIR, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID y el tipo de recurso
- La versión del recurso
- Un token de acceso
En el siguiente ejemplo, se muestra una solicitud GET
mediante 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/RESOURCE_TYPE/RESOURCE_ID/_history/RESOURCE_VERSION"
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor. En este ejemplo, se muestra la primera versión de la observación, en la que la frecuencia cardíaca del paciente fue de 75 BPM.
{ "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 } }
PowerShell
Para obtener una versión específica de un recurso de FHIR, realiza una solicitud GET
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID y el tipo de recurso
- La versión del recurso
- Un token de acceso
En el siguiente ejemplo, se muestra una solicitud GET
mediante curl
.
$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/RESOURCE_ID/RESOURCE_VERSION/_history" | Select-Object -Expand Content
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor. En este ejemplo, se muestra la primera versión de la observación, en la que la frecuencia cardíaca del paciente fue de 75 BPM.
{ "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
Borra un recurso de FHIR
En los siguientes ejemplos, se muestra cómo llamar al método projects.locations.datasets.fhirStores.fhir.delete
para borrar un recurso de Observation FHIR.
Sin importar si la operación se realiza de forma correcta o falla, el servidor muestra un código de estado HTTP 200 OK
. Para comprobar que el recurso se haya borrado correctamente, busca u obtén el recurso y verifica si existe.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con los almacenes de FHIR STU3.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- DATASET_ID es el conjunto de datos superior del almacén de FHIR
- FHIR_STORE_ID es el ID del almacén de FHIR
- OBSERVATION_ID es el ID del recurso Observation
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
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 siguiente comando:
$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 API
Abre la página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Go
Java
Node.js
Python
Borra un recurso de FHIR de forma condicional
En la API de Cloud Healthcare v1, las operaciones condicionales usan exclusivamente el parámetro de búsqueda identifier
, si existe para el tipo de recurso de FHIR, para determinar qué recursos de FHIR coinciden con una búsqueda condicional.
Un recurso de FHIR coincide con la consulta ?identifier=my-code-system|ABC-12345
solo si el identifier.system
del recurso es my-code-system
y su identifier.value
es ABC-12345
. Si un recurso de FHIR coincide con la consulta, la API de Cloud Healthcare lo borra.
Si la consulta usa el parámetro de búsqueda identifier
y coincide con varios recursos de FHIR, la API de Cloud Healthcare muestra un error "412 - Condition not selective enough"
.
Para borrar los recursos de forma individual, sigue estos pasos:
- Busca cada recurso para obtener su ID único asignado por el servidor.
- Borra cada recurso de forma individual con el ID.
En los siguientes ejemplos, se muestra cómo borrar de forma condicional un recurso de FHIR que coincida con una búsqueda, en lugar de identificar el recurso de FHIR por su ID.
La búsqueda coincide con un recurso Observation y lo borra con su identificador (ABC-12345
en my-code-system
).
REST
Usa el método projects.locations.datasets.fhirStores.fhir.conditionalDelete
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
El ID de tu proyecto de Google Cloud.LOCATION
: La ubicación del conjunto de datosDATASET_ID
es el conjunto de datos superior del almacén de FHIRFHIR_STORE_ID
es el ID del almacén de FHIR
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
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 siguiente comando:
$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 API
Abre la página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
Borra las versiones históricas de un recurso de FHIR
En los siguientes ejemplos, se muestra cómo borrar todas las versiones históricas de un recurso de FHIR. Para obtener más información, consulta projects.locations.datasets.fhirStores.fhir.Resource-purge
La llamada al método projects.locations.datasets.fhirStores.fhir.Resource-purge
se limita a los usuarios (emisores) con la función roles/healthcare.fhirStoreAdmin
. Los usuarios con la función roles/healthcare.fhirResourceEditor
no pueden llamar al método. Para permitir que el emisor borre versiones históricas de un recurso de FHIR, puedes realizar una de las siguientes acciones:
- Asegúrate de que el emisor tenga la función
roles/healthcare.fhirStoreAdmin
. - Crea una función de IAM personalizada con el permiso
healthcare.fhirResources.purge
y asigna la función al emisor.
Las muestras usan los recursos creados en Crea un recurso FHIR y muestran cómo borrar las versiones históricas de un recurso de observación.
Las siguientes muestras de curl
y PowerShell funcionan con los almacenes de FHIR R4. Las muestras de Go, Java, Node.js y Python funcionan con los almacenes de FHIR STU3.
curl
Para borrar todas las versiones históricas de un recurso FHIR, realiza una solicitud DELETE
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID y el tipo de recurso
- Un token de acceso
En el siguiente ejemplo, se muestra una solicitud DELETE
mediante curl
.
curl -X DELETE \ -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/RESOURCE_TYPE/RESOURCE_ID/\$purge"
Si la solicitud se realiza con éxito, el servidor muestra el cuerpo de la respuesta vacío en formato JSON:
{}
PowerShell
Para borrar todas las versiones históricas de un recurso FHIR, realiza una solicitud DELETE
y especifica la siguiente información:
- El nombre del conjunto de datos superior
- El nombre del almacén FHIR
- El ID y el tipo de recurso
- Un token de acceso
En la siguiente muestra, se demuestra una solicitud DELETE
mediante PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Delete ` -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/RESOURCE_TYPE/RESOURCE_ID/$purge" | ConvertTo-Json
Si la solicitud se realiza con éxito, el servidor muestra el cuerpo de la respuesta vacío en formato JSON:
{}