Разработка · 7 мин чтения

Сайт для медицинского центра: врачи, услуги и запись на приём

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

Что должно быть на сайте медицинского центра: структура и разделы

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

  • Главная с направлениями и коротким списком врачей
  • Каталог врачей с фильтром по специализации и филиалу
  • Услуги и цены по каждому направлению
  • Форма записи на приём
  • О клинике: команда, оборудование, лицензии
  • Документы и лицензии отдельной страницей
  • Филиалы и контакты, если их несколько
  • Отзывы пациентов
  • Блог со статьями по направлениям - работает на SEO и снижает часть однотипных вопросов на ресепшене

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

Каталог врачей и услуг: как собрать структуру сайта клиники

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

Запись на приём онлайн: как сделать без накладок в расписании

Если в клинике уже есть МИС или CRM

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

Своя форма записи на PHP и MySQL

Если МИС нет или клинике достаточно простого календаря на сайте, форму записи собираю на PHP с базой MySQL - обычного хостинга, на котором уже стоит сайт, для этого хватает, отдельный сервер поднимать не нужно. Самое уязвimoe место такой формы - момент, когда два пациента одновременно нажимают «записаться» на одно и то же время у одного врача. Решается это транзакцией с уникальным индексом по паре «врач плюс дата и время приёма»: вторая попытка вставить ту же запись падает по ошибке уникальности индекса, и второй пациент сразу видит, что слот занят, вместо того чтобы клиника получила два человека на один талон.
Уведомление врачу и администратору о новой записи отправляю обычным запросом к Telegram Bot API прямо из PHP-обработчика формы - отдельный бот на aiogram и тем более выделенный сервер под него для этого не нужны. Aiogram беру, если клиника хочет, чтобы бот сам вёл диалог с пациентом: уточнял симптомы, предлагал свободные слоты и переносил запись без участия администратора - тогда это уже полноценный бот со своей логикой и хранением состояния диалога.
Если у клиники уже есть CRM вроде amoCRM или Bitrix24 и нужно просто прокинуть заявку из формы записи одновременно в CRM и в Telegram, без большого бэкенда обхожусь автоматизацией в n8n.

Платформа для сайта медицинского центра: Tilda, WordPress или разработка под заказ

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

Критерий Tilda WordPress Кастомная разработка
Кто редактирует контент Администратор клиники сам, без разработчика Администратор через админку после короткого обучения Обычно через отдельную админ-панель с настройкой прав
Каталог врачей и услуг Блоки Tilda, для сложных связок нужна доработка Кастомные типы записей «Врачи» и «Услуги» со связкой Полностью под задачу: фильтры по филиалу, стажу, цене
Запись с блокировкой слота Готовый виджет записи или доработка внешней формой Плагин записи или своя форма на PHP Своя логика бронирования с транзакциями в MySQL
Обмен с МИС или CRM клиники Через API Tilda и вебхуки Через REST API WordPress и плагины Прямая интеграция под конкретную МИС
Стоимость запуска у меня от 30 000 ₽ от 60 000 ₽ от 100 000 ₽

Домен и SSL в таблицу не включаю: цена домена зависит только от зоны, а не от платформы сайта, а тип SSL-сертификата выбирается отдельно от того, лендинг это или сайт с каталогом врачей. Комиссия эквайринга, если клиника принимает оплату онлайн, тоже зависит от тарифа банка, а не от движка сайта.
Для клиники с несколькими филиалами, большим каталогом врачей и блогом ради SEO чаще беру сайт на WordPress - там удобнее держать десятки карточек врачей и услуг и не упираться в лимиты конструктора.

Бесплатный материал

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

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Лицензии и защита персональных данных на сайте клиники

Медицинская деятельность лицензируется, и по правилам предоставления платных медицинских услуг клиника обязана публично показывать пациенту информацию о лицензии: номер, дату выдачи, орган, который её выдал, и перечень видов деятельности. Обычно делаю под это отдельную страницу «Документы» с текстовым перечислением и сканами, а не мелкую ссылку в подвале сайта.
Второй момент - персональные данные. Форма записи собирает ФИО, телефон, иногда повод обращения, а это уже персональные данные пациента, и по 152-ФЗ хранить их нужно на серверах в России. Заводить таблицу пациентов в Google Sheets или Airtable ради удобства не стоит - это ровно тот случай, когда иностранное облако создаёт клинике реальные риски при проверке. Использую российский хостинг и, если клинике нужна CRM для заявок, беру российские решения либо храню записи в собственной базе на том же хостинге, где стоит сайт.

Сколько стоит сайт для медицинского центра и сроки разработки

Стоимость зависит от количества врачей и услуг, которые нужно завести, и от того, нужна ли интеграция с МИС или CRM. По своим услугам ориентируюсь на такие цифры:

  • Сайт на Tilda: от 30 000 ₽, для клиники с одним-двумя филиалами и типовым списком услуг
  • Комплексная интеграция для Tilda (CRM, эквайринг, СДЭК - если клиника, например, продаёт БАДы или медтехнику через тот же сайт): от 40 000 ₽
  • Сайт на WordPress: от 60 000 ₽, оправдан, когда нужен большой каталог врачей и услуг плюс блог
  • API или бэкенд на Laravel под личный кабинет пациента и интеграцию с МИС: от 100 000 ₽
  • Автоматизация уведомлений и передачи заявок в CRM через n8n: от 25 000 ₽
  • Техподдержка сайта клиники после запуска: от 15 000 ₽ в месяц

По срокам из практики: сайт на Tilda с записью и каталогом врачей обычно собираю за 3-4 недели, на WordPress с кастомными типами записей и блогом - за 4-6 недель, кастомную разработку с бэкендом на Laravel и своей логикой бронирования - от 8-10 недель, потому что там больше времени уходит на тестирование сценариев одновременной записи. Если непонятно, какой вариант подойдёт под конкретную клинику, разумнее сначала взять консультацию и обсудить сценарии записи и интеграции, чем сразу заказывать разработку вслепую.

Частые вопросы

Нужно ли размещать на сайте номер медицинской лицензии?

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

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

ФИО, телефон и повод обращения - это персональные данные, и по 152-ФЗ их нужно хранить на серверах в России. Не стоит заводить таблицу с заявками пациентов в Google Sheets или Airtable ради удобства - используйте российский хостинг или CRM с серверами в РФ.

Какая платформа подходит для клиники с несколькими филиалами и большим числом врачей?

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

Что делать, если в клинике уже есть МИС со своим расписанием врачей?

Не дублируйте расписание на сайте. Форма записи должна запрашивать свободные слоты у МИС через её API и отправлять туда же данные новой записи - так расписание остаётся в одном месте и не расходится между системами.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно