Эта страница — 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 extensionhttp://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: booleanAPI-флаг — кандидат на полное удаление, не сохраняется в новом стеке. См. 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-dotnetdirect-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).