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.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
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-Id
cabeç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
uuid
tem 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: 123
X-Goog-Healthcare-Audit-AppName: PatientApp
X-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"] } ... } ... }