Guía de inicio rápido para curl o Windows PowerShell

En esta página, se muestra cómo usar la API de Cloud Healthcare con curl o Windows PowerShell para completar las siguientes tareas:

  1. Crea un conjunto de datos de la API de Cloud Healthcare.
  2. Crea uno de los siguientes almacenes de datos dentro del conjunto de datos:
    • Tienda de imágenes digitales y comunicación en medicina (DICOM)
    • Almacén de recursos de interoperabilidad para atención médica rápida (FHIR)
    • Almacén de versión internacional 2 de nivel 7 (HL7v2)
  3. Almacenar e inspeccionar un tipo particular de datos médicos en el almacén DICOM, FHIR o HL7v2

Si solo deseas trabajar con un tipo de almacén de datos, puedes pasar directamente a esa sección de la guía de inicio rápido después de completar los pasos en Antes de comenzar y Crear un conjunto de datos.

Antes de comenzar

  1. 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.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Habilita las Cloud Healthcare API.

    Habilita la API

  5. Instala e inicializa el SDK de Cloud.
  6. Usa la herramienta de línea de comandos de gcloud para probar tu 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.

Cree un conjunto de datos

Los conjuntos de datos contienen almacenes de datos, que contienen datos de atención médica. Para usar la API de Cloud Healthcare, debes crear al menos un conjunto de datos.

Para crear un conjunto de datos, usa el método datasets.create:

curl

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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos. Usarus-central1 .us-west2 .us-east4 .europe-west2 ,europe-west3 .europe-west4 .europe-west6 .northamerica-northeast1 ,southamerica-east1 .asia-east2 .asia-northeast1 ,asia-northeast3 .asia-south1 .asia-southeast1 .australia-southeast1 ous ,
  • DATASET_ID: Un identificador para el conjunto de datos. El ID del conjunto de datos debe tener las siguientes características:
    • Un ID único en su ubicación
    • Una string de Unicode de 1 a 256 caracteres que consta de lo siguiente:
      • Números
      • Letras
      • Guiones bajos
      • Guiones
      • Puntos

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 hacer un seguimiento del estado de la operación, usa el método operations.get:

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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • OPERATION_ID: El ID que muestra la operación de larga duración

Este es el resultado. La operación finaliza 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

$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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos

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 hacer un seguimiento del estado de la operación, usa el método operations.get:

$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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • OPERATION_ID: El ID que muestra la operación de larga duración

Este es el resultado. La operación finaliza 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"
  }
}

Para completar esta guía de inicio rápido, elige una de las siguientes secciones:

Almacena y visualiza una instancia de DICOM

En esta sección, se muestra cómo completar las siguientes tareas:

  1. Crea un almacén de DICOM.
  2. Almacena una instancia de DICOM en el almacén de DICOM.
  3. Ver los metadatos de la instancia de DICOM.

La API de Cloud Healthcare implementa el estándar DICOMweb para almacenar y acceder a datos de imágenes médicas.

Crea una tienda de DICOM

Existen almacenes de DICOM dentro de los conjuntos de datos y contienen instancias de DICOM. Crea un almacén DICOM mediante el método projects.locations.datasets.dicomStores.create:

curl

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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • DICOM_STORE_ID: Un identificador para el almacén de DICOM. El ID de almacén de DICOM debe tener lo siguiente:
    • Un ID único en su conjunto de datos
    • Una string de Unicode de 1 a 256 caracteres que consta de lo siguiente:
      • Números
      • Letras
      • Guiones bajos
      • Guiones
      • Puntos

Este es el resultado:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID"
}

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • DICOM_STORE_ID: Un identificador para el almacén de DICOM. El ID de almacén de DICOM debe tener lo siguiente:
    • Un ID único en su conjunto de datos
    • Una string de Unicode de 1 a 256 caracteres que consta de lo siguiente:
      • Números
      • Letras
      • Guiones bajos
      • Guiones
      • Puntos

Este es el resultado:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID"
}

Almacena una instancia de DICOM

  1. Descarga el archivo de instancia de muestra de DICOM en tu máquina. El archivo contiene un radio desidentificado de rayos X.

  2. Almacena la instancia de DICOM en el almacén de DICOM. En esta guía de inicio rápido, se supone que ejecutas el comando desde el mismo directorio en el que se guardó la instancia de DICOM.

    curl

    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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • LOCATION: Es la ubicación del conjunto de datos.
    • DATASET_ID: El ID del conjunto de datos
    • DICOM_STORE_ID: Es el ID del almacén de DICOM.

    El resultado es el siguiente 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

    $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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • LOCATION: Es la ubicación del conjunto de datos.
    • DATASET_ID: El ID del conjunto de datos
    • DICOM_STORE_ID: Es el ID del almacén de DICOM.

    El resultado es el siguiente 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>
    

Ver metadatos de instancias de DICOM

Busca instancias en el almacén de DICOM para ver los metadatos de la instancia que almacenaste:

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/dicomStores/DICOM_STORE_ID/dicomWeb/instances"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • DICOM_STORE_ID: Es el ID del almacén de DICOM.

Este es el resultado:

[
  {
    "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

$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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • DICOM_STORE_ID: Es el ID del almacén de DICOM.

Este es el resultado:

[
  {
    "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 almacenaste y viste una instancia de DICOM en la API de Cloud Healthcare, continúa con 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:

  1. Crea un almacén de FHIR.
  2. Almacena un recurso de FHIR en el almacén de FHIR.
  3. Ver los datos del recurso FHIR.

La API de Cloud Healthcare implementa el estándar de especificación FHIR para almacenar y acceder a datos de FHIR.

Crea una tienda de FHIR

Existen almacenes de FHIR dentro de conjuntos de datos y contienen recursos de FHIR. Crea un almacén de FHIR mediante el método projects.locations.datasets.fhirStores.create:

curl

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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • FHIR_STORE_ID: Un identificador para el almacén de FHIR. El ID de almacén de FHIR debe tener lo siguiente:
    • Un ID único en su conjunto de datos
    • Una string de Unicode de 1 a 256 caracteres que consta de lo siguiente:
      • Números
      • Letras
      • Guiones bajos
      • Guiones
      • Puntos

Este es el resultado:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "version": "R4"
}

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • FHIR_STORE_ID: Un identificador para el almacén de FHIR. El ID de almacén de FHIR debe tener lo siguiente:
    • Un ID único en su conjunto de datos
    • Una string de Unicode de 1 a 256 caracteres que consta de lo siguiente:
      • Números
      • Letras
      • Guiones bajos
      • Guiones
      • Puntos

Este es el resultado:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "version": "R4"
}

Almacena un recurso de FHIR

  1. Guarda el archivo de recursos JSON de muestra de muestra. El archivo contiene datos básicos para un recurso de paciente.

  2. Ejecuta el siguiente comando para almacenar el recurso de paciente en el almacén de FHIR que creaste. En esta guía de inicio rápido, se supone que ejecutas el comando desde el mismo directorio en el que se guarda el recurso del paciente.

    curl

    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"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • LOCATION: Es la ubicación del conjunto de datos.
    • DATASET_ID: El ID del conjunto de datos
    • FHIR_STORE_ID: Es el ID del almacén de FHIR.

    Este es el resultado:

    {
      "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

    $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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • LOCATION: Es la ubicación del conjunto de datos.
    • DATASET_ID: El ID del conjunto de datos
    • FHIR_STORE_ID: Es el ID del almacén de FHIR.

    Este es el resultado:

    {
      "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"
    }
    

Ver contenido de recursos de FHIR

Busca el recurso en tu almacén de FHIR para ver información sobre el paciente. En los siguientes ejemplos, se muestra cómo buscar a todos los pacientes con el apellido “Smith”.

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?family:exact=Smith"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • FHIR_STORE_ID: Es el ID del almacén de FHIR.

Si la solicitud es exitosa, el servidor mostrará la respuesta como un Bundle de FHIR en formato JSON. Bundle.type es searchset y los resultados de la búsqueda son entradas en el arreglo Bundle.entry. En este ejemplo, la solicitud muestra un solo recurso Patient que incluye los datos dentro de ese recurso:

{
  "entry": [
    {
      "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
      "resource": {
        "birthDate": "1970-01-01",
        "gender": "female",
        "id": "PATIENT_ID",
        "meta": {
          "lastUpdated": "LAST_UPDATED",
          "versionId": "VERSION_ID"
        },
        "name": [
          {
            "family": "Smith",
            "given": [
              "Darcy"
            ],
            "use": "official"
          }
        ],
        "resourceType": "Patient"
      },
      "search": {
        "mode": "match"
      }
    }
  ],
  "link": [
    {
      "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith"
    }
  ],
  "resourceType": "Bundle",
  "total": 1,
  "type": "searchset"
}

PowerShell

$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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • FHIR_STORE_ID: Es el ID del almacén de FHIR.

Si la solicitud es exitosa, el servidor mostrará la respuesta como un Bundle de FHIR en formato JSON. Bundle.type es searchset y los resultados de la búsqueda son entradas en el arreglo Bundle.entry. En este ejemplo, la solicitud muestra un solo recurso Patient que incluye los datos dentro de ese recurso:

{
  "entry": [
    {
      "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
      "resource": {
        "birthDate": "1970-01-01",
        "gender": "female",
        "id": "PATIENT_ID",
        "meta": {
          "lastUpdated": "LAST_UPDATED",
          "versionId": "VERSION_ID"
        },
        "name": [
          {
            "family": "Smith",
            "given": [
              "Darcy"
            ],
            "use": "official"
          }
        ],
        "resourceType": "Patient"
      },
      "search": {
        "mode": "match"
      }
    }
  ],
  "link": [
    {
      "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith"
    }
  ],
  "resourceType": "Bundle",
  "total": 1,
  "type": "searchset"
}

Ahora que almacenaste y viste un recurso de FHIR en la API de Cloud Healthcare, continúa con Próximos pasos para obtener información sobre los próximos pasos.

Almacena y visualiza un mensaje HL7v2

En esta sección, se muestra cómo completar las siguientes tareas:

  1. Crea una tienda de HL7v2
  2. Almacena un mensaje de HL7v2 en el almacén de HL7v2.
  3. Puede ver los datos del mensaje HL7 v2.

La implementación de HL7v2 en la API de Cloud Healthcare se alinea con el estándar HL7v2.

Crea una tienda de HL7v2

Los almacenes HL7v2 existen dentro de conjuntos de datos y contienen mensajes HL7v2. Crea un almacén HL7v2 con el método projects.locations.datasets.hl7V2Stores.create:

curl

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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • HL7V2_STORE_ID: Un identificador para el almacén HL7v2. El ID de almacén de HL7v2 debe tener lo siguiente:
    • Un ID único en su conjunto de datos
    • Una string de Unicode de 1 a 256 caracteres que consta de lo siguiente:
      • Números
      • Letras
      • Guiones bajos
      • Guiones
      • Puntos

Este es el resultado:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"
}

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • HL7V2_STORE_ID: Un identificador para el almacén HL7v2. El ID de almacén de HL7v2 debe tener lo siguiente:
    • Un ID único en su conjunto de datos
    • Una string de Unicode de 1 a 256 caracteres que consta de lo siguiente:
      • Números
      • Letras
      • Guiones bajos
      • Guiones
      • Puntos

Este es el resultado:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"
}

Crear un mensaje HL7v2

  1. Descarga el archivo de mensajes de ejemplo HL7v2 a tu máquina. El mensaje contiene la siguiente información básica, en la que está codificado en 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
    
  2. Existen dos métodos para almacenar un mensaje HL7v2: creación y transferencia. Consulta la página Descripción general de la creación y transferencia de mensajes de HL7v2 para obtener más información. En esta muestra, debes almacenar el mensaje HL7v2 mediante el método create, ya que el método de transferencia suele consumir un mensaje HL7v2 que proviene de un centro de atención.

    Ejecute el siguiente comando para almacenar el mensaje HL7v2 en el almacén HL7v2 que creó. En esta guía de inicio rápido, se supone que ejecutas el comando desde el mismo directorio en el que se guarda el archivo de mensajes HL7v2.

    curl

    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"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • LOCATION: Es la ubicación del conjunto de datos.
    • DATASET_ID: El ID del conjunto de datos
    • HL7V2_STORE_ID: Es el ID de almacén de HL7v2.

    Este es el resultado:

    {
      "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

    $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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • LOCATION: Es la ubicación del conjunto de datos.
    • DATASET_ID: El ID del conjunto de datos
    • HL7V2_STORE_ID: Es el ID de almacén de HL7v2.

    Este es el resultado:

    {
      "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"
        }
      ]
    }
    

Puede ver el contenido de los mensajes HL7 v2

Con el MESSAGE_ID de la respuesta que recibiste cuando creaste el mensaje, ejecuta el siguiente comando para ver los detalles del mensaje:

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/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • HL7V2_STORE_ID: Es el ID de almacén de HL7v2.
  • MESSAGE_ID: El ID del mensaje

Este es el resultado:

{
  "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

$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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos
  • HL7V2_STORE_ID: Es el ID de almacén de HL7v2.
  • MESSAGE_ID: El ID del mensaje

Este es el resultado:

{
  "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 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

  1. En Cloud Console, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. 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

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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos

Este es el resultado:

{}

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación del conjunto de datos.
  • DATASET_ID: El ID del conjunto de datos

Este es el resultado:

{}

¿Cómo fue?

¿Qué sigue?

Consulta las siguientes secciones 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:

DICOM

Siga con la guía de DICOM para revisar temas como los siguientes:

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 en la guía de FHIR para revisar temas como los siguientes:

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: