#Запуск из МИС

Кнопка «Smartica» должна находиться в карточке конкретного приёма. Её задача — передать на бэкенд МИС текущие encounter_id, email и ФИО врача, получить одноразовую ссылку и открыть её в браузере.

#Последовательность запросов

Шаг Кто → куда Действие
1 Врач → МИС Нажимает «Smartica» в карточке приёма
2 Бэкенд МИС → Smartica Запрашивает launch_url через серверный SSO
3 Браузер → Smartica Открывает launch_url без изменений
4 Smartica → МИС Запрашивает GET контекста приёма
5 Врач → Smartica Записывает разговор и останавливает запись
6 Smartica Объединяет стенограмму и заполняет поля
7 Smartica → МИС Асинхронно отправляет PUT результата

SSO, GET и PUT используют один и тот же encounter_id.

#Что делает кнопка

Рекомендуемый поток на стороне МИС:

  1. Фронтенд передаёт бэкенду только внутренний ID приёма.
  2. Бэкенд проверяет, что текущий врач имеет доступ к этому приёму.
  3. Бэкенд сам получает user_email и user_full_name из доверенных данных МИС.
  4. Бэкенд вызывает SSO endpoint с SSO_KEY.
  5. МИС отвечает браузеру редиректом 302 на полученный launch_url либо возвращает URL для открытия в новой вкладке.

Не принимайте email врача и platform от браузера без серверной проверки. Не помещайте SSO_KEY в JavaScript.

#Первый запуск приёма

При первом открытии:

  1. Smartica авторизует существующего врача либо создаёт его по email и ФИО.
  2. Токен удаляется из адресной строки через редирект на чистый Launch URL.
  3. Для приёма создаётся связанная заметка Smartica.
  4. Smartica вызывает GET контекста.
  5. Полученные template и fields закрепляются за этим приёмом.

Если GET недоступен или возвращает невалидный JSON, подготовка приёма завершается ошибкой. Исправьте endpoint и откройте приём снова.

#Повторный запуск того же encounter_id

Одинаковый encounter_id означает продолжение того же приёма:

  • врач возвращается в существующую заметку Smartica;
  • простое открытие и закрытие не создаёт новый PUT;
  • новая запись объединяется с предыдущей стенограммой;
  • после обработки Smartica повторно отправляет PUT с актуальными данными;
  • ID нельзя привязать к другой заметке или использовать для нового приёма.

МИС должна обновлять существующий протокол, а не создавать вторую запись.

#Асинхронная отправка

После остановки записи заполнение и write-back выполняются не внутри браузерного запроса. Врач может закрыть вкладку: обработка продолжится в Smartica.

В интерфейсе Smartica отображается статус отправки. При ошибке врач может запустить повтор вручную. Автоматическая повторная доставка на каждый 5xx не является гарантией контракта, поэтому:

  • возвращайте ответ в пределах согласованного timeout;
  • делайте PUT идемпотентным;
  • не рассчитывайте на exactly-once доставку.

Подробнее: Авторизация, ошибки и повторная доставка.

#Тестовое и рабочее окружения

Формат SSO, GET и PUT должен быть одинаковым. Между окружениями меняются только:

  • хосты;
  • секреты;
  • сетевые правила;
  • тестовые данные.

Для общего тестового стенда используйте SSO. Прямой Launch URL без токена допустим только при локальной отладке, когда врач уже вошёл в Smartica.

#Сводка контрактов

Направление Метод Кто реализует Назначение
МИС → Smartica POST на выданный SSO endpoint Smartica Получить launch_url
Браузер → Smartica GET на launch_url Smartica Авторизовать врача и открыть приём
Smartica → МИС GET /…/encounters/{id} МИС Получить шаблон и поля
Smartica → МИС PUT /…/encounters/{id} МИС Сохранить поля и стенограмму

Путь API МИС конфигурируется при подключении. {platform} и точный SSO endpoint выдаёт Smartica после регистрации адаптера.

#Связанные статьи

← Все статьи: Интеграция с МИС Поиск по базе знаний