Questa pagina spiega come completare le seguenti attività:
- Configura intestazioni HTTP personalizzate nelle richieste all'API Cloud Healthcare.
Utilizza Cloud Audit Logs per cercare le richieste e le corrispondenze personalizzate Intestazioni HTTP per effettuare le seguenti operazioni:
- Vedi chi ha inviato una richiesta e quando.
- Semplifica il deployment e il debug individuando la richiesta che ha causato a un determinato errore.
Per ulteriori informazioni sull'utilizzo degli audit log di Cloud nell'API Cloud Healthcare, consulta Visualizzazione degli audit log di Cloud.
Metodi configurabili
Puoi configurare intestazioni HTTP personalizzate per i metodi dell'API Cloud Healthcare in le seguenti risorse REST:
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
Configura le intestazioni HTTP personalizzate
Esistono due tipi di intestazioni HTTP personalizzate che puoi specificare nelle richieste dell'API Cloud Healthcare e visualizzare nei log di controllo. Puoi utilizzare ciascun tipo in modo esclusivo o combinarli.
Registrazione degli ID personalizzati. Puoi specificare l'intestazione HTTP personalizzata
X-Request-Id
per assegnare a ogni richiesta un ID personalizzato, quindi cercare nei log di controllo una richiesta contenente l'ID. Per fornire un ID personalizzato, specifica il valore Intestazione HTTP nel seguente formato:X-Request-Id: REQUEST_ID
Specifica un valore univoco per REQUEST_ID in ogni richiesta.
Con la maggior parte dei programmi lingue hanno un modo per generare ID casuali che puoi usare per creare l'ID richiesta. Ad esempio, il comando Python Il modulo
uuid
hauuid.uuid4()
che puoi utilizzare per generare automaticamente gli ID per ogni richiesta. L'API Cloud Healthcare non genera ID richieste.Logging dei metadati. Puoi includere informazioni aggiuntive sui metadati nelle intestazioni HTTP personalizzate utilizzando l'intestazione
X-Goog-Healthcare-Audit-IDENTIFIER
. L'intestazione identifica in modo univoco il tipo di informazioni sui metadati.I metadati vengono archiviati nell'audit log per ogni richiesta. A fornire informazioni sui metadati, specificare una o più intestazioni HTTP personalizzate il seguente formato:
X-Goog-Healthcare-Audit-IDENTIFIER: VALUE
Sostituisci IDENTIFIER con un identificatore leggibile. Sostituisci VALUE con un valore per i metadati. Puoi specificare più valori in un elenco separato da virgole utilizzando la seguente sintassi:
X-Goog-Healthcare-Audit-IDENTIFIER: VALUE_1, VALUE_2, VALUE_n ...
Ad esempio:
X-Goog-Healthcare-Audit-MyIdentifier: Value1, Value2, Value3
Puoi anche specificare più intestazioni HTTP personalizzate con i relativi valori univoci:
X-Goog-Healthcare-Audit-MyIdentifier1: Value1, Value2 X-Goog-Healthcare-Audit-MyIdentifier2: Value3
Visualizza gli audit log in Cloud Audit Logs
Consulta Visualizza i log.
Esempio
L'esempio seguente mostra uno scenario in cui specifichi intestazioni HTTP personalizzate in una richiesta fhir.create
.
Supponiamo che tu stia eseguendo uno studio e che tu abbia un'applicazione mobile
per i pazienti PatientApp
. I pazienti inclusi nello studio sono divisi in due coorti: Cohort1
e Cohort2
. a identificare ogni richiesta
da Cohort1
con un ID univoco e il nome dell'applicazione mobile,
specificare le seguenti intestazioni HTTP personalizzate in ogni richiesta:
X-Request-Id: REQUEST_ID X-Goog-Healthcare-Audit-AppName: PatientApp X-Goog-Healthcare-Audit-CohortName: Cohort1
Le intestazioni HTTP personalizzate vengono visualizzate nel campo metadata
dell'audit log di ogni richiesta
in Cloud Audit Logs.
L'esempio seguente mostra come utilizzare curl
per creare una nuova risorsa Patient in un archivio FHIR. La richiesta contiene le seguenti intestazioni HTTP personalizzate:
X-Request-Id: 123
X-Goog-Healthcare-Audit-AppName: PatientApp
X-Goog-Healthcare-Audit-CohortName: Cohort1
Prima di inviare la richiesta, sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati principale dell'archivio FHIR
- FHIR_STORE_ID: l'ID del datastore FHIR
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"
L'output è il seguente:
{ "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" }
Se cerchi la richiesta in Cloud Audit Logs, l'audit log ha il seguente aspetto:
{ 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"] } ... } ... }