Самые объёмные файлы — рентгеновские исследования. Они хранятся в виде ссылок, а оригиналы загружены на сервер радиологической информационной системы. Благодаря такому подходу даже хранение объёмных файлов не влияет на производительность платформы.
Как технологии Yandex Cloud помогают находить новые методы лечения
Рассказываем, как специалисты Сеченовского университета разработали платформу медицинских данных, используя сервисы Yandex Cloud. Теперь врачи или ординаторы могут быстрее искать информацию, собирать статистику и за несколько секунд выгружать данные.
За последние десять лет цифровая история болезни стала стандартом в области здравоохранения в России. В медицинских информационных системах (МИС) фиксируются данные о заболеваниях, проведённых исследованиях и результатах анализов. Это облегчает врачу постановку диагноза.
Однако из МИС пока нельзя выгружать данные пациентов со схожими симптомами и сложно собирать статистику. При этом такие данные — ценный источник для научных исследований. Например, на основе этой информации можно выявлять наиболее эффективные методики борьбы с новыми штаммами гриппа во время сезонных вспышек заболевания. Кроме того, сбор статистики ускорил бы подготовку научных работ: аспирантам и ординаторам не понадобилось бы тратить часы в архивах, они могли бы за несколько минут получить информацию о схожей симптоматике.
Как настроить поиск по 18 млн документов
При Сеченовском университете работает несколько клинических больниц, где ежегодно проходят лечение 20 000 пациентов. Данные в МИС больницы загружают с 2012 года и за это время собрали более 18 млн записей.
Информация о пациентах хранится в большой документированной базе на основе «1С: Медицина». Однако, основной функциональностью медицинской информационной системы является диагностика и лечение пациента. Из-за этого возникали сложности с упорядочиванием всех данных для поиска и выгрузкой стандартизированного массива данных. Чтобы быстрее искать и фильтровать информацию о пациентах, было необходимо преобразовать записи в новый формат и обеспечить поддержку их обновления. Проект разрабатывали специалисты Сеченовского университета совместно с Yandex Cloud и Beltel Datanomics, компанией, специализирующейся на искусственном интеллекте и аналитике Big Data.
Облачная платформа для хранения клинических исследований
Хранилище медицинской информации представляет собой большую документированную базу на основе «1С: Медицина». Это порядка 300 Гб информации, включая справочники, выписки, протоколы операций и родов. Новая платформа использует МИС 1С в качестве первичного источника данных для загрузки медицинских документов на облачный сервер.
«Сервер обновляется каждую ночь. Информация в справочниках актуализируется ежедневно, а документы пациентов попадают в систему после выписки в виде деперсонализированных данных: на их основе нельзя идентифицировать конкретного человека, пользователь видит только информацию о том или ином клиническом случае. Обезличивание происходит на сервере 1С, и только после этого данные попадают в облако.
Безопасность хранения и передачи данных обеспечивает сервис UserGate, соответствующий требованиям Российской Федерации в области обеспечения безопасности информации. Безопасность хранения данных в Yandex Cloud соответствует стандартам, описанным в федеральном законе «О персональных данных». Авторизация происходит через сервер Sechenov ID, также можно зайти в систему по логину и паролю».
В веб-интерфейсе для удобства поиска добавили фильтр по 120 параметрам. Например, врач или ординатор может найти большой список пациентов с диагнозом Covid в возрастной группе от 50 до 55 лет, при сопутствующем заболевании сахарный диабет и просмотреть результаты тех или иных анализов или рентгеновские снимки.
Пример сохранённого набора данных
Результат поиска выводится в табличном виде. Эту таблицу можно сохранить в шаблон и вернуться к ней позже, добавив или убрав параметры. Также можно углубиться в каждый клинический случай и рассмотреть рентгеновские снимки, УЗИ, заключения врачей-консультантов и так далее.
Как работает решение
Платформа университета использует более 10 сервисов Yandex Cloud. На данный момент подготовленные и обезличенные данные попадают в хранилище, созданное на базе Managed Service for PostgreSQL. Однако с увеличением нагрузки университет рассматривает переход на Managed Service for Greenplum®.
Для поиска по хранилищу подключили сервис Managed Service for OpenSearch. Чтобы защитить данные от случайного удаления или потерь из-за внештатных ситуаций, создаются резервные копии, которые содержатся в объектном хранилище Object Storage.
Все запросы пользователей проходят через Security Groups — механизм, который контролирует входящий трафик и предотвращает несанкционированный доступ. Для метрик, характеризующих работоспособность приложения, используется Grafana. Исходный код проекта хранится на сервисе Managed Service for GitLab, который также позволяет использовать функции автоматической развертывания приложения.
«Клинические» испытания облачной платформы
При разработке платформы данных главной трудностью стала обработка большого объема неструктурированных данных. Чтобы решить эту задачу, специалисты Yandex Cloud и Beltel Datanomics составили спецификацию данных и внедрили их валидацию и типизацию в облаке.
Также ввели итеративную оптимизацию облачного хранилища: разработчики будут постепенно вносить изменения, оптимизировать индексацию или запросы, что улучшит работу сервиса. Данные, которые хранятся в неструктурированном виде, например, информация о госпитализации, преобразовали в простые таблицы с взаимосвязями.
Врачи могут произвольно вводить запрос при формировании датасетов. Чтобы улучшить обработку запросов и понимание системой, что именно хочет получить в результате пользователь, внедрили сервисы GraphQL и RESTful. Этот позволило точно извлекать данные из хранилища.
Столкнувшись с большим количеством поисковых параметров (120 параметров и 88 лабораторных исследований, включая 1700 лабораторных параметров), команда дополнительно акцентировала внимание на детальном проектировании UI/UX системы. В дальнейшем параметры разделят на группы, с помощью которых можно будет ещё быстрее фильтровать информацию.
10 секунд вместо месяцев работы в архиве
В ходе тестирования платформы сотрудники университета Сеченова намеренно нагружали систему и создавали датасет с большим количеством параметров (csv-файл размером 156 Мб). Результат был впечатляющим: платформа способна выгружать данные по запросу за 10—12 секунд. На сбор подобного объема данных вручную специалисту понадобилось бы несколько месяцев.
Конечно, это не означает, что любая научная задача будет решена за 12 секунд. Необходимо тщательно проработать тему исследования и определить параметры. После выгрузки датасета начинается фильтрация, уточнение и разметка данных.
Планы по развитию платформы медицинских данных
Пока система работает в тестовом режиме. Основные пользователи — 30 сотрудников, заведующие кафедрой и доценты, занимающиеся наукой и лечением. Раньше они формировали базы данных почти вручную. Сотрудники уже прошли обучение и научились формировать и использовать датасеты. Теперь их основная задача — провести опытную эксплуатацию системы, выявить недочёты и предложить улучшения.
Команда также намерена увеличить число пользователей до 1000, подключив преподавательский и научный состав, а также аспирантов и ординаторов. Чтобы упростить работу с большими таблицами, разработчики планируют добавить математическую обработку данных. Это поможет определять, например, среднее медианное значение и визуализировать данные, построив график в сервисе DataLens.
В будущем Сеченовский университет планирует приглашать другие университеты присоединиться к системе и объединить базы данных. Это взаимовыгодное сотрудничество: больница при Сеченовском университете принимает больше всего пациентов, по сравнению с другими вузами. Учебным заведениям из небольших городов это поможет получить доступ к широкой базе данных, улучшить диагностику и лечение, а подключение к региональной базе позволит пополнить базу Сеченовского университета случаями, не характерными для столичного региона.
Также в планах на 2024 год — создать портал с собранными датасетами, которые сопровождаются кратким описанием клинической задачи, аннотацией, количеством пациентов, показателями. Этими наборами данных смогут пользоваться научные команды или разработчики искусственного интеллекта: например, Healthtech-компании, которые создают на базе технологий машинного обучения новые устройства для диагностики, прогнозирования и лечения заболеваний.