Уже скоро год, как запущена AI-платформа для хранения и аналитики персональных медицинских данных Lissa Health. Недавно в ней появился отчет «Профиль здоровья», который учитывает любую информацию, которую пользователь предоставил о себе. Чтобы его реализовать, пришлось полностью переработать идеологию движка системы.
Мы совершили качественный переход от документо-центрической к фактор-центрической модели данных, где атомом информации о здоровье человека является медицинский факт с уникальным кодом и контекстом.
Ниже - техническое описание новой структуры.
Если работать только с лабораторными анализами, то извлекать биомаркеры и структурировать их относительно несложно. Совсем другой вопрос, когда перед тобой заключение МРТ, анамнестические данные или сложный протокол осмотра. Как это хранить? Как индексировать? По каким признакам включать в выборки для исследований?
Низкая доступность структурированных данных - главная преграда на пути развития цифрового здравоохранения. Сегодня клинически значимая информация по-прежнему «заперта» внутри неструктурированных текстов. Самым прогрессивным способом решения этой проблемы является извлечение атомарных фактов:
Для анализов - это биомаркер и его значение.
Для МРТ - элементарные находки (например, «просветы трахеи свободны», «легочная ткань без инфильтрации»).
Для витальных параметров - конкретное измерение давления или пульса.
Таком образом, заключение МРТ или анамнез разбиваются на десятки фактов, каждый из которых уже можно измерить и классифицировать.
Чтобы охватить весь спектр данных и не утонуть в хаосе, мы выделили пять типов фактов:
Numeric - одиночные измерения (глюкоза 5.6 ммоль/л).
Composite - связанные группы значений (АД 125/85 мм рт. ст.).
Finding - фиксация присутствия/отсутствия патологий (конкремент в желчном пузыре).
Textual - описательные характеристики (ритм синусовый правильный).
List - категориальные данные (группа крови, результаты бакпосева, симптомы).
Мы приводим извлеченные данные к подобию международного стандарта FHIR (Fast Healthcare Interoperability Resources). Это гарантирует, что структурированная нами информация будет бесшовно интегрироваться в современные медицинские экосистемы и соответствовать передовым мировым требованиям к обмену медицинскими данными.
Извлечение данных осуществляется через AI-конвейер, состоящий из двух специализированных агентов:
Сегментирует исходный текст на логические блоки и классифицирует тип факта (например, направляет данные об АД к одному специалисту, а описание КТ легких - к другому).
Проводит глубокую экстракцию атрибутов. Для численных данных это канонические единицы (UCUM) и референсы, для находок - латеральность (право/лево), анатомическая локализация и статус присутствия (present: true/false).
{ "factorCode": "LAB.METABOLIC.CHOLESTEROL.L2093-3", "valueType": "numeric", "systemCode": "metabolic", "organCode": "blood", "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 - дословной цитаты из исходного документа.
Наличие оригинального контекста:
Обеспечивает возможность аудита данных врачом.
Позволяет выявлять дубликаты через MD5-хэш.
Гарантирует юридическую прозрачность (специалист всегда видит оригинал, на основе которого ИИ сделал вывод).
Создает базу для «работы над ошибками»: дообучения моделей на верифицированных экспертами примерах.
Фундаментальная проблема медицины - «синонимия». Показатель глюкозы или описание патологии могут быть записаны сотней способов. Мы решаем это через сопоставление с международными онтологиями LOINC и SNOMED CT.
Это превращает изолированную строку в глобально идентифицируемую сущность. Для исследователя это означает переход к концептуальному поиску: можно сразу выбрать всех пациентов с «холелитиазом», даже если в протоколе было написано «камень» или «одиночный конкремент». Интеграция с онтологиями позволяет связывать показатели крови с морфологией органов через иерархию смыслов, открывая путь к глубокой графовой аналитике.
Для удобства разработки и аналитики для идентификатора factorCode мы внедрили структуру:
[TYPE].[SYSTEM].[PARAMETER_NAME].[ISO_CODE]
Пример: LAB.IMMUNE.ENTAMOEBA_HISTOLYTICA_IGG.L13933-0.
Такая кодировка позволяет проводить агрегацию данных (например, «выбрать всю иммунологию» или «все патологии печени») прямым SQL-запросом без ресурсоемкого обращения к внешним справочникам.
Представленный датасет можно использовать в двух режимах:
Формирование традиционных отчетов для врачей (анализ трендов, фильтрация по системам органов, мониторинг референсных интервалов).
Предиктивные модели: Предсказание рисков развития патологий на основе динамики биомаркеров.
Анализ ассоциаций: Поиск неявных корреляций между лабораторными показателями и визуальными находками (например, маркеры воспаления vs изменения в тканях на МРТ).
Графы знаний: Построение семантических связей между атомарными фактами здоровья.
Много других интересных штук.
Переход от «хранения файлов» к семантическим базам знаний - это необходимый шаг в сторону персонализированной медицины. Новая архитектура Lissa Health способна переводить даже самые сложные медицинские протоколы в структурированный «цифровой след» пациента.
Мы отобрали датасет в несколько десятков тысяч записей и готовы предоставить к нему доступ для научно-исследовательских целей и клинической аналитики.
Доступ бесплатный, как и пользование платформой Lissa Health.
Сайт: Lissa Health
TG: lissahealth
Источник


