Поисковая индексация протоколов клинических исследований

Индустрии
Здравоохранение
Компетенции
Разработка
Технологии
Angular, TypeScript, ElasticSearch, .NET Core, Python, Java, Tensorflow, SQL Server, Oracle, MySQL, Docker, Azure

Клиент


Наш клиент оказывает комплексные услуги по проведению клинических исследований (КИ) для фармацевтической и биотехнологической промышленности. В штате компании работает более 70 тысяч сотрудников из 60 стран мира. Аркадия сотрудничает с клиентом с 2014 года.

Задачи


Одним из ключевых документов клинического исследования является протокол. В нём описаны цели, дизайн и все аспекты организации исследования. В базах данных заказчика хранятся тысячи протоколов КИ (как правило, это документы в формате PDF или DOCX). Заказчик попросил нас разработать приложение, которое структурирует информацию, представленную в текстовом виде, и выполняет сложный поиск по произвольным критериям.

Решение


Перед добавлением в поисковый индекс документы требуют дополнительной обработки, поскольку они создаются и хранятся в неструктурированном виде. При поиске нужно использовать параметры исследований и другую структурированную информацию.

Поэтому разработанное решение включает две основных функциональности: извлечение структурированной информации из документов и собственно поиск.

Добавление документов в поисковый индекс

Основной информационной единицей (объектом) в базе данных является клиническое исследование. Его можно добавить вручную либо загрузить из другой базы данных. К объекту-исследованию добавляются протокол исследования и другие документы в формате DOCX/PDF. Из них автоматически извлекается всё содержимое, кроме колонтитулов, непечатаемых символов и картинок.

Далее, система анализирует полученный текст и находит в нём секции (главы). Если в тексте есть секция «Критерии включения / исключения» (характеристики, которыми должны обладать потенциальные участники для рассмотрения возможности их включения в КИ), то производится семантическая разметка текста в ней. Находимой в тексте информации о параметрах исследования (пол, возраст, вес участников, лекарство и др.) присваиваются специальные метки — т.н. аннотации. Полученную разметку можно проверить и при необходимости откорректировать вручную посредством веб-инструмента brat rapid annotation tool. Эта разметка позволяет в дальнейшем находить протоколы по заданным параметрам.

Режим поиска

Полнотекстовый поиск реализован при помощи поисковой системы Elasticsearch. Она обеспечивает поиск в режиме, близком к реальному времени — новые документы индексируются и становятся доступны для выдачи по запросу в течение нескольких минут после добавления в базу данных. В настоящее время Elasticsearch — одна из самых популярных поисковых систем; в частности, её используют в своих технологических стеках Uber, Slack и Microsoft.

Разработанное решение позволяет искать по:

  • базовым параметрам — наименование КИ, дата создания, страна и т.д;
  • тексту — учитывая синонимы, гиперонимы, гипонимы, связанные термины и т. д. Пользователь может выбрать, какой справочник синонимов использовать при поиске — это влияет на результаты поиска. При этом синхронизировать Elasticsearch после смены справочника не требуется;
  • различным дополнительным критериям. Например, если указать длительность клинического исследования (clinical trial period) < 8 недель, то будут найдены все протоколы КИ длительностью от 1 до 7 недель включительно.

Интерфейс приложения для поискаПользовательский интерфейс приложения

Полученный список сортируется по релевантности; тут же можно открыть исследование и посмотреть прикреплённые файлы, секции и ассоциации.

Если пользователь обнаружил ошибки в сведениях о найденных КИ и обладает правами на их изменение, то он может сделать это прямо из поисковой выдачи. В этом случае обновление индексов в Elasticsearch наступит в течение 1 минуты (интервал времени между обновлениями может настраиваться).

Отзыв менеджера проекта со стороны клиента:

Большое спасибо команде Аркадии за их усердную работу, терпение и вовлечённость, особенно во время обзоров и тестирования. Мы понимаем, что вы выложились на 100%, чтобы успешно завершить данный проект. Благодарю вас!

Результат


Работа над проектом продолжалась почти 1 год. За это время мы создали инструмент, который позволяет осуществлять поиск клинических исследований по различным критериям — фрагменты текста с учётом синонимов, основные параметры исследований и различные дополнительные показатели — на основе информации, хранящейся в виде текстовых документов PDF/DOCX. Для этого мы создали также инструмент для автоматического анализа и семантической разметки текстов при добавлении в базу данных клиента.