Guida rapida: archiviazione dei dati sanitari con curl e PowerShell

Archiviare dati sanitari con curl e PowerShell

Questa pagina mostra come utilizzare l'API Cloud Healthcare e curl o Windows PowerShell per completare le seguenti attività:

  1. Creare un set di dati dell'API Cloud Healthcare.
  2. Crea uno dei seguenti datastore all'interno del set di dati:
    • Archivio Digital Imaging and Communications in Medicine (DICOM)
    • Archivio Fast Healthcare Interoperability Resources (FHIR)
    • Archivio Health Level Seven International Version 2 (HL7v2)
  3. Archiviare e ispezionare un determinato tipo di dati medici nell'archivio DICOM, FHIR o HL7v2.

Se ti interessa lavorare con un solo tipo di datastore, puoi passare direttamente a quella sezione della guida rapida dopo aver completato i passaggi in Prima di iniziare e Creare un set di dati.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.

  4. Attiva Cloud Healthcare API.

    Abilita l'API

  5. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.

  7. Attiva Cloud Healthcare API.

    Abilita l'API

  8. Installa e inizializza l'interfaccia a riga di comando di Google Cloud.
  9. Utilizza l'interfaccia a riga di comando di Google Cloud per testare il tuo ambiente di autenticazione. Verifica che il seguente comando restituisca una stringa di testo senza errori:
    gcloud auth application-default print-access-token

Suggerimento: se hai bisogno di un prompt dei comandi, Puoi utilizzare Google Cloud Shell. Cloud Shell è un ambiente a riga di comando che include già l'interfaccia a riga di comando di Google Cloud, quindi non è necessario installarlo. L'interfaccia a riga di comando di Google Cloud è preinstallata anche sulle macchine virtuali di Compute Engine.

Crea un set di dati

I set di dati contengono datastore, i quali a loro volta contengono dati sanitari. Per utilizzare l'API Cloud Healthcare, devi creare almeno un set di dati.

Crea un set di dati utilizzando il metodo datasets.create:

Curling

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"

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

La risposta è la seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate di metodo possono richiedere molto tempo.

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

In questo output:

  • PROJECT_ID, us-central1, my-dataset: i valori che hai fornito nella chiamata al metodo
  • OPERATION_ID: un identificatore per l'operazione a lunga esecuzione fornita dall'API Cloud Healthcare

Per monitorare lo stato dell'operazione, utilizza il metodo 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"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione

L'output è il seguente. Se la risposta contiene "done": true, l'operazione è terminata. In caso contrario, l'operazione è ancora in esecuzione; attendi qualche secondo e chiama di nuovo il metodo 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/query/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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

La risposta è la seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate di metodo possono richiedere molto tempo.

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

In questo output:

  • PROJECT_ID, us-central1, my-dataset: i valori che hai fornito nella chiamata al metodo
  • OPERATION_ID: un identificatore per l'operazione a lunga esecuzione fornita dall'API Cloud Healthcare

Per monitorare lo stato dell'operazione, utilizza il metodo 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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione

L'output è il seguente. Se la risposta contiene "done": true, l'operazione è terminata. In caso contrario, l'operazione è ancora in esecuzione; attendi qualche secondo e chiama di nuovo il metodo 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/query/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"
  }
}

Per completare questa guida rapida, scegli una delle seguenti sezioni:

Archivia e visualizza un'istanza DICOM

Questa sezione mostra come completare le seguenti attività:

  1. Crea un archivio DICOM.
  2. Archiviare un'istanza DICOM nell'archivio DICOM.
  3. Visualizza i metadati dell'istanza DICOM.

L'API Cloud Healthcare implementa lo standard DICOMweb per archiviare e accedere ai dati di diagnostica per immagini.

Crea un archivio DICOM

Gli archivi DICOM esistono all'interno dei set di dati e contengono istanze DICOM. Crea un archivio DICOM utilizzando il metodo dicomStores.create:

Curling

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"

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

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

Archivia un'istanza DICOM

  1. Scarica il file di istanza DICOM di esempio sulla tua macchina. Il file contiene un paziente a raggi X anonimizzato.

    Curling

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

    PowerShell

    Invoke-WebRequest -Uri "https://cloud.google.com/healthcare-api/docs/resources/dicom_00000001_000.dcm" -OutFile $pwd/dicom_00000001_000.dcm
    
  2. Archivia l'istanza DICOM utilizzando il metodo dicomStores.storeInstances. Questa guida rapida presuppone che tu stia eseguendo il comando dalla stessa directory da cui hai scaricato l'istanza DICOM.

    Curling

    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
    

    Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

    L'output è il seguente in formato XML:

    <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
    

    Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

    L'output è il seguente in formato XML:

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

Visualizza i metadati dell'istanza DICOM

Visualizza i metadati dell'istanza utilizzando il metodo dicomStores.searchForInstances:

Curling

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"

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

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

Ora che hai archiviato e visualizzato un'istanza DICOM nell'API Cloud Healthcare, continua con la procedura di pulizia per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina.

Per ulteriori informazioni sull'utilizzo dei dati DICOM, vedi Prossimi contenuti.

Archivia e visualizza le risorse FHIR

Questa sezione mostra come completare le seguenti attività:

  1. Creare un archivio FHIR.
  2. Archivia una risorsa FHIR nell'archivio FHIR.
  3. Visualizza i dati FHIR della risorsa.

L'API Cloud Healthcare implementa lo standard specifica FHIR per archiviare e accedere ai dati FHIR.

Crea un archivio FHIR

Gli archivi FHIR esistono all'interno di set di dati e contengono risorse FHIR. Crea un archivio FHIR utilizzando il metodo fhirStores.create:

Curling

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"

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

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

Archivia una risorsa FHIR

  1. Scarica il file JSON delle risorse di esempio. Il file contiene dati di base per una risorsa paziente.

    Curling

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

    PowerShell

    Invoke-WebRequest -Uri "https://cloud.google.com/healthcare-api/docs/resources/Patient.json" -OutFile $pwd/Patient.json
    
  2. Archivia la risorsa Paziente utilizzando il metodo fhir.create. Questa guida rapida presuppone che tu stia eseguendo il comando dalla stessa directory da cui hai scaricato la risorsa Patient.

    Curling

    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"
    

    Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

    L'output è il seguente:

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

    Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

    L'output è il seguente:

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

Visualizza i contenuti della risorsa FHIR

Visualizza le informazioni sulla risorsa Paziente utilizzando il metodo fhir.search. I seguenti esempi mostrano come cercare tutte le risorse per i pazienti con il cognome "Smith".

Curling

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"

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

Il server restituisce la risposta come FHIR Bundle in formato JSON. Bundle.type è searchset e i risultati di ricerca sono voci nell'array Bundle.entry. In questo esempio, la richiesta restituisce una singola risorsa Paziente, inclusi i dati al suo interno:

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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

Il server restituisce la risposta come FHIR Bundle in formato JSON. Bundle.type è searchset e i risultati di ricerca sono voci nell'array Bundle.entry. In questo esempio, la richiesta restituisce una singola risorsa Paziente, inclusi i dati al suo interno:

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

Ora che hai archiviato e visualizzato una risorsa FHIR nell'API Cloud Healthcare, continua con la Pulizia per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina.

Per ulteriori informazioni sull'utilizzo dei dati FHIR, vedi Prossimi passaggi.

Archivia e visualizza un messaggio HL7v2

Questa sezione mostra come completare le seguenti attività:

  1. Crea un archivio HL7v2.
  2. Archivia un messaggio HL7v2 nell'archivio HL7v2.
  3. Visualizza i dati del messaggio HL7v2.

L'implementazione HL7v2 nell'API Cloud Healthcare è conforme allo standard HL7v2.

Crea un archivio HL7v2

Gli archivi HL7v2 esistono all'interno di set di dati e includono i messaggi HL7v2. Crea un archivio HL7v2 utilizzando il metodo hl7V2Stores.create:

Curling

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"

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

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

Crea un messaggio HL7v2

  1. Scarica il file di messaggio HL7v2 di esempio sul tuo computer:

    Curling

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

    PowerShell

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

    Il messaggio HL7v2 contiene le seguenti informazioni di base, in cui è codificato in base-64 nel campo data del file di esempio:

    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. Archivia il messaggio HL7v2 utilizzando il metodo messages.create. Questa guida rapida presuppone che tu stia eseguendo il comando dalla stessa directory da cui hai scaricato il file di messaggio HL7v2.

    Curling

    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"
    

    Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

    L'output è il seguente:

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

    In questo output:

    • PROJECT_ID, us-central1, my-dataset, my-hl7v2-store: i valori che hai fornito nella chiamata al metodo
    • MESSAGE_ID: un identificatore per il messaggio HL7v2 fornito dall'API Cloud Healthcare
    • CREATE_TIME: un timestamp di invio del messaggio all'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
    

    Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

    L'output è il seguente:

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

    In questo output:

    • PROJECT_ID, us-central1, my-dataset, my-hl7v2-store: i valori che hai fornito nella chiamata al metodo
    • MESSAGE_ID: un identificatore per il messaggio HL7v2 fornito dall'API Cloud Healthcare
    • CREATE_TIME: un timestamp di invio del messaggio all'API Cloud Healthcare

Visualizza il contenuto del messaggio HL7v2

Prendi nota di MESSAGE_ID della risposta che hai ricevuto quando hai creato il messaggio HL7v2. Visualizza i dettagli del messaggio HL7v2 utilizzando il metodo messages.get.

Curling

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"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare
  • MESSAGE_ID: l'ID del messaggio

L'output è il seguente:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare
  • MESSAGE_ID: l'ID del messaggio

L'output è il seguente:

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

Ora che hai archiviato e visualizzato un messaggio HL7v2 nell'API Cloud Healthcare, continua con la Pulizia per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina.

Per ulteriori informazioni sull'utilizzo dei dati HL7v2, vedi Prossimi passaggi.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

Se hai creato un nuovo progetto per questa guida rapida, segui i passaggi descritti in Eliminare il progetto. In caso contrario, segui la procedura descritta in Eliminare il set di dati.

Elimina il progetto

  1. Nella console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto da eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Eliminazione del set di dati

Se non hai più bisogno del set di dati creato in questa guida di avvio rapido, puoi eliminarlo. L'eliminazione di un set di dati elimina definitivamente il set di dati e tutti gli archivi FHIR, HL7v2 o DICOM che contiene.

Curling

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"

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

{}

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

Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato o selezionato in Prima di iniziare.

L'output è il seguente:

{}

Com'è andata?

Passaggi successivi

Consulta le sezioni seguenti per informazioni generali sull'API Cloud Healthcare e su come eseguire attività utilizzando la console e l'interfaccia a riga di comando di Google Cloud:

DICOM

Continua a leggere la guida DICOM per ulteriori informazioni su argomenti quali:

Leggi la dichiarazione di conformità DICOM per informazioni su come l'API Cloud Healthcare implementa lo standard DICOMweb.

FHIR

Continua a leggere la guida FHIR per ulteriori informazioni su argomenti quali:

Leggi la dichiarazione di conformità FHIR per informazioni su come l'API Cloud Healthcare implementa lo standard FHIR.

HL7v2

Continua a leggere la guida HL7v2 per ulteriori informazioni su argomenti quali: