Добавление настраиваемых заголовков HTTP в журналы аудита в службе FHIR

В API FHIR (ресурсы быстрого взаимодействия в сфере здравоохранения) пользователю может потребоваться включать дополнительные сведения в журналы, которые поступают из вызывающей системы.

Например, когда пользователь API выполняет проверку подлинности во внешней системе, эта система перенаправляет вызов в API FHIR. На уровне API FHIR сведения об исходном пользователе при таком перенаправлении утрачиваются. Возможно, эту информацию о пользователях придется вносить в журнал и сохранять в целях аудита или управления. Вызывающая система может предоставлять сведения об удостоверении пользователя, расположении вызывающего объекта и т. п. в заголовках HTTP, которые передаются вместе с перенаправляемым вызовом.

Пользовательские заголовки можно использовать для сбора информации нескольких типов. Пример:

  • сведения об авторизации или удостоверении;
  • источник вызывающей стороны;
  • организация вызывающей стороны;
  • сведения о клиентской системе (электронная медицинская запись, портал для пациентов).

Важно!

Имейте в виду, что передаваемые в пользовательских заголовках данные хранятся во внутренней системе ведения журнала Майкрософт в течение 30 дней после того, как попадают в систему мониторинга журналов Azure. Мы рекомендуем шифровать любые данные перед добавлением в пользовательские заголовки. Не следует передавать медицинские записи через пользовательские заголовки.

Для заголовков HTTP необходимо использовать следующее соглашение об именовании: X-MS-AZUREFHIR-AUDIT-name<>.

Эти заголовки HTTP включаются в контейнер свойств, который добавляется в журнал. Пример:

  • X-MS-AZUREFHIR-AUDIT-USERID: 1 234
  • X-MS-AZUREFHIR-AUDIT-USERLOCATION: XXXX
  • X-MS-AZUREFHIR-AUDIT-XYZ: 1 234

Эти сведения сериализуются в формат JSON при добавлении в столбец свойств в журнале. Пример:

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

Как и любой заголовок HTTP, можно повторять заголовки с одинаковыми именами и разными значениями. Пример:

  • X-MS-AZUREFHIR-AUDIT-USERLOCATION: HospitalA
  • X-MS-AZUREFHIR-AUDIT-USERLOCATION: Аварийный режим

При добавлении в журнал такие значения объединяются в список, разделенный запятыми. Пример:

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

Можно добавить не более 10 уникальных заголовков (повторы заголовков с одинаковыми именами и разными значениями засчитываются как один заголовок). Общая максимальная длина значения для одного заголовка составляет 2048 символов.

Если вы используете клиентскую библиотеку API C# для Firefly, код выглядит примерно так:

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");

Дальнейшие действия

Из этой статьи вы узнали, как добавить данные в журналы аудита с помощью настраиваемых заголовков в Azure API для FHIR. Сведения о параметрах конфигурации Azure API для FHIR см. в статье.

FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешения HL7.