Перейти к содержимому
Аудитория: DPO / Compliance

Как работает журнал аудита

Что попадает в реестр событий, какие поля мы действительно храним, кто может его читать и экспортировать и как долго живут записи.

Последний пересмотр:

Журнал аудита — это реестр событий учреждения: кто, что, над какой записью и когда сделал. Он является основанием подотчётности по ст. 5(2) GDPR и первым документом, к которому обращаются при проверке или подозрении на злоупотребление.

Записи создаются автоматически, в слое между запросом и базой — они не зависят от того, помнил ли о них автор кода. В приложении нет пути, который изменяет или удаляет отдельную запись; единственный механизм удаления — плановое задание, описанное ниже.

Что записывается

Каждая запись несёт:

  • кто — идентификатор пользователя,
  • в каком учреждении — поле, разделяющее арендаторов, присутствует всегда,
  • какое действие — из закрытого словаря на несколько сотен позиций; в интерфейсе видны их локализованные названия, например Создано, Просмотрено, Экспортировано, Отправлено в KSeF, Начата сессия AI Scribe,
  • над чем — тип объекта и его идентификатор,
  • чьи данные просмотрены — отдельный столбец, указывающий на пациента, в том числе когда действие касалось заметки или визита,
  • подробности — вложение в формате JSON, пропущенное через редактирование, чтобы PESEL или адрес электронной почты не утекли в реестр,
  • сетевой отпечаток и отпечаток клиента — криптографические свёртки места, откуда пришёл запрос, и браузера, который его отправил,
  • отметку времени.

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

Как это сделать

Журнал открывается по адресу /audit, в навигации как Журнал аудита. Фильтры: Диапазон дат (с готовыми диапазонами от Сегодня до Последние 90 дней), Пользователь, Тип действия, Тип объекта и ID записи. Щелчок по строке разворачивает подробности.

Кнопка Экспортировать отдаёт результат как CSV или JSON — с учётом установленных фильтров. Экспорт сам является событием и оставляет запись в журнале.

Когда что-то не работает

Предупреждение

Просматривать журнал аудита могут только владельцы и администраторы клиники.

Что это значит: У вошедшего лица нет в этом учреждении роли владельца или администратора.

Что делать: Попросите доступ у лица, управляющего учреждением, либо разовый экспорт нужного диапазона.
Информация

Нет событий аудита, соответствующих выбранным фильтрам

Что это значит: Диапазон дат, пользователь или тип действия сужают результат до нуля.

Что делать: Воспользуйтесь **Очистить фильтры** и сужайте по одному критерию. Пустой результат при широком диапазоне означает, что события уже удалены по сроку хранения.
Ошибка

Нет записей для экспорта

Что это значит: Экспорт наследует фильтры из представления, а они не возвращают ни одной строки.

Что делать: Расширьте диапазон дат перед повторным экспортом.

У кого есть доступ

Журнал читают исключительно владелец и администратор учреждения. Сегодня нет роли «только чтение журнала» для внешнего аудитора — аудитору передают экспорт.

Реестр является общей таблицей для всех учреждений, но каждый запрос из слоя приложения сужается до активного учреждения, а членство в нём проверяется перед процедурой. Человек, работающий в двух учреждениях, видит в каждом только его события. Границу держат отдельное правило линтера и несколько храповиков, запускаемых при каждом изменении кода.

Как долго живут записи

Ежедневное задание удаляет записи старше срока, установленного в Настройки → GDPR и приватность → Хранение журнала аудита (по умолчанию 20 лет). Эта настройка относится только к журналу — не к медицинской документации и не к данным пациентов; автоматическое удаление данных пациентов в Heltio не включено. До 2026-08-24 подпись в интерфейсе говорила иное. Расчётные, финансовые записи и записи о правах пациента из этого исключены и остаются независимо от настройки. Полный перечень исключений: Политика хранения.

Связанное

Была ли эта статья полезной?