FHIR R4 ресурс — формальное юридическое или функциональное объединение людей. В нашем контексте используется в двух ролях: AI-author для генерируемого контента и tenant-brand для портала.

Использование в BloodGPT

Organization/bloodgpt — AI-author

Один ресурс на всё хранилище, ставится автором для всех AI-сгенерированных FHIR-объектов:

  • Composition.author (interpretation, patterns, considerations, recommendations)
  • CarePlan.author (follow-up план)
  • Observation.note[].authorReference (parameterDetails, AI-комментарий по биомаркеру; panel overview)

Pivot с Device на Organization произошёл в session c9560637 (Feb 17 2026): Google Healthcare API не принимает Device-references в author[x]. См. authorship-organization-not-device.

{
  "resourceType": "Organization",
  "id": "bloodgpt",
  "name": "BloodGPT",
  "type": [{ "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/organization-type", "code": "other" }] }]
}

Provisioning: создаётся при создании tenant dataset (healthcare-dataset.function.ts). Известный gap — provisioning function не покрывает existing orgs (см. ниже).

Organization/{tenantId} — tenant brand (потенциальное расширение)

В будущем — для whitelabel / multi-tenant brand: имя клиники, логотип, контактные данные. Отдельный ресурс от Organization/bloodgpt. Сейчас брендинг хранится в Organization таблице PostgreSQL, не в FHIR.

DiagnosticReport.resultsInterpreter — стандартное FHIR-поле для “кто отвечает за интерпретацию результатов” (Reference(Practitioner | PractitionerRole | Organization | CareTeam)). Verified в c9560637. Promotion с Composition.author на это поле — отдельная задача, не сделана.

Ключевые поля (для нашего use case)

  • name — отображаемое имя ("BloodGPT")
  • type — codeable concept; для AI-системы используется other
  • telecom — контакты, для brand-org
  • address — для brand-org

Gotchas

  • Existing prod datasets без Organization/bloodgpt. На момент pivot’а (Feb 17 2026) provisioning создавал ресурс только для новых orgs. Existing — без него. Runtime ошибка reference target(s) not found: Organization/bloodgpt при попытке записать AI-content. Manual fix через gcloud + curl был сделан только для двух prod datasets:
    • org-cmlpaxq2g0001nv1511l4t6v9
    • org-cmlpbcp5l0000pl14apu115cw
    • Backfill для остальных prod datasets не сделан. Каждый existing tenant с healthcareDatasetName, у которого ресурса нет, словит runtime error при следующем enrichment-шаге. См. multi-tenant-fhir-storage [О5].
  • Idempotent provisioning не реализован. Claude в c9560637 предлагал включить Organization/bloodgpt PUT-entry в начало transaction bundle при каждом fhir-resource-creation (idempotent — создастся если нет, обновится если есть). Решение не закоммичено в этой сессии — текущий workaround manual.

Связано

Источники

Источники: 1 2.

Сноски

  1. FHIR R4 Organization, accessed 2026-05-17, https://hl7.org/fhir/R4/organization.html.

  2. FHIR R4 Annotation.author choice, accessed 2026-05-17, https://hl7.org/fhir/R4/datatypes.html#Annotation.