Эта страница — placeholder. Собирает картину постепенной консолидации legacy-сервисов BloodGPT в TS-монорепо bloodgpt-for-business. Это не один tracked проект, а распределённая работа: backend stack, базы данных, LLM access, terminology — каждое движется своим темпом.

Что мигрирует

  • Legacy .NET backend (BloodGPT-dotnet, C#) → TypeScript (Node.js, Next.js, Mastra, Inngest) в монорепо. Runbook: docs/DOTNET_DATA_MIGRATION.md в bloodgpt-for-business.
  • Legacy Python-сервисыloinc_harmonization_service, normalization-service, частично fhir-services — TS-портируются в apps/analysis-worker/src/mastra/. См. loinc-unification-direction (целевое: один TS-сервис вместо двух).
  • Database — single Postgres (.NET, всё в одной БД) → Postgres-Prisma (бизнес/auth/pipeline metadata) + FHIR Healthcare API (вся клиника). Подробности — multi-tenant-fhir-storage и docs/DOTNET_DATA_MIGRATION.md.
  • LLM access — прямые вызовы AI Studio из .NET (и отдельные SDK-инстанциации в Python-сервисах) → через bifrost поверх Vertex. Это не только смена endpoint, но и переход в централизованную gateway-модель (cascade fallback, observability, mock-плагины). litellm был ранним кандидатом и присутствует в local-dev (Tilt запускает port-forward), но в target state не входит — выводится из-за memory leak при streaming и деградации TTFT (см. llm-proxy-choice). Подробности routing-топологии (кто куда ходит, compliance gaps) — llm-routing.
  • Terminology (domain-side) — «параметр крови» → «биомаркер» в новых местах; легаси term остаётся в .NET API контракте, таблицах (LoincParameters), полях (parameter_v2_id). См. biomarker.
  • Terminology (product-side) — параллельно идёт consolidation customer-segment / платформ-naming. Outward (sales, контракты, public-docs) переходим на B2C / B2B – Clinician / B2B – SaaS / B2B – Integrated / B2B – Enterprise. Internal labels тоже мигрируют: сегодня под B2C живут два разных режима (Individuals + Clinicians) плюс отдельный B2C-Organizational — три «B2C-flavored» ярлыка для трёх offering’ов. Целевое — только один B2C (Individuals), Clinicians и Organizational переезжают в B2B-семейство и на стороне кода / БД / роутов / tenant-тегов. См. Миграция internal labels; sequencing — TBD.
  • Trending identification — Postgres-колонка LoincParameters.TrendingGroupId → FHIR Observation extension http://bloodgpt.com/fhir/StructureDefinition/trending-group-id. См. trending-groups.

Carry-over: отдельная страница про «куда мы идём» (target-state architecture как connected picture, не миграция-как-список) — пока не написана. Сейчас vision разнесён фрагментами по: multi-tenant-fhir-storage (данные), recognition-enrichment-hourglass (форма pipeline’а), health-report-vision (paradigm shift тест-центрик → snapshot-центрик), llm-proxy-choice (gateway-слой). Имеет смысл синтезировать в technical/new-stack-vision или technical/target-architecture.

Что НЕ мигрирует (целевое состояние)

  • Doctor portal (legacy .NET) — отдельно redesign’ится как фича внутри B2B, не прямой port. Стратегия — переписать с нуля под новые требования (org-of-one, новый UX), а не one-to-one перевод. См. doctor-portal.
  • historical: boolean API-флаг — кандидат на полное удаление, не сохраняется в новом стеке. См. historical-flag-removal.

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

  • Полная инвентаризация функционала .NET + Python-сервисов и стейк-холдеров (b2b-clients ещё на .NET API контракте, doctor portal users, потребители прямых Python API). Без неё план миграции — догадки.
  • Sequencing — что мигрировать первым: doctor portal? .NET API endpoints? Прямые DB-readers? Python-сервисы? Зависит от риска для customer’ов и от того, насколько готовы Node-аналоги.
  • Cutover criteria — на какой stage можно выключить .NET API; на какой — Python normalization / LOINC сервисы. Сейчас неформально.

Связано

  • llm-routing — current state LLM routing-топологии (включая blood-gpt-dotnet direct-to-AI-Studio compliance gap)
  • loinc-unification-direction — TS-port Python LOINC + normalization сервисов — active
  • multi-tenant-fhir-storage — целевая FHIR-архитектура (на которую мы движемся)
  • phi-in-fhir-not-sql — почему clinical data уходит в FHIR — active
  • doctor-portal — legacy .NET surface; отдельный redesign, не прямой port
  • biomarker — terminology shift «параметр крови» → «биомаркер»
  • trending-groups — где Postgres-TrendingGroupId переезжает в FHIR extension
  • historical-flag-removal — кандидат на удаление API-поля, не переносим
  • bifrost — целевой LLM-прокси-слой
  • litellm — ранний LLM-прокси (Python), выводится; в target не входит
  • llm-proxy-choice — почему Bifrost as target, LiteLLM выводится — active
  • recognition-enrichment-hourglass — фрейм нового pipeline (vision-related)
  • health-report-vision — paradigm shift на стороне отчёта (vision-related)

Carry-over: эта страница появилась 2026-05-18 как stub из biomarker. Развернуть в полноценный concept-обзор — отдельная сессия. Источники для разворота: ADR’ы и runbook’и в bloodgpt-for-business/docs/ (DOTNET_DATA_MIGRATION.md, STORAGE_ARCHITECTURE.md).