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 intestazioni HTTP personalizzate corrispondenti per svolgere le seguenti operazioni:
- Visualizza chi ha inviato una richiesta e quando.
- Semplifica il deployment e il debug scoprendo quale richiesta ha causato un errore specifico.
Per saperne di più sull'utilizzo di Cloud Audit Logs 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 nelle seguenti risorse REST:
projects.locationsprojects.locations.datasetsprojects.locations.dicomStoresprojects.locations.dicomStores.studiesprojects.locations.dicomStores.studies.seriesprojects.locations.dicomStores.studies.series.instancesprojects.locations.dicomStores.studies.series.instances.framesprojects.locations.datasets.fhirStoresprojects.locations.datasets.fhirStores.fhirprojects.locations.datasets.hl7V2Storesprojects.locations.datasets.hl7V2Stores.messagesprojects.locations.datasets.operations
Configura 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 ogni tipo esclusivamente o combinarli.
Registrazione dell'ID personalizzato. Puoi specificare l'intestazione HTTP personalizzata
X-Request-Idper assegnare a ogni richiesta un ID personalizzato e poi cercare nei log di controllo una richiesta contenente l'ID. Per fornire un ID personalizzato, specifica l'intestazione HTTP personalizzata nel seguente formato:X-Request-Id: REQUEST_ID
Specifica un valore univoco per REQUEST_ID in ogni richiesta.
La maggior parte dei linguaggi di programmazione consente di generare ID casuali che puoi utilizzare per creare l'ID richiesta. Ad esempio, il modulo Python
uuidha una funzioneuuid.uuid4()che puoi utilizzare per generare automaticamente ID per ogni richiesta. L'API Cloud Healthcare non genera ID richiesta.Registrazione 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 nel log di controllo per ogni richiesta. Per fornire informazioni sui metadati, specifica una o più intestazioni HTTP personalizzate nel 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 propri valori unici:
X-Goog-Healthcare-Audit-MyIdentifier1: Value1, Value2 X-Goog-Healthcare-Audit-MyIdentifier2: Value3
Visualizzare i log di controllo in Cloud Audit Logs
Consulta Visualizza log.
Esempio
L'esempio seguente mostra uno scenario in cui specifichi intestazioni HTTP personalizzate in una richiesta fhir.create.
Supponiamo che tu stia conducendo uno studio e che tu abbia un'applicazione mobile
per i pazienti chiamata PatientApp. I pazienti dello studio sono suddivisi in
due coorti: Cohort1 e Cohort2. Per identificare ogni richiesta
da Cohort1 con un ID univoco e il nome dell'applicazione mobile,
specifica 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 del log di controllo 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: 123X-Goog-Healthcare-Audit-AppName: PatientAppX-Goog-Healthcare-Audit-CohortName: Cohort1
Prima di inviare la richiesta, sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID 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"]
}
...
}
...
}