Лабораторные диапазоны (low/normal/high) для конкретного биомаркера. Один из входов для interpretation на параметре (не “source of truth” — для non-quantitative параметров их вообще нет; и interpretation может быть передана нам уже готовой в interpretation-поле). Поверх interpretation — parameter-triage-codes (action-level).

Где живут в данных

FHIR Observation.referenceRange[] — массив low/high/appliesTo/age. Spec поддерживает multi-tier (по полу, возрасту, риск-группе). У нас в production текущий рендер сводится к одной паре min/max, остальное теряется.

Источники range

В порядке приоритета:

  1. Лабораторный input (PDF / JSON / HL7) — primary. Лаба указывает диапазон рядом со значением.
  2. LLM fallback — если явного диапазона в input нет, промпт просит LLM вывести популяционный.

Carry-over (повторный запрос): прочитать актуальный prompt fallback-логики и выписать конкретику — что спрашивает, какие источники приоритизирует, как handle multi-tier. Это повторяющееся в ревью wiki требование, пока не выполнено.

Multi-tier ranges

Лаба может прислать набор диапазонов на один параметр: general / CVD-high-risk / pregnancy / age-stratified. Текущая упрощающая редукция к одному min/max — lossy. См. multi-tier-range-storage.

Связанный аспект — выбор tier по профилю пациента (если у пациента ССЗ/диабет — использовать соответствующий риск-tier). Возможно уже частично в актуальном промпте.

Региональная вариабельность

EU и US гайдлайны расходятся в значениях. Apo-B threshold: EU 65 mg/dL vs US 70 mg/dL. Cyprus лаба использовала US guideline — не зафиксировано в нашей системе как region-aware decision. См. region-aware-ranges.

5% borderline zone

Жёлтая UX-зона ±5% от границы для индикации “близко к норме”. Захардкожено константой. См. 5-percent-borderline-zone (initial removal Apr 17 → reversed на следующем daily). Параллельная research-линия — сделать % настраиваемым per-org (RFC-004), см. custom-reference-ranges.

Custom ranges per lab

Лаборатории имеют собственные каталоги параметров с инструмент-специфичными / регион-специфичными диапазонами. Сейчас мы их игнорируем и определяем через AI. См. custom-reference-ranges (research stage, BG-925 / RFC-028 — скоро в имплементацию).

Failure modes

Risk-tier как general (Cyprus lab pattern)

Лаба указала только high-risk threshold (e.g. Apo-B <70 для CVD-risk), система применила как общий → ложный “high” для пациента без заявленных рисков. Будет исправлено (in plan), не блокер.

Lab status vs derived interpretation conflict

Лаба может прислать одновременно range и status (e.g. Hb: 130 g/L (130-160), status: low). Математически 130 в норме, статус говорит “low”. Разные источники истины расходятся.

Решение (текущее): trust lab status как truth (лаба — медицинский источник), рендер визуала из value (по диапазону). Возможный визуальный конфликт UI: текст “low” + зелёная зона. Возможно нужен tooltip для пользователя. См. lab-status-vs-derived-interpretation.

Carry-over: HDL 85 + стрелочка вверх + красный в Cyprus тесте Васи — ответ от создателя теста ожидается, Ильдар пришлёт.

Missing range → variable LLM interpretation

Без явного диапазона non-deterministic интерпретация. Один и тот же тест может get разные результаты в разных прогонах.

Carry-over: систематически такое происходит — но насколько серьёзная это проблема, отдельно не оценено. Требует research-итерации.

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

  • Прочитать актуальный fallback prompt (см. carry-over в “Источники range”) — повторный запрос.
  • HL7 как input source — упомянут наряду с PDF/JSON, pipeline отдельный, не описан. Найти код, найти session — сделаем позже, не сейчас. См. → hl7-input-pipeline (placeholder).
  • Mayo Clinic source — заменить generic homepage на specific Apo-B / lipids guideline URL.
  • Severity non-deterministic LLM interpretation — насколько большая проблема (research-вопрос).

Связанные решения

Связано

Источники

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

Сноски

  1. 2026-04-17 digest “эти липопротеины б” (Ильдар + Артур + Катя, 55 мин), accessed 2026-05-17, https://github.com/Realai-plus/meeting-digests/blob/main/data/digest/2026/04/2026-04-17T10%3A01%3A00.000Z_эти_липопротеины_б_01KPDE5R6GGZJ8MTZ0W7H2S3R2.md — primary source.

  2. FHIR R4 Observation.referenceRange, accessed 2026-05-17, https://hl7.org/fhir/R4/observation-definitions.html#Observation.referenceRange.

  3. Mayo Clinic clinical labs (carry-over: заменить на specific Apo-B / lipids guideline URL), accessed 2026-05-17, https://www.mayocliniclabs.com/.