本頁面說明如何完成下列工作:
- 在對 Cloud Healthcare API 的要求中設定自訂 HTTP 標頭。
使用 Cloud 稽核記錄搜尋要求及其相符的自訂 HTTP 標頭,即可執行下列操作:
- 查看誰傳送了要求,以及傳送時間。
- 找出導致特定錯誤的要求,簡化部署和偵錯作業。
如要進一步瞭解如何在 Cloud Healthcare API 中使用 Cloud 稽核記錄,請參閱「查看 Cloud 稽核記錄」。
可設定的方法
您可以在下列 REST 資源中,為 Cloud Healthcare API 方法設定自訂 HTTP 標頭:
projects.locations
projects.locations.datasets
projects.locations.dicomStores
projects.locations.dicomStores.studies
projects.locations.dicomStores.studies.series
projects.locations.dicomStores.studies.series.instances
projects.locations.dicomStores.studies.series.instances.frames
projects.locations.datasets.fhirStores
projects.locations.datasets.fhirStores.fhir
projects.locations.datasets.hl7V2Stores
projects.locations.datasets.hl7V2Stores.messages
projects.locations.datasets.operations
設定自訂 HTTP 標頭
您可以在 Cloud Healthcare API 要求中指定兩種自訂 HTTP 標頭,並在稽核記錄中查看。您可以單獨使用每種類型,也可以合併使用。
記錄自訂 ID。您可以指定
X-Request-Id
自訂 HTTP 標頭,為每項要求提供專屬的自訂 ID,然後在稽核記錄中搜尋含有該 ID 的要求。如要提供自訂 ID,請指定下列格式的自訂 HTTP 標頭:X-Request-Id: REQUEST_ID
在每個要求中,為 REQUEST_ID 指定不重複的值。
大多數程式設計語言都有產生隨機 ID 的方法,可用於建立要求 ID。舉例來說,Python
uuid
模組具有uuid.uuid4()
函式,可用於為每項要求自動產生 ID。Cloud Healthcare API 不會產生要求 ID。記錄中繼資料。您可以使用
X-Goog-Healthcare-Audit-IDENTIFIER
標頭,在自訂 HTTP 標頭中加入其他中繼資料資訊。標頭會明確指出中繼資料資訊的類型。每個要求的稽核記錄都會儲存中繼資料。如要提供中繼資料資訊,請指定一或多個自訂 HTTP 標頭,格式如下:
X-Goog-Healthcare-Audit-IDENTIFIER: VALUE
將 IDENTIFIER 替換為一般人可判讀的 ID。 將 VALUE 替換為中繼資料的值。 您可以使用下列語法,在以半形逗號分隔的清單中指定多個值:
X-Goog-Healthcare-Audit-IDENTIFIER: VALUE_1, VALUE_2, VALUE_n ...
例如:
X-Goog-Healthcare-Audit-MyIdentifier: Value1, Value2, Value3
您也可以指定多個自訂 HTTP 標頭,各自具有專屬值:
X-Goog-Healthcare-Audit-MyIdentifier1: Value1, Value2 X-Goog-Healthcare-Audit-MyIdentifier2: Value3
在 Cloud 稽核記錄中查看稽核記錄
請參閱「查看記錄」。
範例
以下範例說明在 fhir.create
要求中指定自訂 HTTP 標頭的情境。
假設您正在進行研究,並為患者提供名為 PatientApp
的行動應用程式。研究中的患者分為兩個群組:Cohort1
和 Cohort2
。如要使用專屬 ID 和行動應用程式名稱識別 Cohort1
的每個要求,請在每個要求中指定下列自訂 HTTP 標頭:
X-Request-Id: REQUEST_ID X-Goog-Healthcare-Audit-AppName: PatientApp X-Goog-Healthcare-Audit-CohortName: Cohort1
自訂 HTTP 標頭會顯示在 Cloud Audit Logs 中,每個要求稽核記錄的 metadata
欄位。
下列範例說明如何使用 curl
在 FHIR 存放區中建立新的 Patient 資源。要求包含下列自訂 HTTP 標頭:
X-Request-Id: 123
X-Goog-Healthcare-Audit-AppName: PatientApp
X-Goog-Healthcare-Audit-CohortName: Cohort1
傳送要求前,請先替換下列項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:資料集位置
- DATASET_ID:FHIR 儲存庫的父項資料集
- FHIR_STORE_ID:FHIR 儲存庫 ID
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "X-Request-Id: 123" \ -H "X-Goog-Healthcare-Audit-AppName: PatientApp" \ -H "X-Goog-Healthcare-Audit-CohortName: Cohort1" \ --data '{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }' "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": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }
如果您在 Cloud 稽核記錄中搜尋要求,稽核記錄會如下所示:
{ logName: "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_write" protoPayload: { @type: "type.googleapis.com/google.cloud.audit.AuditLog" metadata: { X-Request-Id: [123] X-Goog-Healthcare-Audit-AppName: ["PatientApp"] X-Goog-Healthcare-Audit-CohortName: ["Cohort1"] } ... } ... }