Configura encabezados HTTP personalizados para los registros de auditoría

En esta página, se explica cómo completar las siguientes tareas:

  1. Configura encabezados HTTP personalizados en las solicitudes a la API de Cloud Healthcare.
  2. Usa los Registros de auditoría de Cloud para buscar solicitudes y sus encabezados HTTP personalizados que coincidan para hacer lo siguiente:

    • Consulta quién envió una solicitud y cuándo.
    • Simplifica la implementación y la depuración averiguando qué solicitud causó un error en particular.

Para obtener más información sobre el uso de los registros de auditoría de Cloud en la API de Cloud Healthcare, consulta Visualiza los registros de auditoría de Cloud.

Métodos configurables

Puedes configurar encabezados HTTP personalizados para los métodos de la API de Cloud Healthcare en los siguientes recursos de REST:

Configura encabezados HTTP personalizados

Existen dos tipos de encabezados HTTP personalizados que puedes especificar en las solicitudes de la API de Cloud Healthcare y ver en los registros de auditoría. Puedes usar cada tipo de forma exclusiva o combinarlos.

  • Registro de ID personalizado Puedes especificar el encabezado HTTP personalizado X-Request-Id para darle a cada solicitud su propio ID personalizado y, luego, buscar en los registros de auditoría una solicitud que contenga el ID. Para proporcionar un ID personalizado, especifica el encabezado HTTP personalizado en el siguiente formato:

    X-Request-Id: REQUEST_ID
    

    Especifica un valor único para REQUEST_ID en cada solicitud.

    La mayoría de los lenguajes de programación tienen una forma de generar IDs aleatorios que puedes usar para crear el ID de solicitud. Por ejemplo, el módulo uuid de Python tiene una función uuid.uuid4() que puedes usar para generar IDs automáticamente para cada solicitud. La API de Cloud Healthcare no genera IDs de solicitud.

  • Registro de metadatos. Puedes incluir información de metadatos adicional en los encabezados HTTP personalizados con el encabezado X-Goog-Healthcare-Audit-IDENTIFIER. El encabezado identifica de forma única el tipo de información de metadatos.

    Los metadatos se almacenan en el registro de auditoría de cada solicitud. Para proporcionar información de metadatos, especifica uno o más encabezados HTTP personalizados con el siguiente formato:

    X-Goog-Healthcare-Audit-IDENTIFIER: VALUE
    

    Reemplaza IDENTIFIER por un identificador legible por humanos. Reemplaza VALUE por un valor para los metadatos. Puedes especificar varios valores en una lista separada por comas con la siguiente sintaxis:

    X-Goog-Healthcare-Audit-IDENTIFIER: VALUE_1, VALUE_2, VALUE_n ...
    

    Por ejemplo:

    X-Goog-Healthcare-Audit-MyIdentifier: Value1, Value2, Value3
    

    También puedes especificar varios encabezados HTTP personalizados con sus propios valores únicos:

    X-Goog-Healthcare-Audit-MyIdentifier1: Value1, Value2
    X-Goog-Healthcare-Audit-MyIdentifier2: Value3
    

Cómo ver los registros de auditoría en los Registros de auditoría de Cloud

Consulta Cómo ver registros.

Ejemplo

En el siguiente ejemplo, se muestra una situación en la que especificas encabezados HTTP personalizados en una solicitud fhir.create.

Supongamos que estás ejecutando un estudio y tienes una aplicación para dispositivos móviles para pacientes llamada PatientApp. Los pacientes del estudio se dividen en dos cohortes: Cohort1 y Cohort2. Para identificar cada solicitud de Cohort1 con un ID único y el nombre de la aplicación para dispositivos móviles, especifica los siguientes encabezados HTTP personalizados en cada solicitud:

X-Request-Id: REQUEST_ID
X-Goog-Healthcare-Audit-AppName: PatientApp
X-Goog-Healthcare-Audit-CohortName: Cohort1

Los encabezados HTTP personalizados se muestran en el campo metadata del registro de auditoría de cada solicitud en los registros de auditoría de Cloud.

En el siguiente ejemplo, se muestra cómo usar curl para crear un nuevo recurso Patient en un almacén de FHIR. La solicitud contiene los siguientes encabezados HTTP personalizados:

  • X-Request-Id: 123
  • X-Goog-Healthcare-Audit-AppName: PatientApp
  • X-Goog-Healthcare-Audit-CohortName: Cohort1

Antes de enviar la solicitud, reemplaza lo siguiente:

  • PROJECT_IDEl ID de tu proyecto de Google Cloud.
  • LOCATION: La ubicación del conjunto de datos
  • DATASET_ID es el conjunto de datos superior del almacén de FHIR
  • FHIR_STORE_ID es el ID del almacén de 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"

Esta es la salida:

{
  "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"
}

Si buscas la solicitud en los Registros de auditoría de Cloud, el registro de auditoría se verá de la siguiente manera:

{
  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"]
    }
    ...
  }
   ...
}