Профессиональный кабинет врача — управление своими пациентами, загрузка анализов, генерация отчётов под собственным брендом. Состояние в transition: legacy реализация на .NET-стеке всё ещё работает; целевая форма — фича внутри B2B Portal где врач становится member маленькой организации, не отдельный продукт-с-подпиской. Подробности .NET → новый стек миграции см. отдельную страницу (carry-over: создать dotnet-to-new-stack-migration если ещё нет).

Legacy: что работает сейчас (.NET-стек)

Реализовано как самостоятельный продукт, описано в specs/business/14-doctor-portal.md:

  • Отдельный фронтенд-клон patient-стека — UX почти идентичный B2C-app, но с дополнительным слоем patient-management поверх
  • accountType field на user-уровне: 1=Patient, 2=Doctor. На login системa redirect-ит:
    • Patient → /desk (Personal Dashboard)
    • Doctor → /doctor (Doctor Dashboard)
  • Subscription оплачивается врачом напрямую (не организацией) — врач сам заключает контракт, sa Stripe
  • Patient management под врачом:
    • Список пациентов
    • Создание / редактирование / удаление профилей пациентов (имя, DOB, sex, weight/height, race, language, заметки)
    • Переключение между пациентами
  • Загрузка анализов для конкретного пациента
  • Генерация отчётов с брендингом врача — логотип, подпись
  • Sharing результатов с пациентами

Типичный пользователь — частный нутрициолог / endocrinologist. Клиент приносит анализы, врач загружает PDF в Doctor Portal, получает AI-интерпретацию, скачивает брендированный отчёт, отправляет клиенту.

Что меняется и почему

Идёт миграция с .NET на новый стек (multi-tenant-fhir-storage — backend, b2b-portal — frontend на Next.js + Prisma + WorkOS). Doctor Portal в legacy форме был аналогом обычного patient-фронтенда, дополненным patient management. В новой архитектуре:

  • Doctor становится member маленькой организации внутри B2B-решения — а не самостоятельный продукт-с-подпиской
  • Биллинг переходит на org-level — оплачивает organization (даже если в ней один врач), не индивидуальный subscription
  • Шаринговый stack с b2b-portal и patient-portal — нет отдельного фронтенда-клона
  • Doctor role в WorkOS уже существует (doctor-validation) — может стать тем же механизмом для отдельно-стоящих врачей

Блокер: загрузка неструктурированных данных

Без этой capability полноценного переноса с .NET на новый стек не будет. В legacy Doctor Portal врач может загрузить PDF-анализ напрямую — это core-workflow. На новом стеке (b2b-platform / patient-portal / PHR) канонический input сейчас — это API integration или magic-link для пациента, не интерактивная upload-страница для doctor-as-uploader.

Причина гэпа — мы сознательно не реализовывали upload в новом B2B-стеке: опасения точности распознавания PDF/изображений и сопряжённого регуляторного риска (если доктор использует наш AI-вывод как опору для решения, точность распознавания — критична). Пока мы не будем уверены до конца в распознавании, doctor-upload-UI не вводим.

Пока не появится такой UI flow в новом стеке — врачи остаются на .NET-варианте.

Связь с Doctor Validation

doctor-validation — это фича в новом стеке: врач review-ит AI-интерпретацию до доставки пациенту, может отредактировать. Изначально дизайн под B2B-клиента (клиника launching pipeline), но в Doctor Portal-redesign это скорее всего станет главной фичей — врач видит что сгенерировано для пациента, корректирует если нужно. То есть Doctor Validation = core-workflow доктора в новой форме, не отдельная опция.

Возможные эволюции:

  • Doctor Portal в новой форме = B2B Portal с org-of-one + Doctor Validation поверх + upload UI — один stack, разные features for different cases
  • Или Doctor Portal остаётся отдельной product-страницей с своим onboarding flow, но шарящим backend / роли

Окончательный shape пока не зафиксирован.

Pricing

Активно обсуждаемая зона; конкретные модели меняются. Snapshot текущих известных позиций:

  • Doctor tier — $80/месяц, single tier (1 user, до 100 тестов). Если нужно больше — upgrade на organization tier.1
  • Organization tier — минимум 0.03/biomarker, 6500 биомаркеров включено), безлимитные users + uploads.1

Главные открытые развилки:

  • Doctor price level — Никита предлагал поднять до 79 — это «бомж-доктор pricing». Василий возражает: 190 organization — illogical, ломает linup. Ната: B2B target важнее, не жертвовать organizations ради doctor acquisition. Не решено.2
  • Biomarkers vs tests как unit — Джонатан настаивал на тестах, Ната на биомаркерах. Argument для биомаркеров: разброс 5-400 на тест делает per-test pricing нерабочим. Решено: биомаркеры.1
  • Биллинг кому — organization-level (даже single-doctor org) vs индивидуальная подписка врача через Stripe vs гибрид. Связано с org-of-one redesign.

Открытые вопросы

  • Технический подход к миграции: единый flow с org-of-one или отдельный Doctor flavour
  • Биллинг: организация оплачивает (даже single-doctor-org) vs индивидуальная подписка врача через Stripe vs гибрид
  • Onboarding: как новый врач попадает в систему — auto-create organization при registration? через partner channel? manual create через super-admin?
  • Upload UI: где живёт — внутри /dashboard/[id]/... route в b2b-platform или отдельный route?
  • Patient management в новой форме — как работает в multi-tenant FHIR (multi-tenant-fhir-storage) если врач — это organization-of-one
  • Linear chain про redesign: BG-1117 «Doctor pages: продумать flow для врачей в B2C Dashboard» (parent, Medium priority, Todo) → BG-1147 «Research: Doctor portal architecture — current state + proposal» (subtask, Triage) → BG-1148 «Decision: Doctor portal architecture — review research, choose approach» (subtask, Triage). Все три не started, ждут когда возьмём в работу. Project: B2C Dashboard Migration
  • Что делать с врачами на legacy .NET сейчас — миграция дёргом, постепенный sunset, или две системы параллельно

Связано

  • b2b-portal — куда мигрирует Doctor Portal (org-of-one model)
  • doctor-validation — параллельная фича для doctor role внутри B2B-клиентов; может оказаться частью Doctor Portal redesign
  • patient-portal — для пациентов B2B-клиентов, не для врачей
  • PHR — B2C app для individual users, ортогонально Doctor Portal
  • use-cases — Doctor (B2B) mode в матрице use cases, сейчас в transition
  • workosdoctor role + organization feature flags
  • multi-tenant-fhir-storage — backend FHIR storage, если врач становится org-of-one

Сноски

  1. Billing call p.2 (Jonathan / Ната / Alex Shan), 2026-01-28: https://github.com/Realai-plus/meeting-digests/blob/main/data/digest/2026/01/2026-01-28T11%3A30%3A00.000Z_billing_p.2_01KG1Z73F5CS9H860AS1YAHPQC.md — doctor 195 min + $0.03/biomarker, biomarkers chosen over tests as unit. 2 3

  2. Маркетинг февраль (Vasilii / Nata / Nikita), 2026-02-05: https://github.com/Realai-plus/meeting-digests/blob/main/data/digest/2026/02/2026-02-05T12%3A04%3A05.000Z_%D0%BC%D0%B0%D1%80%D0%BA%D0%B5%D1%82%D0%B8%D0%BD%D0%B3_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8C_01KGPV0AHS7GXBSRC65QPGCFG1.md — Nikita $499 предложение, Vasilii contra (pricing lineup), Nata B2B focus argument.