Медицина · 2026 · Под NDA
CRM для медицинской клиники
Пациенты, расписание врачей, электронные медкарты и биллинг в системе, которая не выпускает данные за пределы клиники.

- Клиент
- Частная медицинская клиника
- Год
- 2026
- Направление
- CRM-системы
- Срок
- 1-2 месяца
Задача
Медицинские данные это особая категория по статье 9 GDPR, и обращаться с ними как с обычной клиентской базой нельзя. Готовые облачные CRM почти всегда означают, что карты пациентов лежат на чужом сервере в другой стране. При этом работать в системе будут не айтишники, а врачи и регистратура, так что усложнять интерфейс ради безопасности тоже нельзя.
Что сделали
Систему сделали self-hosted: она живёт в локальной сети клиники, база и файлы на её собственном сервере, интернет нужен только для напоминаний пациентам, и без него всё остальное продолжает работать. Персональные данные шифруются, вход администратора закрыт вторым фактором, каждое действие с картой пишется в журнал аудита. Права не зашиты в код: роли настраиваются под конкретную клинику. Внутри пятнадцать сущностей, включая справочник МКБ-10 и версионирование медкарт, интерфейс на трёх языках.
Результат
Система сдана и готовится к внедрению, поэтому цифр эксплуатации у неё пока нет и мы их не приводим. Что можно проверить сейчас: данные не покидают клинику, роли настраиваются без правки кода, а каждое обращение к карте пациента остаётся в журнале.
Стек
- React
- TypeScript
- Vite
- Mantine
- Node.js
- Express
- MongoDB
- Docker
Что умеет система
Пациенты
- Карточка с полисом, аллергиями и хроническими диагнозами
- CNP, телефон, адрес и полис хранятся зашифрованными
- Поиск по зашифрованным полям через слепой индекс
- Контроль дублей по CNP и по имени с датой рождения
- Анонимизация вместо удаления, по требованию GDPR
- Согласие на обработку данных, с печатным бланком
Расписание
- Сетка дня 08:00-20:00 по врачам
- Перенос записи перетаскиванием
- Пересечения по времени отклоняются
- Недельный график врача и отпуска
- 7 статусов: от подтверждения до неявки
- Календарь обновляется живьём во всех открытых вкладках
- Лист ожидания на освободившийся слот
Медкарты
- Приём: жалобы, осмотр, диагноз, назначения
- Правка создаёт новую версию, прежние остаются нетронутыми
- История версий видна в интерфейсе
- Справочник МКБ-10 с автодополнением на трёх языках
- Шаблоны осмотров, сохраняются прямо из формы
- Повторный визит одной кнопкой
Файлы и печать
- Загрузка перетаскиванием, с проверкой типа по сигнатуре файла
- Подделанное расширение отклоняется
- Файлы лежат вне веб-каталога и отдаются только через API
- Четыре документа в PDF: выписка, рецепт, счёт, согласие
- Каждый документ печатается на трёх языках
Счета и касса
- Счета вида INV-YYYY-NNNN, с позициями из прайса
- Суммы в целых копейках, без чисел с плавающей точкой
- Оплата наличными, картой и страховкой
- Статус счёта пересчитывается по сумме оплат
- Кассовый отчёт дня, по способам оплаты
- Счёт создаётся прямо из завершённого приёма
Безопасность и доступ
- 17 атомарных прав, роли собираются в админке
- Двухфакторный вход, обязательный для администратора
- Нарастающая блокировка после пяти неудачных попыток
- Права перечитываются на каждом запросе, отключение действует сразу
- Журнал аудита: входы, просмотры карт, скачивания
- Напоминания пациентам в Telegram и на почту
Экраны системы

День клиники по врачам, со статусами записей 
Карточка пациента: шифрованные данные, полис, согласие GDPR 
Журнал приёмов с диагнозами по МКБ-10 
Счета и оплаты: наличные, карта, страховка 
Выручка, записи, неявки и новые пациенты 
Конструктор ролей: 17 атомарных прав
В цифрах
- данных за пределами клиникиself-hosted, без облака
- 0
- языка интерфейсаанглийский, румынский, русский
- 3
- кода МКБ-10 в базовом справочнике
- 144