Общие положения

Данный документ описывает способ генерации ссылки для открытия PACS OneCell с возможностью перехода непосредственно на нужный медицинский случай и автоматической аутентификацией от имени врача.

Веб-приложение следует открывать во внешнем браузере, например Google Chrome. Официально поддерживается работа системы только в Google Chrome и Яндекс.Браузер.

При интеграции данного API вам предоставляются следующие параметры, которые администратор должен указывать в настройках приложения при развёртывании:

  1. baseUrl — Базовый адрес PACS OneCell без слеша (/) на конце.
  2. workspaceId — Идентификатор рабочего пространства (Workspace ID). Является единым для всего медицинского учреждения.
  3. deepLinkSecret — Секретный ключ, используемый для подписания каждой ссылки (генерации {authToken}).

Алгоритм формирования URL для открытия случая

Для открытия случая в платформе OneCell требуется сформировать URL следующего вида:

**{baseUrl}**/deep-link/**{linkParameters}**/**{authToken}**

где:

{baseUrl} — Базовый адрес PACS OneCell. Задаётся администратором в настройках системы. Не должен содержать слеш / на конце. Например, https://pacs.clinic-name.ru

{linkParameters} — Закодированные параметры ссылки (описание возможных параметров и способ их кодирования описаны ниже). Генерируется вашим приложением на стороне сервера в зависимости от желаемого действия, выполняемого по ссылке.

{authToken} — Цифровая подпись параметров (токен), которая необходима, чтобы убедиться, что ссылка сгенерирована вашей системой, а не злоумышленником. Алгоритм генерации токена описан ниже. Генерация токена должна всегда происходить на серверной части приложения. Пользователь не должен иметь возможности получить доступ к секретному ключу или иметь возможность модифицировать параметры генерируемой по своему усмотрению.

Список возможных параметров {linkParameters}

В данном разделе описаны все параметры, которые возможно передать в OneCell. При желании передать пустое значение, параметр не нужно указывать в ссылке вовсе.

| **Ключ

(название параметра)** Тип Обязателен? Описание Пример значения
action ENUM:

Со стороны OneCell есть ограничение, которое не позволяет запускать ссылки, которые сгенерированы более, чем 5 минут назад. Время на сервере, на котором генерируются ссылки, должно периодически синхронизироваться с NTP-сервером, иначе ссылки могут не работать. | 1680708486 | | rand | STRING (до 36 символов) | Нет | Любое псевдослучайное значение в любом формате (до 36 символов). Поскольку каждая ссылка является одноразовой и сервер запоминает уже использованные ссылки, стоит указывать данный параметр, чтобы избежать ситуации, когда два врача нажали на кнопку “Открыть случай” в одну и ту же секунду и у одного из них ссылка не сработала. | 7258509975252303 | | workspaceId | INTEGER | Да | Номер рабочего пространства (Workspace). Предоставляется в ходе интеграции. Настраивается администратором ЛИС, является единым для всего медицинского учреждения. | 5 | | caseId | STRING (до 40 символов) | Обязателен, если action=open_viewer | Номер случая в системе OneCell, является уникальным идентификатором случая в рамках одного Workspace. Обязателен при action=open_viewer, чтобы открыть конкретный случай в просмотрщике слайдов. Если указать при action=open_cases, то случай автоматически выберется из списка. | B22077380 | | authUserID | STRING (до 250 символов) | Нет | Идентификатор пользователя (логин). Может быть как электронной почтой, так и именем для входа в LDAP. При передаче данного параметра OneCell автоматически авторизуется под данным аккаунтом без ввода пароля. Данная функция позволяет авторизовываться от имени любого пользователя, чей Email был передан. Убедитесь, что генерация ссылки происходит на серверной стороне и у пользователей нет доступа к секретному ключу, а также, что пользователь не может подменять свой идентификатор для входа от имени другого пользователя. | [email protected] | | userFullname | STRING (до 120 символов) | Нет | При передаче данного параметра совместно с authUserID, имя пользователя в БД OneCell автоматически обновится на переданное в данном параметре. | Олег Потапов (врач-патолог) |