
Уже скоро год, как запущена AI-платформа для хранения и аналитики персональных медицинских данных Lissa Health. Недавно в ней появился отчет «Профиль здоровья», который учитывает любую информацию, которую пользователь предоставил о себе. Чтобы его реализовать, пришлось полностью переработать идеологию движка системы.
Мы совершили качественный переход от документо-центрической к фактор-центрической модели данных, где атомом информации о здоровье человека является медицинский факт с уникальным кодом и контекстом.
Ниже - техническое описание новой структуры.
Проблема неструктурированных данных
Если работать только с лабораторными анализами, то извлекать биомаркеры и структурировать их относительно несложно. Совсем другой вопрос, когда перед тобой заключение МРТ, анамнестические данные или сложный протокол осмотра. Как это хранить? Как индексировать? По каким признакам включать в выборки для исследований?
Низкая доступность структурированных данных - главная преграда на пути развития цифрового здравоохранения. Сегодня клинически значимая информация по-прежнему «заперта» внутри неструктурированных текстов. Самым прогрессивным способом решения этой проблемы является извлечение атомарных фактов:
Для анализов - это биомаркер и его значение.
Для МРТ - элементарные находки (например, «просветы трахеи свободны», «легочная ткань без инфильтрации»).
Для витальных параметров - конкретное измерение давления или пульса.
Таком образом, заключение МРТ или анамнез разбиваются на десятки фактов, каждый из которых уже можно измерить и классифицировать.
Чтобы охватить весь спектр данных и не утонуть в хаосе, мы выделили пять типов фактов:
Numeric - одиночные измерения (глюкоза 5.6 ммоль/л).
Composite - связанные группы значений (АД 125/85 мм рт. ст.).
Finding - фиксация присутствия/отсутствия патологий (конкремент в желчном пузыре).
Textual - описательные характеристики (ритм синусовый правильный).
List - категориальные данные (группа крови, результаты бакпосева, симптомы).
Мы приводим извлеченные данные к подобию международного стандарта FHIR (Fast Healthcare Interoperability Resources). Это гарантирует, что структурированная нами информация будет бесшовно интегрироваться в современные медицинские экосистемы и соответствовать передовым мировым требованиям к обмену медицинскими данными.
Формирование датасета и Pipeline извлечения
Извлечение данных осуществляется через AI-конвейер, состоящий из двух специализированных агентов:
Router
Сегментирует исходный текст на логические блоки и классифицирует тип факта (например, направляет данные об АД к одному специалисту, а описание КТ легких - к другому).
Specialist
Проводит глубокую экстракцию атрибутов. Для численных данных это канонические единицы (UCUM) и референсы, для находок - латеральность (право/лево), анатомическая локализация и статус присутствия (present: true/false).
Общая структура Health Entity
{
"factorCode": "LAB.METABOLIC.CHOLESTEROL.L2093-3",
"valueType": "numeric",
"systemCode": "metabolic",
"organCode": "blood",
"payload": { ... }
}Каждая сущность имеет унифицированный заголовок, а специфика данных выносится в поле payload. Это позволяет хранить разнородные данные в одной таблице, обеспечивая высокую скорость поиска и кросс-системную аналитику.
Пять типов payload
Numeric:
{
"factorName": "total_cholesterol",
"systemCode": "metabolic",
"interpretation": "normal",
"rawSource": "Холестерин общ. 4.75 (3.0-5.2) ммоль/л",
"performer": "Клинико-диагностическая лаборатория «Хромас»",
"measurement": {
"unit": "ммоль/л",
"value": 4.75
},
"referenceRange": {
"low": 3,
"high": 5.2,
"text": "3.0-5.2"
},
"mapping": [
{
"system": "LOINC",
"code": "2093-3",
"display": "Cholesterol [Mass/volume] in Serum or Plasma",
"confidence": 1.0
}
]
}
Composite:
{
"factorName": "blood_pressure",
"systemCode": "cardiovascular",
"interpretation": "normal",
"rawSource": "АД 125/85 мм рт. ст.",
"primaryMeasurement": { "value": 125, "unit": "mm[Hg]", "type": "systolic" },
"components": [
{ "value": 85, "unit": "mm[Hg]", "type": "diastolic", "code": "8462-4" }
],
"mapping": [
{
"system": "LOINC",
"code": "85354-9",
"display": "Blood pressure panel with all children optional",
"confidence": 1.0
},
{
"system": "LOINC",
"code": "8480-6",
"display": "Systolic blood pressure",
"confidence": 1.0
}
]
}
Finding:
{
"factorName": "gallstones",
"systemCode": "hepatobiliary",
"organCode": "gallbladder",
"clinicalFinding": {
"present": true,
"anatomicalLocation": "желчный пузырь",
"observation": "одиночный конкремент"
},
"interpretation": "positive",
"rawSource": "В желчном пузыре обнаружен камень.",
"mapping": [
{
"system": "SNOMED",
"code": "56594002",
"display": "Cholelithiasis (disorder)",
"confidence": 1.0
},
{
"system": "LOINC",
"code": "96452-8",
"display": "Gallstones [Presence] in Gallbladder by US",
"confidence": 0.9
}
]
}
List:
{
"value": "A (II)",
"options": ["A", "B", "AB", "O"],
"interpretation": "normal",
"mapping": [
{
"system": "LOINC",
"code": "883-9",
"display": "ABO group [Type] in Whole blood",
"confidence": 1.0
},
{
"system": "SNOMED",
"code": "112144000",
"display": "Blood group A (finding)",
"confidence": 0.95
}
],
"rawSource": "Группа крови: A (II) Rh+"
}
Textual:
{
"value": "синусовый правильный",
"observation": "правильный, синусовый, без значимых пауз",
"interpretation": "normal",
"mapping": [
{
"system": "LOINC",
"code": "8867-4",
"display": "Heart rate and rhythm",
"confidence": 0.9
},
{
"system": "SNOMED",
"code": "426761007",
"display": "Normal sinus rhythm (finding)",
"confidence": 0.85
}
],
"notes": "Частота 72 уд/мин включена в описание",
"rawSource": "Ритм синусовый, правильный, ЧСС 72 уд/мин"
}
В дополнительных таблицах хранится сопутствующая информация о факте - версия алгоритма экстракции, модель, промпты, саммари всего оригинального документа, confidence, статус верификации (для перепроверки человеком)

Верификация через rawSource
Критически важным элементом архитектуры является сохранение rawSource - дословной цитаты из исходного документа.
Наличие оригинального контекста:
Обеспечивает возможность аудита данных врачом.
Позволяет выявлять дубликаты через MD5-хэш.
Гарантирует юридическую прозрачность (специалист всегда видит оригинал, на основе которого ИИ сделал вывод).
Создает базу для «работы над ошибками»: дообучения моделей на верифицированных экспертами примерах.
Семантическое сопоставление (mapping)
Фундаментальная проблема медицины - «синонимия». Показатель глюкозы или описание патологии могут быть записаны сотней способов. Мы решаем это через сопоставление с международными онтологиями LOINC и SNOMED CT.
Это превращает изолированную строку в глобально идентифицируемую сущность. Для исследователя это означает переход к концептуальному поиску: можно сразу выбрать всех пациентов с «холелитиазом», даже если в протоколе было написано «камень» или «одиночный конкремент». Интеграция с онтологиями позволяет связывать показатели крови с морфологией органов через иерархию смыслов, открывая путь к глубокой графовой аналитике.
Семантическое кодирование идентификатора
Для удобства разработки и аналитики для идентификатора factorCode мы внедрили структуру:
[TYPE].[SYSTEM].[PARAMETER_NAME].[ISO_CODE]
Пример: LAB.IMMUNE.ENTAMOEBA_HISTOLYTICA_IGG.L13933-0.
Такая кодировка позволяет проводить агрегацию данных (например, «выбрать всю иммунологию» или «все патологии печени») прямым SQL-запросом без ресурсоемкого обращения к внешним справочникам.
Научная ценность и возможности аналитики
Представленный датасет можно использовать в двух режимах:
OLAP (конвенциальная аналитика)
Формирование традиционных отчетов для врачей (анализ трендов, фильтрация по системам органов, мониторинг референсных интервалов).
ML/AI Research
Предиктивные модели: Предсказание рисков развития патологий на основе динамики биомаркеров.
Анализ ассоциаций: Поиск неявных корреляций между лабораторными показателями и визуальными находками (например, маркеры воспаления vs изменения в тканях на МРТ).
Графы знаний: Построение семантических связей между атомарными фактами здоровья.
Много других интересных штук.
Заключение
Переход от «хранения файлов» к семантическим базам знаний - это необходимый шаг в сторону персонализированной медицины. Новая архитектура Lissa Health способна переводить даже самые сложные медицинские протоколы в структурированный «цифровой след» пациента.
Мы отобрали датасет в несколько десятков тысяч записей и готовы предоставить к нему доступ для научно-исследовательских целей и клинической аналитики.
Доступ бесплатный, как и пользование платформой Lissa Health.
Сайт: Lissa Health
TG: lissahealth
