#Протокол после правки врача

Пришлите протокол, который врач сохранил в карточке приёма. smartica.ai отличает этот текст от протокола, который сама отдала в МИС.

Запрос необязателен. Без него протокол по-прежнему приходит через PUT или GET. ack для этого запроса не нужен. Пришлите версию сразу после сохранения карточки.

#Пришлите версию после сохранения карточки

Пришлите версию один раз, когда врач сохраняет карточку. Не присылайте её на каждый введённый символ.

smartica.ai не создаёт новую версию, если поля, стенограмма и status совпадают с последней сохранённой версией этой ревизии. Код ответа 200. Поле version остаётся прежним. Когда последняя версия этой ревизии уже другая, повтор прежнего состояния создаёт новую версию.

Укажите status, если МИС различает черновик и итоговый протокол.

  • Для промежуточного сохранения укажите draft.
  • Для подписанного или закрытого протокола укажите final.

Если вы пришлёте тот же текст сначала со статусом draft, а затем со статусом final, smartica.ai сохраняет отдельную версию. Если МИС черновик и итог не различает, поле status не указывайте.

Возьмите номер ревизии протокола, который врач правил.

  • При push номер приходит в заголовке X-Smartica-Revision входящего PUT.
  • При pull номер приходит в поле revision ответа GET.

Сохраните этот номер вместе с протоколом. Укажите его в поле base_revision.

#Пришлите протокол целиком

В массив fields входят все поля бланка на момент сохранения, включая те, которые врач не менял.

Если id нет в массиве, поле пустое. Пустая строка и null тоже означают пустое поле. Во входящем PUT правило другое. Поле, которого нет в массиве, нужно оставить как было.

Непустой id, которого не было в отданном протоколе, тоже попадает в сохранённую версию. Порядок полей в массиве не важен.

#Запрос

POST /api/v1/integrations/{platform}/encounters/{smartica_encounter_id}/versions
Authorization: Bearer <API-ключ клиники>
Content-Type: application/json

{
  "base_revision": 1,
  "status": "final",
  "saved_at": "2026-10-23T12:00:00+03:00",
  "user_email": "doctor@clinic.ru",
  "fields": [
    { "id": "complaints", "value": "Кашель три дня, по ночам" },
    { "id": "diagnosis", "value": "" }
  ]
}

Обязательны только base_revision и fields. Остальные поля примера можно опустить.

Поле Обязательно Описание
base_revision да Ревизия протокола, который врач правил. Целое число от 0
fields да Все поля бланка. Пустой массив означает, что полей нет. id, которого нет в массиве, считается пустым
fields[].id да Тот же id, что в бланке. В массиве каждый id встречается один раз
fields[].value да Ключ обязателен. Пустая строка и null означают пустое поле. Для числа, флажка и списка передайте значение того же типа, что пришло в протоколе. Для целого поля 72 и "72" означают одно значение
status нет draft или final
saved_at нет Момент сохранения карточки в формате ISO-8601
user_email нет Почта сотрудника, который сохранил карточку
transcript нет Новый текст стенограммы. Укажите поле, только если стенограмму изменили. Без transcript прежняя стенограмма остаётся

#Ответ

Код 201 означает новую версию. Код 200 означает, что запрос совпал с последней сохранённой версией этой ревизии.

{
  "smartica_encounter_id": "7f3a9c2e-4b1e-4a8d-9c3f-2e1a8b4d6f0c",
  "version": 2,
  "base_revision": 1,
  "status": "final"
}

В ответе два разных счётчика. version нумерует сохранённые состояния приёма у smartica.ai. base_revision повторяет ревизию, которую вы прислали. Если вы не передали status, в ответе это поле равно null.

#Ошибки

В ответе с ошибкой есть поле error.

HTTP error Что делать
409 not_delivered Протокол ещё не отдавали. Дождитесь PUT или GET со статусом ready
409 revision_unknown Этой ревизии среди отданных протоколов нет. Возьмите номер из последнего PUT или GET
409 version_limit Для этого приёма уже сохранён максимум версий. Новая версия не записывается. Уже сохранённые остаются
404 encounter_not_found UUID неверный или приём принадлежит другой клинике
410 encounter_deleted Запись удалена в smartica.ai
422 validation_failed Данные не прошли проверку. Частые причины: повтор id, status не draft и не final, значение не подходит типу поля из бланка. Число проверяется по min и max, строка string по max_length

По умолчанию на один приём приходится не больше 100 версий. В это число входят протоколы, которые smartica.ai отдала в МИС, и версии, которые прислали вы. Подробности в статье Лимиты.

Длины полей собраны там же, в разделе Форматы и длины полей. Ошибки ключа, адреса клиники и частоты запросов описаны в статье Авторизация и ошибки.

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

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