OraFlow

База знаний и руководство пользователя OraFlow

Полный регламент по всем 16 модулям, процессам и системным ошибкам клиники

1. Архитектура ролей и доступ к данным

Строгая ролевая модель, изоляция филиалов (branch_id) и защита медицинских данных.

Сводная таблица прав и обязанностей сотрудников

Настройки → Персонал клиники

• Суперадминистратор клиники (admin): Вся клиника и все филиалы (branch_id = null). Полный доступ: филиалы, сотрудники, матрица цен, онлайн-запись, общие скидки, вся аналитика, биллинг, очистка базы, SMTP. Не может удалить сам себя или изменить свою роль, если остался единственным администратором.

• Администратор филиала (branch_admin): Только свой филиал (branch_id). Управление сотрудниками своего филиала, локальный прайс-лист филиала, касса и записи своего филиала, кассовый отчет. Запрещено: создание admin и других branch_admin, удаление филиалов, смена имени филиала, доступ к общим разделам (биллинг тарифа, квоты диска, глобальный SMTP).

• Врач клиники (dentist): Свой филиал и только прикреплённые пациенты. Своё расписание, журнал записей, зубная формула, снимки и история лечения прикрепленных пациентов, чат «Второе мнение». Запрещен доступ к медицинской карте пациента (формула, снимки, история), если пациент не закреплен за этим врачом. Не может принимать оплаты.

• Соло-стоматолог (dentist без clinic_id): Личный кабинет (индивидуальная практика). Полный функционал: сам себе администратор, кассир и врач. Доступны скидки, онлайн-запись, личный логотип, аналитика, биллинг. Нет модуля филиалов и штатного расписания сторонних сотрудников.

• Оператор / Ресепшн (operator): Только свой филиал. Создание пациентов, журнал записей, приём платежей, печать квитанций, свой сменный отчет кассира. Полный запрет на медицинские данные: не видит файлы снимков, зубную формулу и историю лечения зубов.

2. Первоначальный запуск и настройка (клиника и соло-стоматолог)

Для клиник и соло-стоматологов: регистрация, часовой пояс, валюта, логотип, а для клиник ещё филиалы, сотрудники и почтовый сервер SMTP.

Видеоуроки: с чего начать

Короткие ролики показывают, как начать работу в OraFlow. Начните с ввода расписания, остальное станет понятно по ходу. Подходит и клиникам, и соло-стоматологам. Все ролики собраны в одном плейлисте, новые добавляются туда же.

Смотреть видеоуроки на YouTube

Регистрация и активация учётной записи

Страница /register

  1. Перейдите на страницу регистрации (/register).
  2. Выберите тип кабинета: «Стоматолог» (для индивидуальной практики на 1 врача) или «Клиника» (для организаций с несколькими врачами/филиалами; укажите лимит штата: 6, 11, 16, 31).
  3. Заполните обязательные поля: логин, пароль, имя, фамилия, рабочий email, телефон (с кодом страны) и название клиники.
  4. На почту поступит письмо. Перейдите по ссылке для активации учётной записи (срок действия ссылки — 24 часа).

Настройка реквизитов, часового пояса и валюты

Настройки → Брендинг и виджеты / Настройки → Прайс-лист

  1. Часовой пояс: перейдите в «Настройки» → «Брендинг и виджеты» (внизу страницы). Нажмите на карандаш рядом с полем часового пояса и выберите свой регион. Границы смен, онлайн-слоты и финансовые отчёты рассчитываются строго по часовому поясу клиники, а не по часам устройства пользователя.
  2. Валюта расчетов: перейдите в «Настройки» → «Прайс-лист». В правом верхнем углу выберите валюту (USD, EUR, RUB, AMD, AED, CNY или введите кастомную до 4 символов). Валюта едина для всей клиники.
  3. Логотип: в разделе «Брендинг и виджеты» → «Логотипы» загрузите логотип клиники (JPEG/PNG до 5 МБ). Система автоматически оптимизирует размер под контейнер 288×96 px без обрезки текста.

Добавление филиалов и персонала

Настройки → Персонал клиники

  1. Филиалы: перейдите в «Настройки» → «Персонал клиники» → вкладка «Клиника и филиалы». Нажмите «+ Добавить филиал», укажите наименование, точный адрес и телефон(ы).
  2. Сотрудники: перейдите во вкладку «Сотрудники», нажмите «+ Добавить сотрудника». Введите логин, ФИО, email, телефон, выберите роль и филиал. На указанный email сотрудника автоматически отправится сгенерированный временный пароль.

Настройка почты для уведомлений (SMTP)

Настройки → Уведомления → Настройки SMTP

  1. Откройте «Настройки» → «Уведомления» → «Настройки SMTP».
  2. Введите сервер, порт (обычно 465 для SSL или 587 для TLS), логин (ваш email) и пароль.
  3. Для Gmail / Яндекс: используйте специальный 16-значный Пароль приложения (App Password), сгенерированный в настройках безопасности почтового сервиса, а не основной пароль от почты.
  4. Введите тестовый адрес в поле «Тестовый Email» и нажмите кнопку «Тест».
  5. После успешной отправки нажмите «Сохранить».

3. Графики работы и управление сменами

Построение графиков по дням недели, четным/нечетным числам, интервалы и интерактивные исключения.

Варианты построения расписания врачей

Настройки → График работы

• По дням недели (weekdays): включите нужные рабочие дни (Пн, Вт, Ср и т.д.). Для каждого дня задайте время начала и окончания смены. Для добавления перерыва нажмите «+ Добавить интервал» (например: 09:00–14:00 и 15:00–19:00). Минимальная длина интервала — 15 минут, пересечения интервалов блокируются автоматически.

• Чётные / Нечётные дни (even-odd): система определяет график по календарному числу дня (2, 4, 6... или 1, 3, 5...). Настройте часы работы для чётных и нечётных смен. В блоке «Исключить дни недели» отключите постоянные выходные (например, снимите субботу и воскресенье, чтобы они всегда оставались нерабочими независимо от числа).

Работа с календарем исключений и история смен

Настройки → График работы → Интерактивный календарь

• Назначить внеплановый выходной: кликните по рабочему дню в календаре — дата пометится красным контуром. Онлайн-запись и обычная запись на этот день закроются.

• Назначить рабочую смену в выходной: кликните по любому нерабочему дню. В появившемся окне задайте часы работы именно на эту дату.

• История графиков: система сохраняет все предыдущие версии расписания. Прошедшие приёмы не смещаются при изменении текущего графика.

4. Календарь и журнал приёмов

Сетка визитов, статусы обслуживания, перенос Drag-and-Drop и аудит приёмов.

Режимы сетки расписания

Расписание

• Дневной вид (по сотрудникам): в шапке отображаются все врачи выбранного филиала параллельными колонками.

• Недельный вид: отображает 7 дней недели для выбранного доктора.

• Быстрое переключение формата времени: кликните по шкале времени слева, чтобы мгновенно переключить режим 24ч / 12ч (AM/PM).

Создание записи на приём

Расписание

  1. Кликните по свободному голубому слоту в колонке врача (или нажмите «Записать на приём»). Голубой цвет означает, что время попадает в рабочий график доктора.
  2. В окне записи найдите существующего пациента по имени, телефону или email (поиск работает от 3 символов) либо введите новое имя и нажмите «Создать нового пациента».
  3. Выберите одну или несколько процедур из прайса (длительность и цена суммируются автоматически).
  4. Укажите тип визита: Одиночный визит или Визит для плана лечения (если у пациента есть открытый план).
  5. При необходимости скорректируйте длительность вручную или добавьте примечание.
  6. Нажмите «Сохранить».

Статусы визита и их переходы

Расписание → Клик по блоку визита

Клик по блоку записи в сетке открывает карточку управления:

• pending (Ожидает, жёлтый) — запись создана, пациент ещё не подтвердил визит.

• confirmed (Подтверждён, зелёный) — пациент подтвердил приход (по телефону/SMS).

• arrived (Прибыл / Check-in, бирюзовый) — пациент подошел на ресепшн клиники.

• completed (Завершён, фиолетовый) — приём проведён. Если визит был привязан к лечебному плану, система предложит: «Завершить только этот визит или весь план лечения целиком?».

• no-show (Неявка, красный) — пациент не пришёл без предупреждения.

• cancelled (Отменён, красный) — приём отменён.

Перенос приёма (Drag-and-Drop)

Расписание

• На компьютере: зажмите блок визита левой кнопкой мыши и перетащите на другое время или в колонку другого врача.

• На смартфоне/планшете: зажмите блок пальцем на 300 миллисекунд (долгий тап), после легкой вибрации перетащите слот.

• Система запросит подтверждение переноса. Если у целевого врача в это время уже стоит другой приём или он не работает — система отклонит перенос с понятным объяснением.

5. Картотека пациентов и дедупликация

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

Правила проверки на дубликаты при создании

Пациенты → Добавить пациента

• Жёсткая блокировка: если в клинике уже есть пациент с таким же номером телефона или email — система выдаст ошибку error_duplicate_phone или error_duplicate_email. Создание второго такого же аккаунта невозможно.

• Мягкое предупреждение: если телефон и email уникальны, но совпадают ФИО и дата рождения, система откроет окно: «Возможный дубликат. Пациент с такими ФИО и датой рождения уже существует. Создать всё равно?». Нажмите «Создать всё равно», только если это подтверждённый полный тёзка.

Структура карточки пациента и прикрепление врачей

Пациенты → [Карточка пациента]

• Профиль: личные данные, возраст (рассчитывается автоматически), блок заметок с быстрым редактированием.

• Назначенные врачи (только в клиниках): блок в левой колонке профиля. Суперадминистратор или оператор выбирает врачей из списка и нажимает «Назначить».

ВАЖНО: пока врач не назначен пациенту, он не сможет просматривать его снимки, вносить записи в зубную карту и смотреть историю зубов.

6. Электронная медицинская карта (ЭМК)

Зубная формула FDI/Universal, история лечения зуба и файловый фотопротокол.

6.1. Зубная формула (Dental Chart)

Карточка пациента → Зубная карта

  1. Переключатель нумерации внизу: FDI (11–48) или Universal (1–32).
  2. Как ставить диагнозы и конструкции: выберите нужный инструмент на верхней панели (например, «Кариес», «Пломба», «Коронка», «Имплант») и кликните по нужному зубу. Зуб окрасится в соответствующий цвет (или появится винт импланта / штифт в канале). Повторный клик тем же инструментом снимает отметку (возвращает статус «Здоров»).
  3. Как построить мостовидный протез (bridge): нажмите на инструмент «Мост» → кликните на первый опорный зуб конструкции (номер зуба начнёт пульсировать синим) → кликните на второй опорный зуб в том же ряду. Система автоматически соединит все зубы между ними монолитной балкой. Для снятия моста выберите инструмент «Мост» и кликните по любому зубу из конструкции.

6.2. История лечения зуба (Tooth History)

Карточка пациента → Зубная карта

  1. На панели инструментов зубной формулы отключите все инструменты (режим курсора).
  2. Кликните по любому зубу — справа выдвинется панель истории именно этого зуба.
  3. Нажмите «+ Добавить запись», введите протокол лечения и нажмите «Сохранить».
  4. Медицинский аудит: если нажать «Редактировать» на старой записи, исходный текст не удалится. Он зачеркнется и сохранится в истории версий с пометкой, кто и когда внёс правку.

6.3. Хранилище рентгеновских снимков и фото (Files)

Карточка пациента → Файлы

• Загрузка: нажмите на блок загрузки вверху вкладки «Файлы». Выберите файлы на компьютере или сделайте фото с телефона/планшета.

• Опция «Сжать фото»: активна по умолчанию. Уменьшает разрешение тяжелых фотографий до Full HD (1920×1080), экономя дисковую квоту клиники без потери диагностической ценности.

• Привязка к зубам: перед загрузкой нажмите на номера зубов на интерактивной мини-схеме челюсти. Снимок автоматически привяжется к этим зубам и будет виден при просмотре истории зуба.

• Просмотр (Lightbox): клик по миниатюре открывает полноэкранный просмотрщик. Поддерживается плавное масштабирование колесиком мыши или жестом двух пальцев (pinch-to-zoom) на мобильном.

7. Планы лечения

Формирование прозрачной сметы, привязка к филиалу, авто-скидки, договорные цены и завершение.

Жизненный цикл и расчет плана лечения

Карточка пациента → Планы лечения

  1. Нажмите «Создать план», введите название (например, «Имплантация и протезирование 2026»). У пациента одновременно может быть только один активный план лечения.
  2. Привязка к филиалу: в выпадающем меню выберите филиал, где будет проходить лечение. Стоимость всех процедур мгновенно пересчитается по прейскуранту этого филиала.
  3. Наполнение процедурами: в строке поиска начните вводить название процедуры и выберите её. Повторяйте для всех этапов.
  4. Скидки на план: при наличии подходящих скидок появится синий блок с кнопкой «Применить скидку».
  5. Договорная (ручная) цена: нажмите иконку карандаша рядом с графой «Итоговая стоимость» и впишите согласованную сумму. Система зафиксирует разницу как персональную ручную скидку.
  6. Оплата плана: пациент может оплачивать план частями (авансами). Прогресс-бар наглядно показывает соотношение «Оплачено / Остаток».
  7. Завершение: когда все процедуры выполнены, в меню действий (три точки) выберите «Завершить план». После этого можно создать новый план лечения.

8. Касса, платежи и финансовые операции

Приём оплат всеми методами, списание баллов/сертификатов, кэшбэк и бухгалтерское сторно.

Как принять платёж у пациента?

Календарь → Визит → «Внести оплату» ИЛИ Карточка пациента → «Оплаты»

  1. Из календаря: кликните на запись приёма → нажмите зеленую кнопку «Внести оплату».
  2. Из карточки пациента: откройте вкладку «Оплаты» или «Планы лечения» → нажмите кнопку с иконкой банковской карты.
  3. В открывшемся окне выберите назначение платежа (одиночный приём или лечебный план), укажите сумму (по умолчанию подставляется точный остаток долга), выберите метод (Карта, Наличные, Перевод на счёт, Подарочная карта или Бонусы) и выберите врача, которому идёт зачёт выручки.
  4. Нажмите «Сохранить платёж».

Оплата бонусами или подарочной картой

Окно приёма платежа

• Если у пациента есть подарочный сертификат или бонусы, на соответствующих кнопках отобразится доступный остаток.

• Если сумма платежа превышает остаток бонусов или номинал карты — система выдаст ошибку с указанием точного доступного баланса.

Исправление ошибок кассира и возврат денег (Сторнирование)

Карточка пациента → Вкладка «Оплаты»

  1. В OraFlow финансовая история неизменяема по законам бухучёта. Удалить строку платежа бесследно нельзя.
  2. Зайдите во вкладку пациента «Оплаты».
  3. Раскройте нужный план или визит.
  4. В строке ошибочного платежа нажмите меню действий (три точки) справа.
  5. Нажмите «Удалить» (для полной отмены) или «Редактировать» (для изменения суммы/способа).
  6. Что произойдет автоматически: ошибочный платёж перечеркнётся красной линией (is_deleted = true), создастся компенсирующая сторно-запись с отрицательной суммой, начисленный кэшбэк спишется с бонусного счёта, баллы/сертификаты вернутся на баланс, а общий долг пациента пересчитается в реальном времени.

9. Маркетинг: Скидки, Промокоды, Сертификаты и Бонусы

Политики сочетания скидок, тиражи подарочных карт, генерация уникальных купонов и кэшбэк.

9.1. Правила взаимодействия скидок (Политики)

Настройки → Управление скидками → Общие настройки

• Приоритет (Priority): сравнивает все сработавшие скидки и применяет одну, наиболее выгодную пациенту.

• Каскад (Cascade): скидки выстраиваются в цепочку и применяются последовательно к остатку цены.

• Суммирование (Summable): проценты персональной скидки пациента и общеклинической акции складываются.

9.2. Создание программ лояльности

Настройки → Управление скидками

При нажатии «Создать скидку» доступны 4 варианта:

1. Глобальная акция: автоматическая скидка для всех (например, «-20% на профгигиену в мае»).

2. Для ручного назначения: шаблон скидки, который администратор вручную прикрепляет конкретным VIP-клиентам в их карточке.

3. Общий промокод: кодовое слово (например, INSTA2026), дающее скидку при вводе.

4. Шаблон для генерации уникальных кодов: заготовка под печать одноразовых купонов.

9.3. Генератор уникальных промокодов

Настройки → Управление скидками → Генератор кодов

  1. Перейдите в блок «Генератор уникальных промокодов».
  2. Выберите шаблон акции.
  3. Задайте количество кодов (до 1000 за раз) и префикс (до 12 латинских символов, например LETO).
  4. Нажмите «Сгенерировать». Коды можно скопировать списком или выгрузить в CSV/TXT для рассылки или типографии.

9.4. Подарочные сертификаты (Gift Cards)

Настройки → Управление скидками → Подарочные карты

  1. Одиночный сертификат: выберите «Одиночный выпуск», укажите номинал и срок действия. Система сгенерирует 10-значный уникальный код.
  2. Тираж карт для печати: выберите «Пакетный выпуск», введите имя серии (например, «Новогодние 5000»), количество (до 500 шт.) и номинал. Выгрузите полученный тираж в CSV для передачи на производство пластиковых карт.
  3. Активация: в карточке пациента во вкладке «Лояльность» введите код сертификата в поле «Подарочные карты» и нажмите «Активировать».

10. Онлайн-запись, виджеты и QR-коды

Создание публичных виджетов записи, выгрузка QR-кодов и онлайн-шаги пациента.

Создание публичной ссылки и QR-кода

Настройки → Брендинг и виджеты → Виджеты онлайн-записи

  1. Введите рабочее название ссылки (например, «Таплинк Терапия»).
  2. Задайте уровень охвата (scope): Вся клиника (пациент сможет выбрать филиал, любого врача и любую процедуру), Филиал (запись только на выбранный адрес) или Врач (персональная ссылка на конкретного доктора).
  3. Отметьте галочками процедуры, которые будут доступны пациентам для онлайн-выбора.
  4. Включите переключатель «Показывать цены», если хотите отображать прейскурант.
  5. Нажмите «Создать ссылку».

QR-коды для печати и мессенджеров

Настройки → Брендинг и виджеты → Иконка QR напротив ссылки

В модальном окне вы можете:

• Нажать «Скачать PNG» — для отправки дизайнеру полиграфии (печать на стойку ресепшн, визитки, флаеры).

• Нажать «WhatsApp» или «Email» — для быстрой отправки ссылки пациенту.

• Скопировать прямую ссылку формата https://your-domain.com/book/xxxxxxxx.

Как видит запись пациент (4 шага)

Публичный виджет записи

  1. Шаг 1: Выбор услуги.
  2. Шаг 2: Выбор врача (если не был зафиксирован в ссылке).
  3. Шаг 3: Выбор даты и свободного временного окна из реального графика клиники.
  4. Шаг 4: Ввод имени, телефона и даты рождения. При подтверждении запись мгновенно появляется в сетке расписания со статусом pending и пометкой «Онлайн-запись».

11. Аналитика и финансовые отчеты

Сводка кассы, выручка по докторам, реестр должников, смены кассиров и востребованность процедур.

Как пользоваться модулем отчётов и что означает каждый показатель?

Аналитика (иконка графика в верхней панели)

  1. В верхнем блоке отметьте галочками нужные отчёты:
  2. • Сводка: общая касса за период и суммарный долг пациентов.
  3. • Поток пациентов: количество первичных пациентов и повторных визитов.
  4. • Обязательства: объём выданных скидок, остаток денег на подарочных картах и в бонусных баллах.
  5. • По докторам: выручка с разбивкой по врачам.
  6. • Должники: детальная таблица долгов с указанием, в каком филиале возник долг.
  7. • Планы лечения: реестр активных планов, стоимость и процент оплаты.
  8. • Популярность процедур: частота выполнения процедур в штуках и их базовая стоимость.
  9. • Отчёт кассира: сверка кассы с разбивкой по администраторам и типам платежей (нал, терминал, бонусы).
  10. Задайте период дат, филиал и доктора, затем нажмите кнопку «Сформировать отчёт».
  11. Любую таблицу можно экспортировать в Excel/CSV по кнопке с иконкой файла.

12. Центр связи (Внутренние чаты, «Второе мнение», Сеть партнёров)

Корпоративные каналы филиалов, профессиональный форум врачей, B2B-партнерства и автоочистка 24ч.

Каналы коммуникации и правила безопасности

Иконка сообщения в правом верхнем углу

Выдвижная панель открывается кликом по иконке диалога в шапке справа:

• Чат филиала / клиники: для оперативных служебных сообщений дежурной смены.

• Личные сообщения (DMs): персональная переписка сотрудников (зелёная точка показывает статус «онлайн»).

• Лента «Второе мнение» (для докторов): выберите специальность (Терапия, Ортодонтия, Хирургия и др.) и язык. Публикуйте сложные клинические случаи и снимки для обсуждения с коллегами платформы. Лимит публикаций: на бесплатном тарифе — 1 сообщение в час, на платном — до 30 в час.

• Каталог «Готовы помочь»: включите переключатель «Готов помочь», чтобы другие врачи платформы могли обратиться к вам за оперативной онлайн-консультацией.

• Сеть партнёров (Partners): B2B-модуль для сотрудничества независимых клиник (направление на КТ, наркоз, лабораторные этапы). Найдите партнерскую клинику через поиск, отправьте заявку на партнерство. После подтверждения открывается общий межклинический чат.

ПОЛИТИКА КОНФИДЕНЦИАЛЬНОСТИ: чаты работают на сверхбыстром хранилище с автоматическим сроком жизни сообщений 24 часа. По истечении суток история сообщений автоматически очищается.

13. Управление диском, архивы и очистка базы данных

Индикатор квоты, реестр файлов, пакетная выгрузка ZIP и безопасное удаление с оптимизацией VACUUM.

Индикатор хранилища и файловый архив

Настройки → Управление хранилищем

• Индикатор хранилища показывает реальный расклад занятого места: Синий сегмент — физические файлы снимков, логотипов и аватаров; Зелёный сегмент — размер таблиц и индексов базы данных; Жёлтая плашка — предупреждение об истечении срока оплаченного дополнительного диска.

• Файловый архив: реестр всех когда-либо загруженных файлов клиники. Позволяет найти самые тяжёлые снимки, отфильтровать по пациенту или скачать до 100 файлов единым ZIP-архивом (на ПК).

Инструмент очистки базы данных

Настройки → Управление хранилищем → Очистка базы данных

  1. Позволяет безопасно освободить дисковую квоту.
  2. Задайте временные рамки (например, всё, что старше 2 лет назад).
  3. Выберите компоненты для очистки: старые системные логи, отменённые приёмы без платежей, архивные планы без долгов.
  4. Нажмите «Предпросмотр очистки» — система рассчитает количество удаляемых строк без фактического удаления.
  5. Нажмите «Выполнить очистку» (для удаления медицинских сущностей потребуется ввести пароль администратора). После операции система автоматически оптимизирует таблицы (VACUUM).

14. Тарифы, подписка и реферальная система

Тарифная сетка, скидки на периоды, докупка диска, реферальные начисления и режим Read-Only.

Тарифная сетка и продление

Настройки → Биллинг и подписка

• В карточке отображается текущий план, максимальный штат врачей и дата окончания.

• Доступны скидки на предоплату: 1 месяц — базовая цена; 3 месяца — скидка 5%; 6 месяцев — скидка 10%; 12 месяцев — оплата за 10 месяцев (2 месяца в подарок).

• Дополнительное место на диске докупается отдельными пакетами без необходимости перехода на дорогой тариф.

Реферальная программа

Настройки → Реферальная программа

• В разделе «Настройки» → «Реферальная программа» скопируйте вашу уникальную ссылку.

• Поделитесь ссылкой с коллегами из других клиник.

• Когда новая клиника регистрируется по вашей ссылке и вносит первую абонентскую плату, по окончании 30-дневного защитного периода вам начисляется несгораемый бонус на реферальный баланс в USD.

• Накопленный реферальный кредит можно списать в счёт оплаты своего тарифа или доп. диска кнопкой «Использовать баланс».

15. Мобильное приложение (PWA / iOS / Android)

Специфика интерфейса на смартфонах: нижняя навигация, стек пациентов и сенсорные жесты.

Особенности работы на мобильных устройствах

Интерфейс смартфонов и планшетов

Интерфейс OraFlow адаптирован под смартфоны и планшеты через технологию Capacitor:

1. Нижняя навигация (Bottom Nav): основные разделы (Расписание, Пациенты, Аналитика, Настройки) перенесены вниз экрана под большой палец.

2. Стек открытых пациентов: если открыто несколько карточек пациентов, в нижней панели появляется кнопка с иконкой стопки и счётчиком. Нажмите на неё, чтобы переключаться между открытыми пациентами в один тап.

3. Управление визитом на тачскрине: обычный короткий тап по приёму открывает карточку действий; долгий тап с удержанием 300 мс активирует режим переноса записи пальцем.

4. Жесты в рентген-снимках: двойной тап увеличивает область снимка, сведение и разведение двух пальцев (pinch-to-zoom) плавно масштабирует детали.

16. Каталог системных ошибок и инструкции по устранению

Полный справочник системных сообщений, причин возникновения и пошаговых решений.

Время записи занято другим приёмом

error_time_slot_busy

Причина: выбранное время пересекается с другим приёмом этого доктора.

Решение: измените время начала, сократите длительность или выберите другого свободного врача.

Врач не работает в выбранное время

error_doctor_not_working

Причина: время визита выходит за границы рабочего графика врача.

Решение: проверьте часы работы врача в «Графике работы» или добавьте ему индивидуальную рабочую смену на этот день.

Не удаётся удалить приём с принятыми платежами

error_delete_appointment_with_payments

Причина: попытка удалить визит, по которому в кассу уже внесены деньги.

Решение: сначала перейдите в визит, нажмите на платежи и выполните сторно (удаление) всех платежей. После обнуления оплат приём удалится.

Пациент с таким телефоном или Email уже существует

error_duplicate_phone

Причина: в базе уже зарегистрирован пациент с таким телефоном или почтой (error_duplicate_phone / error_duplicate_email).

Решение: найдите существующего пациента через строку поиска в «Пациентах». Система защищает базу от дублирования карт.

Совпали ФИО и дата рождения (Возможный дубликат)

error_possible_duplicate_name_dob

Причина: совпали ФИО и дата рождения с существующим пациентом.

Решение: внимательно проверьте совпадение. Если это действительно другой человек-тёзка — нажмите кнопку «Создать всё равно».

Нельзя удалить пациента с активными визитами

cannot_delete_patient_active_appointments

Причина: попытка удалить пациента, у которого есть незавершённые будущие визиты.

Решение: отмените или завершите все приёмы пациента в расписании, после чего удаление станет доступно.

Нельзя удалить единственного администратора клиники

last_admin_cannot_delete

Причина: попытка удалить или сменить роль единственного администратора клиники (last_admin_cannot_delete / last_admin_cannot_change_role).

Решение: запрещено. Клиника не может остаться без управляющего. Сначала назначьте роль администратора другому сотруднику.

Нельзя удалить врача с запланированными приёмами

cannot_delete_staff_with_active_appointments

Причина: попытка удалить врача, у которого есть запланированные приёмы.

Решение: откройте расписание и перенесите все будущие записи этого врача на других докторов.

Нельзя удалить филиал, в котором числятся сотрудники

cannot_delete_branch_with_staff

Причина: попытка удалить филиал, к которому привязаны пользователи.

Решение: в «Персонале клиники» переведите всех сотрудников филиала на другой адрес, затем удалите пустой филиал.

Нельзя удалить филиал с активными процессами

cannot_delete_branch_with_active_appointments

Причина: за филиалом числятся визиты или открытые планы лечения.

Решение: завершите, отмените или перепривяжите к другому филиалу все активные процессы по этому адресу.

Режим «Только чтение»: подписка истекла

error_subscription_expired

Причина: истёк оплаченный период подписки клиники.

Решение: система автоматически заблокировала внесение изменений (режим Read-Only). Перейдите в раздел «Биллинг и подписка» и продлите тариф.

Лимит сотрудников превышен для нового тарифа

error_downgrade_staff_limit_exceeded

Причина: попытка перейти на тариф с меньшим лимитом сотрудников, чем создано сейчас.

Решение: на аккаунте создано больше людей, чем разрешено новым тарифом. Сначала удалите неактивных сотрудников, чтобы уложиться в лимит.

Запрещён переход клиники на тариф «Соло»

error_clinic_to_solo_forbidden

Причина: клиника пытается перейти на тариф «Соло».

Решение: переход клиники с несколькими сотрудниками или филиалами на однопользовательский тариф «Соло» невозможен архитектурно.

Недостаточно бонусов для списания

error_insufficient_bonus_balance

Причина: списываемая сумма превышает остаток бонусов у пациента.

Решение: укажите сумму бонусов, равную или меньшую, чем текущий баланс пациента.

Недостаточно средств на подарочной карте

error_insufficient_gift_card_balance

Причина: сумма к списанию превышает остаток по подарочной карте.

Решение: проверьте остаток карты пациента во вкладке «Лояльность» и спишите только доступную сумму.

Превышен лимит сообщений в ленте «Второе мнение»

error_feed_rate_limit

Причина: превышен лимит публикаций в ленте «Второе мнение».

Решение: для триала — максимум 1 пост в час, для платного тарифа — до 30 постов в час. Подождите окончания временного окна.