Next.js 16 · Cloudflare Workers · D1 SQLiteк.м.н. по психиатрии, Институт Бехтерева, 2015

RDD — Регистр депрессивных расстройств

Специализированный клинический веб-регистр для лонгитюдного исследования депрессий позднего возраста. Демонстрация навыков разработчика уровня Senior/Architect по созданию медицинских приложений.

Разработан на стыке медицины и IT. Основан на реальном 6-летнем клиническом исследовании автора.

Для кого и какую задачу решает система

Для врачей и исследователей

  • Автоматизирует исследование депрессий
  • Позволяет анализировать все фазы заболевания
  • Связывает анамнез, психический статус, лечение и исходы
  • Делает мгновенный расчёт когортной статистики
  • Возможен экспорт данных в разных форматах

Для нанимателей и техлидов

  • Демонстрирует навыки создания медицинских приложений
  • Показывает выверенную бескомпромиссную архитектуру
  • Единый источник правды для всего приложения
  • Автоматическая синхронизация слоёв БД, валидации и UI
  • Нулевой cold start на бессерверной инфраструктуре

Возможности регистра

Паспорт пациента и анамнез

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

Матрица фаз заболевания

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

Аналитика и экспорт

Автоматический подсчёт основных показателей выборки. Вывод информации в удобном наглядном виде. Экспорт данных в нескольких форматах (Excel,CSV, JSON) для статистического анализа.

Словарь терминов

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

Ключевые инженерные решения

Registry-Driven Core (SSOT)

Единый декларируемый TS-реестр полей генерирует схему Cloudflare D1 (SQLite), Zod-схемы валидации, UI-поля ввода и Data Dictionary. Инвариант «поле = колонка» исключает рассинхрон слоёв.

Такой подход ускоряет разработку и снижает количество ошибок: добавление нового признака в реестр автоматически обновляет все слои, включая миграцию БД, валидацию и UI.

Registry-Driven Core (SSOT)

Виртуализированный грид с CAS

Виртуализация TanStack Virtual + CSS Grid со sticky-колонками. Оптимистическая блокировка полей (Compare-And-Swap).

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

Виртуализированный грид с CAS

Бессерверный Edge-стек и безопасность

Next.js 16 на Cloudflare Workers + D1. Криптография через Web Crypto, сессии в HttpOnly cookie, разграничение доступа к данным (Row-Level Access) и журнал изменений на хэш-цепочке для аудита мутаций.

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

Бессерверный Edge-стек и безопасность

Границы демонстрационной версии

Система наполнена синтетическими клиническими данными (без реальных ПДн). Регуляторный комплаенс (152-ФЗ / HIPAA), WAF-защита от L7-флуда и регулярное резервное копирование D1 зафиксированы в спецификациях как точки эскалации для промышленного контура.