SMS пациентам
SMS-шлюз портала, согласие пациента и номер, что написано в сообщении, тихие часы и лимиты, журнал доставки, правовые заметки.
Портал может отправлять пациенту личную ссылку ePRO и напоминания по SMS от своего имени, без телефона центра. Он делает это, только когда выполнены два условия: Владыка портала настроил SMS-шлюз, а центр записал в карточке пациента, что пациент согласился на SMS на определённый номер. В тексте нет ни исследования, ни болезни, ни имени пациента и никогда нет PIN.
Как идёт сообщение
Настройка шлюза (для Владыки портала)
Откройте Администрирование › SMS. Один шлюз обслуживает весь портал:
- Провайдер: SMS.RU или «Только журнал» для разработки и тестов (ничего не покидает сервер; в его журнал пишутся номер под маской и длина). «Выключено: без SMS» сразу останавливает все сообщения.
- API-ключ: для SMS.RU это
api_idиз личного кабинета. Он хранится зашифрованным ключом сервера (PII_KEY) и больше не показывается: страница пишет только «задан». В аудит записывается, что ключ изменён, но не сам ключ. - Имя отправителя: от 2 до 11 латинских букв или цифр, ровно как оно зарегистрировано у провайдера. Выбирайте нейтральное, например название портала: никогда не болезнь и не исследование.
- SMS в сутки: лимит на весь портал (по умолчанию 300; 0 — без лимита). Когда он исчерпан, новые сообщения до завтра не принимаются, и страница об этом говорит.
- Отправлять с … до: часы по часовому поясу сервера (
TIME_ZONEустановки). Вне их сообщения ждут утра.

Отправить тестовое SMS сразу, без очереди, отправляет настоящее сообщение на ваш телефон, так что ошибку провайдера видно немедленно. С отметкой Пробный запуск провайдер проверяет ключ, отправителя и номер и ничего не отправляет. Проверить ключ запрашивает у провайдера баланс. Каждая проверка попадает в аудит портала с номером под маской.
Другие провайдеры (например, SMSC, SMS Aero или, за пределами России, Twilio) подключаются небольшим адаптером в app/core/sms.py: отправка одного сообщения и проверка ключа. Остальной портал не меняется.
Согласие пациента и номер
В карточке пациента, в разделе Опросники для пациента, появляется блок SMS пациенту, если в исследовании есть формы, которые заполняет пациент, и функция включена. Исследователь или менеджер исследования нажимает Записать согласие на SMS, вводит номер мобильного с кодом страны (в России можно и 8 900… или 900…), день согласия пациента и язык сообщений (русский или английский), отмечает, что пациент согласился, и сохраняет.

Номер хранится зашифрованным, как адрес почты пациента, и только для сообщений: команда, журнал доставки и аудит видят его под маской (+7 900 ***-**-12). Новый номер заменяет прежнее согласие; старое остаётся в истории с пометкой «Заменён новым номером». Остальные роли видят блок, но не меняют его.
Что написано в сообщении
Три вида сообщений, каждое укладывается в одно-два SMS:
- Приглашение со ссылкой: «Опросники от вашего врача: https://…/pt/… Для входа введите свой PIN.» До первого входа сообщение просит открыть ссылку и придумать PIN; после сброса PIN — ввести код, который дали в центре.
- Напоминание: ждёт опросник, с датой, до которой можно ответить.
- Напоминание: последний день.
Ссылка — это личная ссылка пациента: она всё равно спрашивает PIN, а сам PIN никогда не отправляется ни в том же сообщении, ни в другом SMS. Язык — тот, что выбран при записи согласия. Все тексты есть в пакете экранов ePRO для ЛЭК.
Напоминания по SMS отправляет та же ежечасная задача, что и напоминания на почту: когда опросник открывается и в его последний день, не больше одного SMS пациенту за запуск и не больше 3 SMS пациенту за 24 часа.
Как прекратить SMS
Прекратить SMS в карточке пациента останавливает все сообщения и удаляет номер. Выберите причину: пациент попросил прекратить (СТОП), номер неверен или больше не принадлежит пациенту, другое. Прекращение работает и в закрытом исследовании. Пациент может и сам выключить SMS на странице опросников после ввода PIN. Журнал доставки и аудит сохраняют номер под маской.
Журнал доставки и аудит
Под блоком Журнал доставки перечисляет каждое сообщение: когда, какое, кто отправил (или «задача напоминаний») и состояние: в очереди (со временем отправки), отправлено, повтор, не отправлено (с причиной простыми словами и кодом провайдера), тестовый режим. Временная ошибка провайдера (нет связи, провайдер недоступен) повторяется до 5 раз; неверный номер или нехватка денег на счёте не повторяются.
Аудит исследования записывает согласие (номер под маской, дата, язык, кто записал), каждое сообщение (вид, номер под маской, кто отправил или «Напоминания ePRO») и прекращение с причиной. Текст сообщения после отправки не хранится: в нём личная ссылка.
Тест, обучение и демо
В среде QA или обучения и в демо-исследованиях портал просит провайдера проверить каждое сообщение в тестовом режиме и ничего не отправлять на телефон. Журнал доставки помечает их «тестовый режим», так что весь путь можно пройти без настоящих телефонов.
Правовые заметки
- Имя отправителя регистрирует владелец портала у SMS-провайдера (агрегатора), а тот согласует его с операторами связи. Пока имя не одобрено, провайдер не принимает сообщения или подменяет имя.
- Согласие записывает центр в карточке пациента с датой и тем, кто записал, и пациент знает, что SMS можно прекратить в любой момент. Подписанную форму храните так, как требует исследование; портал хранит запись и аудит.
- WhatsApp, Telegram, Viber и другие мессенджеры сознательно не поддерживаются. Номер пациента и сам факт участия в исследовании — персональные данные о здоровье; через иностранный мессенджер они ушли бы за границу (трансграничная передача по 152-ФЗ). SMS идут через провайдера страны установки.
- Другие страны. Какой провайдер, какие форматы номеров и какие правила согласия и имён отправителей действуют, решают настройки установки (
REGION,TIME_ZONEи провайдер в Администрирование › SMS) и закон этой страны.