#GET: контекст приёма

Этот endpoint реализует ваша МИС. Smartica вызывает его после Launch, когда создаёт или подготавливает связанную заметку приёма.

Путь настраивается при онбординге. Рекомендуемый пример:

https://mis.example.ru/api/smartica/encounters/{encounter_id}

#Запрос Smartica

GET /api/smartica/encounters/12345 HTTP/1.1
Host: mis.example.ru
Authorization: Basic <base64(login:password)>
Accept: application/json

12345 — тот же encounter_id, который бэкенд МИС передал в SSO-запросе.

Текущий адаптер ожидает ответ не дольше 30 секунд. Стремитесь отвечать быстрее и не выполняйте в этом запросе тяжёлые фоновые операции.

#Успешный ответ

Верните 200 OK, Content-Type: application/json; charset=utf-8 и JSON-объект:

{
  "encounter_id": "12345",
  "user_email": "doctor@clinic.ru",
  "template": "Кардиолог",
  "fields": [
    { "id": "complaints", "label": "Жалобы" },
    { "id": "anamnesis_life", "label": "Anamnesis vitae (анамнез жизни)" },
    { "id": "diagnosis_primary", "label": "Диагноз (основной)" }
  ]
}
Поле Для новых интеграций Тип Описание
encounter_id обязательно string Должен совпадать с ID из URL и SSO
user_email обязательно string Email врача, ведущего этот приём
template обязательно string Непустое стабильное имя бланка или специальности
fields обязательно array Непустой массив полей протокола
fields[].id обязательно string Непустой, уникальный и стабильный ключ
fields[].label обязательно string Непустое однозначное название поля

Smartica умеет использовать ID из URL, если encounter_id отсутствует, и технически допускает отсутствие user_email для обратной совместимости. Для нового подключения не полагайтесь на это: возвращайте оба поля, чтобы обнаруживать несоответствие приёма и врача.

#Правила encounter_id и user_email

  • encounter_id в JSON и URL должны совпадать посимвольно;
  • передавайте ID строкой;
  • user_email должен относиться к тому же врачу, который вошёл через SSO;
  • регистр email не учитывается;
  • при несовпадении email Smartica фиксирует предупреждение, а в строгой конфигурации блокирует обработку.

#Правила template

template задаёт клинический контекст заполнения, особенно для осмотра и профильных разделов.

Хорошие примеры:

Значение Когда использовать
"Кардиолог" Один общий бланк кардиолога
"Первичный приём педиатра" Отдельный бланк первичного приёма
"Повторный приём педиатра" Другой набор или смысл полей
"УЗИ органов брюшной полости" Специализированный протокол исследования

Для одного бланка всегда возвращайте одно значение. Не меняйте регистр, язык или синонимы от приёма к приёму.

#Правила fields

  1. Возвращайте минимум одно поле.
  2. Все id должны быть уникальны внутри ответа.
  3. Не меняйте id существующего поля после запуска интеграции.
  4. Передавайте только текстовые поля; отдельный type текущему контракту не нужен.
  5. Формулируйте label так, как его понимает врач.

Примеры:

Оценка id label Причина
Хорошо "complaints" "Жалобы" Однозначное назначение
Хорошо "objective_status" "Объективный статус (status praesens)" Есть медицинский контекст
Хорошо "diagnosis_primary" "Диагноз (основной)" Не спутать с сопутствующим
Плохо "field_3" "Статус" И ключ, и название не объясняют смысл
Плохо "1" "Данные" Нельзя надёжно сопоставить содержимое

#Какие данные не нужны

Не добавляйте в ответ отдельные ФИО пациента, номер карты, телефон, адрес и другие демографические поля, если это не согласовано отдельно. Smartica сохраняет и обрабатывает переданные поля, template, email врача и последующую стенограмму как данные интеграционного приёма.

Подробнее о защите данных: Защита данных.

#Ошибки

Возвращайте JSON с безопасным сообщением:

{
  "message": "Приём не найден"
}
Код Когда использовать
401 Неверные или отсутствующие credentials
403 Credentials верны, но доступ к ресурсу запрещён
404 Приём с таким ID не найден
409 Приём существует, но находится в несовместимом состоянии
422 ID корректен по формату, но запрос нельзя обработать
5xx Временная ошибка МИС

Любой non-2xx, timeout, пустое тело или невалидный JSON означает неуспешную подготовку. Автоматический сетевой retry не гарантирован; после исправления врач может открыть приём снова.

Не возвращайте в message stack trace, SQL, внутренние пути и секреты.

#Проверка через curl

curl --fail-with-body --silent --show-error \
  --user 'LOGIN:PASSWORD' \
  --header 'Accept: application/json' \
  'https://mis.example.ru/api/smartica/encounters/12345'

Проверьте, что ответ:

  • имеет код 200;
  • содержит Content-Type: application/json;
  • декодируется как JSON-объект;
  • содержит непустые template и fields;
  • не меняет ID и названия полей между одинаковыми запросами.

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

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