En esta página, se muestra cómo usar la API de Cloud Healthcare con curl
y Windows PowerShell para completar las siguientes tareas:
- Crear un conjunto de datos de la API de Cloud Healthcare
- Crear un almacén de DICOM, FHIR o HL7v2 dentro del conjunto de datos
- Almacena y, luego, inspecciona un tipo particular de datos médicos en el almacén de DICOM, FHIR o HL7v2.
Antes de comenzar
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.
- Habilita las Cloud Healthcare API.
- Instala e inicializa el SDK de Cloud.
- Usa la herramienta de línea de comandos de
gcloud
para probar el entorno de autenticación. Verifica que el siguiente resultado del comando muestre una string de texto sin errores:gcloud auth application-default print-access-token
Sugerencia: ¿Necesitas un símbolo del sistema? Puedes usar Google Cloud Shell. Es un entorno de línea de comandos que incluye el SDK de Google Cloud, por lo que no es necesario que lo instales. El SDK de Google Cloud también viene preinstalado en las máquinas virtuales de Google Compute Engine.
Crear un conjunto de datos
Los conjuntos de datos son los contenedores básicos que contienen los datos de atención médica en Google Cloud. Para usar la API de Cloud Healthcare, debes crear al menos un conjunto de datos.
curl
Para crear un conjunto de datos, realiza una solicitud POST
y proporciona un nombre y una ubicación para el conjunto de datos.
En el siguiente ejemplo, se muestra una solicitud POST
mediante curl
.
Cuando configures la variable LOCATION, usa us-central1
, us-west2
, us-east4
, europe-west2
, europe-west4
, europe-west6
, northamerica-northeast1
. , southamerica-east1
, asia-east2
, asia-northeast1
, asia-southeast1
, australia-southeast1
o us
.
curl -X POST \ --data "" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?datasetId=DATASET_ID"
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor. La respuesta contiene un identificador para una operación de larga duración. Las operaciones de larga duración se muestran cuando las llamadas de métodos pueden tardar una cantidad considerable de tiempo en completarse.
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", }
La respuesta contiene un nombre de operación. Para realizar un seguimiento del estado de la operación, puedes usar el método get
de la operación:
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/operations/OPERATION_ID"
Si la solicitud es exitosa, el servidor mostrará una respuesta con el estado de la operación en formato JSON: Puedes saber que la operación finalizó cuando la respuesta contiene "done": true
.
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.dataset.DatasetService.CreateDataset", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.dataset.Dataset", "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID" } }
PowerShell
Para crear un conjunto de datos, realiza una solicitud POST
y proporciona un nombre y una ubicación para el conjunto de datos.
En el siguiente ejemplo, se muestra una solicitud POST
con Windows PowerShell.
Cuando configures la variable LOCATION, usa us-central1
, us-west2
, us-east4
, europe-west2
, europe-west4
, europe-west6
, northamerica-northeast1
. , southamerica-east1
, asia-east2
, asia-northeast1
, asia-southeast1
, australia-southeast1
o us
.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?datasetId=DATASET_ID" | Select-Object -Expand Content
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor. La respuesta contiene un identificador para una operación de larga duración. Las operaciones de larga duración se muestran cuando las llamadas de métodos pueden tardar una cantidad considerable de tiempo en completarse.
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", }
La respuesta contiene un nombre de operación. Para realizar un seguimiento del estado de la operación, puedes usar el método get
de la operación:
$cred = gcloud auth application-default 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/operations/OPERATION_ID" | Select-Object -Expand Content
Si la solicitud es exitosa, el servidor mostrará una respuesta con el estado de la operación en formato JSON: Puedes saber que la operación finalizó cuando la respuesta contiene "done": true
.
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.dataset.DatasetService.CreateDataset", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.dataset.Dataset", "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID" } }
Almacena y visualiza datos de DICOM, FHIR y HL7v2
Para completar esta guía de inicio rápido, elige una de las siguientes secciones:
- Almacena y visualiza instancias de DICOM
- Almacena y visualiza recursos de FHIR
- Almacena y visualiza mensajes HL7v2
Almacena y visualiza instancias de DICOM
En esta sección, se muestra cómo completar las siguientes tareas:
- Crea un almacén de DICOM.
- Almacenar una instancia de DICOM en el almacén DICOM
- Ver los metadatos de la instancia de DICOM
La API de Cloud Healthcare implementa el estándar DICOMweb para almacenar datos de imagen médica y acceder a ellos.
Los almacenes DICOM existen dentro de conjuntos de datos y contienen instancias de DICOM. Puedes crear un almacén de DICOM con el método
projects.locations.datasets.dicomStores.create
.curl
Para crear un almacén de DICOM, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- Un nombre para el almacén de DICOM. El ID del almacén de DICOM debe ser único en su conjunto de datos superior. Puede ser cualquier string Unicode de 1 a 256 caracteres que conste de números, letras, guiones bajos, guiones y puntos.
En el siguiente ejemplo, se muestra una solicitud
POST
mediantecurl
:curl -X POST \ --data "" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores?dicomStoreId=DICOM_STORE_ID"
Si la solicitud tiene éxito, se mostrará la siguiente respuesta en formato JSON en el servidor:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID" }
PowerShell
Para crear un almacén de DICOM, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- Un nombre para el almacén de DICOM. El ID del almacén de DICOM debe ser único en su conjunto de datos superior. Puede ser cualquier string Unicode de 1 a 256 caracteres que conste de números, letras, guiones bajos, guiones y puntos.
En el siguiente ejemplo, se muestra una solicitud
POST
mediante Windows PowerShell.$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores?dicomStoreId=DICOM_STORE_ID" | Select-Object -Expand Content
Si la solicitud tiene éxito, en el servidor se mostrará una respuesta similar a la siguiente muestra en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID" }
Descarga el archivo de instancia de DICOM de muestra en tu máquina. El archivo contiene un rayos X desidentificado.
Ejecute el siguiente comando para almacenar la instancia de DICOM en el almacén de DICOM que creó:
curl
Para almacenar la instancia de DICOM, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén de DICOM
- El nombre y la ubicación del archivo de la instancia de DICOM en tu máquina
En el siguiente ejemplo, se muestra una solicitud
POST
mediantecurl
:curl -X POST \ -H "Content-Type: application/dicom" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data-binary @dicom_00000001_000.dcm \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies
Si la solicitud tiene éxito, en el servidor se mostrará la siguiente respuesta en formato XML:
<NativeDicomModel> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604</Value> </DicomAttribute> <DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence"> <Item number="1"> <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID"> <Value number="1">1.2.840.10008.5.1.4.1.1.7</Value> </DicomAttribute> <DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID"> <Value number="1">1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480</Value> </DicomAttribute> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604/series/1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724/instances/1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480</Value> </DicomAttribute> </Item> </DicomAttribute> </NativeDicomModel>
PowerShell
Para almacenar la instancia de DICOM, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén de DICOM
- El nombre y la ubicación del archivo de la instancia de DICOM en tu máquina
En el siguiente ejemplo, se muestra una solicitud
POST
mediante Windows PowerShell.$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/dicom" ` -InFile dicom_00000001_000.dcm ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content
Si la solicitud tiene éxito, en el servidor se mostrará la siguiente respuesta en formato XML:
<NativeDicomModel> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604</Value> </DicomAttribute> <DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence"> <Item number="1"> <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID"> <Value number="1">1.2.840.10008.5.1.4.1.1.7</Value> </DicomAttribute> <DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID"> <Value number="1">1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480</Value> </DicomAttribute> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604/series/1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724/instances/1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480</Value> </DicomAttribute> </Item> </DicomAttribute> </NativeDicomModel>
Busca instancias en el almacén de DICOM para ver los metadatos de la instancia que almacenaste:
curl
Para ver los metadatos de la instancia de DICOM que almacenaste, haz una solicitud
GET
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén de DICOM
En el siguiente ejemplo, se muestra una solicitud
GET
concurl
para buscar instancias en el almacén de DICOM: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/dicomStores/DICOM_STORE_ID/dicomWeb/instances"
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:
[ { "00080016": { "vr": "UI", "Value": [ "1.2.840.10008.5.1.4.1.1.7" ] }, "00080018": { "vr": "UI", "Value": [ "1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480" ] }, "00080060": { "vr": "CS", "Value": [ "DX" ] }, "00100020": { "vr": "LO", "Value": [ "1" ] }, "00100040": { "vr": "CS", "Value": [ "M" ] }, "0020000D": { "vr": "UI", "Value": [ "1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604" ] }, "0020000E": { "vr": "UI", "Value": [ "1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724" ] }, "00280010": { "vr": "US", "Value": [ 1024 ] }, "00280011": { "vr": "US", "Value": [ 1024 ] }, "00280100": { "vr": "US", "Value": [ 8 ] } } ]
PowerShell
Para ver los metadatos de la instancia de DICOM que almacenaste, haz una solicitud
GET
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén de DICOM
En el siguiente ejemplo, se muestra una solicitud
GET
con Windows PowerShell para buscar instancias en el almacén de DICOM:$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/dicomStores/DICOM_STORE_ID/dicomWeb/instances"
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:
[ { "00080016": { "vr": "UI", "Value": [ "1.2.840.10008.5.1.4.1.1.7" ] }, "00080018": { "vr": "UI", "Value": [ "1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480" ] }, "00080060": { "vr": "CS", "Value": [ "DX" ] }, "00100020": { "vr": "LO", "Value": [ "1" ] }, "00100040": { "vr": "CS", "Value": [ "M" ] }, "0020000D": { "vr": "UI", "Value": [ "1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604" ] }, "0020000E": { "vr": "UI", "Value": [ "1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724" ] }, "00280010": { "vr": "US", "Value": [ 1024 ] }, "00280011": { "vr": "US", "Value": [ 1024 ] }, "00280100": { "vr": "US", "Value": [ 8 ] } } ]
Ahora que ya almacenaste y visualizaste una instancia de DICOM en la API de Cloud Healthcare, ve a Próximos pasos para obtener información sobre los próximos pasos.
Almacena y visualiza recursos de FHIR
En esta sección, se muestra cómo completar las siguientes tareas:
- Crea un almacén de FHIR.
- Almacena un recurso de FHIR en el almacén de FHIR.
- Ver los datos del recurso FHIR.
La API de Cloud Healthcare implementa el estándar de la especificación FHIR para almacenar datos FHIR y acceder a ellos.
Los almacenes de FHIR existen dentro de conjuntos de datos y contienen recursos de FHIR. Puedes crear un almacén de FHIR con el método
projects.locations.datasets.fhirStores.create
:curl
Para crear un almacén de FHIR, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- Un nombre para la tienda de FHIR. El ID del almacén de FHIR debe ser único en su conjunto de datos superior. Puede ser cualquier string Unicode de 1 a 256 caracteres que conste de números, letras, guiones bajos, guiones y puntos.
- La versión de FHIR del almacén de FHIR. Las opciones disponibles son
DSTU2
,STU3
oR4
. Para esta guía de inicio rápido, usaR4
.
En el siguiente ejemplo, se muestra una solicitud
POST
mediantecurl
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'version': 'R4' }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID"
Si la solicitud tiene éxito, se mostrará la siguiente respuesta en formato JSON en el servidor:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "version": "R4" }
PowerShell
Para crear un almacén de FHIR, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- Un nombre para la tienda de FHIR. El ID del almacén de FHIR debe ser único en su conjunto de datos superior. Puede ser cualquier string Unicode de 1 a 256 caracteres que conste de números, letras, guiones bajos, guiones y puntos.
- La versión de FHIR del almacén de FHIR:
DSTU2
,STU3
oR4
En el siguiente ejemplo, se muestra una solicitud
POST
mediante Windows PowerShell.$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body "{ 'version': 'R4' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID" | Select-Object -Expand Content
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "version": "R4" }
Guarda el archivo de recursos JSON de muestra de FHIR. El archivo contiene datos básicos para un recurso del paciente.
Ejecuta el siguiente comando para almacenar el recurso del paciente en el almacén de FHIR que creaste:
curl
Para crear el recurso del paciente a partir del archivo de muestra, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén FHIR
- El nombre de archivo y la ubicación del archivo de recursos de FHIR en tu máquina
En el siguiente ejemplo, se muestra cómo enviar una solicitud
POST
concurl
para crear el recurso del paciente:curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/fhir+json; charset=utf-8" \ --data @Patient.json \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"
Si la solicitud tiene éxito, en el servidor se mostrará la siguiente respuesta:
{ "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "meta": { "lastUpdated": "LAST_UPDATED", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }
PowerShell
Para crear el recurso del paciente a partir del archivo de muestra, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén FHIR
- El nombre de archivo y la ubicación del archivo de recursos de FHIR en tu máquina
En el siguiente ejemplo, se muestra cómo enviar una solicitud
POST
con Windows PowerShell para crear el recurso del paciente:$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/dicom" ` -InFile Patient.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
Si la solicitud tiene éxito, en el servidor se mostrará la siguiente respuesta:
{ "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "meta": { "lastUpdated": "LAST_UPDATED", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }
Busca el recurso en tu almacén de FHIR para ver información sobre el paciente:
curl
Para buscar el recurso del paciente y ver sus detalles, realiza una solicitud
GET
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén FHIR
- Una cadena de consulta que contenga la información que estás buscando. En esta muestra, buscarás el apellido del paciente.
En el siguiente ejemplo, se muestra una solicitud
GET
mediantecurl
para buscar todos los pacientes con el apellido "Smith".curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?family:exact=Smith"
Si la solicitud es exitosa, el servidor mostrará la respuesta como un
Bundle
de FHIR en formato JSON.Bundle.type
essearchset
y los resultados de la búsqueda son entradas en el arregloBundle.entry
. En este ejemplo, la solicitud muestra un solo recurso Patient que incluye los datos dentro de ese recurso:{ "entry": [ { "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID", "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "meta": { "lastUpdated": "LAST_UPDATED", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }, "search": { "mode": "match" } } ], "link": [ { "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith" } ], "resourceType": "Bundle", "total": 1, "type": "searchset" }
PowerShell
Para buscar el recurso del paciente y ver sus detalles, realiza una solicitud
GET
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén FHIR
- Una cadena de consulta que contenga la información que estás buscando. En esta muestra, buscarás el apellido del paciente.
En el siguiente ejemplo, se muestra una solicitud
GET
mediante Windows PowerShell para buscar todos los pacientes con el apellido "Smith".$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE?family:exact=Smith" | ConvertTo-Json
Si la solicitud es exitosa, el servidor mostrará la respuesta como un
Bundle
de FHIR en formato JSON.Bundle.type
essearchset
y los resultados de la búsqueda son entradas en el arregloBundle.entry
. En este ejemplo, la solicitud muestra un solo recurso Patient que incluye los datos dentro de ese recurso:{ "entry": [ { "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID", "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "meta": { "lastUpdated": "LAST_UPDATED", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }, "search": { "mode": "match" } } ], "link": [ { "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith" } ], "resourceType": "Bundle", "total": 1, "type": "searchset" }
Ahora que ya almacenaste y visualizaste un recurso de FHIR en la API de Cloud Healthcare, ve a Próximos pasos para obtener información sobre los próximos pasos.
Almacenamiento y visualización de mensajes HL7v2
En esta sección, se muestra cómo completar las siguientes tareas:
- Crea una tienda de HL7v2
- Almacena un mensaje HL7v2 en el almacén de HL7v2.
- Ver los datos del mensaje de HL7v2.
La implementación de HL7v2 en la API de Cloud Healthcare se alinea con el estándar HL7v2.
Los almacenes HL7v2 existen dentro de conjuntos de datos y contienen mensajes HL7v2. Puedes crear un almacén de HL7v2 con el método
projects.locations.datasets.hl7V2Stores.create
.curl
Para borrar un almacén HL7v2, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- Es un nombre para el almacén HL7v2. El ID de almacén de HL7v2 debe ser único en su conjunto de datos superior. Puede ser cualquier string Unicode de 1 a 256 caracteres que conste de números, letras, guiones bajos, guiones y puntos.
En el siguiente ejemplo, se muestra una solicitud
POST
mediantecurl
:curl -X POST \ --data "" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores?hl7V2StoreId=HL7V2_STORE_ID"
Si la solicitud tiene éxito, se mostrará la siguiente respuesta en formato JSON en el servidor:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID" }
PowerShell
Para borrar un almacén HL7v2, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- Es un nombre para el almacén HL7v2. El ID de almacén de HL7v2 debe ser único en su conjunto de datos superior. Puede ser cualquier string Unicode de 1 a 256 caracteres que conste de números, letras, guiones bajos, guiones y puntos.
En el siguiente ejemplo, se muestra una solicitud
POST
mediante Windows PowerShell.$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores?hl7V2StoreId=HL7V2_STORE_ID" | Select-Object -Expand Content
Si la solicitud tiene éxito, en el servidor se mostrará una respuesta similar a la siguiente muestra en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID" }
Descarga el archivo de mensaje de HL7v2 de muestra en tu máquina. El mensaje contiene la siguiente información básica, en la que se codifica en el formato base64 en el campo
data
del archivo de muestra:MSH|^~\&|A|SEND_FACILITY|A|A|20180101000000||TYPE^A|20180101000000|T|0.0|||AA||00|ASCII EVN|A00|20180101040000 PID||14^111^^^^MRN|11111111^^^^MRN~1111111111^^^^ORGNMBR
Hay dos métodos para almacenar un mensaje HL7v2: creación y transferencia. Consulta Descripción general para crear y transferir mensajes HL7v2 para obtener más información. En esta muestra, almacenas el mensaje de HL7v2 con el método de creación, ya que el método de transferencia suele consumir un mensaje de HL7v2 que proviene de un centro de atención.
Ejecuta el siguiente comando para almacenar el mensaje de HL7v2 en el almacén de HL7v2 que creaste:
curl
Para almacenar el mensaje HL7v2, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén de HL7v2
- El nombre y la ubicación del archivo de mensajes de HL7v2 en tu máquina
En el siguiente ejemplo, se muestra una solicitud
POST
mediantecurl
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data-binary @hl7v2-sample.json \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages"
Si la solicitud tiene éxito, en el servidor se mostrará la siguiente respuesta en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID", "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=", "sendFacility": "SEND_FACILITY", "sendTime": "2018-01-01T00:00:00Z", "messageType": "TYPE", "createTime": "CREATE_TIME", "patientIds": [ { "value": "14\u0001111", "type": "MRN" }, { "value": "11111111", "type": "MRN" }, { "value": "1111111111", "type": "ORGNMBR" } ] }
PowerShell
Para almacenar el mensaje HL7v2, realiza una solicitud
POST
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén de HL7v2
- El nombre y la ubicación del archivo de mensajes de HL7v2 en tu máquina
En el siguiente ejemplo, se muestra una solicitud
POST
mediante Windows PowerShell.$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile hl7v2-sample.json ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages" | Select-Object -Expand Content
Si la solicitud tiene éxito, en el servidor se mostrará la siguiente respuesta en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID", "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=", "sendFacility": "SEND_FACILITY", "sendTime": "2018-01-01T00:00:00Z", "messageType": "TYPE", "createTime": "CREATE_TIME", "patientIds": [ { "value": "14\u0001111", "type": "MRN" }, { "value": "11111111", "type": "MRN" }, { "value": "1111111111", "type": "ORGNMBR" } ] }
Con el MESSAGE_ID de la respuesta que recibiste cuando creaste el mensaje, ejecuta el siguiente comando para ver los detalles del mensaje:
curl
Para obtener el contenido del mensaje de HL7v2, realiza una solicitud
GET
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén de HL7v2
- El ID del mensaje
En el siguiente ejemplo, se muestra una solicitud
GET
mediantecurl
: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/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID"
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID", "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=", "sendFacility": "SEND_FACILITY", "sendTime": "2018-01-01T00:00:00Z", "messageType": "TYPE", "createTime": "CREATE_TIME", "patientIds": [ { "value": "14\u0001111", "type": "MRN" }, { "value": "11111111", "type": "MRN" }, { "value": "1111111111", "type": "ORGNMBR" } ], "parsedData": { "segments": [ { "segmentId": "MSH", "fields": { "5": "A", "8.1": "TYPE", "6": "20180101000000", "8.2": "A", "3": "SEND_FACILITY", "4": "A", "11": "0.0", "10": "T", "1": "^~\\&", "17": "ASCII", "2": "A", "0": "MSH", "14": "AA", "9": "20180101000000", "16": "00" } }, { "segmentId": "EVN", "fields": { "2": "20180101040000", "0": "EVN", "1": "A00" } }, { "segmentId": "PID", "fields": { "3[0].5": "MRN", "3[1].1": "1111111111", "3[1].5": "ORGNMBR", "0": "PID", "2.1": "14\u0001111", "2.5": "MRN", "3[0].1": "11111111" } } ] } }
PowerShell
Para obtener el contenido del mensaje de HL7v2, realiza una solicitud
GET
y especifica la siguiente información:- El nombre y la ubicación del conjunto de datos superior
- El nombre del almacén de HL7v2
- El ID del mensaje
En el siguiente ejemplo, se muestra una solicitud
GET
mediante Windows PowerShell.$cred = gcloud auth application-default 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/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID" | Select-Object -Expand Content
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID", "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=", "sendFacility": "SEND_FACILITY", "sendTime": "2018-01-01T00:00:00Z", "messageType": "TYPE", "createTime": "CREATE_TIME", "patientIds": [ { "value": "14\u0001111", "type": "MRN" }, { "value": "11111111", "type": "MRN" }, { "value": "1111111111", "type": "ORGNMBR" } ], "parsedData": { "segments": [ { "segmentId": "MSH", "fields": { "5": "A", "8.1": "TYPE", "6": "20180101000000", "8.2": "A", "3": "SEND_FACILITY", "4": "A", "11": "0.0", "10": "T", "1": "^~\\&", "17": "ASCII", "2": "A", "0": "MSH", "14": "AA", "9": "20180101000000", "16": "00" } }, { "segmentId": "EVN", "fields": { "2": "20180101040000", "0": "EVN", "1": "A00" } }, { "segmentId": "PID", "fields": { "3[0].5": "MRN", "3[1].1": "1111111111", "3[1].5": "ORGNMBR", "0": "PID", "2.1": "14\u0001111", "2.5": "MRN", "3[0].1": "11111111" } } ] } }
Ahora que almacenaste y viste un mensaje de HL7v2 en la API de Cloud Healthcare, continúa con Próximos pasos para obtener información sobre los próximos pasos.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos utilizados en este instructivo, puedes limpiar los recursos que creaste en Google Cloud. Si creaste un proyecto nuevo para este instructivo, sigue los pasos en Borra el proyecto. De lo contrario, sigue los pasos en Borra el conjunto de datos.
Borra el proyecto
- En Cloud Console, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Borra el conjunto de datos
Si ya no necesitas el conjunto de datos que creaste en esta guía de inicio rápido, puedes borrarlo. Si borras un conjunto de datos, se borrará de forma permanente, junto con todas los almacenes de FHIR, HL7v2 o DICOM que contenga.
curl
Para borrar un conjunto de datos, haz una solicitud DELETE
y proporciona el nombre y la ubicación. En el siguiente ejemplo, se muestra una solicitud DELETE
con curl
:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID"
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:
{}
PowerShell
Para borrar un conjunto de datos, realiza una solicitud DELETE
y proporciona el nombre y la ubicación del conjunto de datos. En el siguiente ejemplo, se muestra una solicitud DELETE
con Windows PowerShell:
$cred = gcloud auth application-default 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" | Select-Object -Expand Content
Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:
{}
¿Cómo fue?
¿Qué sigue?
Consulta las secciones siguientes para obtener información general sobre la API de Cloud Healthcare y cómo realizar tareas con Cloud Console y la herramienta de línea de comandos de gcloud
:
- Lee una descripción general de los conceptos de la API de Cloud Healthcare
- Usa la API de Cloud Healthcare con Cloud Console
- Usa la API de Cloud Healthcare con la herramienta de
gcloud
DICOM
Continúa con la guía de DICOM para revisar temas como los siguientes:
- Cómo administrar y personalizar almacenes DICOM
- Conecta un PACS a la API de Cloud Healthcare
- Usa el estándar DICOMweb
- Importa y exporta datos de DICOM con Cloud Storage
Consulta la declaración de conformidad de DICOM para obtener información sobre cómo la API de Cloud Healthcare implementa el estándar DICOMweb.
FHIR
Continúa con la guía de FHIR para revisar temas como los siguientes:
- Cómo administrar y personalizar almacenes de FHIR
- Crea y administra recursos de FHIR
- Importa y exporta datos de FHIR con Cloud Storage
Consulta la declaración de conformidad de FHIR para obtener información sobre cómo la API de Cloud Healthcare implementa el estándar FHIR.
HL7v2
Continúa con la guía de HL7v2 para revisar temas como los siguientes:
- Cómo administrar y personalizar tiendas HL7v2
- Crea y administra mensajes HL7v2
- Transmite mensajes HL7v2 a través de conexiones TCP/IP
- Importa y exporta mensajes HL7v2 mediante Cloud Storage