Apr 17 был принят first-step compromise, но финальный shape хранения не зафиксирован.
Контекст
Лаба может прислать набор диапазонов на один параметр: general / CVD-high-risk / pregnancy / age-stratified / sex-stratified. См. reference-ranges.
Текущее production: рендерится одна пара min/max — остальное теряется (lossy). Нужна архитектура хранения, которая не теряет tier-контекст и позволяет рендерить разный tier в зависимости от профиля пациента.
Позиции
A. Raw text + parallel min/max (Apr 17 [Р4])
Сохранять полный текст всех диапазонов отдельным новым полем + текущий упрощённый min/max для рендера остаётся. Первый шаг — накопить базу; структурирование — потом.
За: простой ship, не ломает текущий рендер. Накопление данных для понимания распределения форматов. Против: дублирует данные (raw text + parsed min/max), parsing tier’ов в будущем — отдельная работа на raw text. Не использует FHIR-spec возможности.
B. FHIR Observation.referenceRange[] native
FHIR-spec поддерживает массив с low/high/appliesTo (риск-группа), age (возрастной диапазон), text (raw fallback). Сохранять каждый tier отдельным элементом массива.
За: semantically correct (FHIR-нативный), не дублирует, готовая структура для рендера разных tier’ов, прямая совместимость с другими FHIR-системами. Против: требует более сложной миграции (parsing мульти-тировых диапазонов из input при ingest), UI должен уметь handle массив + selection.
Что нужно для разрешения
- Опыт с реальными данными после первого шага (Apr 17 [Р4]) — какие tier-форматы реально приходят, насколько разнообразны, parsing-сложность.
- Решение по UI: показывать ли все tier’ы пользователю, или selection по profile (см. region-aware-ranges).
- Verify FHIR
referenceRange[]spec coverage — все ли наши кейсы покрываются.
Связано
- reference-ranges — domain-страница откуда вопрос
- parameter-triage-codes — action-level interpretation поверх ranges
- parameter-range-type-prompt — где
interpretation(N/H/L/A) определяется - region-aware-ranges — связанный вопрос (какой tier применить)
Источники
Сноски
-
FHIR R4
Observation.referenceRange, accessed 2026-05-17, https://hl7.org/fhir/R4/observation-definitions.html#Observation.referenceRange. ↩ -
Дайджест встречи, 2026-04-17, https://github.com/Realai-plus/meeting-digests/blob/main/data/digest/2026/04/2026-04-17T10%3A01%3A00.000Z_%D1%8D%D1%82%D0%B8_%D0%BB%D0%B8%D0%BF%D0%BE%D0%BF%D1%80%D0%BE%D1%82%D0%B5%D0%B8%D0%BD%D1%8B_%D0%B1_%2A.md — 2026-04-17 digest “эти липопротеины б”: `. ↩