Вайбцех

План лечения пациента: своя таблица следующего этапа на вайб-кодинге

Опубликовано 19 мин чтенияБазовый
Женщина работает за столом с экраном, на котором видна административная таблица следующего этапа.
Что узнаете
  • таблицу планов лечения с этапами и статусами
  • автоматический выбор следующего незавершённого шага
  • лист пациентов, которым пора написать или позвонить
  • промпты для сборки без копирования программного кода
  • чек-лист проверки дубликатов, пропущенных сообщений и доступа к данным
Применить за 30 мин
Базовый
2просмотров
Что в инструкции
  1. Что изменилось, когда следующий этап перестал жить только в памяти?
  2. Почему своя карточка удобнее готового сервиса?
  3. Что должно быть внутри плана лечения стоматологического пациента?
  4. Лист «Пациенты»
  5. Лист «Этапы»
  6. Лист «На обзвон»
  7. Что поставить перед сборкой и сколько это стоит?
  8. Как собрать карточку плана лечения по шагам?
  9. Что появится в папке после сборки?
  10. Что делать, если напоминание не приходит или приходит дважды?
  11. Напоминание приходит дважды
  12. Событие потерялось
  13. Истёк доступ
  14. Появилась ошибка 429
  15. Обновляется не та строка
  16. Сообщение отправилось, но отметка не сохранилась
  17. Сколько стоит своё решение по сравнению с сервисом и подрядчиком?
  18. Что сделать сегодня, если технологии не близки?
  19. Вопросы и ответы

Ниже пошаговая инструкция из десяти шагов, и к каждому есть готовый промпт. Возьми принцип за основу, а поля, роли и сроки подстрой под свою работу.

А началось всё с вопроса: почему пациент не дошёл до следующего визита?

Я веду запись пациентов и вижу одну и ту же картину. Врач объясняет следующий этап, администратор должен найти окно и напомнить, а сам план лечения остаётся между этими действиями. Если человек не записался сразу, он легко выпадает из поля зрения.

Сначала я пыталась держать это в голове. Потом появился ручной список. В нём были пациенты из МИС, заметки после приёма и отдельные пометки о переносах. Такой список быстро превращается в новую проблему: кого-то отмечаешь дважды, кого-то пропускаешь, а строку можно удалить случайно.

С первого раза собрать рабочую вещь тоже не получилось. Если попросить помощника сделать «систему для стоматологии», он начинает предлагать слишком много: личные кабинеты, отчёты, расписание и десятки полей. Мне пришлось начать с одного правила: после каждого визита оставить только следующий незавершённый шаг и дату, когда о нём нужно напомнить.

Когда это заработало, стало спокойнее. Я больше не держу в голове длинный список незакрытых планов. Открываю лист и вижу, кому пора написать сегодня.

Что изменилось, когда следующий этап перестал жить только в памяти?

Раньше после приёма нужно было сделать несколько действий:

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

Каждое действие отдельно кажется небольшим. Вместе они создают постоянное напряжение. Особенно когда есть переносы, отмены и пациенты, которые не дошли на повторный приём.

Теперь логика другая. В листе «Этапы» одна строка означает один шаг конкретного плана. Врач или администратор меняет статус выполненного этапа. Следующий незавершённый шаг появляется автоматически. Дата напоминания считается от последнего визита и правила, которое задала клиника.

В листе «На обзвон» остаются только те, у кого:

  • следующий этап ещё есть;
  • дата напоминания наступила;
  • контакт не отмечен как выполненный.

Это рабочий список администратора для контроля следующего контакта; медицинская карта и МИС остаются основными системами. Его задача простая: показать, кому нужно вернуть внимание команды.

У меня появилось ощущение закрываемого списка, а не бесконечной памяти о том, кого ещё надо вернуть. При корректно настроенных статусах и проверках список помогает не терять следующий контакт. Если шаг не зафиксирован, пациент всё равно может выпасть из процесса.

Почему своя карточка удобнее готового сервиса?

Готовые системы сильнее там, где нужны медицинская документация, расписание, оплаты, роли сотрудников и история изменений. Но для одного узкого действия они иногда оказываются слишком большими.

Мне нужна была не полноценная программа для стоматологии. Мне нужно было видеть:

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

Если в готовом сервисе появляется новое правило, его нужно искать в настройках или передавать в поддержку. Это нормальная модель работы. Просто она не всегда подходит для небольшой клиники, где правило меняется вместе с рутиной.

В собственной карточке можно сразу добавить:

  • статус «пациент не дошёл»;
  • отдельную отметку для переноса;
  • резервный канал связи;
  • поле «перезвонить после согласования врача»;
  • список для конкретного администратора.

Главное - не пытаться повторить всю МИС. Своя вещь полезна, пока закрывает одну понятную задачу. Если начать добавлять финансы, медкарту, документы и расписание всех врачей, простой список быстро превратится в сложную систему, которую уже нельзя спокойно менять.

Что должно быть внутри плана лечения стоматологического пациента?

Кот показывает лапой на три листа: «Пациенты», «Этапы» и «На обзвон».

Лист «Пациенты»

Коротко: Лист «Пациенты» хранит минимальные контактные данные и постоянный идентификатор, но не медицинскую информацию.

Здесь достаточно минимального набора полей:

patient_id | Имя или внутренний код | Телефон | Согласие на связь | Последний визит

patient_id нужен обязательно. Не используй имя, телефон или номер строки как постоянный идентификатор. Имя можно изменить, строку можно отсортировать, а идентификатор должен оставаться прежним.

Лист «Этапы»

Коротко: На листе «Этапы» каждая строка описывает один шаг плана и его статус.

Одна строка - один этап конкретного пациента:

patient_id | Номер этапа | Название этапа | Выполнен | Дней до напоминания | Дата выполнения

Пример. Все даты и сроки ниже являются тестовыми значениями, а не медицинскими рекомендациями:

P-001 | 1 | Диагностика | TRUE | 0 | 2026-08-01
P-001 | 2 | Санация | TRUE | 14 | 2026-08-03
P-001 | 3 | Установка коронки | FALSE | 21 |
P-001 | 4 | Контрольный осмотр | FALSE | 180 |

После отметки TRUE на втором этапе система выбирает третий как следующий незавершённый. Четвёртый пока не попадает в список, потому что до него ещё не дошла очередь.

Лист «На обзвон»

Коротко: Лист «На обзвон» автоматически собирает задачи по наступившим датам и незавершённым контактам.

Этот лист не заполняется вручную. В нём должны показываться:

  • пациент;
  • следующий незавершённый этап;
  • дата напоминания;
  • канал связи;
  • статус контакта;
  • ответственный администратор.

Логика простая:

показывать пациента,
если следующий этап существует
и дата напоминания наступила
и контакт ещё не обработан

Для выбора этапа используются FILTER и SORT. Официальная документация Google описывает FILTER как функцию, которая возвращает только строки, соответствующие заданным условиям, а SORT - как сортировку строк диапазона. (Google Sheets: список функций)

Дата напоминания считается от даты последнего визита:

дата напоминания =
дата последнего визита + срок для следующего этапа

Срок задаёт врач или клиника. Таблица не должна самостоятельно решать, когда медицински правильно приглашать пациента. Она только выполняет заранее заданное правило.

Что поставить перед сборкой и сколько это стоит?

Я поставила оба инструмента один раз и дальше не возвращалась к установке при каждой новой задаче.

Visual Studio Code - это редактор, в котором видна папка проекта и файлы внутри неё. Самой писать программу в нём не нужно. Для этой схемы он нужен как рабочее место помощника.

Claude Code встраивается в редактор. Ты описываешь задачу обычными словами, а помощник создаёт файлы, меняет их и объясняет результат. Если ему чего-то не хватает, он задаёт вопросы.

Порядок такой:

  1. Скачать Visual Studio Code с официального сайта.
  2. Установить редактор.
  3. Установить Claude Code по инструкции Anthropic.
  4. Открыть редактор и папку проекта.
  5. Войти в аккаунт Claude.
  6. Проверить, что помощник видит открытую папку.

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

Про подписку важно сказать прямо. Claude Pro стоит $20 в месяц или $200 в год. Рублёвый эквивалент зависит от курса и способа оплаты. Это не российская цена и не обещание, что оплатить получится российской картой. Отдельная официальная цена в рублях на странице Anthropic не указана, а Россия отсутствует в опубликованном списке поддерживаемых стран Anthropic. (Claude: тарифы, страны доступа к Claude)

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Как собрать карточку плана лечения по шагам?

Собака одобрительно смотрит на три карточки с шагами сборки таблицы.
  1. Создай папку проекта.

    Сделай папку plan-lecheniya, открой её в Visual Studio Code и положи туда пустой файл с заметками. На первом шаге не проси программу целиком. Сначала зафиксируй, как у тебя устроена работа.

    Разобрать задачу до начала сборки
    У меня небольшая стоматология. После приёма врач отмечает, что уже сделано по плану лечения, а администратор должен понять, какой следующий этап и когда напомнить пациенту. Сейчас часть планов лечения зависает между врачом, администратором и пациентом.
    
    Хочу собрать рабочую карточку на Google Таблице. В ней должны быть листы «Пациенты», «Этапы» и «На обзвон». После каждого визита система должна показывать первый незавершённый этап, дату напоминания и статус связи.
    
    Пока не пиши код. Разбери задачу простым языком: какие данные нужны, какие действия выполняет врач, какие выполняет администратор, из чего состоит таблица и в каком порядке её собирать. Задай вопросы, если чего-то не хватает. Сохрани разбор в файл plan.md. Не добавляй медицинские диагнозы и подробности лечения в рабочую таблицу.

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

  2. Создай листы таблицы.

    Попроси помощника подготовить структуру данных, которую ты потом перенесёшь в Google Таблицу. Начинай с минимальных полей, а не с полного списка сведений о пациенте.

    Создать структуру Google Таблицы
    Подготовь структуру Google Таблицы для контроля планов лечения. Нужны три листа.
    
    Лист «Пациенты»:
    patient_id, имя или внутренний код, телефон, согласие на связь, последний визит.
    
    Лист «Этапы»:
    patient_id, номер этапа, название этапа, выполнен, дней до напоминания, дата выполнения.
    
    Лист «На обзвон»:
    patient_id, имя или внутренний код, следующий этап, дата напоминания, канал связи, статус контакта.
    
    Покажи строку заголовков для каждого листа в обычном текстовом виде. Объясни простыми словами, за что отвечает каждое поле. Не добавляй диагнозы, снимки, историю болезни и медицинские комментарии. Проверь, что patient_id используется как постоянный идентификатор, а не номер строки.

    В ответе должны появиться три строки заголовков и объяснение полей. Если помощник добавил медицинские сведения, убери их до переноса структуры в таблицу.

  3. Добавь тестовые этапы.

    Внеси несколько обезличенных строк и проверь, что порядок этапов понятен. Тестовые данные нужны для проверки формул, а не для работы с реальными пациентами.

    Подготовить тестовые данные
    Создай набор обезличенных тестовых данных для таблицы планов лечения. Используй идентификаторы P-001, P-002 и P-003 вместо ФИО и телефонов.
    
    Для P-001 добавь четыре этапа: диагностика, санация, установка коронки, контрольный осмотр. Первые два этапа выполни, остальные оставь незавершёнными.
    
    Для P-002 добавь три этапа: консультация, подготовка, повторный приём. Первый этап выполни, второй оставь незавершённым.
    
    Для P-003 добавь два этапа и отметь оба выполненными.
    
    Покажи данные в формате таблицы. Для каждого этапа добавь номер, статус выполнения и срок напоминания. Не придумывай медицинские сроки как обязательные: пометь их как тестовые значения, которые клиника должна заменить своими правилами.

    Правильный результат такой: у P-001 следующим становится этап «Установка коронки», у P-002 - «Подготовка», а P-003 не попадает в список на обзвон, потому что его план завершён.

  4. Вычисли следующий этап.

    Попроси помощника добавить формулу, которая ищет первую незакрытую строку по номеру этапа. Не создавай отдельную колонку, которую администратор должен переписывать руками.

    Вычислить первый незавершённый этап
    Добавь в рабочую схему вычисление следующего этапа пациента.
    
    Правило:
    - взять все строки листа «Этапы» с нужным patient_id;
    - оставить только строки, где выполнен не равен TRUE;
    - отсортировать их по номеру этапа;
    - показать название первого этапа;
    - если незавершённых этапов нет, показать «План завершён».
    
    Используй формулы Google Таблиц FILTER, SORT, INDEX и IFERROR или их русские аналоги в зависимости от локали таблицы. Объясни, в какую колонку вставить формулу и как проверить её на P-001, P-002 и P-003. Не добавляй ручное поле, которое дублирует результат формулы.

    Помощник должен выдать формулу и способ проверки. После отметки этапа как выполненного следующий результат должен измениться без ручного редактирования карточки.

  5. Рассчитай дату напоминания.

    Срок не должен появляться из воздуха. Он берётся из поля этапа или отдельного справочника, который заполняет клиника.

    Рассчитать дату напоминания
    Добавь к схеме поле «Дата напоминания».
    
    Логика:
    - взять дату последнего визита пациента;
    - определить следующий незавершённый этап;
    - найти для него значение «дней до напоминания»;
    - прибавить это число к дате последнего визита;
    - если план завершён или дата визита пустая, оставить поле пустым.
    
    Покажи формулу Google Таблиц и объясни её простыми словами. Отдельно напиши предупреждение, что срок напоминания задаёт врач или клиника, а таблица только считает техническую дату. Не используй универсальные медицинские рекомендации и не назначай срок самостоятельно.

    Проверь три ситуации: план с незавершённым этапом, завершённый план и пациент без даты последнего визита. В последнем случае дата не должна подставляться автоматически.

  6. Собери лист на обзвон.

    Теперь объедини данные пациентов и этапов. Список должен пересобираться сам, а не через копирование строк каждый день.

    Собрать лист «На обзвон»
    Собери формулу и правила для листа «На обзвон».
    
    В список должны попадать только пациенты, у которых:
    - есть следующий незавершённый этап;
    - дата напоминания меньше или равна сегодняшней дате;
    - статус контакта не равен «Обработан»;
    - есть согласие на сервисную связь.
    
    В строке покажи:
    patient_id, имя или внутренний код, следующий этап, дату напоминания, канал связи, статус контакта.
    
    Используй FILTER и SORT. Отсортируй список по дате напоминания от самой ранней к самой поздней. Объясни, куда вставить формулу и как проверить результат на тестовых данных. Если список пуст, покажи понятное сообщение вместо ошибки.

    Правильный результат - в листе остаются только актуальные задачи. После отметки контакта как «Обработан» строка должна исчезнуть из текущего списка, но история контакта должна сохраниться отдельно.

  7. Подключи журнал отправок.

    Одного статуса «отправлено» мало. Нужны дата, канал и идентификатор операции, чтобы не отправлять одно сообщение повторно.

    Добавить журнал отправок и защиту от дублей
    Добавь в проект журнал отправок с полями:
    message_key, patient_id, этап, дата напоминания, канал, дата отправки, статус отправки, идентификатор сообщения, текст ошибки.
    
    Сформируй message_key из patient_id, этапа, даты напоминания и типа сообщения. Перед отправкой проверяй, нет ли уже записи с таким ключом и успешным статусом.
    
    Если сообщение уже отправлено, не отправляй его повторно. Если статус failed или unknown, оставь запись для повторной проверки. После отправки сначала сохрани результат, затем перечитай строку и проверь, что дата отправки действительно записалась.
    
    Объясни схему простыми словами. Не добавляй медицинские сведения в текст сообщения и журнал.

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

  8. Добавь Telegram для администратора.

    На первом этапе отправляй список владельцу или администратору, а не пациентам. Так проще проверить логику и не превратить тест в рассылку.

    Подготовить отправку списка администратору в Telegram
    Добавь к проекту отправку листа «На обзвон» в Telegram-бот администратору.
    
    Сообщение должно содержать:
    - дату;
    - количество задач;
    - внутренний код пациента или имя, если это действительно нужно;
    - следующий этап;
    - дату напоминания;
    - статус контакта.
    
    Не включай диагнозы, снимки, подробности лечения и медицинские комментарии. Не отправляй сообщения пациентам напрямую. Добавь проверку: если список пуст, отправлять «Сегодня задач на обзвон нет».
    
    Объясни, какие доступы и настройки понадобятся, где хранить токен безопасно и как проверить тестовую отправку. Не показывай токен в журнале и не записывай его в таблицу.

    Telegram Bot API поддерживает отправку текстовых сообщений методом sendMessage, а длина одного сообщения ограничена 4096 символами после обработки сущностей. (Telegram Bot API)

    Здесь нужен ручной шаг: создать бота, получить токен и написать ему команду /start. Точные действия зависят от способа подключения, поэтому не вставляй токен в промпт и не отправляй его в общий чат.

  9. Поставь запуск по времени.

    Apps Script умеет запускать функцию по расписанию через time-driven trigger. Для небольшой клиники достаточно одного регулярного запуска, но настройку нужно проверить отдельно.

    Добавить запуск по расписанию
    Подготовь Apps Script для регулярной проверки листа «На обзвон».
    
    При каждом запуске скрипт должен:
    - прочитать список задач;
    - проверить дату напоминания;
    - проверить согласие на сервисную связь;
    - проверить журнал отправок и message_key;
    - отправить администратору только новые задачи;
    - сохранить результат отправки;
    - записать технический журнал запуска.
    
    Добавь защиту от повторного параллельного запуска. Объясни, как создать один time-driven trigger и как вручную запустить тест. Не отправляй пациентам сообщения. Перед изменением перечисли файлы, которые будут затронуты.

    В Apps Script триггер по времени похож на cron-задачу, а устанавливаемые триггеры запускаются от имени аккаунта создателя. Это значит, что доступ к таблице и Telegram должен быть настроен именно для этого аккаунта. (документация Google Apps Script)

    Ты описываешь помощнику, кому и когда напомнить, а он собирает эту проверку в файлах. Это и называют вайб-кодингом. Термин можно сверить в объяснении вайб-кодинга. Ты не обязан понимать каждую строку внутри файлов. Но ты обязан понимать, какие данные входят в систему, кто получает сообщение и как проверить результат.

  10. Проверь на тестовых данных.

    Не подключай настоящие контакты, пока не проверишь весь путь от отметки этапа до записи результата.

    Составить приёмочные тесты
    Составь список проверок для карточки плана лечения.
    
    Проверь сценарии:
    - один завершённый и один незавершённый этап;
    - все этапы завершены;
    - дата напоминания ещё не наступила;
    - дата напоминания наступила;
    - статус контакта «Обработан»;
    - повторный запуск после успешной отправки;
    - ошибка отправки;
    - пустой Telegram-список;
    - изменение patient_id и защита от обновления не той строки;
    - отправка прошла, но отметка в таблице не сохранилась.
    
    Для каждого сценария укажи: что сделать, какой результат ожидать и где его проверить. Не используй реальные данные пациентов.

    Проверяй не только сообщение в Telegram. Открой журнал отправок и саму строку пациента. Система считается рабочей, когда оба результата совпали.

    После шага 10 сначала проверь путь от отметки этапа до записи результата на обезличенных данных. Только после этого решай, нужен ли тебе отдельный канал уведомлений.

Что появится в папке после сборки?

В папке будут примерно такие элементы:

plan-lecheniya/
├── plan.md
├── apps-script/
│   ├── main.gs
│   ├── telegram.gs
│   └── settings.gs
├── logs/
│   └── README.md
└── backup/
    └── схема-полей.txt

Названия могут отличаться. Роль файла важнее его названия:

  • plan.md хранит описание задачи;
  • файлы .gs отвечают за чтение таблицы, фильтр и отправку;
  • настройки содержат технические параметры без секретных токенов;
  • журнал показывает, что запускалось и с каким результатом;
  • копия помогает восстановить схему после неудачного изменения.

Сама таблица состоит из рабочих листов «Пациенты», «Этапы», «На обзвон» и журнала отправок. Перед изменением помощник должен перечислять файлы, которые собирается трогать. Так проще не повредить уже работающий кусок.

Не нужно разбирать каждую функцию. Смотри глазами на четыре вещи: список задач, правильность следующего этапа, дату напоминания и запись результата отправки.

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Что делать, если напоминание не приходит или приходит дважды?

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

Напоминание приходит дважды

Коротко: Дубликат обычно возникает, когда повторный запуск не сверяется с уникальным ключом и журналом отправок.

Причина обычно в повторном запуске или отсутствии уникального ключа. Для каждого сообщения нужен ключ из пациента, этапа, даты и типа напоминания.

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

Не переписывай весь проект. Сначала покажи, какие записи считаются дублями и какой файл нужно изменить. Затем добавь защиту: при успешной отправке повторно не отправлять тот же message_key. После изменения предложи тест с повторным запуском.

Не удаляй дубли из журнала до проверки. По ним нужно понять, какой запуск создал повтор.

Событие потерялось

Коротко: Потерянное событие ищут по просроченной дате, отсутствию успешной отправки и журналу запусков.

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

Найти потерянное напоминание
Пациент есть в листе «Этапы», дата напоминания уже наступила, но записи об отправке нет. Проверь фильтр листа «На обзвон», статус контакта, согласие на связь и журнал отправок.

Добавь контрольную проверку, которая при каждом запуске ищет все незавершённые этапы с наступившей датой и отсутствующей успешной отправкой. Не создавай дубль, если message_key уже имеет статус sent. Покажи причину пропуска конкретной строки.

Webhook или другой внешний сигнал не должен быть единственным способом запуска. Контрольный запуск по расписанию нужен именно на случай пропуска.

Истёк доступ

Коротко: Ошибки 401 и 403 проверяют по авторизации таблицы, Apps Script и Telegram, не раскрывая токен.

Если раньше всё работало, а потом перестало читать таблицу или отправлять сообщения, проверь авторизацию. Ошибка 401 или 403 обычно указывает на токен или права.

Проверить истёкший доступ
Автоматизация перестала читать таблицу или отправлять сообщение. В журнале появилась ошибка авторизации 401 или 403. Найди, на каком шаге пропал доступ: чтение Google Таблицы, Apps Script или Telegram.

Добавь понятную запись в технический журнал: workflow_started, api_authorized, data_read, message_sent, result_saved. Не выводи секретный токен в лог. Покажи, какие разрешения нужно подтвердить повторно и как провести тест на одной обезличенной строке.

Сам факт запуска триггера не означает, что таблица прочитана и сообщение отправлено. Эти состояния нужно разделять.

Появилась ошибка 429

Коротко: Ошибку 429 снижают пакетным чтением и записью, оставляя повтор только для временных сбоев.

Ошибка 429 означает, что запросов стало слишком много. Например, скрипт читает таблицу отдельным запросом для каждой строки.

Исправить ошибку 429
При запуске автоматизации появилась ошибка 429 Too Many Requests. Проверь, сколько запросов к Google Таблице выполняется за один запуск и не читается ли каждая строка отдельным обращением.

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

Google указывает квоты на чтение и запись Sheets API. При превышении лимита появляется HTTP 429. (лимиты Google Sheets API)

Обновляется не та строка

Коротко: Чтобы не обновить чужую запись, строку нужно искать по постоянному идентификатору и проверять число совпадений.

Номер строки не подходит как постоянный идентификатор. После сортировки или удаления он меняется.

Найти обновление не той строки
После изменения статуса этапа обновилась не та строка в таблице. Проверь, используется ли patient_id и plan_id, или скрипт ищет запись по имени, телефону или номеру строки.

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

Сообщение отправилось, но отметка не сохранилась

Коротко: После отправки нужно отдельно подтвердить принятие сообщения и сохранение записи, иначе повтор блокируют статусом unknown.

Это самая неприятная поломка. В Telegram сообщение уже есть, а в таблице поле sent_at осталось пустым. Следующий запуск считает задачу новой и отправляет её ещё раз.

Найти потерю записи после отправки
Сообщение администратору отправилось, но в журнале отправок не появилась дата отправки и статус sent. При следующем запуске система повторяет сообщение.

Раздели два результата: message_accepted и result_saved. После отправки запиши message_id, patient_id, stage_id, sent_at и provider_status. Затем перечитай строку и проверь, что запись действительно сохранилась. Если сообщение принято, но запись не сохранилась, не отправляй его повторно автоматически: пометь строку как unknown и создай задачу для проверки.

Именно эту поломку сложнее всего заметить. Интерфейс может показать «успешно», хотя рабочая таблица не изменилась. Поэтому после записи нужна повторная проверка.

Сколько стоит своё решение по сравнению с сервисом и подрядчиком?

ВариантЦенаЧто получаешьОграничение
Своя сборкаClaude Pro $20 в месяц, около 1 574 ₽ по курсу ЦБ как ориентирКарточка под свои этапы, лист на обзвон, свои правила и журналНужно самостоятельно проверять доступы, данные и ошибки
RubiTimeуточнять на странице поставщикаЗапись, карточки и напоминанияКомплектацию и наличие этапов нужно проверить на дату покупки
ClinicIQуточнять на странице поставщикаКарточки пациентов, планы лечения, расписание и возврат пациентовУсловия оплаты и состав модулей нужно проверить на дату покупки
1С:Медицина. Стоматологическая клиникауточнять на странице поставщикаЛокальная система с карточкой пациента и планом леченияДополнительно могут понадобиться лицензии, сервер, поддержка и обновления
Подрядчикцена зависит от технического заданияСостав решения согласуется отдельноНовые правила и внешние интеграции могут оплачиваться отдельно
Ручной списокбез отдельной подпискиExcel или выгрузка из МИСПропуски, повторные звонки, удаление строк и работа по памяти

Условия и цены сторонних решений меняются. Перед публикацией или покупкой сверяй тариф, период оплаты, комплектацию, регион и дату проверки на официальной странице каждого поставщика. (RubiTime, ClinicIQ, 1С:Медицина, BotFactory)

Своё решение не бесплатно. Помимо Claude Pro, есть стоимость твоего времени, проверки, поддержки и ответственности за доступ к данным. При оплате через посредника рублёвая сумма может отличаться от пересчёта по курсу ЦБ.

Таблица не заменит МИС, если нужны медицинские документы, снимки, подробная история лечения, несколько филиалов, сложные права доступа или полный журнал действий. Она подходит как внешний операционный список: кому и когда написать.

Минимизация данных здесь обязательна. В рабочем списке оставляй только то, что нужно администратору для контакта. Сведения о здоровье относятся к специальным категориям персональных данных, а сведения о лечении могут составлять врачебную тайну. (Федеральный закон № 152-ФЗ, статья 10, Федеральный закон № 323-ФЗ, статья 13)

Что сделать сегодня, если технологии не близки?

Сделай так:

  1. Выпиши этапы, которые реально повторяются в работе.
  2. Выбери один внутренний patient_id.
  3. Не переноси в таблицу диагнозы и медицинские подробности.
  4. Оставь только следующий шаг и дату контакта.
  5. Отметь, кто отвечает за звонок.
  6. Проверь несколько тестовых строк.
  7. Только потом подключай Telegram и расписание.

Если технология не близка, не нужно сразу строить автоматическую рассылку пациентам. Начни с листа «На обзвон». Увидь, что он показывает правильных людей. Затем добавь журнал отправок и только после этого подключай канал связи.

Если технология не близка, начни с трёх обезличенных строк: проверь следующий этап, дату напоминания и статус контакта. Затем отдельно проверь запись результата отправки. Такой порядок позволяет найти ошибку до подключения реальных данных.

Вопросы и ответы

Вопросы и ответы

Что указывать в плане лечения пациента?

Для рабочего списка указывай внутренний идентификатор, этапы по порядку, статус каждого этапа, дату выполнения, правило напоминания, дату следующего контакта и статус связи. Диагнозы, снимки и подробные медицинские записи оставляй в МИС, а не в общей таблице на обзвон.

Чем индивидуальный план лечения пациента отличается от общего списка процедур?

Общий список процедур просто перечисляет, что может понадобиться. Индивидуальный план лечения пациента связан с конкретным человеком, порядком этапов и текущим статусом. В рабочей карточке показывай первый незавершённый шаг из перечня процедур, а остальные этапы оставляй в порядке, заданном врачом.

Что должно входить в план лечения стоматологического пациента?

В плане лечения стоматологического пациента должны быть этапы в нужном порядке, отметка выполнения, дата визита и правило следующего контакта. Для административной таблицы достаточно технического названия этапа. Клиническое содержание и медицинские обоснования должны храниться в медицинской документации.

Кто отвечает за составление плана лечения пациенту?

Медицинскую часть формулирует врач. Администратор не назначает этап и не меняет клинический порядок. Его задача - зафиксировать согласованный следующий шаг, найти окно, проверить контакт и отметить результат связи.

Какой порядок план лечения пациента должен иметь?

Порядок план лечения пациента задаётся врачом или клиникой для конкретной ситуации. В таблице каждый этап получает номер, а система выбирает первый этап со статусом «не выполнен». Универсальный порядок для всех пациентов задавать нельзя.

Когда отправлять информацию пациенту о плане лечения?

Порядок предоставления информации пациенту о плане лечения определяет клиника вместе с врачом и с учётом согласованного канала связи. В сообщении лучше оставить нейтральное напоминание о следующем этапе и предложить выбрать дату. Содержание, согласие и цель сообщения проверь с ответственным специалистом по персональным данным. Информация пациенту о плане лечения передаётся по правилам клиники и согласованному каналу связи. В ней лучше оставить нейтральное напоминание о следующем этапе и предложить выбрать дату. Не добавляй без отдельной проверки рекламу, скидки и предложения дополнительных услуг.

Как составить план лечения ортодонтического пациента?

Для ортодонтического пациента разбей работу на этапы, которые врач действительно отслеживает: консультация, диагностика, подготовка, установка конструкции, контрольные визиты и завершение. Сроки между этапами не придумывай в таблице. Их задаёт врач, а система только напоминает о согласованном следующем действии.

Подходит ли образец плана лечения пациента для работы?

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

Нужен ли отдельный сервис для планов лечения в стоматологии?

Отдельный сервис нужен, если клинике необходимы медицинская документация, расписание, роли пользователей, оплаты, интеграции и подробный аудит. Для простого списка следующего шага можно начать с Google Таблицы и Apps Script, но это не замена медицинской информационной системе.

Чем таблица отличается от медицинской системы?

Таблица показывает административную задачу: кому и когда написать. Медицинская система хранит медицинскую документацию, историю лечения, права доступа и связанные процессы клиники. Если в таблицу начинают переносить диагнозы, снимки и подробные записи врача, её границы уже нарушены.

Что делать, если пациент не дошёл на повторный приём?

Отметь результат контакта, сохрани дату следующего действия и не удаляй строку. Если пациент не ответил, оставь статус «Не связались» или создай ручную задачу администратору. Удаление строки скрывает проблему и мешает понять, на каком этапе план лечения завис.

Можно ли отправлять план лечения пациенту в Telegram?

Технически Telegram может отправлять текстовые сообщения, но содержание и согласие нужно проверить отдельно. В сообщении не стоит писать диагноз, подробности лечения или снимки. Для начала безопаснее отправлять в Telegram администратору внутренний список, а пациенту писать нейтральное уведомление по согласованному каналу.

Что делать, если пациент попросил больше не писать?

Зафиксируй отказ в отдельном поле и прекрати рекламные сообщения. Сервисные уведомления по текущему лечению тоже нужно разделить по цели и проверить с ответственным специалистом. Нельзя считать наличие номера телефона согласием на любую рассылку.

Как проверить, что пациент не получил два напоминания?

Сверь message_key, журнал отправок и историю запусков. Для одного пациента, этапа, даты и типа сообщения должна быть одна успешная запись. После отправки перечитай строку в таблице и проверь, что sent_at и статус действительно сохранились.

Можно ли использовать Google Таблицу вместо МИС?

Только как небольшой внешний операционный список, если это соответствует требованиям клиники и настройкам доступа. Google Таблица не заменяет медицинскую документацию, полноценный аудит, историю изменений и специализированную защиту медицинских данных. Перед внедрением проверь схему с ответственным за персональные данные.

Источники

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Материал был полезен?
Сергей Мазур
Автор
Сергей Мазур
Основатель Вайбцеха

Собираю продукты с ИИ-агентами и рассказываю, как это делать без программиста.

Читайте также

Своя CRM для мини-отеля: пошаговая инструкция на вайб-кодинге

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

16 мин

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

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

17 мин

Доходы и расходы в Google Таблицах: 7 шагов до своего отчёта в 2026 году

Владелица небольшого цветочного магазина собрала Google-таблицу для продаж, закупок и списаний. Внутри пошаговая сборка и готовые промпты.

18 мин

Учет продаж в Excel без сложных программ: 7 шагов до своей таблицы

Как собрать Excel-журнал продаж с листами товаров, продаж и отчётов. Внутри пошаговая сборка промптами и разбор поломок.

23 мин

Термины из инструкции