Назад в архив
II. Клинический AI и медицинские платформывитриналидклиент анонимизирован

PHI Service (Python / FastAPI)

PHI Service — медицинский микросервис «Personal Health Information» для экосистемы Healthcare CRM platform: защищённое хранение результатов анализов с двухуровневым шифрованием (AES-256-GCM + HMAC-SHA256), псевдонимизация через PII Service, интеграция с HL7, AI-интерпретация результатов, полный аудит. Две реализации: Python/FastAPI (phi-service) и переписанная на TS/Elysia версия (phi-elysia, см. задачу #45).

Статус
активный
Период
2025-09-18 → 2026-02-12
AI-сессий
2
Стек
Языки
PythonTypeScript
Фреймворки · Инфра
FastAPISQLAlchemy 2.0TemporalElysia (Bun)DrizzleHashiCorp VaultMinIO
§01

Обзор

  • Что это: зонтичная папка ~/development/phi с двумя реализациями единого healthtech-микросервиса для работы с защищённой медицинской информацией (PHI) внутри Healthcare CRM platform (Саудовская Аравия / KSA — Vault на vt.ksa.healthcare-platform.com):
  • phi-service (Python/FastAPI) — исходная реализация (этот файл сфокусирован на ней).
  • phi-elysia (TypeScript/Elysia/Bun) — миграция/переписывание (с MIGRATION_PLAN.md); рассматривается отдельно в задаче #45.
  • Тип / статус / роль: api (медицинский микросервис) · active · lead — пользователь основной автор (phi-service ~79 коммитов, phi-elysia 45); команда: Alisher Mukhtorov (~28 в phi-service), Anna Shevtsova/aniashev, Harsh Manwani.
  • Период активности: phi-service 2025-09-18 → 2026-01-12 (109 коммитов); phi-elysia 2026-01-05 → 2026-02-12 (57). Активное развитие с миграцией стека Python→Bun/Elysia.
§02

Стек

  • phi-service (Python): Python 3.12+, FastAPI + uvicorn, SQLAlchemy 2.0 async + asyncpg + Alembic, Postgres, cryptography + HashiCorp Vault (hvac) для ключей, python-jose (JWT), Temporal (temporalio — durable-воркфлоу), MinIO (объектное хранилище), HL7 (hl7), парсинг PDF-отчётов лабораторий (pymupdf, pdf2image, Pillow), Groq/OpenAI (AI-интерпретация), structlog + python-json-logger + prometheus-client, slowapi (rate-limit), tenacity (retry), httpx. UV (пакетный менеджер), Docker (+ Dockerfile.worker), Makefile, pytest+xdist+cov, ruff/mypy/bandit.
  • phi-elysia (TypeScript, → задача #45): Elysia (Bun) + @elysiajs/{jwt,bearer,cors,swagger,opentelemetry}, Temporal (client/worker/workflow) + Inngest (event-driven), Drizzle ORM, MinIO, jose, AWS Secrets Manager, OpenTelemetry + LogTape, Biome.
  • Инфраструктура/деплой: Docker Compose (варианты dev/prod/inngest), отдельный worker-контейнер, миграции alembic (Python) / drizzle (TS), Vault/Secrets Manager для ключей шифрования.
  • Данные: PostgreSQL (зашифрованные медицинские данные), MinIO (файлы/PDF отчётов лабораторий), Vault (ключи). Интеграция с PII Service (псевдонимизация) и Healthcare CRM platform.
§03

Что реализовано

  • Защищённое хранение PHI: двухуровневое шифрование (AES-256-GCM + HMAC-SHA256), управление ключами через Vault, псевдонимизация (связка PHI↔PII через отдельный PII Service).
  • Результаты анализов: парсинг PDF-результатов (PyMuPDF/pdf2image), обмен по HL7, конвертеры/воркфлоу в src/labs/{converters,workflows,repositories,services,rest}.
  • AI-интерпретация: версионируемые интерпретации результатов через Groq/OpenAI.
  • Аудит: полный лог доступа к медицинским данным.
  • Доменные модули: labs, medical_profile, health_metrics, chat, ai, partner, authentication, security, external, facades (Onion Architecture).
  • Миграция Python→Elysia (phi-elysia): порт на Bun/Elysia + Temporal + Inngest, с тест-планами (TESTING_PLAN*.md) и IMPLEMENTATION_SUMMARY.
  • Объём: 166 коммитов всего (~124 от пользователя) за ~5 месяцев.
§04

Технические челленджи

Подтверждено по README/CLAUDE/pyproject/структуре:

  • Двухуровневое шифрование медицинских данных + Vault (src/security/): AES-256-GCM (конфиденциальность) + HMAC-SHA256 (целостность/аутентичность), ключи берутся из HashiCorp Vault, а не из env. → Серьёзная криптография для медицинского комплаенса.
  • Псевдонимизация через разделение PHI/PII (src/external/, связь с PII Service): медицинские данные хранятся отдельно от идентифицирующих, связь через псевдонимы — паттерн health-privacy (класса HIPAA/GDPR). → Грамотная архитектура приватности.
  • Onion Architecture (REST → Facade → Domain Service → Repository): чёткое разделение на слои, кросс-доменные фасады, доменные модули со своими models/schemas/dtos/repositories/services. → Зрелая структура для крупного сервиса.
  • HL7 + AI-интерпретация результатов анализов (src/labs, src/ai): приём PDF → парсинг (PyMuPDF) → HL7 → версионируемая AI-интерпретация (Groq/OpenAI). → Нетривиальный пайплайн обработки медицинских данных.
  • Durable-воркфлоу на Temporal (обе реализации): долгоживущая обработка результатов анализов как Temporal-воркфлоу (отдельный worker-контейнер) — устойчивость к сбоям. В phi-elysia добавлен Inngest для event-driven обработки.
  • Production-grade обвязка: метрики Prometheus, structlog (JSON-логи), rate-limit на slowapi, ретраи на tenacity, security-скан bandit, mypy strict, pytest с xdist/coverage. → Операционная и качественная зрелость.
§05

AI-разработка

  • Найденные сессии: 2 директории — по одной на phi-service и phi-elysia (subdir-форма; обе реализации построены с Claude Code). .claude/ присутствует и в зонтичной папке.
  • Что делалось с AI: размер CLAUDE.md (phi-service 314 строк!) + планы миграции/тестов (MIGRATION_PLAN, TESTING_PLAN, IMPLEMENTATION_SUMMARY в phi-elysia) указывают на AI-assisted разработку и spec-first процесс, особенно при переписывании Python→Elysia.
  • Паттерны AI-воркфлоу: документо-ориентированная разработка (подробный CLAUDE.md как гайд для агента), AI-driven миграция стека, поэтапные тест-планы.
§06

Достижения и метрики

  • 2 полноценные реализации одного медицинского микросервиса (Python + TypeScript), миграция стека.
  • ~10 доменных модулей (labs, medical_profile, health_metrics, chat, ai, security, external, authentication, partner, facades).
  • Криптография медицинского уровня (AES-256-GCM + HMAC, Vault), HL7, аудит.
  • 166 коммитов за ~5 месяцев, команда 3–4 человека, пользователь основной автор.
  • Полный CI-тулчейн (ruff/mypy/bandit/pytest-cov), observability на Prometheus/structlog.
§07

Контрибьюторы

git shortlog · все ветки

  1. Dave93124
  2. Alisher Mukhtorov28
  3. aniashev9
  4. Harsh Manwani5
4 контрибьютора166 коммитов всего
Сейчас

Открыт к ролям Senior / Staff инженера и избранному фрилансу — продакшн-AI, платформы и full-stack разработка.

Связаться