Esta página explica como concluir as seguintes tarefas:
- Configure cabeçalhos HTTP personalizados em pedidos à Cloud Healthcare API.
Use os registos de auditoria do Cloud para pesquisar pedidos e os respetivos cabeçalhos HTTP personalizados correspondentes para fazer o seguinte:
- Veja quem enviou um pedido e quando.
- Simplifique a implementação e a depuração ao descobrir que pedido causou um erro específico.
Para mais informações sobre a utilização dos registos de auditoria do Cloud na Cloud Healthcare API, consulte o artigo Ver registos de auditoria do Cloud.
Métodos configuráveis
Pode configurar cabeçalhos HTTP personalizados para os métodos da Cloud Healthcare API nos seguintes recursos 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
Configure cabeçalhos HTTP personalizados
Existem dois tipos de cabeçalhos HTTP personalizados que pode especificar em pedidos da Cloud Healthcare API e ver nos registos de auditoria. Pode usar cada tipo exclusivamente ou combiná-los.
Registo de IDs personalizados. Pode especificar o
X-Request-Idcabeçalho HTTP personalizado para atribuir a cada pedido o seu próprio ID personalizado e, em seguida, pesquisar nos registos de auditoria um pedido que contenha o ID. Para fornecer um ID personalizado, especifique o cabeçalho HTTP personalizado no seguinte formato:X-Request-Id: REQUEST_ID
Especifique um valor único para REQUEST_ID em cada pedido.
A maioria das linguagens de programação tem uma forma de gerar IDs aleatórios que pode usar para criar o ID do pedido. Por exemplo, o módulo Python
uuidtem uma funçãouuid.uuid4()que pode usar para gerar IDs automaticamente para cada pedido. A Cloud Healthcare API não gera IDs de pedidos.Registo de metadados. Pode incluir informações de metadados adicionais em cabeçalhos HTTP personalizados através do cabeçalho
X-Goog-Healthcare-Audit-IDENTIFIER. O cabeçalho identifica de forma exclusiva o tipo de informações de metadados.Os metadados são armazenados no registo de auditoria para cada pedido. Para fornecer informações de metadados, especifique um ou mais cabeçalhos HTTP personalizados no seguinte formato:
X-Goog-Healthcare-Audit-IDENTIFIER: VALUE
Substitua IDENTIFIER por um identificador legível por humanos. Substitua VALUE por um valor para os metadados. Pode especificar vários valores numa lista separada por vírgulas através da seguinte sintaxe:
X-Goog-Healthcare-Audit-IDENTIFIER: VALUE_1, VALUE_2, VALUE_n ...
Por exemplo:
X-Goog-Healthcare-Audit-MyIdentifier: Value1, Value2, Value3
Também pode especificar vários cabeçalhos HTTP personalizados com os seus próprios valores únicos:
X-Goog-Healthcare-Audit-MyIdentifier1: Value1, Value2 X-Goog-Healthcare-Audit-MyIdentifier2: Value3
Veja os registos de auditoria nos registos de auditoria na nuvem
Consulte Ver registos.
Exemplo
O exemplo seguinte demonstra um cenário em que especifica cabeçalhos HTTP personalizados num pedido fhir.create.
Suponhamos que está a executar um estudo e tem uma aplicação para dispositivos móveis para pacientes denominada PatientApp. Os pacientes no estudo estão divididos em
duas coortes: Cohort1 e Cohort2. Para identificar cada pedido
de Cohort1 com um ID exclusivo e o nome da aplicação para dispositivos móveis,
especifique os seguintes cabeçalhos HTTP personalizados em cada pedido:
X-Request-Id: REQUEST_ID X-Goog-Healthcare-Audit-AppName: PatientApp X-Goog-Healthcare-Audit-CohortName: Cohort1
Os cabeçalhos HTTP personalizados são apresentados no campo metadata do registo de auditoria de cada pedido
nos registos de auditoria na nuvem.
O exemplo seguinte mostra como usar curl para criar um novo recurso Patient num FHIR
store. O pedido contém os seguintes cabeçalhos HTTP personalizados:
X-Request-Id: 123X-Goog-Healthcare-Audit-AppName: PatientAppX-Goog-Healthcare-Audit-CohortName: Cohort1
Antes de enviar o pedido, substitua o seguinte:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados
- DATASET_ID: o conjunto de dados principal do FHIR store
- FHIR_STORE_ID: o ID da loja 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"
O resultado é o seguinte:
{
"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 pesquisar o pedido nos registos de auditoria do Cloud, o registo de auditoria tem o seguinte aspeto:
{
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"]
}
...
}
...
}