Condividi tramite


Aggiungere intestazioni HTTP personalizzate ai log di controllo nel servizio FHIR

Nell'API di Azure per FHIR (Fast Healthcare Interoperability Resources) un utente potrebbe voler includere informazioni aggiuntive nei log, che provengono dal sistema chiamante.

Ad esempio, quando l'utente dell'API viene autenticato da un sistema esterno, quest'ultimo inoltra la chiamata all'API per FHIR. Al livello dell'API per FHIR le informazioni sull'utente originale vanno perse perché la chiamata è stata inoltrata. Potrebbe essere necessario registrare e conservare queste informazioni dell'utente a scopo di controllo o di gestione. Nelle intestazioni HTTP il sistema chiamante può fornire l'identità dell'utente, la posizione del chiamante o altre informazioni necessarie, che verranno trasferite quando la chiamata viene inoltrata.

È possibile usare le intestazioni personalizzate per acquisire diversi tipi di informazioni. Ad esempio:

  • Informazioni su identità o autorizzazioni
  • Origine del chiamante
  • Organizzazione di origine
  • Dettagli del sistema client (cartella clinica elettronica, portale del paziente)

Importante

Tenere presente che le informazioni inviate nelle intestazioni personalizzate vengono archiviate in un sistema di registrazione interno Microsoft per 30 giorni dopo essere state rese disponibili in Monitoraggio log di Azure. È consigliabile crittografare tutte le informazioni prima di aggiungerle alle intestazioni personalizzate. Non è consigliabile passare informazioni personali tramite intestazioni personalizzate.

È necessario usare la convenzione di denominazione seguente per le intestazioni HTTP: X-MS-AZUREFHIR-AUDIT-name<>.

Queste intestazioni HTTP sono incluse in un elenco di proprietà aggiunto al log. Ad esempio:

  • X-MS-AZUREFHIR-AUDIT-USERID: 1234
  • X-MS-AZUREFHIR-AUDIT-USERLOCATION: XXXX
  • X-MS-AZUREFHIR-AUDIT-XYZ: 1234

Queste informazioni vengono quindi serializzate in JSON quando vengono aggiunte alla colonna di proprietà nel log. Ad esempio:

{ "X-MS-AZUREFHIR-AUDIT-USERID" : "1234",
"X-MS-AZUREFHIR-AUDIT-USERLOCATION" : "XXXX",
"X-MS-AZUREFHIR-AUDIT-XYZ" : "1234" }

Come per qualsiasi intestazione HTTP, lo stesso nome di intestazione può essere ripetuto con valori diversi. Ad esempio:

  • X-MS-AZUREFHIR-AUDIT-USERLOCATION: HospitalA
  • X-MS-AZUREFHIR-AUDIT-USERLOCATION: Emergenza

Quando vengono aggiunti al log, i valori vengono combinati con un elenco delimitato da virgole. Ad esempio:

{ "X-MS-AZUREFHIR-AUDIT-USERLOCATION" : "HospitalA, Emergency" }

È possibile aggiungere un massimo di 10 intestazioni univoche (le ripetizioni della stessa intestazione con valori diversi vengono conteggiate come una). La lunghezza massima totale del valore per qualsiasi intestazione è 2048 caratteri.

Se si usa la libreria di API client Firefly C#, il codice sarà simile al seguente:

FhirClient client;
client = new FhirClient(serverUrl);
client.OnBeforeRequest += (object sender, BeforeRequestEventArgs e) =>
{
    // Add custom headers to be added to the logs
    e.RawRequest.Headers.Add("X-MS-AZUREFHIR-AUDIT-UserLocation", "HospitalA");
};
client.Get("Patient");

Passaggi successivi

In questo articolo si è appreso come aggiungere dati ai log di controllo usando intestazioni personalizzate nell'API di Azure per FHIR. Per informazioni sulle impostazioni di configurazione dell'API di Azure per FHIR, vedere

FHIR® è un marchio registrato di HL7 e viene usato con l'autorizzazione di HL7.