このページでは、curl
と Windows PowerShell で Cloud Healthcare API を使用して、次のタスクを行う方法について説明します。
- Cloud Healthcare API データセットを作成します。
- データセット内に DICOM、FHIR、または HL7v2 ストアを作成します。
- DICOM、FHIR、または HL7v2 ストアに特定の種類の医療データを保存し、検査します。
始める前に
- Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する。
- Cloud Healthcare API を有効にします。
- Cloud SDK をインストールして初期化します。
gcloud
コマンドライン ツールを使用して認証環境をテストします。次のコマンドが、エラーなしでテキスト文字列を出力することを確認します。gcloud auth application-default print-access-token
ヒント: コマンド プロンプトが必要な場合は、Google Cloud Shell を使用できます。Google Cloud Shell は、Google Cloud SDK がすでに含まれているコマンドライン環境であるため、インストールする必要はありません (Google Cloud SDK も Google Compute Engine の仮想マシンにプリインストールされています)。
データセットの作成
データセットは、Google Cloud で医療データを保持する基本的なコンテナです。
curl
データセットを作成するには、POST
リクエストを行い、データセットの名前と場所を指定します。次のサンプルは、curl
を使用した POST
リクエストを示しています。
LOCATION 変数を設定するときは、us-central1
、us-west2
、us-east4
、europe-west2
、europe-west4
、europe-west6
、northamerica-northeast1
、southamerica-east1
、asia-east2
、asia-northeast1
、asia-southeast1
、australia-southeast1
、または us
を使用します。
curl -X POST \ --data "" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?datasetId=DATASET_ID"
リクエストが成功すると、サーバーは JSON 形式でレスポンスを返します。レスポンスには、長時間実行オペレーションの識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", }
レスポンスにはオペレーション名が含まれています。オペレーションのステータスを追跡するには、オペレーションの 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"
リクエストが成功すると、サーバーはオペレーションのステータスを含む JSON 形式のレスポンスを返します。レスポンスに "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
データセットを作成するには、POST
リクエストを行い、データセットの名前と場所を指定します。次のサンプルは、Windows PowerShell を使用した POST
リクエストを示しています。
LOCATION 変数を設定するときは、us-central1
、us-west2
、us-east4
、europe-west2
、europe-west4
、europe-west6
、northamerica-northeast1
、southamerica-east1
、asia-east2
、asia-northeast1
、asia-southeast1
、australia-southeast1
、または us
を使用します。
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?datasetId=DATASET_ID" | Select-Object -Expand Content
リクエストが成功すると、サーバーは JSON 形式でレスポンスを返します。レスポンスには、長時間実行オペレーションの識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", }
レスポンスにはオペレーション名が含まれています。オペレーションのステータスを追跡するには、オペレーションの 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
リクエストが成功すると、サーバーはオペレーションのステータスを含む JSON 形式のレスポンスを返します。レスポンスに "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" } }
DICOM、FHIR、HL7v2 データの保存と表示
このクイックスタートを行うには、次のセクションから 1 つ選択します。
DICOM インスタンスの保存と表示
このセクションでは、次のタスクを行う方法を示しています。
- DICOM ストアの作成
- DICOM ストアでの DICOM インスタンスの保存。
- DICOM インスタンスのメタデータの表示
Cloud Healthcare API は、医療画像データを保存してアクセスするための DICOMweb 標準を実装しています。
DICOM ストアはデータセット内に存在し、DICOM インスタンスを保持します。
projects.locations.datasets.dicomStores.create
メソッドを使用して DICOM ストアを作成できます。curl
DICOM ストアを作成するには、
POST
リクエストを送信して次の情報を指定します。- 親データセットの名前と場所
- DICOM ストアの名前。DICOM ストア ID は、その親データセット内で一意である必要があります。数字、文字、アンダースコア、ダッシュ、ピリオドで構成される、1~256 文字の Unicode 文字列を使用できます。
次のサンプルは、
curl
を使用したPOST
リクエストを示しています。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"
リクエストが成功すると、サーバーは JSON 形式の次のレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID" }
PowerShell
DICOM ストアを作成するには、
POST
リクエストを送信して次の情報を指定します。- 親データセットの名前と場所
- DICOM ストアの名前。DICOM ストア ID は、その親データセット内で一意である必要があります。数字、文字、アンダースコア、ダッシュ、ピリオドで構成される、1~256 文字の Unicode 文字列を使用できます。
次のサンプルは、Windows PowerShell を使用した
POST
リクエストを示しています。$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
リクエストが成功すると、サーバーは JSON 形式の次のサンプルのようなレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID" }
サンプル DICOM インスタンス ファイルをマシンにダウンロードします。このファイルには、匿名化された患者の X 線が含まれています。
次のコマンドを実行して、作成した DICOM ストアに DICOM インスタンスを保存します。
curl
DICOM インスタンスを保存するには、
POST
リクエストを送信して次の情報を指定します。- 親データセットの名前と場所
- DICOM ストアの名前
- マシン上の DICOM インスタンス ファイルのファイル名と場所
次のサンプルは、
curl
を使用したPOST
リクエストを示しています。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
リクエストが成功すると、サーバーは 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
DICOM インスタンスを保存するには、
POST
リクエストを送信して次の情報を指定します。- 親データセットの名前と場所
- DICOM ストアの名前
- マシン上の DICOM インスタンス ファイルのファイル名と場所
次のサンプルは、Windows PowerShell を使用した
POST
リクエストを示しています。$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
リクエストが成功すると、サーバーは 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>
DICOM ストア内のインスタンスを検索して、保存したインスタンスのメタデータを表示します。
curl
保存した DICOM インスタンスのメタデータを表示するには、
GET
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- DICOM ストアの名前
次のサンプルは、
curl
を使用して DICOM ストア内のインスタンスを検索する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/dicomStores/DICOM_STORE_ID/dicomWeb/instances"
リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。
[ { "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
保存した DICOM インスタンスのメタデータを表示するには、
GET
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- DICOM ストアの名前
次のサンプルは、Windows PowerShell を使用して DICOM ストア内のインスタンスを検索する
GET
リクエストを示しています。$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"
リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。
[ { "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 ] } } ]
これで、Cloud Healthcare API で DICOM インスタンスを保存して表示できました。引き続き、次のステップで次のステップについて確認してください。
FHIR リソースの保存と表示
このセクションでは、次のタスクを行う方法を示しています。
- FHIR ストアの作成
- FHIR ストアに FHIR リソースを保存します。
- FHIR リソースのデータの表示。
Cloud Healthcare API は、FHIR データを保存してアクセスするための FHIR 仕様標準を実装しています。
FHIR ストアはデータセット内に存在し、FHIR データを保持します。FHIR ストアは、
projects.locations.datasets.fhirStores.create
メソッドを使用して作成できます。curl
FHIR ストアを作成するには、
POST
リクエストを送信して次の情報を指定します。- 親データセットの名前と場所
- FHIR ストアの名前DICOM ストア ID は、その親データセット内で一意である必要があります。数字、文字、アンダースコア、ダッシュ、ピリオドで構成される、1~256 文字の Unicode 文字列を使用できます。
- FHIR ストアの FHIR バージョン:
DSTU2
、STU3
、またはR4
次のサンプルは、
curl
を使用したPOST
リクエストを示しています。curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'version': '{DSTU2|STU3|R4}' }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID"
リクエストが成功すると、サーバーは JSON 形式の次のレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "version": "FHIR_STORE_VERSION" }
PowerShell
FHIR ストアを作成するには、
POST
リクエストを送信して次の情報を指定します。- 親データセットの名前と場所
- FHIR ストアの名前DICOM ストア ID は、その親データセット内で一意である必要があります。数字、文字、アンダースコア、ダッシュ、ピリオドで構成される、1~256 文字の Unicode 文字列を使用できます。
- FHIR ストアの FHIR バージョン:
DSTU2
、STU3
、またはR4
次のサンプルは、Windows PowerShell を使用した
POST
リクエストを示しています。$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': '{DSTU2|STU3|R4}' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID" | Select-Object -Expand Content
リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "version": "FHIR_STORE_VERSION" }
サンプル JSON FHIR リソース ファイルを保存します。ファイルには、患者リソースの基本データが含まれています。
次のコマンドを実行して、作成した FHIR ストアに患者リソースを保存します。
curl
サンプル ファイルから患者リソースを作成するには、
POST
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- FHIR ストアの名前
- マシン上の FHIR リソース ファイルのファイル名と場所
次のサンプルは、
curl
を使用してPOST
リクエストを送信し、患者リソースを作成する方法を示しています。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"
リクエストが成功すると、サーバーは次のレスポンスを返します。
{ "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
サンプル ファイルから患者リソースを作成するには、
POST
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- FHIR ストアの名前
- マシン上の FHIR リソース ファイルのファイル名と場所
次の例は、Windows PowerShell を使用して
POST
リクエストを送信し、患者リソースを作成する方法を示しています。$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
リクエストが成功すると、サーバーは次のレスポンスを返します。
{ "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" }
FHIR ストアでリソースを検索して、患者に関する情報を表示します。
curl
患者リソースを検索してその詳細を表示するには、
GET
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- FHIR ストアの名前
- 検索対象の情報を含むクエリ文字列このサンプルでは、患者の姓を検索します。
次のサンプルは、
curl
を使用して姓が「Smith」のすべての患者を検索する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/fhirStores/FHIR_STORE_ID/fhir/Patient?family:exact=Smith"
リクエストが成功すると、サーバーはレスポンスを JSON 形式の FHIR
Bundle
として返します。Bundle.type
はsearchset
で、検索結果はBundle.entry
配列のエントリです。この例では、リクエストはそのリソース内のデータを含む単一の患者リソースを返します。{ "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
患者リソースを検索してその詳細を表示するには、
GET
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- FHIR ストアの名前
- 検索対象の情報を含むクエリ文字列このサンプルでは、患者の姓を検索します。
次のサンプルは、Windows PowerShell を使用して姓が「Smith」のすべての患者を検索する
GET
リクエストを示しています。$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
リクエストが成功すると、サーバーはレスポンスを JSON 形式の FHIR
Bundle
として返します。Bundle.type
はsearchset
で、検索結果はBundle.entry
配列のエントリです。この例では、リクエストはそのリソース内のデータを含む単一の患者リソースを返します。{ "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" }
これで、Cloud Healthcare API で FHIR リソースを保存して表示できました。引き続き、次のステップで次のステップについて確認してください。
HL7v2 メッセージの保存と表示
このセクションでは、次のタスクを行う方法を示しています。
- HL7v2 ストアの作成。
- HL7v2 メッセージを HL7v2 ストアに保存する。
- HL7v2 メッセージのデータを表示する。
Cloud Healthcare API の HL7v2 実装は、HL7v2 標準に準拠しています。
HL7v2 ストアはデータセット内に存在し、HL7v2 メッセージを保持します。HL7v2 ストアを作成するには、
projects.locations.datasets.hl7V2Stores.create
メソッドを使用します。curl
HL7v2 ストアを作成するには、
POST
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- HL7v2 ストアの名前。HL7v2 ストア ID は、その親データセット内で一意である必要があります。数字、文字、アンダースコア、ダッシュ、ピリオドで構成される、1~256 文字の Unicode 文字列を使用できます。
次のサンプルは、
curl
を使用したPOST
リクエストを示しています。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"
リクエストが成功すると、サーバーは JSON 形式の次のレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID" }
PowerShell
HL7v2 ストアを作成するには、
POST
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- HL7v2 ストアの名前。HL7v2 ストア ID は、その親データセット内で一意である必要があります。数字、文字、アンダースコア、ダッシュ、ピリオドで構成される、1~256 文字の Unicode 文字列を使用できます。
次のサンプルは、Windows PowerShell を使用した
POST
リクエストを示しています。$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
リクエストが成功すると、サーバーは JSON 形式の次のサンプルのようなレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID" }
サンプル HL7v2 メッセージ ファイルをマシンにダウンロードします。メッセージには、次の基本的な情報が含まれます。ここでは、サンプル ファイルの
data
フィールドに base-64 でエンコードされています。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
HL7v2 メッセージを保存するには、作成と取り込みの 2 つの方法があります。詳細については、HL7v2 メッセージの作成と取り込みの概要をご覧ください。このサンプルでは、create メソッドを使用して HL7v2 メッセージを保存します。これは、ingest メソッドでは通常、治療センターからの HL7v2 メッセージが利用されるためです。
次のコマンドを実行して、作成した HL7v2 ストアに HL7v2 メッセージを保存します。
curl
HL7v2 メッセージを保存するには、
POST
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- HL7v2 ストアの名前。
- マシン上の HL7v2 メッセージ ファイルの名前と場所
次のサンプルは、
curl
を使用したPOST
リクエストを示しています。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"
リクエストが成功すると、サーバーは JSON 形式の次のレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID", "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=", "sendFacility": "SEND_FACILITY", "sendTime": "2018-01-01T00:00:00Z", "messageType": "TYPE", "createTime": "CREATE_TIME", "patientIds": [ { "value": "14\u0001111", "type": "MRN" }, { "value": "11111111", "type": "MRN" }, { "value": "1111111111", "type": "ORGNMBR" } ] }
PowerShell
HL7v2 メッセージを保存するには、
POST
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- HL7v2 ストアの名前。
- マシン上の HL7v2 メッセージ ファイルの名前と場所
次のサンプルは、Windows PowerShell を使用した
POST
リクエストを示しています。$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
リクエストが成功すると、サーバーは JSON 形式の次のレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID", "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=", "sendFacility": "SEND_FACILITY", "sendTime": "2018-01-01T00:00:00Z", "messageType": "TYPE", "createTime": "CREATE_TIME", "patientIds": [ { "value": "14\u0001111", "type": "MRN" }, { "value": "11111111", "type": "MRN" }, { "value": "1111111111", "type": "ORGNMBR" } ] }
メッセージを作成したときに受信したレスポンスの MESSAGE_ID を使用して、次のコマンドを実行しメッセージの詳細を表示します。
curl
HL7v2 メッセージの内容を取得するには、
GET
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- HL7v2 ストアの名前。
- メッセージ ID
次のサンプルは、
curl
を使用した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/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID"
リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID", "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=", "sendFacility": "SEND_FACILITY", "sendTime": "2018-01-01T00:00:00Z", "messageType": "TYPE", "createTime": "CREATE_TIME", "patientIds": [ { "value": "14\u0001111", "type": "MRN" }, { "value": "11111111", "type": "MRN" }, { "value": "1111111111", "type": "ORGNMBR" } ], "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
HL7v2 メッセージの内容を取得するには、
GET
リクエストを行い、次の情報を指定します。- 親データセットの名前と場所
- HL7v2 ストアの名前。
- メッセージ ID
次のサンプルは、Windows PowerShell を使用した
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/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID" | Select-Object -Expand Content
リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/MESSAGE_ID", "data": "TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZfEF8QXwyMDE4MDEwMTAwMDAwMHx8VFlQRV5BfDIwMTgwMTAxMDAwMDAwfFR8MC4wfHx8QUF8fDAwfEFTQ0lJDUVWTnxBMDB8MjAxODAxMDEwNDAwMDANUElEfHwxNAExMTFeXl5eTVJOfDExMTExMTExXl5eXk1STn4xMTExMTExMTExXl5eXk9SR05NQlI=", "sendFacility": "SEND_FACILITY", "sendTime": "2018-01-01T00:00:00Z", "messageType": "TYPE", "createTime": "CREATE_TIME", "patientIds": [ { "value": "14\u0001111", "type": "MRN" }, { "value": "11111111", "type": "MRN" }, { "value": "1111111111", "type": "ORGNMBR" } ], "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" } } ] } }
これで、Cloud Healthcare API で HL7v2 メッセージを保存して表示できました。引き続き、次のステップで次のステップについて確認してください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Google Cloud で作成したリソースをクリーンアップします。 このチュートリアル用に新しいプロジェクトを作成した場合は、プロジェクトの削除の手順に従ってください。それ以外の場合は、データセットの削除の手順に従ってください。
プロジェクトの削除
- Cloud Console で [リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
データセットの削除
このクイックスタートで作成したデータセットが不要になった場合は、削除できます。データセットを完全に削除すると、データセットと、データセットに含まれる FHIR ストア、HL7v2 ストア、または DICOM ストアが完全に削除されます。
curl
データセットを削除するには、名前と場所を指定して DELETE
リクエストを行います。次のサンプルは、curl
を使用した DELETE
リクエストを示しています。
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"
リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。
{}
PowerShell
データセットを削除するには、データセットの名前と場所を指定して DELETE
リクエストを行います。次のサンプルは、Windows PowerShell を使用した DELETE
リクエストを示しています。
$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
リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。
{}
いかがでしたか
次のステップ
Cloud Healthcare API に関する一般情報と、Cloud Console および gcloud
コマンドライン ツールを使用してタスクを実行する方法については、以下のセクションをご覧ください。
- Cloud Healthcare API のコンセプトの概要について読む
- Cloud Console で Cloud Healthcare API を使用する。
gcloud
ツールで Cloud Healthcare API を使用する
DICOM
DICOM ガイドに進み、以下のようなトピックを確認する。
- DICOM ストアの管理とカスタマイズの方法
- PACS の Cloud Healthcare API への接続
- DICOMweb 規格の使用
- Cloud Storage を使用した DICOM データのインポートとエクスポート
Cloud Healthcare API が DICOMweb 標準を実装する方法について、DICOM 適合性宣言で確認する。
FHIR
FHIR ガイドに進んで次のようなトピックを確認する。
Cloud Healthcare API で FHIR 標準を実装する方法について、FHIR 適合性ステートメントで確認する。
HL7v2
HL7v2 ガイドに進んで、次のようなトピックを確認する。
- HL7v2 ストアの管理とカスタマイズの方法
- HL7v2 メッセージの作成と管理
- TCP/IP 接続を介した HL7v2 メッセージの送信
- Cloud Storage を使用した HL7v2 メッセージのインポートとエクスポート