Guide de démarrage rapide avec curl ou PowerShell

Cette page explique comment utiliser l'API Cloud Healthcare avec curl ou Windows PowerShell pour effectuer les tâches suivantes:

  1. Créer un ensemble de données pour l'API Cloud Healthcare
  2. Créez l'un des datastores suivants dans l'ensemble de données:
    • Magasin DICOM (imagerie numérique et communications en médecine)
    • Magasin FHIR (FHIR)
    • Magasin de la version 2 de l'API Health Level Sept International (HL7v2)
  3. Stocker et inspecter un type particulier de données médicales dans le magasin DICOM, FHIR ou HL7v2

Si vous ne souhaitez travailler qu'avec un seul type de datastore, vous pouvez passer directement à cette section du guide de démarrage rapide après avoir suivi les étapes décrites dans les sections Avant de commencer et Créer un ensemble de données

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Activez Cloud Healthcare API.

    Activer l'API

  5. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  6. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  7. Activez Cloud Healthcare API.

    Activer l'API

  8. Installez et initialisez le SDK Cloud.
  9. Testez l'environnement d'authentification à l'aide de l'outil de ligne de commande gcloud. Vérifiez que la commande suivante génère une chaîne de texte sans erreur:
    gcloud auth application-default print-access-token

Conseil : Vous avez besoin d'une invite de commande ? Vous pouvez utiliser Google Cloud Shell. Cloud Shell est un environnement de ligne de commande qui inclut déjà le SDK Cloud. Vous n'avez donc pas besoin de l'installer. (Le SDK Cloud est également préinstallé sur les machines virtuelles Compute Engine.)

Créer un ensemble de données

Les ensembles de données contiennent des datastores, et ceux-ci contiennent des données de santé. Pour utiliser l'API Cloud Healthcare, vous devez créer au moins un ensemble de données.

Créez un ensemble de données à l'aide de la méthode 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/us-central1/datasets?datasetId=my-dataset"

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

La réponse est la suivante. La réponse contient un identifiant pour une opération de longue durée. Les opérations de longue durée sont renvoyées lorsque les appels de méthode peuvent prendre un temps considérable.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID",
}

Dans ce résultat :

  • PROJECT_ID, us-central1, my-dataset: valeurs que vous avez fournies dans l'appel de méthode
  • OPERATION_ID: identifiant de l'opération de longue durée fournie par l'API Cloud Healthcare

Pour suivre l'état de l'opération, utilisez la méthode operations.get:

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID"

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre projet Google Cloud
  • OPERATION_ID: ID renvoyé par l'opération de longue durée

Le résultat est le suivant. Si la réponse contient "done": true, l'opération est terminée. Si ce n'est pas le cas, l'opération est toujours en cours d'exécution. Patientez quelques secondes, puis appelez à nouveau la méthode operations.get.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/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/us-central1/datasets/my-dataset"
  }
}

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/us-central1/datasets?datasetId=my-dataset" | Select-Object -Expand Content

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

La réponse est la suivante. La réponse contient un identifiant pour une opération de longue durée. Les opérations de longue durée sont renvoyées lorsque les appels de méthode peuvent prendre un temps considérable.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID",
}

Dans ce résultat :

  • PROJECT_ID, us-central1, my-dataset: valeurs que vous avez fournies dans l'appel de méthode
  • OPERATION_ID: identifiant de l'opération de longue durée fournie par l'API Cloud Healthcare

Pour suivre l'état de l'opération, utilisez la méthode 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/us-central1/datasets/my-dataset/operations/OPERATION_ID" | Select-Object -Expand Content

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre projet Google Cloud
  • OPERATION_ID: ID renvoyé par l'opération de longue durée

Le résultat est le suivant. Si la réponse contient "done": true, l'opération est terminée. Si ce n'est pas le cas, l'opération est toujours en cours d'exécution. Patientez quelques secondes, puis appelez à nouveau la méthode operations.get.

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/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/us-central1/datasets/my-dataset"
  }
}

Pour suivre ce guide de démarrage rapide, choisissez l'une des sections suivantes:

Stocker et afficher une instance DICOM

Cette section explique comment effectuer les tâches suivantes:

  1. Créer un magasin DICOM.
  2. Stocker une instance DICOM dans le magasin DICOM.
  3. Affichez les métadonnées de l'instance DICOM.

L'API Cloud Healthcare met en œuvre la norme DICOMweb pour stocker les données d'imagerie médicale et y accéder.

Créer un magasin DICOM

Les magasins DICOM existent dans des ensembles de données et contiennent des instances DICOM. Créez un magasin DICOM à l'aide de la méthode 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/us-central1/datasets/my-dataset/dicomStores?dicomStoreId=my-dicom-store"

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store"
}

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/us-central1/datasets/my-dataset/dicomStores?dicomStoreId=my-dicom-store" | Select-Object -Expand Content

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store"
}

Stocker une instance DICOM

  1. Téléchargez l'exemple de fichier d'instance DICOM sur votre ordinateur. Le fichier contient une radiographie du patient anonymisée.

    curl

    curl -O https://cloud.google.com/healthcare/docs/resources/dicom_00000001_000.dcm
    

    PowerShell

    Invoke-WebRequest -Uri "https://cloud.google.com/healthcare/docs/resources/dicom_00000001_000.dcm" -OutFile $pwd/dicom_00000001_000.dcm
    
  2. Stockez l'instance DICOM à l'aide de la méthode dicomStores.storeInstances. Dans ce guide de démarrage rapide, nous partons du principe que vous exécutez la commande à partir du répertoire dans lequel vous avez téléchargé l'instance 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/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/studies
    

    Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

    Le résultat est au format XML suivant:

    <NativeDicomModel>
      <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
        <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/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/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/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/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/studies" | Select-Object -Expand Content
    

    Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

    Le résultat est au format XML suivant:

    <NativeDicomModel>
      <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
        <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/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/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/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>
    

Afficher les métadonnées d'instance DICOM

Affichez les métadonnées de l'instance à l'aide de la méthode dicomStores.searchForInstances:

curl

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/instances"

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

[
  {
    "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/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb/instances"

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

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

Maintenant que vous avez stocké et consulté une instance DICOM dans l'API Cloud Healthcare, passez à la section Étapes suivantes pour plus d'informations sur les étapes suivantes.

Stocker et afficher des ressources FHIR

Cette section explique comment effectuer les tâches suivantes:

  1. Créez un magasin FHIR.
  2. Stocker une ressource FHIR dans le magasin FHIR
  3. Afficher les données de la ressource FHIR.

L'API Cloud Healthcare met en œuvre la norme de spécification FHIR pour stocker les données FHIR et y accéder.

Créer un magasin FHIR

Les magasins FHIR existent dans des ensembles de données et contiennent des ressources FHIR. Créez un magasin FHIR à l'aide de la méthode 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/us-central1/datasets/my-dataset/fhirStores?fhirStoreId=my-fhir-store"

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store",
  "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/us-central1/datasets/my-dataset/fhirStores?fhirStoreId=my-fhir-store" | Select-Object -Expand Content

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store",
  "version": "R4"
}

Stocker une ressource FHIR

  1. Téléchargez l'exemple de fichier de ressources FHIR JSON. Le fichier contient des données de base pour une ressource Patient.

    curl

    curl -O https://cloud.google.com/healthcare/docs/resources/Patient.json
    

    PowerShell

    Invoke-WebRequest -Uri "https://cloud.google.com/healthcare/docs/resources/Patient.json" -OutFile $pwd/Patient.json
    
  2. Stockez la ressource Patient à l'aide de la méthode fhir.create. Ce guide de démarrage rapide suppose que vous exécutez la commande à partir du répertoire dans lequel vous avez téléchargé la ressource Patient.

    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/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient"
    

    Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

    Le résultat est le suivant :

    {
      "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/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient" | Select-Object -Expand Content
    

    Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

    Le résultat est le suivant :

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

Afficher le contenu des ressources FHIR

Affichez des informations sur la ressource Patient à l'aide de la méthode fhir.search. Les exemples suivants montrent comment rechercher toutes les ressources Patient portant le nom "Smith".

curl

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient?family:exact=Smith"

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le serveur renvoie la réponse au format JSON Bundle. Le Bundle.type est searchset et les résultats de recherche sont des entrées du tableau Bundle.entry. Dans cet exemple, la requête renvoie une seule ressource "Patient" incluant les données qu'elle contient :

{
  "entry": [
    {
      "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/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/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/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/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/RESOURCE_TYPE?family:exact=Smith" | ConvertTo-Json

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le serveur renvoie la réponse au format JSON Bundle. Le Bundle.type est searchset et les résultats de recherche sont des entrées du tableau Bundle.entry. Dans cet exemple, la requête renvoie une seule ressource "Patient" incluant les données qu'elle contient :

{
  "entry": [
    {
      "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/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/us-central1/datasets/my-dataset/fhirStores/my-fhir-store/fhir/Patient/?family%3Aexact=Smith"
    }
  ],
  "resourceType": "Bundle",
  "total": 1,
  "type": "searchset"
}

Maintenant que vous avez stocké et consulté une ressource FHIR dans l'API Cloud Healthcare, passez à la section Étapes suivantes pour plus d'informations sur les étapes suivantes.

Stocker et afficher un message HL7v2

Cette section explique comment effectuer les tâches suivantes:

  1. Créer un magasin HL7v2.
  2. Stockez un message HL7v2 dans le magasin HL7v2.
  3. Affichez les données du message HL7v2.

La mise en œuvre HL7v2 de l'API Cloud Healthcare est conforme à la norme HL7v2.

Créer un magasin HL7v2

Les magasins HL7v2 existent dans les ensembles de données et contiennent les messages HL7v2. Créez un magasin HL7v2 à l'aide de la méthode 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/us-central1/datasets/my-dataset/hl7V2Stores?hl7V2StoreId=my-hl7v2-store"

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store"
}

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/us-central1/datasets/my-dataset/hl7V2Stores?hl7V2StoreId=my-hl7v2-store" | Select-Object -Expand Content

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store"
}

Créer un message HL7v2

  1. Téléchargez l'exemple de fichier de message HL7v2 sur votre ordinateur:

    curl

    curl -O https://cloud.google.com/healthcare/docs/resources/hl7v2-sample.json
    

    PowerShell

    Invoke-WebRequest -Uri "https://cloud.google.com/healthcare/docs/resources/hl7v2-sample.json" -OutFile $pwd/hl7v2-sample.json
    

    Le message HL7v2 contient les informations de base suivantes, où il est encodé en base64 dans le champ data de l'exemple de fichier:

    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. Stockez le message HL7v2 à l'aide de la méthode messages.create. Dans ce guide de démarrage rapide, nous partons du principe que vous exécutez la commande à partir du répertoire dans lequel vous avez téléchargé le fichier de message 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/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages"
    

    Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

    Le résultat est le suivant :

    {
      "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/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"
        }
      ]
    }
    

    Dans ce résultat :

    • PROJECT_ID, us-central1, my-dataset, my-hl7v2-store: valeurs que vous avez fournies dans l'appel de méthode
    • MESSAGE_ID: identifiant du message HL7v2 fourni par l'API Cloud Healthcare
    • CREATE_TIME: un horodatage indiquant l'envoi du message à l'API Cloud Healthcare

    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/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages" | Select-Object -Expand Content
    

    Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

    Le résultat est le suivant :

    {
      "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/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"
        }
      ]
    }
    

    Dans ce résultat :

    • PROJECT_ID, us-central1, my-dataset, my-hl7v2-store: valeurs que vous avez fournies dans l'appel de méthode
    • MESSAGE_ID: identifiant du message HL7v2 fourni par l'API Cloud Healthcare
    • CREATE_TIME: un horodatage indiquant l'envoi du message à l'API Cloud Healthcare

Afficher le contenu du message HL7v2

Notez le MESSAGE_ID de la réponse que vous avez reçue lors de la création du message HL7v2. Affichez les détails du message HL7v2 à l'aide de la méthode messages.get.

curl

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages/MESSAGE_ID"

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud que vous avez créé ou sélectionné dans Avant de commencer
  • MESSAGE_ID: ID du message

Le résultat est le suivant :

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/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/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/messages/MESSAGE_ID" | Select-Object -Expand Content

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud que vous avez créé ou sélectionné dans Avant de commencer
  • MESSAGE_ID: ID du message

Le résultat est le suivant :

{
  "name": "projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store/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"
        }
      }
    ]
  }
}

Maintenant que vous avez stocké et consulté un message HL7v2 dans l'API Cloud Healthcare, passez à la section Étapes suivantes pour obtenir des informations sur les étapes suivantes.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette page soient facturées sur votre compte Google Cloud :

Si vous avez créé un projet pour ce guide de démarrage rapide, suivez la procédure décrite dans Supprimer le projet. Sinon, suivez la procédure décrite dans la section Supprimer l'ensemble de données.

Supprimer le projet

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer l'ensemble de données

Si vous n'avez plus besoin de l'ensemble de données créé dans ce guide de démarrage rapide, vous pouvez le supprimer. La suppression d'un ensemble de données entraîne la suppression définitive de l'ensemble de données et des datastores FHIR, HL7v2 ou DICOM qu'il contient.

curl

curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset"

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

{}

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/us-central1/datasets/my-dataset" | Select-Object -Expand Content

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé ou sélectionné dans la section Avant de commencer.

Le résultat est le suivant :

{}

Comment ça s'est passé ?

Étape suivante

Consultez les sections suivantes pour obtenir des informations générales sur l'API Cloud Healthcare et savoir comment effectuer des tâches à l'aide de Cloud Console et de l'outil de ligne de commande gcloud:

DICOM

Accédez au guide DICOM pour lire des sujets tels que les suivants:

Consultez la déclaration de conformité DICOM pour en savoir plus sur la mise en œuvre de la norme DICOMweb par l'API Cloud Healthcare.

FHIR

Accédez au guide FHIR pour lire des sujets tels que les suivants:

Consultez la déclaration de conformité FHIR pour en savoir plus sur la mise en œuvre de la norme FHIR par l'API Cloud Healthcare.

HL7v2

Accédez au guide HL7v2 pour lire des sujets tels que les suivants: