#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
- Возвращайте минимум одно поле.
- Все
idдолжны быть уникальны внутри ответа. - Не меняйте
idсуществующего поля после запуска интеграции. - Передавайте только текстовые поля; отдельный
typeтекущему контракту не нужен. - Формулируйте
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 и названия полей между одинаковыми запросами.